Настройка OSPF для одной зоны на маршрутизаторах Cisco

В данной статье описывается процесс настройки протокола динамической маршрутизации OSPF на маршрутизаторах Cisco. Перед прочтением статьи рекомендуется ознакомиться с общими принципами работы OSPF и основными понятиями. Кроме того, существует отдельная статья по настройке OSPF для работы с несколькими зонами.

Описание топологии и задач

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

Топология для настройки OSPF в одной зоне

  • ISP – маршрутизатор провайдера, он не входит в зону нашей ответственности и в OSPF процессе не участвует
  • R1 – наш пограничный маршрутизатор, он должен обеспечить пропуск трафика из внутренних сетей к провайдеру и обратно. На нём следует настроить статический маршрут по умолчанию и передать его остальным маршрутизаторам с помощью OSPF
  • R2, R3 и R4 – внутренние маршрутизаторы каждый из них отвечает за некую локальную сеть (192.168.2.0, 192.168.3.0 и 192.168.4.0), к которым подключаются клиенты. Чтобы не усложнять топологию, эти интерфейсы сети представлены в виде loopback, которые имитируют реальные интерфейсы.

Коммутатор не сконфигурирован, то есть, все маршрутизаторы находятся в одном VLAN и видят друг друга. В данном примере нет никакой необходимость его как-то настраивать. Приведём основные моменты конфигурации маршрутизаторов на начальный момент времени.

ISP

hostname ISP
interface FastEthernet0/0
 description TO-CLIENT
 ip address 10.10.10.1 255.255.255.252
ip route 192.168.0.0 255.255.0.0 FastEthernet0/0 
ip route 10.0.0.0 255.0.0.0 FastEthernet0/0 

R1

hostname R1
interface FastEthernet0/0
 description TO-INTERNAL-NETWORK
 ip address 192.168.0.1 255.255.255.252
interface FastEthernet0/1
 description TO-ISP
 ip address 10.10.10.2 255.255.255.252

R2

hostname R2
interface Loopback0
 description TO-R2-LAN
 ip address 192.168.2.1 255.255.255.0
interface FastEthernet0/0
 description TO-BORDER-ROUTER
 ip address 192.168.0.2 255.255.255.252
interface FastEthernet0/1
 description TO-ROUTER-EXCHANGE-NETWORK
 ip address 192.168.1.2 255.255.255.0

R3

hostname R3
interface Loopback0
 description TO-R3-LAN
 ip address 192.168.3.1 255.255.255.0
interface FastEthernet0/0
 description TO-ROUTER-EXCHANGE-NETWORK
 ip address 192.168.1.3 255.255.255.0

R4

hostname R4
interface Loopback0
 description TO-R4-LAN
 ip address 192.168.4.1 255.255.255.0
interface FastEthernet0/0
 description TO-ROUTER-EXCHANGE-NETWORK
 ip address 192.168.1.4 255.255.255.0
 duplex auto
 speed auto

Базовая настройка OSPF

На каждом маршрутизаторе необходимо создать процесс OSPF командой router ospf номер-процесса, какой именно номер мы укажем – не имеет значения, для простоты будем везде использовать 1, далее надо описать все сети, входящие в процесс маршрутизации с помощью команды network. Когда мы указываем некоторую сеть, это приводит к двум последствиям:

  1. Информация об этой сети начинает передаваться другим маршрутизаторам (при условии, что на маршрутизаторе есть рабочий интерфейс в данной сети)
  2. Через интерфейс, находящийся в этой сети маршрутизатор начинает общаться с соседями.

Таким образом, необходимо указывать на каждом маршрутизаторе все сети, непосредственно подключенные к нему. Исключением является R1 – на нём не надо указывать сеть 10.10.10.0, так как, во-первых, с той стороны находится провайдер, который ничего не знает про наш внутренний OSPF и с ним не надо устанавливать соседских отношений (он просто прописывает статический маршрут в наши сети), с другой стороны к провайдеру итак пойдёт маршрут по умолчанию, поэтому именно про сеть 10.10.10.0 никому из внутренних маршрутизаторов знать не обязательно. Настроим маршрутизацию.

R1

R1(config)#router ospf 1
R1(config-router)#network 192.168.0.0 0.0.0.3 area 0

При добавлении сетей используется wildcard маска, обратная к маске подсети. В данном случае 255.255.255.255-255.255.255.252=0.0.0.3.

R2

R2(config)#router ospf 1
R2(config-router)#network 192.168.0.0 0.0.0.3 area 0
00:37:37: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.0.1 on FastEthernet0/0 from LOADING to FULL, Loading Done
R2(config-router)#network 192.168.1.0 0.0.0.255 area 0

Видно, что как только мы прописали с двух сторон одну и ту же сеть, маршрутизаторы сразу же установили соседские отношения. Так же мы прописали нашу «локальную» сеть 192.168.1.0 – чтобы сообщить маршрутизаторам о ней. Список соседей можно увидеть:

R2#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.0.1       1   FULL/BDR        00:00:36    192.168.0.1     FastEthernet0/0

Пока у R2 только один сосед – R1, так как на R3 и R4 – ещё не включен OSPF и не добавлена сеть 192.168.1.0

R3

R3(config)#router ospf 1
R3(config-router)#network 192.168.1.0 0.0.0.255 area 0
00:43:23: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.2.1 on FastEthernet0/0 from LOADING to FULL, Loading Done
R3(config-router)#network 192.168.3.0 0.0.0.255 area 0

R4

R4(config)#router ospf 1
R4(config-router)#network 192.168.4.0 0.0.0.255 area 0
R4(config-router)#network 192.168.1.0 0.0.0.255 area 0
R4(config-router)#
00:44:43: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.3.1 on FastEthernet0/0 from LOADING to FULL, Loading Done
00:44:43: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.2.1 on FastEthernet0/0 from LOADING to FULL, Loading Done

Диагностика OSPF

Как видно, маршрутизаторы установили друг с другом соседские отношения. Посмотрим снова таблицу соседей на R2:

R2#show ip ospf neighbor 
Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.0.1       1   FULL/BDR        00:00:37    192.168.0.1     FastEthernet0/0
192.168.3.1       1   FULL/BDR        00:00:37    192.168.1.3     FastEthernet0/1
192.168.4.1       1   FULL/DROTHER    00:00:37    192.168.1.4     FastEthernet0/1

Видно, что:

  1. Все соседи выбрали себе Router ID – в данном случае это наибольший из адресов их loopback интерфейсов
  2. Маршрутизатор R3 – стал BDR, R4 – не стал ни DR ни BDR, таким образом, в сети со множественным доступом 192.168.1.0/24, DR-ом стал сам R2.
  3. Все соседские отношения установились, в последнем столбце таблицы видно, через какой именно интерфейс доступны соседи.

Эта команда важна для диагностики OSPF и именно с неё надо начинать диагностику, так как, если маршрутизатор отсутствует в таблице соседей, то это один класс проблем (перепутали ip адреса, не включили нужную сеть командой network, не включили интерфейс командой no shutdown, не совпадают значения Hello-интервалов с двух сторон линка). Если же маршрутизатор есть в таблице соседей, значит, скорее всего, сам OSPF работает нормально и надо проверить таблицу маршрутизации.

R2#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route
Gateway of last resort is not set
     192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/1
C    192.168.2.0/24 is directly connected, Loopback0
     192.168.3.0/32 is subnetted, 1 subnets
O       192.168.3.1 [110/2] via 192.168.1.3, 00:07:48, FastEthernet0/1
     192.168.4.0/32 is subnetted, 1 subnets
O       192.168.4.1 [110/2] via 192.168.1.4, 00:06:36, FastEthernet0/1

Как мы видим, все маршруты появились в таблицу с буквой «O», что означает работоспособность OSPF нам не хватает только маршрута по умолчанию, но об этом позже. Ещё одна полезная команда позволяет нам посмотреть содержимое LSDB – то есть, кто где с кем связан. По сути, это и есть полная карта сети:

R2#show ip ospf database 
            OSPF Router with ID (192.168.2.1) (Process ID 1)
                Router Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.0.1     192.168.0.1     895         0x80000005 0x00f2b3 1
192.168.2.1     192.168.2.1     554         0x80000004 0x007c3d 2
192.168.3.1     192.168.3.1     540         0x80000003 0x0051ce 2
192.168.4.1     192.168.4.1     468         0x80000003 0x006bb0 2
                Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.0.2     192.168.2.1     901         0x80000001 0x00f340
192.168.1.2     192.168.2.1     468         0x80000003 0x00a384

Passive-interface

Появляется одна неочевидная проблема с безопасностью. Когда мы включаем некоторую сеть в процесс ospf, мы не только рассказываем про неё всем маршрутизаторам, но и начинаем слать в неё hello пакеты. Для клиентских сетей (в нашем примере – loopback) этого делать не нужно, так как там не должно быть маршрутизаторов. В то же время, если мы исключим такую сеть – то про неё никто не узнает и трафик в неё доставляться не будет. Решение – включать такую сеть, но прописывать команду passive-interface, которая запрещает слать на некоторые интерфейсы апдейты. Подробнее с ней можно ознакомиться в отдельной статье.

R2(config-router)#passive-interface loopback 0
R3(config-router)#passive-interface loopback 0
R4(config-router)#passive-interface loopback 0

Передача статического маршрута по умолчанию средствами OSPF

Последняя задача, которую необходимо решить – сообщить всем внутренним маршрутизаторам о том, что у нас есть маршрут по умолчанию, смотрящий на провайдера. Задача эта решается достаточно просто на R1:

R1(config)#ip route 0.0.0.0 0.0.0.0 10.10.10.1
R1(config)#router ospf 1
R1(config-router)#default-information originate

Первая строчка добавляет статический маршрут по умолчанию в направлении ISP, но этот маршрут пока локальный, то есть он известен только на R1. Команда default-information originate заставляет OSPF передавать этот маршрут остальным маршрутизаторам.

R1#sh ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route
Gateway of last resort is 10.10.10.1 to network 0.0.0.0
     10.0.0.0/30 is subnetted, 1 subnets
C       10.10.10.0 is directly connected, FastEthernet0/1
     192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, FastEthernet0/0
O    192.168.1.0/24 [110/2] via 192.168.0.2, 00:53:25, FastEthernet0/0
     192.168.3.0/32 is subnetted, 1 subnets
O       192.168.3.1 [110/3] via 192.168.0.2, 00:53:15, FastEthernet0/0
     192.168.4.0/32 is subnetted, 1 subnets
O       192.168.4.1 [110/3] via 192.168.0.2, 00:51:54, FastEthernet0/0
S*   0.0.0.0/0 [1/0] via 10.10.10.1

Как видно, на R1 маршрут статический (с буквой «S»). Если посмотреть таблицу маршрутизации на R4, то она выглядит следующим образом:

R4#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route
Gateway of last resort is 192.168.1.2 to network 0.0.0.0
     192.168.0.0/30 is subnetted, 1 subnets
O       192.168.0.0 [110/2] via 192.168.1.2, 00:53:21, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
     192.168.3.0/32 is subnetted, 1 subnets
O       192.168.3.1 [110/2] via 192.168.1.3, 00:53:21, FastEthernet0/0
C    192.168.4.0/24 is directly connected, Loopback0
O*E2 0.0.0.0/0 [110/1] via 192.168.1.2, 00:05:49, FastEthernet0/0

В последней строчке «O» означает, что маршрут получат с помощью OSPF, «*» – что он является маршрутом по умолчанию, а «E2» – что маршрут является внешним по отношению к OSPF, то есть изначально он получен не от OSPF (в данном случае был статическим), а OSPF используется только для передачи этого маршрута. Конфигурация из данной статьи доступна в формате Packet Tracer

Добавить комментарий