Назначьте IP-адрес на основе порта коммутатора

9

Коротко:
я хочу, чтобы DHCP-сервер назначал предварительно сконфигурированный IP-адрес на основе порта (в идеале, на коммутаторе), к которому подключено устройство.

Длинный:

Моя ситуация:
я строю автоматизированную закрытую ферму (для выращивания помидоров). Ферма состоит из множества (на данный момент 12, но их число вырастет до сотен) идентичных 7х7 комнат. В каждой комнате будет порт Ethernet, и к этому порту будет подключена система управления средой. Обратите внимание, что каждая комната должна контролироваться индивидуально.

Комнаты расположены по 12 рядов, поэтому я подумал, что у меня будет коммутатор на ряд, и я подключу эти коммутаторы к маршрутизатору.

Я мог бы запрограммировать каждый контроллер среды со статическим IP, чтобы я мог связать контроллер с определенной комнатой на сервере, но я думаю, что было бы проще, если бы я мог назначить IP-адрес каждой комнате, что также сделало бы контроллеры взаимозаменяемыми и возможность горячей замены без необходимости ручной настройки.

InB4: я также рассматриваю возможность использования сети ZigBee для этого приложения, но мне может понадобиться передавать диагностические изображения, и с сотнями устройств ZigBee может быть неадекватным.

Вопрос: возможно ли назначить предварительно настроенный IP-адрес на основе порта, к которому подключено устройство? Какие устройства мне нужны для этого?

THX-1138
источник
1
Вы можете сделать что-то вроде VLAN на порт и назначить / 30 или / 31 для каждой VLAN, но вы уверены, что вам нужно использовать IP-адреса для идентификации устройств? Название приложения, которое вы используете для чтения устройств, каким-то образом? Мое внутреннее чувство, что должен быть лучший способ достигнуть этого.
Рон Ствол
Меня интересует только физическое расположение устройства, каждый отдельный контроллер не имеет значимой идентичности. Если контроллер, например, сгорел - я хочу иметь возможность заменить его на новый, без необходимости заходить в настройки устройств и настраивать статический IP-адрес или местоположение.
THX-1138

Ответы:

12

Можно ли назначить предварительно настроенный IP-адрес на основе порта, к которому подключено устройство? Какие устройства мне нужны для этого?

Вы можете использовать коммутатор Cisco и IOS, которые поддерживают распределение адресов на основе портов DHCP-сервера на вашем коммутаторе; Вы также должны выдать DHCP с вашего коммутатора. Предположим, что у вас есть Fa0/1и Fa0/2во Vlan120.

ip dhcp use subscriber-id client-id
ip dhcp subscriber-id interface-name
ip dhcp excluded-address 192.0.2.1 192.0.2.10
!
ip dhcp pool VLAN120
   network 192.0.2.0 255.255.255.0
   default-router 192.0.2.1
   dns-server 192.0.2.5
   reserved-only
   address 192.0.2.101 client-id "Fa0/1" ascii
   address 192.0.2.102 client-id "Fa0/2" ascii

Эта конфигурация резервирует адреса для fa0 / 1 и fa0 / 2. Один и тот же адрес всегда будет назначен этим портам.

Майк Пеннингтон
источник
1
Также есть опция-82 для внешнего DHCP-сервера, но это намного больше работы и больше "серверного" вопроса.
Рикки Бим
2

Я смог сделать то, что вы хотели, используя Cisco IOS DHCP и опцию 82 snooping. Я не могу использовать правильные термины. Но в основном мне нужно было назначать IP-адреса кухонным принтерам в зависимости от станции на кухне, на которой они находились. Если один из этих принтеров умер во время обеденной смены, менеджер магазина должен был бы иметь возможность установить новый принтер, настроенный с использованием DHCP, и настроить его на тот же адрес, что и у удаленного принтера. Мне также нужно было, чтобы все 8 принтеров находились в одном домене широковещательной рассылки, и я не мог использовать помощник для отправки на сервер Windows 2012, так как хранилище должно было продолжать работать, даже если мой wan отключился.

Я сделал это с помощью следующей команды на каждом порту коммутатора: ip dhcp snooping vlan 3 information option format-type circuit-id override string broil(или все, что вам нужно)

Используйте конвертер ASCII в hex и конвертируйте вашу строку в hex

Затем на DHCP-сервере, будь то коммутатор или маршрутизатор, настроить класс DHCP. Для моего жаркого выше это

ip dhcp class broil
   relay agent information
      relay-information hex 010562726f696c*

это 010 <number of characters in your string so 5 since broil is 5 characters><whatever your string converts to>

Вот как настроен мой бассейн.

ip dhcp pool Kitchen
 network 10.102.1.0 255.255.255.0   
 default-router 10.102.1.1
 lease infinite
 class broil
 address range 10.102.1.160 10.102.1.160

И наконец, чтобы сделать этот адрес доступным для другого устройства в случае сбоя одного из портов коммутатора, я настраивал задание kron на выдачу clear ip dhcp bind *каждые 5 минут.

Я верю, что ВСЕ это работает, мне потребовались следующие дополнительные команды на моем коммутаторе ios, который является моим сервером DHCP

ip dhcp relay information trust-all ip dhcp subscriber-id
interface-name

ip dhcp snooping vlan 3 (our vlan of course) ip dhcp snooping
information option allow-untrusted ip dhcp snooping

и на любом порту, соединяющем ваш DHCP-сервер с другими коммутаторами, которые могут быть использованы для этого (наряду с этим переключается по восходящей линии к вашему DHCP-серверу)

ip dhcp snooping trust

Вот в основном это. Работает как шарм и, наконец, позволил нам перейти от IP к серийной печати, которая была крушение поезда.

mkitg
источник
-1

Если вы хотите «горячую замену», имена устройств должны быть независимы от их местоположения. Вам нужно будет отслеживать MAC-адреса устройств на графике с простым именем Minion, например, «Bob». Затем настройте устройство с этим именем или описанием «Боб». Таким образом, когда отчеты о мониторинге сети выдают только описание или имя, важно проверить диаграмму. Вам просто нужно отслеживать на графике, где вы размещаете устройства.

Коммутаторы больше озабочены физическими адресами, чем IP-адресами. Однако каждый этаж может использовать свой собственный VLAN со своим собственным сервером DHCP. Затем вы можете создать именованный vlan для каждого этажа, например «grow_rooms_1-12» с / 28 маской подсети. Вы также можете дать каждому порту описание, как «чтобы вырастить комнату 1». Это отличные средства управления, если вы смотрите свою сеть через командную строку.

Вы также можете изменить размер помещения, чтобы повысить эффективность освещения, влажности и температуры, что также может уменьшить количество контролирующих устройств.

Джон Роб
источник