Connman - Продлить аренду DHCP

Connman - Продлить аренду DHCP

У меня есть небольшой вопрос.

Предположим, у меня есть сервер DHCP0 (192.168.1.X) и сервер DHCP1 (10.0.1.X).

У меня есть плата под управлением Linux с connman. Подключите мою плату к DHCP0, запустите ее. Connman запускается и устанавливает IP-адрес по DHCP на интерфейс eth0: 192.168.1.2

Отключите плату от DHCP0 и подключите ее к DHCP1.

Почему IP-адрес не обновляется в 10.0.1.X на eth0? Видите, у меня такое же поведение на Ubuntu 18.04 без connman. Полагаю, это нормальное поведение. Так могу ли я настроить connman для обновления DHCP IP-адреса при "link up"?

Чтобы обновить IP-адрес, мне нужно

$ ifconfig eth0 down
$ ifconfig eth0 up

или

$ systemctl restart connman

Спасибо за ваше возвращение.

Сильвен

решение1

Забыл сказать, что у нас на плате есть коммутатор. 2 порта включены на GMAC0 для eth1 и 3 порта включены на GMAC1 для eth0. Так что для eth1 мы видим два порта коммутатора sw0p0 и sw0p1. Когда я отключаю кабель, с помощью ip monitor link я вижу, что это sw0p1, который отключен, а не eth1

Это довольно важное упущение.

Ваш eth0не являетсяподключенный напрямую к DHCP-серверу – это просто "порт ЦП" на внутреннем коммутаторе GMAC1. Даже если он проходит через внутренний коммутатор, онвсе ещепроходит через коммутатор — и это имеет тот же эффект, что и связь «ЦП↔коммутатор» остается полностью независимой от связи «коммутатор↔DHCP-сервер».

Таким образом, на eth0 нет события «подключение», поскольку соединение никогда не разрывается!

Возможно, что внутренний драйвер коммутатора может поддерживать какой-либо метод распространения состояния канала с одного внешнего порта на внутренний порт... В качестве альтернативы, если «sw0p1» отображается как реальный сетевой интерфейс, то пользовательское пространство, такое какifplugdможет использоваться для мониторинга состояния его соединения и соответствующего перезапуска connman.

Связанный контент