Настройка 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

Комментарии

РЕБЯТА, ЭТО ВСЕ ХУЙНЯ, ИДИТЕ НА ЗАВОДЫ

Аватар пользователя bacek
Думал потереть комментарий из-за мата, но хочется ответить по сути. Все работы хороши. На заводе можно работать на разных уровнях иерархии, как и в сетях. Условно говоря, хороший токарь - это CCNA-CCNP, зарплата плюс-минус такая же (вначале больше, ближе к CCNP - меньше). Хороший инженер - CCIE. Везде можно самореализовываться. Главное чтобы работа нравилась и здоровье беречь.

Тут стоить добавить, что работа современного завода без всей этой "х*йни" невозможна.

Аватар пользователя bacek

:)))))))))))  +1

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

Красава, прям щас пойду

Забавно, как красноглазики повелись на столь толстый тролинг. :)
Кстати, господа теоретики, заводы прекрасно работали и работают без цисок и прочих роутингов.

Аватар пользователя bacek
Если вовремя подбрасывать угля лопатой - можно горы свернуть.

Подскажите если я с каждого роутера могу пинговать ISP,то схема работает?Я правильно понимаю?

Аватар пользователя bacek
Скорее всего. Самый лучший способ проверить - на каждом роутере в sh ip route должны быть сети в чистом, или суммированном виде. Благодаря чему вы должны с каждого роутера пинговать любой интерфейс любого другого роутера.

То есть на пассивные интерфейсы пинг тоже должен проходить?

Аватар пользователя bacek
Да, с пингами эта штука никак не связана.

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