테스트 호스트/데스크탑: Linux Dystantest 4.2.0-42-generic #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
RNDIS 장치/가젯: Linux colibri-imx6 3.14.52-v2.6b2+g7c83cef #1 SMP Wed Jun 29 15:57:37 CEST 2016 armv7l GNU/Linux
각각 6개의 동일한 RNDIS USB 가젯 장치가 있는 여러 개의 임베디드 박스로 구성된 시스템이 있다고 가정해 보겠습니다.
기본 /etc/systemd/network/rndis.network 파일은 다음과 같습니다:
[성냥]
유형 = 가젯
[회로망]
주소=192.168.11.1/24
DHCP 서버=예
그래서 우리는 기본적으로 dhcpd를 켜고 부팅 주소를 11.1로 하드코딩했습니다. dhcpd 프로세스를 어디에서도 찾을 수 없으며 공급업체에서는 이것이 systemd의 고유한 부분이라고 말합니다. /etc/dhcpd.conf가 없으며 systemd에 속한 구성 파일 이외의 구성 파일을 찾을 수 없습니다.
가장 큰 문제는 모든 N x 6 장치를 11.1로 하드코딩할 수 없다는 것입니다. 따라서 이러한 장치에 내장된 애플리케이션은 IP를 192.168."serialnum"."channelnum"과 같은 것으로 변경합니다.
여태까지는 그런대로 잘됐다. 유일한 문제는 우분투 시스템에서 게시/업데이트하면 항상 192.168."serialnum".X 대신 IP 192.168.11.X를 얻는다는 것입니다.
따라서 기본 dhcpd는 클라이언트가 새 임대를 요청할 때 사용하는 인터페이스의 실제 IP가 아닌 초기 구성 파일에서 여전히 서브넷을 가져옵니다.
어디에서나 이것을 변경하는 것에 대한 문서를 찾을 수 없습니다. 일반 서버는 부팅 시 IP를 유지해야 한다는 것을 알고 있지만 이는 내장 장치이므로 다르게 동작해야 하며 DHCP 서버 시스템에 "세미" 동적 IP가 있어야 합니다. systemd 문서의 [DHCPServer] 섹션에서는 이를 동적으로 만들기 위한 항목을 지정하지 않으며, 새 서브넷을 사용하도록 dhcp 서버를 다시 시작할 수 있는 dhcpd.service 파일도 지정하지 않습니다.
임베디드 가젯 머신 대신 우분투 머신에 DHCP 서버를 설치할 수 있지만 그렇게 하면 내 win32 클라이언트에 대한 지원 ~악몽~이 발생하므로 불가능합니다.
기술자 중 한 명에게 비용을 지불하여 우리가 만드는 모든 시스템의 모든 채널에 있는 rndis.network 파일의 IP를 수동으로 설정할 수도 있지만 여기에 서버를 설정할 때(할 수 있다면 규칙을 따르도록 만드는 것도 어리석은 것 같습니다) 현재 서브넷이 새 임대를 발행할 때.