Особенности работы и настройки DHCP на маршрутизаторах Cisco (Часть 2)

    Статья является продолжением предыдущей статьи, посвященной базовой настройке DHCP на маршрутизаторе Cisco. В этой статье я хочу рассмотреть конфигурацию и настройку централизованного сервера DHCP и агентов DHCP-Relay

    1. Конфигурация


    В качестве примера возьмем следующую схему:


    На маршрутизаторе R3 расположен DHCP-сервер, который централизованно выдает адреса в сети LAN_1 и LAN_2. Маршрутизаторы R1 и R2 в данной схеме являются DHCP-Relay агентами

    Сконфигурируем на R3 два пула адресов для каждой локальной сети:

    !в режиме глобальной конфигурации определим адреса, которые будут исключены из пула (это адреса интерфейсов R1 и R2
    ip dhcp excluded-address 192.168.1.1
    ip dhcp excluded-address 192.168.2.1
    !создадим пул адресов с именем LAN_1
    ip dhcp pool LAN1
    network 192.168.1.0 255.255.255.0
    ip default-router 192.168.1.1
    !создадим пул адресов с именем LAN_2
    ip dhcp pool LAN2
    network 192.168.2.0 255.255.255.0
    ip default-router 192.168.2.1

    Естественно, при необходимости можно добавить в пул дополнительные опции.

    Следующий этап — конфигурация агентов DHCP-Relay на маршрутизаторах R1 и R2. Суть DHCP-Relay заключается в пересылке широковещательного пакета от клиента одноадресатным пакетом DHCP-серверу.

    Конфигурация агентов выполняется следующей командой:
    !выбираем интерфейс, на который будет приходить широковещательный запрос от клиентов, в данном случае это интерфейс f0/0 маршрутизатора, который подключен к сегменту сети
    interface fa0/0
    ip helper-address 10.1.1.2

    аналогично конфигурируется маршрутизатор R2
    interface fa0/0
    ip helper-address 10.1.2.2

    Нужно отметить, что команда ip helper-address x.x.x.x заставляет пересылать широковещательные UDP сообщения не только протокола DHCP, по умолчанию будут пересылаться также следующие запросы:
    • Time (udp 37)
    • TACACS (udp 49)
    • DNS (udp 53)
    • TFTP (udp 69)
    • NetBIOS name service (udp 137)
    • NetBIOS datagram service (udp 138)

    Если мы хотим исправить ситуацию, в режиме глобальной конфигурации определяем, какие запросы пересылать, а какие — нет:
    no ip forward-protocol udp 37
    no ip forward-protocol udp 53


    2. Как это работает?


    Клиент шлет стандартный DISCOVERY:



    который пересылается Relay-агентом в направлении DHCP-сервера (измененные поля отмечены красным):



    Как видно из картинки, сообщение теперь пересылается одноадресным пакетом с источником 192.168.1.1 (интерфейс маршрутизатора, на который был получен широковещательный пакет) и получателем 10.1.1.2 (адрес, который указан командой ip helper-address. Кроме того, адрес 192.168.1.1 указан в поле Relay agent IP address

    На основании адреса источника сообщения DHCP-сервер определяет, из какого пула выдавать адреса. Для маршрутизатора R2 запрос пойдет с адресом источника 192.168.2.1 и сервер выдаст адрес из пула LAN_2.

    Предложение OFFER от R3 к R1 выглядит следующим образом:



    R1 пересылает его клиенту меняя только адреса источника на 192.168.1.1 и получателя на 192.168.1.2 (ссылка на скриншот)

    Вот таким образом выглядит обмен сообщениями между клиентом, агентом и сервером:



    3. Заключение


    Для правильной работы данного примера важно учесть следующий момент: маршрутизатор R3 получает пакеты от R1 с адресом источника 192.168.1.1, поэтому на R3 сеть 192.168.1.0 должна быть в таблице маршрутизации, я настроил EIGRP между маршрутизаторами для решения этой проблемы. Смотрим таблицу:

    R3#sh ip ro

    Gateway of last resort is not set

    10.0.0.0/24 is subnetted, 2 subnets
    C 10.1.2.0 is directly connected, FastEthernet0/0
    C 10.1.1.0 is directly connected, FastEthernet0/1
    D 192.168.1.0/24 [90/307200] via 10.1.1.1, 00:00:16, FastEthernet0/1
    D 192.168.2.0/24 [90/307200] via 10.1.2.1, 00:02:17, FastEthernet0/0

    Спасибо за внимание, обсуждение приветствуется.
    Поделиться публикацией
    Комментарии 12
      +1
      а разве команда ip dhcp excluded-address 192.168.1.1 192.168.2.1 не закрывает всю сеть c 192.168.1.1 до 192.168.2.1? Или если мы прописываем два хоста из разных сетей, то он маршрутизатор понимает что это два хоста в двух разных сетях?
        0
        тоже хотел написать: эта команда исключит диапазон с 1.1 по 2.1

        для исключения 2х адресов надо давать 2 команды
        0
        кстати, да… писал по памяти, все-таки надо 2 разных строчки. Спасибо за замечание
          0
          Я бы ещё добавил, что кроме описанных по умолчанию 6 протоколов, там их ещё фигова туча
          (ip forward-protocol ?)
          И часто они очень даже могут помочь.
            0
            я написал про те, которые включены по-умолчанию, а все остальные можно транслировать просто указав номер udp-порта

            Кстати, не в курсе, как транслировать разные протоколы на разные серверы? я как-то не задумывался раньше о такой проблеме
              0
              Да никак: тут и трансляции-то нет никакой
              Можно только указать несколько серверов, а также забавный способ, превратить броадкаст в направленный: в качестве сервера указать
              ip helper-address 10.10.10.255
            0
            Так же не совсем ясно и очевидно, как маршрутизатор R1 узнает кому пересылать предложение DHCP сервера? Он берет мак адрес клиента из DHCP сообщения.
            А вот увидел, что есть скриншот. Но менее знакомым С TCP/IP стеком людям, это менее очевидно; )

            А так, освежающе, пишите еще. Спасибо!
              0
              вот не знаю почему автор опустил резервирование адресов в своей статье.
              но у меня так на клавиатура чешется написать…

              ip dhcp pool reservation
              host 192.168.1.5 255.255.255.0
              client-identifier 01+mac-addr


              причем часть client-identifier 01+mac-addr может иметь вид 00+mac-addr, и если не ошибаюсь родной мак но не уверен…

              все зависит от того какой хост будет получать адрес. юниксы помоему 01; ввенда 00;
              телефоны линксис 01 (у меня по крайней мере);
              проверить какой идентификатор писать можно получив адресс по dhcp а потом резервирование писать…
                0
                статья в общем-то посвящена DHCP-Relay. Если есть интерес к этой теме (а также работе с внешней базой данных ip-mac) можно разобрать эту тему детальнее
                0
                да я с первой частью перепутал… сорри.
                ну пусть будет здесь.

                ps я же не камень в огород кидал… я просто инфу опубликовал которая как мне кажется нужная в этой тематике…
                  0
                  скажи, пожалуйста, а можно еще и R1 c R2 между собой соединить, чтобы, если один из них отвалится, адреса dhcp все равно работал. или так нельзя?
                    0
                    В данной схеме каждый маршрутизатор (R1 и R2) на свою сетку, а DHCP сервер на R3 и если 1-й или 2-й отвалятся, связи все равно не будет вне зависимости от линка между R1 и R2. Если же речь идет о том, что отпадет линк в сторону R3, то, так как DHCP Relay — это обычный юникаст-трафик, он будет смаршрутизирован через соседа и тогда в дополнительном линке смысл есть.

                    Если нужно резервирование роутеров для сеток LAN1 и LAN2, смотри в сторону First Hop Redundancy Protocols (HSRP, GLBP, VRRP).

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое