Proxy ARP

  • С помощью отрезка витой пары пятой категории, коннекторов и обжимного инструмента сделайте два кроссоверных кабеля.
  • Подключитесь к маршрутизатору с помощью консольного порта.
  • На его Ethernet-интерфейсах укажите адреса 192.168.1.1/24 и 192.168.2.1/24.
  • На обоих интерфейсах Ethernet дайте команду no ip proxy-arp.
  • Включите эти интерфейсы с помощью команды no shutdown в режиме конфигурирования интерфейса.
  • Сконфигурируйте компьютеры следующим образом.
Параметр Компьютер №1 Компьютер №2
IP-адрес 192.168.1.2 192.168.2.2
Маска подсети 255.255.0.0 255.255.0.0
IP-адрес шлюза 192.168.1.1 192.168.2.1
  • Подключите компьютеры с помощью приготовленных ранее кабелей к портам маршрутизатора .
  • Убедитесь в том, что компьютеры получают ответы на эхо-запросы протокола ICMP от своих шлюзов.
  • Убедитесь в том, что с компьютера №1 нельзя получить доступ к компьютеру №2 (также с помощью протокола ICMP).
  • Воспользуйтесь сниффером, а также командой arp –a операционной системы компьютера, чтобы установить точную картину событий, происходящих в сети. Расскажите о наблюдениях преподавателю.
  • Для обоих Ethernet-интерфейсов маршрутизатора дайте команду ip proxy-arp.
  • Посмотрите, что изменится в этом случае в доступности одного из компьютеров с другого.
  • Воспользуйтесь сниффером, а также командами arp –a и arp -d операционной системы компьютера (clear ip arp и show ip arp для маршрутизатора Cisco), чтобы установить точную картину событий, происходящих в сети. Расскажите о наблюдениях преподавателю.

Скачать PDF-файл с описанием лабораторной работы.

Лабораторная работа: изучение технологии SLB

Введение

Технология Cisco SLB (Server Load Balancing) предназначена для распределения нагрузки между несколькими серверами, а также для обеспечения отказоустойчивости предоставляемого сервиса, так как обеспечивает продолжение функционирования последнего даже при отказе одного или нескольких серверов. SLB – не единственная технология, с помощью которой возможно распределение нагрузки, часто в реальных сетях также применяют NLB или балансировку с помощью DNS. Возможно даже совмещение нескольких вариантов распределения нагрузки и использование специализированных балансеров.

Cisco Server Load Balancing может работать в двух режимах: L2 и L3. Наиболее простым для понимания и реализации является L3 режим, в котором маршрутизатор выполняет не только распределение TCP или UDP сессий между серверами, но и изменение IP-адреса получателя (NAT) иногда вместе с TCP/UDP портом получателя (PAT). В качестве адреса получателя выбирается реальный адрес сервера. Преимуществом данного метода балансировки является возможность нахождения балансирующего маршрутизатора и серверов в разных L3 сетях. К недостаткам можно отнести повышенную нагрузку на процессор, обусловленную выполнением NAT/PAT.

При работе в L2 режиме трансляция NAT/PAT не выполняется, то есть адрес получателя и порт остаются неизменными. «Выбор» сервера осуществляется лишь на основе изменения MAC-адреса получателя. Таким образом, к серверам применяется дополнительное требование: операционная система должна иметь постоянно работающий интерфейс, на котором назначен IP-адрес сервиса. Назначение такого IP-адреса непосредственно на Ethernet-интерфейс (вторичный (secondary) адрес) не является хорошей идеей, так как при переходе его в рабочее состояние будет произведён широковещательный ARP-запрос об этом адресе, что приведёт появлению сообщения об ошибке дублирования IP-адресов в сети (ответят другие аналогичные сервера). На практике для указанной цели используют специальные интерфейсы замыкания на себя (Loopback).

Пример сети, в которой работает SLB, представлен ниже. Стоит отметить, что интерфейсы Loopback на серверах в этой схеме будут использоваться только в случае использования L2 режима SLB. Маски для клиента и внешнего интерфейса маршрутизатора не указаны, так как в реальной сети эти адреса, конечно же, будут из разных подсетей и могут быть произвольными.

Практическое задание

Конфигурирование устройств в данной лабораторной работе делится на три части: сначала собирается схема для режима L3, после чего производится перенастройка для перехода на L2, далее (только при работе в эмуляторе) производится построение отказоустойчивой схемы балансировки. Отдельно стоит отметить, что данную лабораторную работу стоит выполнять лишь после того, как хорошо освоены предыдущие (более простые) работы. Здесь нет чёткой последовательности действий для всех пунктов настройки, что оставляет простор для творчества у студента, позволяя наиболее полно ознакомиться со всеми вспомогательными опциями. Часть №3 выполняется только на эмуляторе.

При выполнении данной лабораторной работы на реальном оборудовании в качестве маршрутизатора с SLB используйте Cisco 3640, при работе на эмуляторе выбирайте маршрутизатор Cisco серии 7200. Также при работе в эмуляторе в качестве клиента и серверов можно использовать маршрутизаторы.

Часть №1

  1. Выполните все необходимые соединения и произведите все необходимые подготовительные настройки (назначение IP-адресов, настройка маршрутизации, конфигурирование виртуальных сетей на коммутаторе). Убедитесь в работоспособности полученной схемы. Следует понимать, что в реальной сети доступа к серверам извне не будет по двум причинам: во-первых, приватные IP-адреса не маршрутизируются глобально, а во-вторых, все «лишние» доступы закрываются с помощью списков доступа.
  2. На SLB маршрутизаторе из режима глобальной конфигурации перейдите в режим настройки виртуальной фермы серверов test с помощью команды ip slb serverfarm test.
  3. Дайте команду nat server для перевода фермы в режим работы L3.
  4. Определитесь, какой сервис будет запущен для тестирования собираемой схемы. При работе в эмуляторе в качестве сервиса можно использовать telnet к «маршрутизаторам-серверам». С помощью команды real 10.0.0.2 port перейдите в режим настройки сервера 10.0.0.2 внутри данной фермы, где port – номер порта, на котором работает тестируемый сервис. Командой inservice переведите данный сервер внутри фермы в рабочее состояние. Повторите указанную процедуру для второго сервера. В общем случае номер порта конкретного сервера может отличаться от номеров портов других серверов и внешнего порта сервиса в целом.
  5. Изучите следующие вспомогательные опции: faildetect, maxconns, predictor, retry и weight.
  6. С помощью команд привилегированного режима sho ip slb serverfarms, sho ip slb serverfarms detail, sho ip slb reals изучите статусы серверных ферм и включённых в их состав серверов.
  7. Используйте команду ip slb vserver test для перехода в режим настройки виртуального сервера test.
  8. С помощью команды serverfarm test привяжите ранее созданную серверную ферму test к данному виртуальному серверу.
  9. Указать адрес (в данной работе это 1.1.1.1), протокол и порт внешнего сервиса можно с помощью команды virtual 1.1.1.1 protocol port.
  10. Переведите виртуальный сервер в рабочий режим с помощью команды inservice. Дополнительно изучите возможности следующих опций: advertise, client, sticky и synguard.
  11. Изучите возможности просмотровых команд sho ip slb conns, sho ip slb reals, sho ip slb stats, sho ip slb sticky, sho ip slb vservers и sho ip slb wildcard.
  12. Запустите тестовые сервисы на тестовых серверах и произведите подключение клиентом. На реальном оборудовании с помощью утилит netcps, iperf или аналогичных измерьте производительность маршрутизатора с SLB в режиме L3.
  13. Убедитесь в том, что отключение любого из серверов не приводит к падению сервиса.

Часть №2

  1. На тестовых серверах (или маршрутизаторах при работе в эмуляторе) создайте интерфейс Loopback, на который назначьте адрес 1.1.1.1.
  2. Создайте новую серверную ферму, однако в ней не давайте команду nat server.
  3. Добавьте сервера в новую ферму. При добавлении сервера в L2 ферму не нужно указывать порт.
  4. Переведите виртуальный сервер test в нерабочий режим.
  5. Замените ферму в виртуальном сервере test на новую.
  6. Переведите виртуальный сервер test в рабочий режим.
  7. Убедитесь в работоспособности нового режима работы SLB.
  8. Проверьте доступность сервиса при отключении любого из серверов.

Часть №3

  1. Соберите новую схему так, чтобы параллельно с маршрутизатором SLB был установлен новый маршрутизатор той же модели с той же версией IOS.
  2. На старом и новом маршрутизаторах настройте HSRP с именованной группой.
  3. Переведите виртуальный сервер test в нерабочий режим.
  4. Скопируйте настройки со старого маршрутизатора SLB на новый.
  5. На обоих маршрутизаторах переведите виртуальный сервер test в рабочий режим с помощью команды inservice standby name, где name – имя сконфигурированной ранее группы HSRP.
  6. Убедитесь, что статус виртуального сервера зависит от статуса узла в настроенной HSRP-группе.
  7. Проверьте отказоустойчивость новой схемы путём попеременного отключения маршрутизаторов SLB.

Скачать PDF-файл с описанием лабораторной работы.

Построение туннелей на маршрутизаторах Cisco с использованием интерфейсов Loopback

Общее описание

Моделируется ситуация, когда провайдер маршрутизирует ограниченные диапазоны IP-адресов, например, организовывает связь между двумя сетями /24. На основании этого для связи офисов строится туннель на loopback-интерфейсах двух граничных маршрутизаторов клиента, IP-адреса для интерфейсов Loopback выбираются из сетей, выделенных (маршрутизируемых) провайдером.

Для лучшего понимания задачи, поставленной в лабораторной работе, предлагается выполнить предварительную подготовку. А именно, рассмотреть стандартную ситуацию маршрутизации офисов клиента через сеть провайдера (без конфигурирования туннеля). Пусть провайдер выделяет клиенту офисные сети /24. Необходимо настроить IP-адреса интерфейсов и прописать статическую маршрутизацию для роутеров Provider, Router1, Router2, согласно схеме сети, приведенной в работе, не принимая во внимание туннель и loopback-интерфейсы. Подчеркнем, что для адресации офисных сетей клиента используем маску /24.

Подготовительная настройка

В роли сети провайдера используем маршрутизатор Cisco серии 3600, офисные сети подключены к маршрутизаторам Cisco серии 1600.

  1. Подключите два маршрутизатора Cisco серии 1600 к маршрутизатору Cisco серии 3600. К каждому маршрутизатору Cisco серии 1600 также подключите компьютер.
  2. Подключитесь к консольному порту каждого из маршрутизаторов и из конфигурационного режима задайте имя с помощью команды hostname name. Например, Provider, Router1, Router2.
  3. Для каждого маршрутизатора в режиме конфигурации интерфейса настройте IP-адреса интерфейсов Ethernet0, Ethernet1 с помощью команды ip address address mask. Для адресов интерфейсов Ethernet0 маршрутизаторов Cisco 1600 (к которым подключены офисные сетки) используем маску /24 (mask 255.255.255.0).
  4. Для каждого компьютера офисных клиентских сетей настройте IP-адрес, используя маску /24, в качестве default gateway укажите IP-адрес интерфейса Ethernet0 соответствующего маршрутизатора Cisco серии 1600.
  5. На маршрутизаторе Cisco серии 3600 (Provider) настройте статическую маршрутизацию на выделенные сети, используя конфигурационную команду ip route ip-address mask next_hop.
  6. На каждом маршрутизаторе Cisco 1600 также пропишите статическую маршрутизацию на удаленную офисную сеть через маршрутизатор провайдера.
  7. Для отслеживания состояния таблицы маршрутизации используйте команду show ip route.
  8. С помощью ICMP эхо-запросов (ping) убедитесь в доступности каждого из маршрутизаторов с компьютера(-ов) и в том, что между офисами клиента установлена связь через маршрутизатор провайдера.

Основная настройка

Теперь предположим, что ситуация изменилась. Клиенту необходимо использовать большее количество адресов, чем предоставляется выделенными провайдером сетями /24. Для этого при адресации офисных сетей используется маска /16. Но провайдер по-прежнему маршрутизирует и предоставляет клиенту сети /24. Решением проблемы связи офисов клиента может служить построение туннеля на loopback-интерфейсах двух граничных маршрутизаторов клиента.

Стоит отметить, что построение туннеля может быть осуществлено с использованием физических интерфейсов (Router1::eth1 и Router2::eth1) вместо виртуальных. Однако решение, основанное на использовании виртуальных интерфейсов в качестве точек терминации туннеля, обладает существенным преимуществом - оно обеспечивает определённую отказоустойчивость в случае использования нескольких провайдеров или нескольких соединений. Допустим, что клиент решает дополнительно воспользоваться услугами другого провайдера - Provider2 - и подключает к его маршрутизатору свои L3-устройства (интерфейсами Router1::eth2 и Router2::eth2). Рассмотрим ситуацию, когда Tunnel0 использует физические интерфейсы eth1. В случае выхода из строя платы с eth1 туннель перестанет функционировать, что приводит к потере связи между офисами, несмотря на то, что существует рабочее соединение между Router1 и Router2 через оператора Provider2. Для решения этой проблемы можно построить дополнительные туннели между маршрутизаторами, однако такой подход является плохо масштабируемым.

Теперь рассмотрим построение туннелей с использованием виртуальных интерфейсов. В этом случае функционирование туннеля не зависит от состояния физических портов. Единственное необходимое условие - наличие IP-связности между точками терминации туннеля. Это может быть обеспечено при помощи статических маршрутов или протоколов динамической маршрутизации между клиентом и провайдером. Таким образом, поломка одного из физических интерфейсов не приведёт к недоступности удалённого сегмента сети.

  1. С помощью команды ip address address mask для каждого маршрутизатора Cisco серии 1600 в режиме конфигурации интерфейса настройте новые IP-адреса интерфейсов Ethernet0, к которым подключены офисные сети клиента, необходимо использовать маску /16 (mask 255.255.0.0).
  2. Для каждого компьютера офисных клиентских сетей настройте новый IP-адрес, используя маску /16.
  3. Для каждого из маршрутизаторов Cisco 1600 в режиме конфигурирования виртуального интерфейса loopback0 настройте IP-адрес c помощью команды ip address address mask, в качестве mask следует использовать /32 (mask 255.255.255.255), IP-адрес выбирается из сети, выделенной провайдером.
  4. Для каждого маршрутизатора Cisco 1600 сконфигурируйте туннельный интерфейс, с помощью конфигурационной команды interface tunnel 0.
  5. В режиме конфигурирования интерфейса-туннеля настройте IP-адрес, используя команду ip address address mask, в качестве маски следует указать значение /30 (mask 255.255.255.252).
  6. Используя интерфейсные команды tunnel source ip-address и tunnel destination ip-address настройте IP-адреса конечных точек туннеля. В качестве ip-address следует использовать настроенные ранее адреса loopback-интерфейсов.
  7. Настройте режим туннелирования с помощью интерфейсной команды tunnel mode mode, где в качестве mode укажите, например, ipip.
  8. Принимая во внимание сконфигурированный выше туннель, создайте на каждом маршрутизаторе Cisco серии 1600 статический маршрут на вторую офисную сеть, используя конфигурационную команду ip route network ip-address mask next-hop.
  9. Убедитесь в доступности каждого из маршрутизаторов с компьютера(-ов) с помощью ICMP эхо-запросов (ping).
  10. Посмотрите, как маршрутизируются офисные сети, используя команду traceroute ip-address (tracert для Windows).
  11. Посмотрите IP-адреса отправителя и получателя пакетов, маршрутизируемых между офисными сетями клиента. Для этого подключите маршрутизатор Cisco серии 1600 и маршрутизатор Cisco серии 3600 (Provider) к коммутатору Cisco серии Catalyst 2960, к которому также подключите ещё один компьютер.
  12. Настройте на коммутаторе SPAN-сессию для копирования данных, проходящих через коммутатор на порт, к которому подключен дополнительный компьютер. Для этого используйте конфигурационные команды monitor session 1 source interface interface both, monitor session 1 destination interface interface, где в качестве source interface и destination interface укажите порты, к которым подключены офисный маршрутизатор и дополнительный компьютер, соответственно.
  13. Для просмотра настроенной SPAN-сессии воспользуйтесь командой show monitor session 1.
  14. Запустите на дополнительном компьютере, подключенном к коммутатору, программу Wireshark, «перехватите» пакет, отправленный из одной офисной сети в другую. Посмотрите MAC и IP-адреса отправителя и получателя.
  15. Осуществите такой «перехват» пакета в разных частях построенной сети (между офисным ПК первого офиса и Router1, между Router1 и Provider, между Provider и Router2, между Router2 и офисным ПК во втором офисе), используя коммутатор Cisco серии 2960. Установленные MAC и IP-адреса отправителя и получателя занесите в таблицу. Проанализируйте полученные данные.
Точка перехвата IP и MAC отправителя IP и MAC получателя IP и MAC отправителя в перехваченных данных IP и MAC получателя в перехваченных данных
ПК1-Router1        
Router1-Provider        
Provider-Router2        
Router2-ПК2        

Далее перейдем ко второй части лабораторной работы.

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

  1. На каждом маршрутизаторе Cisco серии 1600 удалите прописанный ранее статический маршрут на соответствующую офисную сеть с маской /16. Это требуется сделать, так как далее предполагается передавать информацию об этой сети по EIGRP. Обратите внимание на состояние туннеля.
  2. На каждом клиентском маршрутизаторе запустите протокол EIGRP. Для этого следует использовать конфигурационную команду router eigrp process_number, где в качестве номера процесса укажите, например, 1.
  3. С помощью команды network network_ip-address в режиме конфигурации роутера пропишите сетку, в которой будет работать EIGRP (протокол включится на всех интерфейсах данного маршрутизатора, адреса которых попадают в указанный диапазон).
  4. Отключите автоматическое суммирование маршрутов с помощью команды no auto-summary в режиме конфигурации маршрутизатора.
  5. Командой redistribute connected укажите маршрутизатору, что следует отправлять маршрутную информацию обо всех подключенных сетях.
  6. Для отслеживания изменений используйте команды show ip route eigrp, show ip eigrp neighbors, show ip eigrp interfaces, show ip eigrp topology.
  7. Обратите внимание на периодическое изменение состояния туннеля. Такой эффект - следствие рекурсивной маршрутизации. Изучите и объясните явление.

По согласованию с преподавателем исправьте возникшую проблему. Для ее решения следует изменить конфигурацию на клиентских маршрутизаторах так, чтобы по EIGRP отправлялась информация обо всех подключенных сетях, но не пересылалась информация о loopback-интерфейсе. Для этого будем использовать механизм route-map.

  1. Создайте route-map на каждом маршрутизаторе Cisco серии 1600, используя конфигурационную команду route-map rm-name deny seq1, в качестве seq1 укажите, например, 10. Постфикс deny указывает на создание запрещающего правила.
  2. Пропишите само запрещение с помощью команды match interface interface, в качестве interface укажите loopback-интерфейс данного маршрутизатора. Вернитесь в режим глобальной конфигурации.
  3. Для созданного route-map создайте разрешающее правило, используя команду route-map rm-name permit seq2, где, согласно логике работы route-map, в качестве seq2 следует указать значение, большее seq1, например, 20. По умолчанию разрешающее правило разрешает всё, не указанное в предварительном запрещающем правиле.
  4. Укажите, что по EIGRP следует отправлять маршрутную информацию обо всех подключенных сетях, с применением правил, указанных в созданном route-map. Для этого отмените команду redistribute connected в режиме конфигурации роутера для eigrp 1, и примените redistribute connected route-map rm-name.
  5. Обратите внимание на состояние туннеля. Проанализируйте изменения.
  6. Предложите и реализуйте другие способы решения проблемы.

Примечание. Познакомьтесь с distribute-lists и prefix-lists применительно к данной лабораторной работе.

Скачать PDF-файл с описанием лабораторной работы.

Построение туннелей на маршрутизаторах Cisco с использованием технологии VRF

Описание задачи

Моделируется ситуация, когда двум клиентам провайдера необходимо логически соединить свои удалённые сети так, чтобы трафик одного клиента никак не пересекался с трафиком другого клиента. Для этого необходимо настроить виртуальные устройства на базе граничных маршрутизаторов провайдера, используя технологию VRF, и поднять GRE-туннели с концами на соответствующих виртуальных маршрутизаторах.

Описание решения

Для начала необходимо разобраться с понятием VRF. VRF (Virtual Routing and Forwarding) - механизм создания виртуальных маршрутизаторов на базе одного физического устройства. Из плюсов этого механизма можно отметить практически полную независимость таблиц маршрутизации и настроек разных виртуальных устройств. Отсюда и следует очевидное применение: если имеется большая операторская сеть, к которой нужно подключить некоторое количество новых клиентов, со специфичными настройками (новый DHCP сервер или шлюз по умолчанию) достаточно создать виртуальное устройство и настроить его соответствующим образом. В нашем случае VRF применяется для разделения трафика различных клиентов и построения необходимой логической топологии.

Из условия поставленной задачи необходимо реализовать следующую сеть.

Здесь маршрутизаторы LeftSPRouter, CentralSPRouter, RightSPRouter моделируют сеть провайдера, 1Lan1Client, 2Lan1Client – удаленные сети первого клиента, 1Lan2Client, 2Lan2Client – второго клиента. Для сети провайдера используем маршрутизаторы Cisco серии 7200, офисные сети реализуются маршрутизаторами Cisco серии 3600.

Моделирование

Добавим необходимые маршрутизаторы и коммутаторы. Настроим коммутаторы: на SW1 интерфейс 1 находится в режиме trunk (на коммутаторе в GNS3 такой режим называется dot1q), интерфейс 2 в VLAN 2 в режиме access, интерфейс 3 в VLAN 3 в режиме access; на SW2 аналогичные настройки. Соединим устройства как на схеме, причем 1Lan1Client подключим ко второму интерфейсу SW1, 1Lan2Client – к третьему интерфейсу SW1; 2Lan2Client – к третьему интерфейсу SW2, 2Lan1Client – ко второму интерфейсу SW2. На этом моделирование закончено, переходим к настройке.

Настройка

Настроим предложенную схему для первого клиента. Для этого необходимо создать виртуальные устройства на маршрутизаторах, затем настроить все необходимые интерфейсы на устройствах, после чего поднять GRE-туннель на loopback-ах и, наконец, настроить динамическую маршрутизацию.

Сначала нужно настроить VRF-маршрутизаторы. На LeftSPRouter в режиме глобального конфигурирования добавим новый виртуальный маршрутизатор.

LeftSPRouter(config)# ip vrf Client1vrf

Присвоим ему уникальный идентификатор.

LeftSPRouter(config-vrf)# rd 1:1

Проделаем то же самое на RightSPRouter.

RightSPRouter(config)# ip vrf Client1vrf
RightSPRouter(config-vrf)#rd 1:2

Далее, настроим 1Lan1Client. Перейдем в режим конфигурирования интерфейса в сторону коммутатора (в нашем случае он называется fa0/0) и присвоим ему IP-адрес с маской командой ip address 10.10.10.2 255.255.255.0. Включим интерфейс командой no shutdown. Кроме того, создадим loopback-интерфейс, моделирующий сеть клиента.

1Lan1Client(config)# int loopback 1
1Lan1Client(config-if)# ip address 10.10.11.1 255.255.255.0

Переходим к настройке LeftSPRouter. В режиме конфигурирования интерфейса (в сторону CentralSPRouter) назначим IP-адрес с маской командой ip address 192.168.10.1 255.255.255.252. Поднимем интерфейс командой no shutdown.

То же самое проделаем для интерфейса в сторону RightSPRouter.

LeftSPRouter(config-if)# ip address 192.168.30.1 255.255.255.252
LeftSPRouter(config-if)# no shutdown

Теперь настроим интерфейс в сторону коммутатора SW1. Поднимем подынтерфейс, добавим его в наш виртуальный маршрутизатор, настроим инкапсуляцию, присвоим IP-адрес и маску.

LeftSPRouter(config)# int fa0/0.2
LeftSPRouter(config-if)# ip vrf forwarding Client1vrf
LeftSPRouter(config-if)# encapsulation dot1Q 2
LeftSPRouter(config)# ip address 10.10.10.1 255.255.255.0

Переходим к настройке CentralSPRouter.

CentralSPRouter(config)# int fa0/0
CentralSPRouter(config-if)# ip address 192.168.10.2 255.255.255.252
CentralSPRouter(config-if)# no shutdown
CentralSPRouter(config)# int fa0/1
CentralSPRouter(config-if)# ip address 192.168.20.2 255.255.255.252
CentralSPRouter(config-if)# no shutdown

Теперь RightSPRouter. Аналогичные настройки, что и для LeftSPRouter. Настроим и поднимем интерфейсы в сторону LeftSPRouter и CentralSPRouter командами ip address 192.168.20.1 255.255.255.252 и ip address 192.168.30.2 255.255.255.252 соответственно. Теперь настроим интерфейс в сторону коммутатора SW2. Поднимем подынтерфейс, добавим его в наш виртуальный маршрутизатор, настроим инкапсуляцию, присвоим IP-адрес и маску.

RightSPRouter(config)# int fa0/0.2
RightSPRouter(config-if)# ip vrf forwarding Client1vrf
RightSPRouter(config-if)# encapsulation dot1Q 2
RightSPRouter(config)# ip address 10.10.40.1 255.255.255.0

Осталось настроить 2Lan1Client. Перейдем в режим конфигурирования интерфейса в сторону коммутатора и присвоим ему IP-адрес с маской командой ip address 10.10.40.2 255.255.255.0. Поднимем интерфейс командой no shutdown. Кроме того, создадим loopback-интерфейс, моделирующий сеть клиента.

2Lan1Client(config)# int loopback 1
2Lan1Client(config-if)# ip address 10.10.41.1 255.255.255.0

На этом первый этап настройки завершен. Теперь необходимо настроить GRE-туннель на интерфейсах loopback между RightSPRouter и LeftSPRouter. В режиме глобальной конфигурации LeftSPRouter добавляем интерфейс loopback1.

LeftSPRouter(config)# int loopback1
LeftSPRouter(config-if)# ip address 1.1.3.1 255.255.255.252

Настройка туннеля: поднимаем туннельный интерфейс, добавляем его в наш виртуальный маршрутизатор, настраиваем туннель.

LeftSPRouter(config)# int tunnel1
LeftSPRouter(config-if)# ip vrf forwarding Client1vrf
LeftSPRouter(config-if)# ip address 1.1.1.1 255.255.255.252
LeftSPRouter(config-if)# tunnel source loopback1
LeftSPRouter(config-if)# tunnel destination 1.1.4.1
LeftSPRouter(config-if)# tunnel key 1

Предпоследняя команда указывает адрес другого конца туннеля, который мы настроим далее, а последняя команда необходима для идентификации туннеля.

Поясним назначение команды идентификации туннеля tunnel key. Часто туннели клиентов поднимаются на одних и тех же интерфейсах (в нашем случае это интерфейсы loopback) из-за чего возникает неоднозначность определения принадлежности входящего пакета тому или иному туннелю. В этом легко убедиться самостоятельно: без указания ключа функционировать будет только один туннель (тот, что был настроен последним), т.е. в нашем случае после настройки туннеля второго клиента на тех же loopback-интерфесах туннель первого клиента отключится. Решить проблему неоднозначности можно, если настроить туннели разных клиентов на разных интерфейсах, что ресурсоемко. Проще указать ключ идентификации туннеля, что и было сделано.

Теперь настроим RightSPRouter.

RightSPRouter(config)# int loopback1
RightSPRouter(config-if)# ip address 1.1.4.1 255.255.255.252

Настройка туннеля: поднимаем туннельный интерфейс, добавляем его в наш виртуальный маршрутизатор, настраиваем туннель.

RightSPRouter(config)# int tunnel1
RightSPRouter(config-if)# ip vrf forwarding Client1vrf
RightSPRouter(config-if)# ip address 1.1.1.2 255.255.255.252
RightSPRouter(config-if)# tunnel source loopback1
RightSPRouter(config-if)# tunnel destination 1.1.3.1
RightSPRouter(config-if)# tunnel key 1

Туннель настроен, но использоваться он не будет, пока не будет настроена динамическая маршрутизация.

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

В сети провайдера на LeftSPRouter.

LeftSPRouter(config)# router ospf 1
LeftSPRouter(config-router)# network 192.168.10.0 0.0.0.3 area 0
LeftSPRouter(config-router)# network 192.168.30.0 0.0.0.3 area 0
LeftSPRouter(config-router)# network 1.1.3.0 0 0.0.0.3 area 0

Теперь для маршрутизации в VRF Client1vrf на LeftSPRouter выполним нижеследующие команды.

LeftSPRouter(config)# router ospf 2 vrf Client1vrf
LeftSPRouter(config-router)# network 10.10.10.0 0.0.0.255 area 0
LeftSPRouter(config-router)# network 1.1.1.0 0.0.0.3 area 0

В сети провайдера на RightSPRouter.

RightSPRouter(config)# router ospf 1
RightSPRouter(config-router)# network 192.168.20.0 0.0.0.3 area 0
RightSPRouter(config-router)# network 192.168.30.0 0.0.0.3 area 0
RightSPRouter(config-router)# network 1.1.4.0 0 0.0.0.3 area 0

Теперь для маршрутизации в VRF Client1vrf на RightSPRouter.

RightSPRouter(config)# router ospf 2 vrf Client1vrf
RightSPRouter(config-router)# network 10.10.40.0 0.0.0.255 area 0
RightSPRouter(config-router)# network 1.1.1.0 0.0.0.3 area 0

В сети провайдера на CentralSPRouter.

CentralSPRouter(config)# router ospf 1
CentralSPRouter(config-router)# network 192.168.20.0 0.0.0.3 area 0
CentralSPRouter(config-router)# network 192.168.10.0 0.0.0.3 area 0

На 1Lan1Client (номер OSPF-процесса – номер VLAN).

1Lan1Client(config)# router ospf 2
1Lan1Client(config-router)# network 10.10.10.0 0.0.0.255 area 0
1Lan1Client(config-router)# network 10.10.11.0 0.0.0.255 area 0

На 2Lan1Client (номер OSPF-процесса – номер VLAN).

2Lan1Client(config)# router ospf 2
2Lan1Client(config-router)# network 10.10.40.0 0.0.0.255 area 0
2Lan1Client(config-router)# network 10.10.41.0 0.0.0.255 area 0

На этом настройка для первого клиента завершена.

Настройка для второго клиента почти ничем не отличается. Ниже приводятся настройки на каждом устройстве с пояснениями в трудных местах.

1Lan2Client

1Lan2Client(config)# int fa0/0
1Lan2Client(config-if)# ip address 10.10.20.2 255.255.255.0
1Lan2Client(config)# no shutdown
1Lan2Client(config)# int loopback 1
1Lan2Client(config-if)# ip address 10.10.21.1 255.255.255.0
1Lan2Client(config)# router ospf 3
1Lan2Client(config-router)# network 10.10.20.0 0.0.0.255 area 0
1Lan2Client(config-router)# network 10.10.21.0 0.0.0.255 area 0

LeftSPRouter

LeftSPRouter(config)# ip vrf Client2vrf\\новый vrf-router
LeftSPRouter(config-vrf)# rd 2:1
LeftSPRouter(config)# int fa0/0.3\\настройка интерфейса в сторону сети клиента
LeftSPRouter(config-if)# ip vrf forwarding Client2vrf
LeftSPRouter(config-if)# encapsulation dot1Q 3
LeftSPRouter(config)# ip address 10.10.20.1 255.255.255.0
LeftSPRouter(config)# int tunnel2\\новый туннель
LeftSPRouter(config-if)# ip vrf forwarding Client2vrf
LeftSPRouter(config-if)# ip address 1.1.2.1 255.255.255.252
LeftSPRouter(config-if)# tunnel source loopback1\\туннель поднимаем на том же loopback, что
LeftSPRouter(config-if)# tunnel destination 1.1.4.1\\и первый
LeftSPRouter(config-if)# tunnel key 2\\здесь пригодится ключ идентификации
LeftSPRouter(config)# router ospf 3 vrf Client2vrf \\добавляем 1Lan2Client в таблицу Client2vrf
LeftSPRouter(config-router)# network 10.10.20.0 0.0.0.255 area 0
LeftSPRouter(config-router)# network 1.1.2.0 0.0.0.3 area 0

RightSPRouter

RightSPRouter(config)# ip vrf Client2vrf
RightSPRouter(config-vrf)# rd 2:2
RightSPRouter(config)# int fa0/0.3
RightSPRouter(config-if)# ip vrf forwarding Client2vrf
RightSPRouter(config-if)# encapsulation dot1Q 3
RightSPRouter(config)# ip address 10.10.30.1 255.255.255.0
RightSPRouter(config)# int tunnel2
RightSPRouter(config-if)# ip vrf forwarding Client2vrf
RightSPRouter(config-if)# ip address 1.1.2.2 255.255.255.252
RightSPRouter(config-if)# tunnel source loopback1
RightSPRouter(config-if)# tunnel destination 1.1.3.1
RightSPRouter(config-if)# tunnel key 2
RightSPRouter(config)# router ospf 3 vrf Client2vrf
RightSPRouter(config-router)# network 10.10.30.0 0.0.0.255 area 0
RightSPRouter(config-router)# network 1.1.2.0 0.0.0.3 area 0

2Lan2Client

2Lan2Client(config)# int fa0/0
2Lan2Client(config-if)# ip address 10.10.30.2 255.255.255.0
2Lan2Client(config)# no shutdown
2Lan2Client(config)# int loopback 1
2Lan2Client(config-if)# ip address 10.10.31.1 255.255.255.0
2Lan2Client(config)# router ospf 3
2Lan2Client(config-router)# network 10.10.30.0 0.0.0.255 area 0
2Lan2Client(config-router)# network 10.10.31.0 0.0.0.255 area 0

CentralSPRouter в настройке не нуждается. На этом конфигурация заканчивается, перейдем к тестированию сети.

Тестирование

  1. Для начала с помощью команд ping 10.10.40.2 source 10.10.11.1 с 1Lan1Client и ping 10.10.30.2 source 10.10.41.1 с 1Lan2Client убедимся, что пакеты успешно ходят по сети. Кроме того, используя traceroute с тех же устройств по тем же адресам, изучим пути следования этих пакетов.
  2. Далее убедимся, что протокол OSPF функционирует, прописав show ip protocols и show ip route на всех устройствах сети. Подумайте, как указанные команды позволяют убедиться в правильной работе протокола OSPF?
  3. На LeftSPRouter и RightSPRouter просмотрим результат работы команды show ip protocols vrf Client1vrf (show ip protocols vrf Client2vrf). Проанализируйте полученные данные.
  4. На LeftSPRouter и RightSPRouter изучим результат работы команды show ip route vrf Client1vrf (show ip route vrf Client2vrf).
  5. Используя Wireshark, перехватим пакеты на каналах между LeftSPRouter и RightSPRouter. Проанализируйте результаты перехвата.
  6. Наконец, проверим отказоустойчивость сети: отключим канал между LeftSPRouter и RightSPRouter и убедимся, что сеть по-прежнему функционирует. Укажите, какие из устройств способны обнаружить изменения в сети провайдера.
  7. Восстановить работоспособность отключенного в предыдущем пункте канала. Убедитесь в нормализации маршрутизации в сети оператора.
  8. Предложите решение, позволяющее передавать пользовательский IPv6 трафик между сетями клиентов так, чтобы не потребовалась перенастройка операторской сети.
  9. *Реализуйте предложенное в предыдущем пункте решение.

Скачать PDF-файл с описанием лабораторной работы.