img

Устранение неисправностей DHCP на Cisco

Почитатей первую часть статьи про траблшутинг NAT/PAT на Cisco.

В этой части мы рассмотрим проблемы DHCP.


Урок 1

новый сценарий

Вот новый сценарий, позвольте мне сначала объяснить его:

  • Зеленая зона - это наша локальная сеть, так что это наш NAT inside.
  • Красная область - это Интернет, поэтому это наш NAT outside.
  • Предполагается, что хост - это компьютер с шлюзом по умолчанию 192.168.12.2.
  • Наш маршрутизатор NAT подключен к маршрутизатору ISP.
  • Маршрутизатор ISP назначил нам подсеть 172.16.1.0 / 24, которую мы собираемся использовать для трансляции NAT.
  • BGP был настроен между NAT и маршрутизатором ISP для доступа к сети 192.168.34.0/24.
  • Предполагается, что веб-сервер прослушивает TCP-порт 80 и использует 192.168.34.3 в качестве шлюза по умолчанию.

Однако пользователи нашей локальной сети жалуются на то, что не могут подключиться к веб-серверу. Давайте проверим нашу конфигурацию NAT:

show ip nat translations

Мы можем убедиться, что трансляция работает:

  • Inside local IP-адрес нашего хоста.
  • Inside global находится один из IP-адресов из нашей подсети 172.16.1.0/24.
  • Outside local and global IP-адрес нашего веб-сервера

Эта трансляция выглядит хорошо, потому что все IP-адреса верные.

show ip route | include 192.168.34.0

Мы видим, что маршрутизатор NAT научился достигать сети 192.168.34.0 / 24 через BGP.

telnet

Наш NAT-маршрутизатор может подключаться к веб-серверу, поэтому проблема с подключением отсутствует. Однако следует помнить одну важную вещь. Пакет IP, который производит маршрутизатор NAT, выглядит следующим образом:

Пакет IP, который производит маршрутизатор NAT, выглядит следующим образом

IP-адрес получателя является нашим веб-сервером, и с ним нет проблем. Исходный IP-адрес - 192.168.23.2, и поскольку мы получили ответ, мы знаем, что маршрутизатор ISP знает, как достичь подсети 192.168.23.0 / 24. Это важно, поскольку подсеть 192.168.23.0 / 24 напрямую подключена к маршрутизатору ISP.

Однако, если мы отправляем эхо-запрос с хост-устройства, он преобразуется из-за NAT в IP-адрес в подсети 172.16.1.0/24. Пакет IP будет выглядеть так:

Пакет IP будет выглядеть так

Вот что происходит, когда этот IP-пакет покидает маршрутизатор NAT и отправляется маршрутизатору ISP:

  1. Маршрутизатор ISP получает IP-пакет и проверяет свою таблицу маршрутизации, знает ли он, куда отправлять трафик для сети 192.168.34.0 / 24.
  2. Сеть 192.168.34.0/24 напрямую подключена к маршрутизатору ISP, поэтому она выполняет запрос ARP для MAC-адреса веб-сервера, получает ответ ARP и может пересылать IP-пакет на веб-сервер.
  3. Веб-сервер хочет ответить, и он создает новый IP-пакет с IP-адресом назначения 172.16.1.
  4. Поскольку веб-сервер имеет маршрутизатор ISP в качестве шлюза по умолчанию, он отправит IP-пакет маршрутизатору ISP.
  5. Маршрутизатор ISP должен выполнить поиск в таблице маршрутизации, чтобы узнать, знает ли он, где находится сеть 172.16.1.0 / 24.
  6. Маршрутизатор ISP не знает, где находится 172.16.1.0 / 24, и отбросит IP-пакет.

Если бы это была настоящая производственная сеть, у нас не было бы доступа к маршрутизатору ISP. Так как это эмуляция сети и устройств, к которой у нас есть доступ, поэтому давайте сделаем отладку!

ISP#debug ip packet 1
IP packet debugging is on for access list 1
ISP#conf t
ISP(config)#access-list 1 permit host 192.168.34.4

Сначала включим отладку IP-пакетов и используем список доступа, который соответствует IP-адресу веб-сервера.

пинг

Следующим шагом является то, что мы будем генерировать некоторый трафик с хост-устройства.

маршрутизатор ISP

Это то, что будет производить маршрутизатор ISP. Он говорит нам, что понятия не имеет, куда отправить IP-пакет для 172.16.1.1 to...it является не маршрутизируемым и будет отброшен.

Так как же мы решим эту проблему? ISP-маршрутизатор требует сеть 172.16.1.0 /24 в таблице маршрутизации. Поскольку мы уже запустили BGP мы можем использовать его для объявления этой сети с нашего маршрутизатора NAT:

NAT(config)#ip route 172.16.1.0 255.255.255.0 null 0
NAT(config)#router bgp 1
NAT(config-router)#network 172.16.1.0 mask 255.255.255.0

Сначала мы создадим статическое правило, которое указывает сеть 172.16.1.0 / 24 на интерфейс null0. Мы делаю это потому, что невозможно объявлять то, чего у тебя нет. Следующий шаг-объявить эту сеть в BGP.

Пинг прошел… проблема решена

Пинг прошел проблема решена!

Итог урока: убедитесь, что ваши маршрутизаторы знают, как связаться с translated сетями.

Урок 2

Начнем с простого сценария

Начнем с простого сценария. Маршрутизатор с левой стороны - это наш DHCP-клиент, а маршрутизатор с правой стороны - это наш DHCP-сервер. Клиент, однако, не получает никаких IP-адресов ... что может быть не так?

включен ли интерфейс на клиенте DHCP и настроен ли он для DHCP

Сначала мы проверим, включен ли интерфейс на клиенте DHCP и настроен ли он для DHCP. И это действительно так.

включен ли интерфейс на клиенте DHCP и настроен ли он для DHCP

Мы также должны убедиться, что интерфейс на сервере DHCP включен/включен и что у него есть IP-адрес. Пока все выглядит хорошо...

debug dhcp detail

Если мы хотим быть абсолютно уверенным, что проблема не в клиенте, нам надо применить отладку командой debug dhcp detail, чтобы посмотреть, отправляет ли клиент DHCP сообщения об обнаружении DHCP.

отладочные выходные данные

Мы видим некоторые отладочные выходные данные, как показано выше. Это говорит о том, что наш DHCP-клиент отправляет сообщения DHCP Discover. Клиент, скорее всего, не является источником этой проблемы.

DHCPServer#show ip dhcp pool
show ip dhcp pool

Мы будем использовать команду show ip dhcp pool, чтобы проверить, существует ли пул DHCP. Вы видите, что у нас есть пул DHCP с именем "MYPOOL", и он настроен для подсети 192.168.12.0 / 24. Пока все выглядит хорошо.

show ip dhcp server statistics

Мы можем использовать команду show ip dhcp server statistics, чтобы узнать, что делает сервер DHCP. Вы видите, что он ничего не делает ... что это может значить?

show ip sockets

Эта команда не часто применяется. show ip sockets показывает нам, на каких портах роутер слушает. Как вы видите, он не прослушивает никакие порты ... если мы не видим здесь порт 67 (DHCP), это означает, что служба DHCP отключена.

DHCPServer(config)#service dhcp

Включим сервис.

show ip sockets

Так-то лучше! Теперь мы видим, что маршрутизатор прослушивает порт 67, это означает, что служба DHCP активна.

клиент получает IP-адрес через DHCP

Как только служба DHCP будет запущена, вы увидите, что клиент получает IP-адрес через DHCP ... проблема решена!

Итог урока: если все в порядке, убедитесь, что служба DHCP работает.

Урок 3

У нас есть 3 маршрутизатора

Взгляните на сценарий выше. У нас есть 3 маршрутизатора; маршрутизатор на левой стороне настроен как DHCP-клиент для своего интерфейса FastEthernet0/0. Маршрутизатор с правой стороны настроен как DHCP-сервер. Помните, что DHCP-сообщения об обнаружении от клиентов транслируются, а не пересылаются маршрутизаторами. Вот почему нам требуется команда ip helper на маршрутизаторе в середине, именуемым как relay. Проблема в этом сценарии заключается в том, что клиент не получает IP-адреса через DHCP

show ip interface brief

Сначала мы проверим, что интерфейс настроен для DHCP. Мы определим это с помощью команды show ip interface brief.

DHCPClient(config)#interface fastEthernet 0/0
DHCPClient(config-if)#shutdown
DHCPClient(config-if)#no shutdown

Мы будем переводить интерфейс в режимы up и down для проверки, будет ли он отправлять сообщение DHCP Discover.

show ip dhcp server statistics

Мы видим, что сообщения DHCP Discover принимаются на DHCP-сервере. Это означает, что маршрутизатор в середине был настроен с IP helper, в противном случае мы даже не получили бы эти сообщения. Сообщения с предложениями DHCP отправлены, но мы не видим сообщений DHCPACK (Acknowledgment). Это дает нам понять, что что-то происходит...

DHCPServer#debug ip dhcp server packet

Включим отладку, чтобы увидеть, что происходит.

DHCP-сервер пытается достичь IP-адреса 192.168.12.2

Мы видим, что наш DHCP-сервер пытается достичь IP-адреса 192.168.12.2, это интерфейс FastEthernet0/0 нашего маршрутизатора в середине. Знает ли DHCP-сервер, как добраться до этого IP-адреса?

show ip route

Как вы можете видеть, его нет в таблице маршрутизации, это означает, что IP-пакеты с назначением 192.168.12.2 будут отброшены.

debug ip packet

Чтобы доказать это, мы можем включить отладку

IP-адрес назначения 192.168.12.2 не является маршрутизируемым

Здесь видим, что IP-адрес назначения 192.168.12.2 не является маршрутизируемым, и в результате IP-пакет будет отброшен. Давайте исправим эту проблему.

DHCPServer(config)#ip route 192.168.12.0 255.255.255.0 192.168.23.2

Мы добавим этот статический маршрут, чтобы исправить нашу проблему с подключением.

добавим этот статический маршрут

Через некоторое время вы должны увидеть, что клиент получает IP-адрес через DHCP.

клиент получает IP-адрес через DHCP

Если вы оставили "debug ip dhcp server packet" включенным, вы увидите весь процесс DHCP:

  1. DHCP Discover
  2. DHCP Offer
  3. DHCP Request
  4. DHCP ACK

Вот и все ... проблема решена!

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

3 часть статьи про FHRP траблшутинг на Cisco доступна по ссылке.

Ссылка
скопирована
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Задержка в сети, или сетевая задержка, - это временная задержка при передаче запросов или данных от источника к адресату в сетев
img
Система доменных имен (DNS – Domain Name System) обеспечивает сетевую коммуникацию. DNS может показаться какой-то невидимой сило
img
Wi-Fi это технология, которая использует радиоволны для отправки и получения сигналов от находящихся поблизости устройств, чтобы
img
BGP (Border Gateway Protocol) - это протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступно
img
Когда читаете данную статью, браузер подключается к провайдеру (или ISP) а пакеты, отправленные с компьютера, находят путь до се
img
Современные веб-сайты и приложения генерируют большой трафик и одновременно обслуживают многочисленные запросы клиентов. Баланси
Комментарии
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59