원격 장치 관리 도구를 개발 중입니다. 이 도구는 두 부분으로 구성됩니다.
- 서버: 대시보드 관리자, 연결된 장치를 보고 관리하기 위한 GUI
- 클라이언트: 프록시로서 서버에서 작업을 가져와 실행합니다.
관리자가 장치의 네트워크 설정을 변경하려는 경우 해당 장치를 작업 대상으로 지정하고 새 설정이 작업의 매개변수가 됩니다. 예를 들어:
{
target: DEVICE_ID,
action: 'CONFIGURE_NETWORK',
params: {
ip_addr: '192.168.1.77',
default_gateway: '192.168.1.1',
primary_dns: '8.8.8.8',
...
}
}
대상 장치가 이 작업을 획득하면 클라이언트 대행사는 새로운 설정 값을 운영 체제에 적용하려고 시도합니다.
과거에는 Raspberry PI 장치만 지원했기 때문에 DHCPCD를 사용하여 작업을 해결하기도 했습니다. 더욱 발전된 기능은 네트워크 설정이 실패할 경우 복구하는 기능입니다.
이제 우리는 Ubuntu 16.04 이상을 기반으로 하는 장치를 통해 더 다양한 장치를 지원할 것으로 예상하며 아마도 모든 데스크톱 환경을 실행할 수 있을 것입니다. 그리고 문제의 원인. Ubuntu 제품군에는 네트워크를 관리하는 방법과 도구가 많이 있습니다. 일부 배포판은 netplan을 사용하고 다른 배포판에는 NetworkManager, wicd, DHCPCD5 등이 함께 제공됩니다.
위의 작업을 수행하는 가장 좋은 방법은 무엇입니까? 모든 변형에 적합한 방법은 무엇입니까? 몇 가지 제안을 해주실 수 있나요?
답변1
제가 생각할 수 있는 가장 일반적인 접근 방식은 이러한 모든 관리 도구를 비활성화/제거하고 기본 명령줄 도구/OS 메커니즘을 사용하여 네트워크 구성을 수행하는 것입니다.
ifup
그리고ifdown
지원되는 모든 플랫폼(ifupdown
Ubuntu의 패키지) 에서 사용 가능한 경우/etc/network/interfaces
.ifconfig
(net-tools
) 및 제공된 값으로 이를 호출하는 일부 사용자 정의 스크립트는 가장 기본적인 접근 방식이어야 하지만(권장하지 않는 자체 도구를 구현하는 것 제외) 사소한 설정에 적합하게 만들려면 약간의 노력이 필요합니다.
현재 설정을 얻으려면 (권장되지 않음)의 출력을 구문 분석 ifconfig <interface>
하거나 구문 분석 할 수 있습니다.ip
iproute2
더 편리하고 결정적이어야 하는 명령(from )입니다.