Итак, у нас имеется железка Cisco и на этой железке крутится
DHCP-сервер. Я предположу, что сам сервер уже настроен и работает, а
наша задача сейчас - это закрепить за определенным компьютером или
хостом с определенным MAC-адресом определенный IP, который будет всегда
одинаковый.
Как бонус - я подскажу - что делать, если искомый хост перемещается между несколькими подсетями и ему (т.е. одному и тому же MAC-адресу) нужно выдать разные IP в зависимости от того - на каком объекте он сейчас находится.
Закрепляем IP к MAC
В Cisco есть пулы. Пулы раздают для определенной подсети IP-адреса. И вроде как понятие "пул" ассоциируется сразу с набором адресов, из которого DHCP сервер будет динамически выдавать свободный.
Однако понятие "закрепления" MAC=IP в Cisco тоже реализуется через пулы. И создаются пулы совершенно так-же, как и обычные, за исключением одного момента: для обычных пулов мы определяем директиву "network" для того, чтобы указать подсеть, из которой выдавать адреса, а для статической привязки пулы мы НЕ используем директиву "network", а используем "host", добавляя к ней "client-identifier".
Вот пример объявления статической привязки MAC-адреса к IP:
Здесь:
Внимание! Очень внимательно посмотрите на строку client-identifier. Видите, что MAC адрес почему-то на одно слово длиннее, чем должен быть? Дело в том, что впереди мы добавили "01" (на самом деле MAC выглядит 94:39:E5:C0:C2:A9). Дело в том, что во время запроса на Cisco прилетает MAC в таком вот виде, т.е. с "01" вначале. Прилетает он так с Windows, с Unix-систем вначале добавляется "00" вместо "01". Возможно, на других железках запрос прилетает еще по-своему. Лучше всего сначала не привязывать хост, а посмостреть через
Итого, для Windows и BSD/Unix/MacOS MAC будет прилетать в таком виде:
Закрепляем за одним хостом разные IP в зависимости от местоположения
Представим себе схему: у нас есть предприятие с распределенной сетью. Скажем, что в офисе А народ использует адресацию 10.0.10.0/24, а в офисе Б - 10.0.11.0/24. Офис А сидит на VLAN10, а офис Б - на VLAN11 (это для примера). Некой роуминговой подсети, например, не существует и сотрудники в офисе А могут использовать только адресацию из сети 10.0.10.0/24. В офисе Б - аналогично.
Теперь представим себе сотрудника с ноутбуком, который то поработает в офисе А, то поработает в офисе Б. Очевидно, что этому сотруднику нужно выдавать разные IP в зависимости от того, где он в данный момент подключен - в офисе А или в офисе Б. Например, в офисе А у него должен быть IP=10.0.10.44, а в офисе Б - IP=10.0.11.44.
Как нам на Cisco DHCP это прописать?
Итак, мы используем два пула - для офиса А и для офиса Б соответственно. Пулы, конечно, назовем по-разному. Ниже пример такой настройки:
Просто, не правда ли? Т.е. мы создали два пула с разными именами, с одинаковым MAC, но с разными сетевыми реквизитами.
Как бонус - я подскажу - что делать, если искомый хост перемещается между несколькими подсетями и ему (т.е. одному и тому же MAC-адресу) нужно выдать разные IP в зависимости от того - на каком объекте он сейчас находится.
Закрепляем IP к MAC
В Cisco есть пулы. Пулы раздают для определенной подсети IP-адреса. И вроде как понятие "пул" ассоциируется сразу с набором адресов, из которого DHCP сервер будет динамически выдавать свободный.
Однако понятие "закрепления" MAC=IP в Cisco тоже реализуется через пулы. И создаются пулы совершенно так-же, как и обычные, за исключением одного момента: для обычных пулов мы определяем директиву "network" для того, чтобы указать подсеть, из которой выдавать адреса, а для статической привязки пулы мы НЕ используем директиву "network", а используем "host", добавляя к ней "client-identifier".
Вот пример объявления статической привязки MAC-адреса к IP:
CISCO# config t
CISCO(config)# ip dhcp pool MyHost
CISCO(dhcp-config)# host 10.0.99.15 255.255.255.0
CISCO(dhcp-config)# client-identifier 0194.39e5.c0c2.a9
CISCO(dhcp-config)# default-router 10.0.99.1
CISCO(dhcp-config)# dns-server 10.0.0.1 10.0.1.1
CISCO(dhcp-config)# end
CISCO(config)# ip dhcp pool MyHost
CISCO(dhcp-config)# host 10.0.99.15 255.255.255.0
CISCO(dhcp-config)# client-identifier 0194.39e5.c0c2.a9
CISCO(dhcp-config)# default-router 10.0.99.1
CISCO(dhcp-config)# dns-server 10.0.0.1 10.0.1.1
CISCO(dhcp-config)# end
Здесь:
- host : определяет IP адрес для данного хоста
- client-identifier : задает MAC-адрес, по которому будем привязываться
- default-router : Шлюз по-умолчанию
- dns-server : Серверы DNS
Внимание! Очень внимательно посмотрите на строку client-identifier. Видите, что MAC адрес почему-то на одно слово длиннее, чем должен быть? Дело в том, что впереди мы добавили "01" (на самом деле MAC выглядит 94:39:E5:C0:C2:A9). Дело в том, что во время запроса на Cisco прилетает MAC в таком вот виде, т.е. с "01" вначале. Прилетает он так с Windows, с Unix-систем вначале добавляется "00" вместо "01". Возможно, на других железках запрос прилетает еще по-своему. Лучше всего сначала не привязывать хост, а посмостреть через
CISCO# sh ip dhcp bind
в каком виде прилетел MAC.Итого, для Windows и BSD/Unix/MacOS MAC будет прилетать в таком виде:
- Unix: 0094.39e5.c0c2.a9
- Windows: 0194.39e5.c0c2.a9
Закрепляем за одним хостом разные IP в зависимости от местоположения
Представим себе схему: у нас есть предприятие с распределенной сетью. Скажем, что в офисе А народ использует адресацию 10.0.10.0/24, а в офисе Б - 10.0.11.0/24. Офис А сидит на VLAN10, а офис Б - на VLAN11 (это для примера). Некой роуминговой подсети, например, не существует и сотрудники в офисе А могут использовать только адресацию из сети 10.0.10.0/24. В офисе Б - аналогично.
Теперь представим себе сотрудника с ноутбуком, который то поработает в офисе А, то поработает в офисе Б. Очевидно, что этому сотруднику нужно выдавать разные IP в зависимости от того, где он в данный момент подключен - в офисе А или в офисе Б. Например, в офисе А у него должен быть IP=10.0.10.44, а в офисе Б - IP=10.0.11.44.
Как нам на Cisco DHCP это прописать?
Итак, мы используем два пула - для офиса А и для офиса Б соответственно. Пулы, конечно, назовем по-разному. Ниже пример такой настройки:
CISCO# config t
CISCO(config)# ip dhcp pool MyRoumingHost_OfficeA
CISCO(dhcp-config)# host 10.0.10.44 255.255.255.0
CISCO(dhcp-config)# client-identifier 0194.39e5.c0c2.a9
CISCO(dhcp-config)# default-router 10.0.10.1
CISCO(dhcp-config)# dns-server 10.0.0.1 10.0.1.1
CISCO(dhcp-config)# end
CISCO# config t
CISCO(config)# ip dhcp pool MyRoumingHost_OfficeB
CISCO(dhcp-config)# host 10.0.11.44 255.255.255.0
CISCO(dhcp-config)# client-identifier 0194.39e5.c0c2.a9
CISCO(dhcp-config)# default-router 10.0.11.1
CISCO(dhcp-config)# dns-server 10.0.0.1 10.0.1.1
CISCO(dhcp-config)# end
CISCO(config)# ip dhcp pool MyRoumingHost_OfficeA
CISCO(dhcp-config)# host 10.0.10.44 255.255.255.0
CISCO(dhcp-config)# client-identifier 0194.39e5.c0c2.a9
CISCO(dhcp-config)# default-router 10.0.10.1
CISCO(dhcp-config)# dns-server 10.0.0.1 10.0.1.1
CISCO(dhcp-config)# end
CISCO# config t
CISCO(config)# ip dhcp pool MyRoumingHost_OfficeB
CISCO(dhcp-config)# host 10.0.11.44 255.255.255.0
CISCO(dhcp-config)# client-identifier 0194.39e5.c0c2.a9
CISCO(dhcp-config)# default-router 10.0.11.1
CISCO(dhcp-config)# dns-server 10.0.0.1 10.0.1.1
CISCO(dhcp-config)# end
Просто, не правда ли? Т.е. мы создали два пула с разными именами, с одинаковым MAC, но с разными сетевыми реквизитами.
Комментариев нет:
Отправить комментарий