Cisco DHCP: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 10: | Строка 10: | ||
Вот пример: |
Вот пример: |
||
+ | <PRE> |
||
+ | ip dhcp relay information trust-all |
||
+ | </PRE> |
||
<PRE> |
<PRE> |
||
ip dhcp pool 100.64.1.2_static |
ip dhcp pool 100.64.1.2_static |
||
Строка 28: | Строка 31: | ||
* Если роутер сам является непосредственно получателем запросов (без релея) то <code>network 100.64.0.0 255.255.0.0</code> должна быть на интерфейсе (даже если не нужна там) |
* Если роутер сам является непосредственно получателем запросов (без релея) то <code>network 100.64.0.0 255.255.0.0</code> должна быть на интерфейсе (даже если не нужна там) |
||
* Если роутер получает запросы через релей то адрес релея должен быть заполнен правильно, и к нему должен быть маршрут |
* Если роутер получает запросы через релей то адрес релея должен быть заполнен правильно, и к нему должен быть маршрут |
||
+ | Кроме того возможен вариант когда Option 82 вставляется на втором уровне, то что называют local_relay, и тогда обязательно нужно сказать тупой железке что это валидно, когда есть Opt 82, но в поле giaddr - <code>0.0.0.0</code> . Насколько я понимаю за это отвечает настройка <code>ip dhcp relay information trust-all</code> |
||
− | Кроме того |
||
+ | <BR> |
||
+ | ==relay-information hex== |
||
+ | Сама идея писать в HEX мне не нравится - но видно лень было писать код |
||
+ | <BR> |
||
+ | Взять это значение можно из WireShark или написать руками |
||
+ | |||
+ | Если писать руками то в моем случае (<code>0106000400650118020800067cad74002140</code>: |
||
+ | <PRE> |
||
+ | 01|06|00|04|0065|01|18|02|08|00|06|7cad74002140| |
||
+ | 01| | | | | | | | | | | | номер секции (или sub-option?) |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |06| | | | | | | | | | | длинна sub-option (6 байт! -> 00 04 00 65 01 18) |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | 00| | | | | | | | | | (что значит 00 тут я не знаю - предполагаю что на длину отведено 2 байта) |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |04| | | | | | | | | Длинна curcuit-id, 4 байта |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |0065| | | | | | | | Номер VLAN (в hex) (первые 2 байта из 4 байт curcuit-id), |
||
+ | | | | | | | | | тут влан 101 (десятичный) |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |01| | | | | | | Номер модуля, причем даже в коммутаторах без модулей |
||
+ | | | | | | | | |(например для Po1 модуль будет 3 а номер порта - 1 ) |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |18| | | | | | Номер порта коммутатора, к которому подключен клиент |
||
+ | | | | | | | (счёт начинается с 0 или 1 зависит от коммутатора), 0x18 в HEX это 24 |
||
+ | | | | | | | в десятичном счислении, у меня счет шел с 0 и порт Gi 1/23 |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |02| | | | | Начало второй секции |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |08| | | | Длинна второй секции ( 8 байт-> 00 06 7c ad 74 00 21 40) |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |00| | | (что значит 00 тут я не знаю - предполагаю что на длину отведено 2 байта) |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |06| | Длинна remote-id, 6 байт |
||
+ | ------------------------------------------------------------------------------------------------------------------------------ |
||
+ | |7cad74002140| MAC-адрес коммутатора, к которому подключен клиент |
||
+ | </PRE> |
||
+ | * В поле remote-id в целом вендоры могут пихать что угодно (особенно удобно строки что бы при замене коммутатора не менялся remote-id но так как это умеют не все, а мак-адрес - все, то пока ориентируюсь только на мак адрес) |
||
=Cisco Static Adresses= |
=Cisco Static Adresses= |
||
+ | тут конечно какой-то очередной треш |
||
+ | |||
+ | * Если хочется сделать адрес статическим и только то нужно делать так |
||
+ | <PRE> |
||
+ | ip dhcp relay information trust-all |
||
+ | ip dhcp excluded-address 100.64.1.1 |
||
+ | ip dhcp excluded-address 100.64.255.254 |
||
+ | ! |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | ip dhcp pool 100.64.1.3_static |
||
+ | host 100.64.1.3 255.255.0.0 |
||
+ | hardware-address b827.eb24.8df2 |
||
+ | dns-server 172.31.100.1 172.31.100.5 |
||
+ | default-router 100.64.255.254 |
||
+ | lease 0 0 2 |
||
+ | </PRE> |
||
+ | * <code>host 100.64.1.3 255.255.0.0</code> если тут маска не совпадает с тем что на интерфейсе то работать не будет (а как сделать что бы работало - никто не знает) |
Текущая версия на 14:42, 9 августа 2023
По большой нужде (например если нет сервера или нет питания и сервер выключен) можно попробовать использовать DHCP на роутере или коммутаторе.
То что оно конфигурируется убулюдошно не должно останавливать настоящего самурая. Но конечно позорище.
Cisco DHCP Option 82
Тут я не нашел способа как сделать соответствие одновременно и классу и мак-адресу, при указанном мак-адресе срабатывает всегда он (как минимум на ASR1001)
Вот пример:
ip dhcp relay information trust-all
ip dhcp pool 100.64.1.2_static network 100.64.0.0 255.255.0.0 dns-server 172.31.100.1 172.31.100.5 default-router 100.64.255.254 lease 0 0 11 class 0106000400650118020800067cad74002140 address range 100.64.1.2 100.64.1.2
ip dhcp class 0106000400650118020800067cad74002140 relay agent information relay-information hex 0106000400650118020800067cad74002140
Что в этом примере важно:
- Если роутер сам является непосредственно получателем запросов (без релея) то
network 100.64.0.0 255.255.0.0
должна быть на интерфейсе (даже если не нужна там) - Если роутер получает запросы через релей то адрес релея должен быть заполнен правильно, и к нему должен быть маршрут
Кроме того возможен вариант когда Option 82 вставляется на втором уровне, то что называют local_relay, и тогда обязательно нужно сказать тупой железке что это валидно, когда есть Opt 82, но в поле giaddr - 0.0.0.0
. Насколько я понимаю за это отвечает настройка ip dhcp relay information trust-all
relay-information hex
Сама идея писать в HEX мне не нравится - но видно лень было писать код
Взять это значение можно из WireShark или написать руками
Если писать руками то в моем случае (0106000400650118020800067cad74002140
:
01|06|00|04|0065|01|18|02|08|00|06|7cad74002140| 01| | | | | | | | | | | | номер секции (или sub-option?) ------------------------------------------------------------------------------------------------------------------------------ |06| | | | | | | | | | | длинна sub-option (6 байт! -> 00 04 00 65 01 18) ------------------------------------------------------------------------------------------------------------------------------ 00| | | | | | | | | | (что значит 00 тут я не знаю - предполагаю что на длину отведено 2 байта) ------------------------------------------------------------------------------------------------------------------------------ |04| | | | | | | | | Длинна curcuit-id, 4 байта ------------------------------------------------------------------------------------------------------------------------------ |0065| | | | | | | | Номер VLAN (в hex) (первые 2 байта из 4 байт curcuit-id), | | | | | | | | тут влан 101 (десятичный) ------------------------------------------------------------------------------------------------------------------------------ |01| | | | | | | Номер модуля, причем даже в коммутаторах без модулей | | | | | | | |(например для Po1 модуль будет 3 а номер порта - 1 ) ------------------------------------------------------------------------------------------------------------------------------ |18| | | | | | Номер порта коммутатора, к которому подключен клиент | | | | | | (счёт начинается с 0 или 1 зависит от коммутатора), 0x18 в HEX это 24 | | | | | | в десятичном счислении, у меня счет шел с 0 и порт Gi 1/23 ------------------------------------------------------------------------------------------------------------------------------ |02| | | | | Начало второй секции ------------------------------------------------------------------------------------------------------------------------------ |08| | | | Длинна второй секции ( 8 байт-> 00 06 7c ad 74 00 21 40) ------------------------------------------------------------------------------------------------------------------------------ |00| | | (что значит 00 тут я не знаю - предполагаю что на длину отведено 2 байта) ------------------------------------------------------------------------------------------------------------------------------ |06| | Длинна remote-id, 6 байт ------------------------------------------------------------------------------------------------------------------------------ |7cad74002140| MAC-адрес коммутатора, к которому подключен клиент
- В поле remote-id в целом вендоры могут пихать что угодно (особенно удобно строки что бы при замене коммутатора не менялся remote-id но так как это умеют не все, а мак-адрес - все, то пока ориентируюсь только на мак адрес)
Cisco Static Adresses
тут конечно какой-то очередной треш
- Если хочется сделать адрес статическим и только то нужно делать так
ip dhcp relay information trust-all ip dhcp excluded-address 100.64.1.1 ip dhcp excluded-address 100.64.255.254 !
ip dhcp pool 100.64.1.3_static host 100.64.1.3 255.255.0.0 hardware-address b827.eb24.8df2 dns-server 172.31.100.1 172.31.100.5 default-router 100.64.255.254 lease 0 0 2
host 100.64.1.3 255.255.0.0
если тут маска не совпадает с тем что на интерфейсе то работать не будет (а как сделать что бы работало - никто не знает)