Настройка OSPF для одной зоны на маршрутизаторах Cisco
В данной статье описывается процесс настройки протокола динамической маршрутизации OSPF на маршрутизаторах Cisco. Перед прочтением статьи рекомендуется ознакомиться с общими принципами работы OSPF и основными понятиями. Кроме того, существует отдельная статья по настройке OSPF для работы с несколькими зонами.
Описание топологии и задач
Для демонстрации работы OSPF будем использовать следующий стенд. Подразумевается, что в начале, у нас подняты все необходимые интерфейсы и на них настроены ip адреса, у провайдера настроены статические маршруты в нашу сеть, соседние маршрутизаторы могут пинговать друг друга. Требуется настроить 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. Когда мы указываем некоторую сеть, это приводит к двум последствиям:
- Информация об этой сети начинает передаваться другим маршрутизаторам (при условии, что на маршрутизаторе есть рабочий интерфейс в данной сети)
- Через интерфейс, находящийся в этой сети маршрутизатор начинает общаться с соседями.
Таким образом, необходимо указывать на каждом маршрутизаторе все сети, непосредственно подключенные к нему. Исключением является 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
Видно, что:
- Все соседи выбрали себе Router ID – в данном случае это наибольший из адресов их loopback интерфейсов
- Маршрутизатор R3 – стал BDR, R4 – не стал ни DR ни BDR, таким образом, в сети со множественным доступом 192.168.1.0/24, DR-ом стал сам R2.
- Все соседские отношения установились, в последнем столбце таблицы видно, через какой именно интерфейс доступны соседи.
Эта команда важна для диагностики 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
Комментарии
Дмитрий (не проверено)
вт, 12/19/2017 - 13:13
Постоянная ссылка (Permalink)
РЕБЯТА, ЭТО ВСЕ ХУЙНЯ, ИДИТЕ НА ЗАВОДЫ
bacek
вт, 12/19/2017 - 22:52
Постоянная ссылка (Permalink)
kuksik (не проверено)
вт, 01/16/2018 - 12:56
Постоянная ссылка (Permalink)
Тут стоить добавить, что работа современного завода без всей этой "х*йни" невозможна.
bacek
чт, 01/18/2018 - 10:17
Постоянная ссылка (Permalink)
:))))))))))) +1
ak503 (не проверено)
ср, 01/31/2018 - 19:12
Постоянная ссылка (Permalink)
Если бы все ушли на завод, ты бы не смог ни прочитать статью, ни написать комментарий. Потому что вместо твоего провайдера был бы завод
Lexa (не проверено)
чт, 09/20/2018 - 06:42
Постоянная ссылка (Permalink)
Красава, прям щас пойду
stanley (не проверено)
пн, 06/18/2018 - 09:11
Постоянная ссылка (Permalink)
Забавно, как красноглазики повелись на столь толстый тролинг. :)
Кстати, господа теоретики, заводы прекрасно работали и работают без цисок и прочих роутингов.
bacek
пн, 06/18/2018 - 10:26
Постоянная ссылка (Permalink)
Otherjkot (не проверено)
вт, 07/17/2018 - 16:06
Постоянная ссылка (Permalink)
Подскажите если я с каждого роутера могу пинговать ISP,то схема работает?Я правильно понимаю?
bacek
пн, 07/30/2018 - 11:15
Постоянная ссылка (Permalink)
Гость (не проверено)
вт, 12/11/2018 - 15:52
Постоянная ссылка (Permalink)
То есть на пассивные интерфейсы пинг тоже должен проходить?
bacek
пт, 12/14/2018 - 16:24
Постоянная ссылка (Permalink)
Игорь (не проверено)
вт, 10/06/2020 - 14:13
Постоянная ссылка (Permalink)
Как выбираются сети, информация о которых отправляется соседям?
Pr0g (не проверено)
сб, 11/06/2021 - 08:46
Постоянная ссылка (Permalink)
Спасибо за статью
Если на ISP будут интернет, то будет он доступен на роутерах R2, R3 и т.д.?
Добавить комментарий