Как запросить dhcp (используя dhclient) на виртуальном интерфейсе (то есть eth0:1)
Кажется, это работает нормально:
dhclient eth0
ifconfig eth0:1 192.168.1.105 up
Но не это
ifconfig eth0 192.168.1.105 up
dhclient eth0:1
Есть ли способ получить dhcp на виртуальный адрес?
1 ответ
Вы не можете сделать это на самом деле. Ваша карта имеет только один MAC-адрес, но несколько IP-интерфейсов. Им нужно, чтобы их адреса были статически назначены.
Когда сервер DHCP отправляет обратно DHCPOFFER, как он доставляется eth0:1
и не eth0
? eth0:1
рассылает DHCPDISCOVER или DHCPREQUEST по широковещательной рассылке. DHCP-сервер отвечает DHCPOFFER, чтобы сообщить клиенту свой IP-адрес. Но как прибудет DHCPOFFER, если eth0:1
еще не имеет IP-адрес? DHCP-сервер осуществляет широковещательную рассылку и полагается на канальный уровень для правильной доставки кадра Ethernet (с наложенными поверх него другими связанными уровнями) на правильный MAC-адрес. И теперь у вашего устройства есть IP-адрес.
Проблема для DHCPOFFER заключается в том, что с точки зрения уровня 2 два "устройства" (eth0
а также eth0:1
) неразличимы, и поэтому (с точки зрения уровня 3) DHCPOFFER предназначен для 255.255.255.255 (потому что eth0:1
еще не имеет IP-адрес).
Вы можете обойти это с помощью VLAN. Сети VLAN позволят вам взять один и тот же физический широковещательный домен и рассматривать его как несколько "виртуальных" широковещательных доменов (отсюда и название).