질문이 있어요.
DHCP0 서버(192.168.1.X)와 DHCP1 서버(10.0.1.X)가 있다고 가정해 보세요.
connman과 함께 Linux를 실행하는 보드가 있습니다. 내 보드를 DHCP0에 연결하고 내 보드를 시작하세요. Connman이 시작되고 DHCP를 통해 IP 주소를 eth0 인터페이스로 설정합니다: 192.168.1.2
보드를 DHCP0에서 분리하고 DHCP1에 연결합니다.
eth0의 10.0.1.X에서 IP 주소가 갱신되지 않는 이유는 무엇입니까? connman이 없는 Ubuntu 18.04에서도 동일한 동작이 나타나는지 확인하세요. 나는 그것이 정상적인 행동이라고 생각합니다. 그렇다면 "링크 업" 시 DHCP IP 주소를 갱신하도록 connman을 구성할 수 있습니까?
IP 주소를 갱신하려면 다음이 필요합니다.
$ ifconfig eth0 down
$ ifconfig eth0 up
또는
$ systemctl restart connman
반품해주셔서 감사합니다
실뱅
답변1
우리 보드에 스위치가 있다는 걸 깜빡했네요. eth1에 대해 GMAC0에서 2개의 포트가 활성화되고 eth0에 대해 GMAC1에서 3개의 포트가 활성화됩니다. 따라서 eth1의 경우 두 개의 스위치 포트 sw0p0 및 sw0p1을 볼 수 있습니다. 케이블을 뽑았을 때 IP 모니터 링크를 사용하면 연결된 것이 eth1이 아닌 sw0p1임을 알 수 있습니다.
꽤 중요한 누락이군요.
귀하의 eth0그렇지 않다DHCP 서버에 직접 연결 – 내부 GMAC1 스위치의 "CPU 포트"일 뿐입니다. 내부 스위치를 거쳐도아직스위치를 통과합니다. 이는 "CPU-스위치" 링크가 "스위치-DHCP서버" 링크와 완전히 독립적으로 유지되는 것과 동일한 효과를 갖습니다.
따라서 링크가 절대 다운되지 않기 때문에 eth0에는 "링크 업" 이벤트가 없습니다!
내부 스위치 드라이버가 하나의 외부 포트에서 내부 포트로 링크 상태를 전파하는 몇 가지 방법을 지원할 수도 있습니다. 또는 "sw0p1"이 실제 네트워크 인터페이스로 표시되면 다음과 같은 사용자 공간ifplugd링크 상태를 모니터링하고 그에 따라 connman을 다시 시작하는 데 사용할 수 있습니다.