Как динамически получить IP-адреса для интерфейсов VLAN?
У меня есть машина Ubuntu, на которой я создал четыре VLAN, а именно eth0.100
,eth0.200
, eth0.300
а также eth0.400
, Я хочу динамически получать IP-адреса с помощью DHCP-сервера. Он должен предоставлять IP с разных диапазонов IP-адресов, т.е.
for VLAN interface eth0.100,--> 192.168.0.20 - 192.168.0.40
for VLAN interface eth0.200 --> 192.168.0.50 - 192.168.0.70
for eth0.300 and eth0.400 --> likewise
Как я могу это реализовать? Как я буду читать VLAN ID интерфейса, который запрашивает IP-адрес? Как я передам информацию о VLAN, работающих на клиенте, на сервер DHCP?
Я думаю, что я должен создать интерфейсы VLAN на сервере DHCP также. Если я это сделаю, как я сообщу DHCP-серверу о наличии VLAN?
Я застрял в этом. Как мне поступить?
2 ответа
VLAN являются функцией уровня 2, в то время как IP/DHCP является уровнем 3, я просто хотел прояснить это, но они имеют много общего друг с другом в этом сценарии.
По сути, все, что вам действительно нужно сделать, - это убедиться, что ваш коммутатор / маршрутизатор L2/3 настроен так, чтобы ваш DHCP-сервер не только направлял в / из всех VLAN, но и предоставлял услугу "DHCP Helper", чтобы все клиенты во всех VLAN обращались к это когда они делают запрос DHCP. На устройствах Cisco L2/3 команда 'dhcp helper' настраивает это.
Как только это произойдет, любая машина в любой из VLAN может запросить адрес через DHCP, и запрос будет правильно перенаправлен на сервер DHCP, который при правильной настройке вернет соответствующий адрес.
Так оно и есть (это больше для будущих ссылок, если честно);
- Клиент отправляет широковещательную рассылку DHCP от себя как 0.0.0.0 до 255.255.255.255 (или что бы то ни было с учетом NM), содержащую свой MAC-адрес, запрашивая IP.
- Ваш коммутатор / маршрутизатор L2/3, если он настроен для работы в качестве помощника DHCP, затем смотрит, на каком интерфейсе запущена широковещательная рассылка, проверяет свой список помощников DHCP, чтобы выяснить, куда отправить запрос, а затем отправляет его на этот сервер DHCP, но на этот раз как одноадресное сообщение, содержащее собственный IP-адрес шлюза для каждого сегмента /VLAN (т. е. вероятный DG, через который будет маршрутизироваться клиент), но сохраняющее MAC-адрес клиентского компьютера, так что специфические для клиента настройки, такие как резервирование и т. д., могут применяться DHCP-сервер. Это делается для того, чтобы DHCP-сервер знал, для какой сети выдавать адрес, а также как вернуть его на коммутатор / маршрутизатор L2/3.
- DHCP-сервер получает этот одноадресный запрос от коммутатора / маршрутизатора L2/3, видит, что он поступает из определенной сети, если для него определена область действия и есть свободный или зарезервированный (потому что он знает MAC-адрес клиента), то его отправить выданный IP-адрес коммутатору / маршрутизатору L2/3 через одноадресную передачу (он знает свой IP-адрес) - вместе с любыми настройками клиента.
- Коммутатор / маршрутизатор L2/3 получает ответ от DHCP-сервера и просто передает его клиенту, меняя IP-адрес на IP-адрес клиента - это будет включать любые специфические для клиента настройки.
Это понятно?
Суть в том, что серверу DHCP вообще не нужно ничего знать о сети /VLAN L2 - только сеть L3 и соответствующие области.
Ваши сети, кажется, немного не-CIDR по своей природе. Что усложнит маршрутизацию. Если вы хотите использовать один /24 для всей вашей сети и разделить его на 4 сети VLAN, то каждый должен быть /26.
Это будет означать, что ваши сети будут выглядеть так.
- vlan 100 192.168.0.0/26
- vlan 200 192.168.0.64/26
- vlan 300 192.168.0.128/26
- vlan 400 192.168.0.192/26
Для DHCP-сервера у вас также должны быть интерфейсы в каждом vlan. И порты на коммутаторе, которые подключаются к обоим этим серверам, должны быть магистральными портами. Что касается настройки DHCP-сервера для работы с другим интерфейсом, нам нужно знать, какую ОС и DHCP-сервер вы планируете использовать, чтобы помочь вам разобраться в этих особенностях. Но в целом, если каждый интерфейс, который прослушивает DHCPD, имеет IP-адрес в данной сети, он возвращает IP-адрес из пула, связанного с этой сетью.