Соседство кольца, или настройка OSPF с саммаризацией без деления на area

Соседство кольца,

или настройка OSPF с саммаризацией без деления на area

Часть 1. Присказка

Итак, представим, что мы работаем в небольшой компании с одним офисом, назовем ее UselessSoft Inc. В нашем распоряжении один роутер Cisco и парочка управляемых свичей. Так как начальство компании выбрало нас из сотен претендентов за выдающиеся способности в области построения компьютерных сетей из одного роутера и двух свичей, то сразу же, с первого дня, раздобыв себе кофе, мы разработали гениальный план адресации. Взяли соответствующий потребностям нашей компании диапазон приватных адресов – конечно же это 10.0.0.0/8, и, учтя планы руководства по расширению предприятия, выделили минимально необходимое адресное пространство для центрального офиса: 10.0.0.0/22.

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

  • 10.0.0.0/24 – подсеть компов нормальных сотрудников;
  • 10.0.1.0/24 – сеть отдела тестирования (опасные ребята!);
  • 10.0.2.0/24 – сеть IP-телефонии;;
  • 10.0.3.0/24 – сеть управления, тут будут интерфейсы управления свичей и тому подобное.

Т.к. мне лень рисовать Для простоты изложения материалов мы не будем рассматривать сейчас тонкости настройки транков и VLANов, а изобразим каждую подсеть в виде loopback-интерфейса на роутере. В реальности это будет либо отдельный интерфейс роутера, либо сабинтерфейс на транке.

Таким образом имеем схему нашей корпоративной сети:

Конфиг нашего роутера выглядит примерно так (помним, что loopback от лени только для примера):

interface Loopback0
ip address 10.0.0.1 255.255.255.0
!
interface Loopback1
ip address 10.0.1.1 255.255.255.0
!
interface Loopback2
ip address 10.0.2.1 255.255.255.0
!
interface Loopback3
ip address 10.0.3.1 255.255.255.0
!

Остальное, естественно, у нас по-умолчанию, не будем же мы настраивать то, что и так работает ;).

И вот, после месяца напряженного труда, мы наконец настроили нашу сеть. Теперь, налив очередную чашечку кофе, мышка поползла к ярлыку любимой игры курса CCNP. Но тут заходит шеф и взволнованно рассказывет, что компания UselessSoft Inc. получила новый заказ – на разработку абсолютно революционной программы UselessSoft Wordpad Unlimited, и для более продуктивной работы на собрании директора и директора было принято решение открыть новый филиал – в городе B. Чтож, клавиатуру конечно пришлось мыть от пролитого кофе, т.к. этот город находится достаточно далеко, и в нем есть только один провайдер УкурСетиСело. Тем не менее, проведя сложные переговоры, удалось заключить договор – и теперь между двумя филиалами есть выделенный канал через сеть вышеуказанного провайдера. Для нового филиала было закуплено такое же оборудование, как для головного офиса. В плане адресации было решено не отклоняться от намеченной политики, соответственно она выглядит следующим образом:

  • 10.0.4.0/24 – подсеть компов нормальных сотрудников;
  • 10.0.5.0/24 – сеть отдела тестирования;
  • 10.0.6.0/24 – сеть IP-телефонии;;
  • 10.0.7.0/24 – сеть управления.

Конфиг локальных интерфейсов:

interface Loopback0
ip address 10.0.4.1 255.255.255.0
!
interface Loopback1
ip address 10.0.5.1 255.255.255.0
!
interface Loopback2
ip address 10.0.6.1 255.255.255.0
!
interface Loopback3
ip address 10.0.7.1 255.255.255.0

Сеть между филиалами было решено выбрать 10.0.254.0/30, конфиг центрального роутера поменялся таким образом:

interface FastEthernet0/1
 ip address 10.0.254.1 255.255.255.252
 duplex auto
 speed auto

А на роутере в новом филиале настраиваем интерфейс так:

interface FastEthernet0/1
 ip address 10.0.254.2 255.255.255.252
 duplex auto
 speed auto

После попытки пинга с рабочей станции в центральном офисе на сервер в центре становится понятно, что чего-то не хватает. Но собрав весь свой профессионализм, делаем следующую команду на центральном роутере:

ip route 10.0.4.0 255.255.252.0 10.0.254.2

А на роутере в филиале такую:

ip route 10.0.0.0 255.255.252.0 10.0.254.1

Проверяем таблицу маршрутизации:

A#sh ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

     10.0.0.0/8 is variably subnetted, 6 subnets, 3 masks
C       10.0.2.0/24 is directly connected, Loopback2
C       10.0.3.0/24 is directly connected, Loopback3
C       10.0.0.0/24 is directly connected, Loopback0
C       10.0.1.0/24 is directly connected, Loopback1
S       10.0.4.0/22 [1/0] via 10.0.254.2
C       10.0.254.0/30 is directly connected, FastEthernet0/1
B#sh ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

     10.0.0.0/8 is variably subnetted, 6 subnets, 3 masks
S       10.0.0.0/22 [1/0] via 10.0.254.1
C       10.0.6.0/24 is directly connected, Loopback2
C       10.0.7.0/24 is directly connected, Loopback3
C       10.0.4.0/24 is directly connected, Loopback0
C       10.0.5.0/24 is directly connected, Loopback1
C       10.0.254.0/30 is directly connected, FastEthernet0/1

Проверяем пинг – замечательно! Чтож, с чувством выполненного садимся за комп и хотим расслабиться. Вот он, ярлык любимой игры курса CCNP. Но тут входит шеф…

В общем, третий филиал в селе V выглядит точно так же, как и в B, включается в Fa0/0 роутера, т.к. провайдер не смог предоставить подключение напрямую в A, потому что у него там кончились VLANы. Настраиваем его:

interface Loopback0
 ip address 10.0.8.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.9.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.10.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.11.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.5 255.255.255.252
 duplex auto
 speed auto
!
ip route 10.0.0.0 255.255.248.0 10.0.254.6

Потом B:

interface Loopback0
 ip address 10.0.4.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.5.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.6.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.7.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.6 255.255.255.252
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.2 255.255.255.252
 duplex auto
 speed auto
!
ip route 10.0.0.0 255.255.252.0 10.0.254.1
ip route 10.0.8.0 255.255.252.0 10.0.254.5

A:

ip route 10.0.8.0 255.255.252.0 10.0.254.2

Пробуем ринг. Думаем. Еще думаем. Потом «Ааа…». Добавляем в A:

ip route 10.0.254.4 255.255.255.252 10.0.254.2

В V:

ip route 10.0.254.0 255.255.255.252 10.0.254.6

Теперь все работает, но остается чувство, что чего-то не хватает. Забиваем.

Но не на долго. Т.к. новости от шефа таковы: в городе D есть компания Word&Excel Programming Limited, и UselessSoft Inc. решила ее купить. Ну а дружественный шефу провайдер предложил выделенные линии из D в A и, для надежности, в V.

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

При ближайшем рассмотрении сети Word&Excel Programming Limited выяснилось, что она очень похожа на сеть остальных офисов UselessSoft Inc. за одним исключением – использовался роутер Cisco с ограниченным IOS. Пока это показалось неважно. Конфиг этого роутера выглядит так:

interface Loopback0
 ip address 10.0.12.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.13.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.14.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.15.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.10 255.255.255.252
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.13 255.255.255.252
 duplex auto
 speed auto

Однако при попытке реализовать маршрутизацию статическими маршрутами мозг стал вытекать через уши. Поэтому было принято решение использовать протокол маршрутизации. Какой? Конечно EIGRP! Но оказалось, что роутер в новокупленном филиале его не поддерживает! RIP в расчет не берем, 2012 год ведь! Значит OSPF.

Cказано – сделано. А далее конфиги и таблица маршрутизации всех роутеров полностью, с включенным OSPF.

A#sh run
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname A
!
boot-start-marker
boot-end-marker
!
no aaa new-model
memory-size iomem 5
ip cef
!
no ip domain lookup
!
interface Loopback0
 ip address 10.0.0.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.1.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.2.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.3.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.9 255.255.255.252
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.1 255.255.255.252
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 1
!
no ip http server
no ip http secure-server
!
control-plane
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
line vty 0 4
!
End
A#sh ip route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 20 subnets, 3 masks
O       10.0.11.1/32 [110/21] via 10.0.254.10, 00:00:11, FastEthernet0/0
                     [110/21] via 10.0.254.2, 00:00:11, FastEthernet0/1
O       10.0.10.1/32 [110/21] via 10.0.254.10, 00:00:11, FastEthernet0/0
                     [110/21] via 10.0.254.2, 00:00:11, FastEthernet0/1
O       10.0.9.1/32 [110/21] via 10.0.254.10, 00:00:11, FastEthernet0/0
                    [110/21] via 10.0.254.2, 00:00:11, FastEthernet0/1
O       10.0.8.1/32 [110/21] via 10.0.254.10, 00:00:12, FastEthernet0/0
                    [110/21] via 10.0.254.2, 00:00:12, FastEthernet0/1
O       10.0.15.1/32 [110/11] via 10.0.254.10, 00:00:12, FastEthernet0/0
O       10.0.14.1/32 [110/11] via 10.0.254.10, 00:00:12, FastEthernet0/0
O       10.0.13.1/32 [110/11] via 10.0.254.10, 00:00:12, FastEthernet0/0
O       10.0.12.1/32 [110/11] via 10.0.254.10, 00:00:12, FastEthernet0/0
C       10.0.2.0/24 is directly connected, Loopback2
C       10.0.3.0/24 is directly connected, Loopback3
C       10.0.0.0/24 is directly connected, Loopback0
C       10.0.1.0/24 is directly connected, Loopback1
O       10.0.7.1/32 [110/11] via 10.0.254.2, 00:00:16, FastEthernet0/1
O       10.0.6.1/32 [110/11] via 10.0.254.2, 00:00:16, FastEthernet0/1
O       10.0.5.1/32 [110/11] via 10.0.254.2, 00:00:16, FastEthernet0/1
O       10.0.4.1/32 [110/11] via 10.0.254.2, 00:00:16, FastEthernet0/1
O       10.0.254.4/30 [110/20] via 10.0.254.2, 00:00:16, FastEthernet0/1
C       10.0.254.0/30 is directly connected, FastEthernet0/1
O       10.0.254.12/30 [110/20] via 10.0.254.10, 00:00:16, FastEthernet0/0
C       10.0.254.8/30 is directly connected, FastEthernet0/0
B#sh run
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname B
!
boot-start-marker
boot-end-marker
!
no aaa new-model
memory-size iomem 5
ip cef
!
no ip domain lookup
!
interface Loopback0
 ip address 10.0.4.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.5.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.6.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.7.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.6 255.255.255.252
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.2 255.255.255.252
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 1
!
no ip http server
no ip http secure-server
!
control-plane
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
line vty 0 4
!
End
B#sh ip route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 20 subnets, 3 masks
O       10.0.11.1/32 [110/11] via 10.0.254.5, 00:02:24, FastEthernet0/0
O       10.0.10.1/32 [110/11] via 10.0.254.5, 00:02:24, FastEthernet0/0
O       10.0.9.1/32 [110/11] via 10.0.254.5, 00:02:24, FastEthernet0/0
O       10.0.8.1/32 [110/11] via 10.0.254.5, 00:02:24, FastEthernet0/0
O       10.0.15.1/32 [110/21] via 10.0.254.5, 00:02:24, FastEthernet0/0
                     [110/21] via 10.0.254.1, 00:02:24, FastEthernet0/1
O       10.0.14.1/32 [110/21] via 10.0.254.5, 00:02:25, FastEthernet0/0
                     [110/21] via 10.0.254.1, 00:02:25, FastEthernet0/1
O       10.0.13.1/32 [110/21] via 10.0.254.5, 00:02:25, FastEthernet0/0
                     [110/21] via 10.0.254.1, 00:02:25, FastEthernet0/1
O       10.0.12.1/32 [110/21] via 10.0.254.5, 00:02:25, FastEthernet0/0
                     [110/21] via 10.0.254.1, 00:02:25, FastEthernet0/1
O       10.0.3.1/32 [110/11] via 10.0.254.1, 00:02:26, FastEthernet0/1
O       10.0.2.1/32 [110/11] via 10.0.254.1, 00:02:26, FastEthernet0/1
O       10.0.1.1/32 [110/11] via 10.0.254.1, 00:02:26, FastEthernet0/1
O       10.0.0.1/32 [110/11] via 10.0.254.1, 00:02:26, FastEthernet0/1
C       10.0.6.0/24 is directly connected, Loopback2
C       10.0.7.0/24 is directly connected, Loopback3
C       10.0.4.0/24 is directly connected, Loopback0
C       10.0.5.0/24 is directly connected, Loopback1
C       10.0.254.4/30 is directly connected, FastEthernet0/0
C       10.0.254.0/30 is directly connected, FastEthernet0/1
O       10.0.254.12/30 [110/20] via 10.0.254.5, 00:02:26, FastEthernet0/0
O       10.0.254.8/30 [110/20] via 10.0.254.1, 00:02:26, FastEthernet0/1
V#sh run
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname V
!
boot-start-marker
boot-end-marker
!
no aaa new-model
memory-size iomem 5
ip cef
!
no ip domain lookup
!
interface Loopback0
 ip address 10.0.8.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.9.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.10.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.11.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.5 255.255.255.252
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.14 255.255.255.252
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 1
!
no ip http server
no ip http secure-server
!
control-plane
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
line vty 0 4
!
End
V#sh ip route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 20 subnets, 3 masks
C       10.0.10.0/24 is directly connected, Loopback2
C       10.0.11.0/24 is directly connected, Loopback3
C       10.0.8.0/24 is directly connected, Loopback0
C       10.0.9.0/24 is directly connected, Loopback1
O       10.0.15.1/32 [110/11] via 10.0.254.13, 00:04:25, FastEthernet0/1
O       10.0.14.1/32 [110/11] via 10.0.254.13, 00:04:25, FastEthernet0/1
O       10.0.13.1/32 [110/11] via 10.0.254.13, 00:04:25, FastEthernet0/1
O       10.0.12.1/32 [110/11] via 10.0.254.13, 00:04:26, FastEthernet0/1
O       10.0.3.1/32 [110/21] via 10.0.254.13, 00:04:26, FastEthernet0/1
                    [110/21] via 10.0.254.6, 00:04:26, FastEthernet0/0
O       10.0.2.1/32 [110/21] via 10.0.254.13, 00:04:26, FastEthernet0/1
                    [110/21] via 10.0.254.6, 00:04:26, FastEthernet0/0
O       10.0.1.1/32 [110/21] via 10.0.254.13, 00:04:27, FastEthernet0/1
                    [110/21] via 10.0.254.6, 00:04:27, FastEthernet0/0
O       10.0.0.1/32 [110/21] via 10.0.254.13, 00:04:27, FastEthernet0/1
                    [110/21] via 10.0.254.6, 00:04:27, FastEthernet0/0
O       10.0.7.1/32 [110/11] via 10.0.254.6, 00:04:27, FastEthernet0/0
O       10.0.6.1/32 [110/11] via 10.0.254.6, 00:04:27, FastEthernet0/0
O       10.0.5.1/32 [110/11] via 10.0.254.6, 00:04:27, FastEthernet0/0
O       10.0.4.1/32 [110/11] via 10.0.254.6, 00:04:27, FastEthernet0/0
C       10.0.254.4/30 is directly connected, FastEthernet0/0
O       10.0.254.0/30 [110/20] via 10.0.254.6, 00:04:27, FastEthernet0/0
C       10.0.254.12/30 is directly connected, FastEthernet0/1
O       10.0.254.8/30 [110/20] via 10.0.254.13, 00:04:27, FastEthernet0/1
D#sh run
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname D
!
boot-start-marker
boot-end-marker
!
no aaa new-model
memory-size iomem 5
ip cef
!
no ip domain lookup
!
interface Loopback0
 ip address 10.0.12.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.13.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.14.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.15.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.10 255.255.255.252
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.13 255.255.255.252
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 1
!
no ip http server
no ip http secure-server
!
control-plane
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
line vty 0 4
!
End
D#sh ip route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 20 subnets, 3 masks
O       10.0.11.1/32 [110/11] via 10.0.254.14, 00:05:27, FastEthernet0/1
O       10.0.10.1/32 [110/11] via 10.0.254.14, 00:05:27, FastEthernet0/1
O       10.0.9.1/32 [110/11] via 10.0.254.14, 00:05:27, FastEthernet0/1
O       10.0.8.1/32 [110/11] via 10.0.254.14, 00:05:27, FastEthernet0/1
C       10.0.14.0/24 is directly connected, Loopback2
C       10.0.15.0/24 is directly connected, Loopback3
C       10.0.12.0/24 is directly connected, Loopback0
C       10.0.13.0/24 is directly connected, Loopback1
O       10.0.3.1/32 [110/11] via 10.0.254.9, 00:05:29, FastEthernet0/0
O       10.0.2.1/32 [110/11] via 10.0.254.9, 00:05:29, FastEthernet0/0
O       10.0.1.1/32 [110/11] via 10.0.254.9, 00:05:29, FastEthernet0/0
O       10.0.0.1/32 [110/11] via 10.0.254.9, 00:05:29, FastEthernet0/0
O       10.0.7.1/32 [110/21] via 10.0.254.14, 00:05:30, FastEthernet0/1
                    [110/21] via 10.0.254.9, 00:05:30, FastEthernet0/0
O       10.0.6.1/32 [110/21] via 10.0.254.14, 00:05:30, FastEthernet0/1
                    [110/21] via 10.0.254.9, 00:05:30, FastEthernet0/0
O       10.0.5.1/32 [110/21] via 10.0.254.14, 00:05:30, FastEthernet0/1
                    [110/21] via 10.0.254.9, 00:05:30, FastEthernet0/0
O       10.0.4.1/32 [110/21] via 10.0.254.14, 00:05:30, FastEthernet0/1
                    [110/21] via 10.0.254.9, 00:05:30, FastEthernet0/0
O       10.0.254.4/30 [110/20] via 10.0.254.14, 00:05:30, FastEthernet0/1
O       10.0.254.0/30 [110/20] via 10.0.254.9, 00:05:30, FastEthernet0/0
C       10.0.254.12/30 is directly connected, FastEthernet0/1
C       10.0.254.8/30 is directly connected, FastEthernet0/0

 Схемка вышла такая:

Все работает, можно запускать.. ну вы поняли 🙂

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

Часть 2. Сказка

 Взглянув на таблицы маршрутизации, становится понятно, что при увеличении количества подсетей, филиалов, эта таблица будет расти. И не то чтобы у роутеров не хватило памяти.. Если у вас не транснациональная корпорация, то это маловероятно. Но читать такую таблицу крайне неудобно. Разве для этого разрабатывается схема адресации, в которой каждому филиалу выделяется определенный неразрывный диапазон, объединяемый общей маской?

 Посмотрим на простейший конфиг, который мы реализовали:

router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 1

Строчка network 10.0.0.0 0.255.255.255 area 1 означает, что на всех интерфейсах, которые попадают в этот диапазон, будет запущен OSPF. Что это значит? А значит это то, что не только эти подсети будут включены в апдейты, отсылаемые другим роутерам, с теми масками, какие настроены на интерфейсах, но роутер будет посылать hello-пакеты в надежде найти там другой роутер. Возникает вопрос – а надо ли нам это? Например, пользователь приносит с собой роутер, и тот начинает раздавать в нашу сеть свои апдейты, что бы там ни было. Нехорошо.
Поэтому правильная настройка OSPF предполагает использование команды:

ip ospf 1 area 1

на уровне интерфейса, и только на тех интерфейсах, которые участвуют в процессе роутинга, т.е. подключенные к другим роутерам в OSPF-домене. Можно, конечно, создавать записи network со специфичными масками, использовать свойство passive-interface, но все эти решения напоминают костыли. Мне больше нравится решение с командой, указанной выше, на интерфейсе, плюс еще один трюк, который рассмотрим ниже.

Причем решает этот трюк сразу 2 проблемы. Во-первых, у нас автоматически отпадает необходимость прописывать passive-interface, а во-вторых, мы заставляем OSPF распространять свои сети не с теми масками, которые настроены на интерфейсах, а с теми, которые нужны нам (т.е. саммаризовать много мелких подсетей, которые держит данный роутер, в один большой маршрут, который и будет передан соседним роутерам).

Отступление: Согласно документации, саммаризовать нужно на границе area. Но тут есть подвох: OSPF требует топологии сети типа «звезда». При использование сети типа «кольцо» и разбиении этого кольца на эрии маршрутизация будет неэффективной. Например, если центр будет в нашем случае в A, и в каждом филиале будет своя эрия, то трафик между D и V будет ходить через центр, т.е. A. Не очень оптимально, не так ли?

Реализуется настройка таким образом (рассмотрим пример роутера A, для остальных все аналогично, меняем только номера подсетей):

  1. Прописываем команду
    ip ospf 1 area 1

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

  2. Создаем access-list, включающий все подсети, которые «держит» данный роутер:
    ip access-list standard OSPF-LOCAL
    permit 10.0.0.0 0.0.3.255

    Включать в этот access-list подсети интерфейсов, на которых прописана команда ip ospf 1 area 1 нет смысла, даже если они из другого диапазона.

  3. Создаем route-map, указывающую на наш access-list:
    route-map OSPF-REDIST permit 10
    match ip address OSPF-LOCAL
  4. В режиме редактирования параметров OSPF (router ospf 1) говорим роутеру инжектировать в данный процесс OSPF локальные подсети (connected), без учета классовых масок (subnets), которые входят в route-map OSPF-REDIST, и присвоить им тип Е1, т.е. наращивать метрику при прохождении по сети. Вся команда выглядит так:
    redistribute connected metric-type 1 subnets route-map OSPF-REDIST
  5. Указываем саммаризованные диапазоны, которые присутствуют только на данном роутере (сетей из этого диапазона не должно быть в других частях сети, за исключением случая, когда подсеть доступна на роутере, к которому путь идет через данный роутер, и только, т.е. это так называемая stub-network, включенная в данный роутер)
    summary-address 10.0.0.0 255.255.252.0

    Таких команд можно давать несколько, по количеству саммаризующих маршрутов.

Финальные конфиги и вывод sh ip route приведены ниже.

A#sh run
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname A
!
boot-start-marker
boot-end-marker
!
no aaa new-model
memory-size iomem 5
ip cef
!
no ip domain lookup
!
interface Loopback0
 ip address 10.0.0.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.1.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.2.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.3.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.9 255.255.255.252
 ip ospf 1 area 1
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.1 255.255.255.252
 ip ospf 1 area 1
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 summary-address 10.0.0.0 255.255.252.0
 redistribute connected metric-type 1 subnets route-map OSPF-REDIST
!
no ip http server
no ip http secure-server
!
ip access-list standard OSPF-LOCAL
 permit 10.0.0.0 0.0.3.255
!
route-map OSPF-REDIST permit 10
 match ip address OSPF-LOCAL
!
control-plane
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
line vty 0 4
!
End
A#sh ip route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 12 subnets, 3 masks
O E1    10.0.8.0/22 [110/40] via 10.0.254.10, 00:01:08, FastEthernet0/0
                    [110/40] via 10.0.254.2, 00:01:08, FastEthernet0/1
O E1    10.0.12.0/22 [110/30] via 10.0.254.10, 00:01:05, FastEthernet0/0
C       10.0.2.0/24 is directly connected, Loopback2
C       10.0.3.0/24 is directly connected, Loopback3
C       10.0.0.0/24 is directly connected, Loopback0
O       10.0.0.0/22 is a summary, 00:09:05, Null0
C       10.0.1.0/24 is directly connected, Loopback1
O E1    10.0.4.0/22 [110/30] via 10.0.254.2, 00:01:09, FastEthernet0/1
O       10.0.254.4/30 [110/20] via 10.0.254.2, 00:01:09, FastEthernet0/1
C       10.0.254.0/30 is directly connected, FastEthernet0/1
O       10.0.254.12/30 [110/20] via 10.0.254.10, 00:01:09, FastEthernet0/0
C       10.0.254.8/30 is directly connected, FastEthernet0/0
B#sh run
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname B
!
boot-start-marker
boot-end-marker
!
no aaa new-model
memory-size iomem 5
ip cef
!
no ip domain lookup
!
interface Loopback0
 ip address 10.0.4.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.5.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.6.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.7.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.6 255.255.255.252
 ip ospf 1 area 1
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.2 255.255.255.252
 ip ospf 1 area 1
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 summary-address 10.0.4.0 255.255.252.0
 redistribute connected metric-type 1 subnets route-map OSPF-REDIST
!
no ip http server
no ip http secure-server
!
ip access-list standard OSPF-LOCAL
 permit 10.0.4.0 0.0.3.255
!
route-map OSPF-REDIST permit 10
 match ip address OSPF-LOCAL
!
control-plane
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
line vty 0 4
!
End
B#sh ip route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 12 subnets, 3 masks
O E1    10.0.8.0/22 [110/30] via 10.0.254.5, 00:01:57, FastEthernet0/0
O E1    10.0.12.0/22 [110/40] via 10.0.254.5, 00:01:55, FastEthernet0/0
                     [110/40] via 10.0.254.1, 00:01:55, FastEthernet0/1
O E1    10.0.0.0/22 [110/30] via 10.0.254.1, 00:01:57, FastEthernet0/1
C       10.0.6.0/24 is directly connected, Loopback2
C       10.0.7.0/24 is directly connected, Loopback3
C       10.0.4.0/24 is directly connected, Loopback0
O       10.0.4.0/22 is a summary, 00:07:41, Null0
C       10.0.5.0/24 is directly connected, Loopback1
C       10.0.254.4/30 is directly connected, FastEthernet0/0
C       10.0.254.0/30 is directly connected, FastEthernet0/1
O       10.0.254.12/30 [110/20] via 10.0.254.5, 00:01:58, FastEthernet0/0
O       10.0.254.8/30 [110/20] via 10.0.254.1, 00:01:59, FastEthernet0/1
V#sh run
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname V
!
boot-start-marker
boot-end-marker
!
no aaa new-model
memory-size iomem 5
ip cef
!
no ip domain lookup
!
interface Loopback0
 ip address 10.0.8.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.9.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.10.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.11.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.5 255.255.255.252
 ip ospf 1 area 1
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.14 255.255.255.252
 ip ospf 1 area 1
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 summary-address 10.0.8.0 255.255.252.0
 redistribute connected metric-type 1 subnets route-map OSPF-REDIST
!
no ip http server
no ip http secure-server
!
ip access-list standard OSPF-LOCAL
 permit 10.0.8.0 0.0.3.255
!
route-map OSPF-REDIST permit 10
 match ip address OSPF-LOCAL
!
control-plane
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
line vty 0 4
!
end
V#sh ip route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 15 subnets, 4 masks
C       10.0.10.0/24 is directly connected, Loopback2
C       10.0.11.0/24 is directly connected, Loopback3
C       10.0.8.0/24 is directly connected, Loopback0
O       10.0.8.0/22 is a summary, 00:00:22, Null0
C       10.0.9.0/24 is directly connected, Loopback1
O       10.0.15.1/32 [110/11] via 10.0.254.13, 00:00:25, FastEthernet0/1
O       10.0.14.1/32 [110/11] via 10.0.254.13, 00:00:25, FastEthernet0/1
O       10.0.13.1/32 [110/11] via 10.0.254.13, 00:00:27, FastEthernet0/1
O       10.0.12.1/32 [110/11] via 10.0.254.13, 00:00:27, FastEthernet0/1
O E1    10.0.0.0/22 [110/40] via 10.0.254.13, 00:00:27, FastEthernet0/1
                    [110/40] via 10.0.254.6, 00:00:27, FastEthernet0/0
O E1    10.0.4.0/22 [110/30] via 10.0.254.6, 00:00:27, FastEthernet0/0
C       10.0.254.4/30 is directly connected, FastEthernet0/0
O       10.0.254.0/30 [110/20] via 10.0.254.6, 00:00:28, FastEthernet0/0
C       10.0.254.12/30 is directly connected, FastEthernet0/1
O       10.0.254.8/30 [110/20] via 10.0.254.13, 00:00:28, FastEthernet0/1
D#sh run
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname D
!
boot-start-marker
boot-end-marker
!
no aaa new-model
memory-size iomem 5
ip cef
!
no ip domain lookup
!
interface Loopback0
 ip address 10.0.12.1 255.255.255.0
!
interface Loopback1
 ip address 10.0.13.1 255.255.255.0
!
interface Loopback2
 ip address 10.0.14.1 255.255.255.0
!
interface Loopback3
 ip address 10.0.15.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.0.254.10 255.255.255.252
 ip ospf 1 area 1
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.254.13 255.255.255.252
 ip ospf 1 area 1
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 summary-address 10.0.12.0 255.255.252.0
 redistribute connected metric-type 1 subnets route-map OSPF-REDIST
!
no ip http server
no ip http secure-server
!
ip access-list standard OSPF-LOCAL
 permit 10.0.12.0 0.0.3.255
!
route-map OSPF-REDIST permit 10
 match ip address OSPF-LOCAL
!
control-plane
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
line vty 0 4
!
end
D#sh ip route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 12 subnets, 3 masks
O E1    10.0.8.0/22 [110/30] via 10.0.254.14, 00:03:34, FastEthernet0/1
C       10.0.14.0/24 is directly connected, Loopback2
C       10.0.15.0/24 is directly connected, Loopback3
C       10.0.12.0/24 is directly connected, Loopback0
O       10.0.12.0/22 is a summary, 00:03:32, Null0
C       10.0.13.0/24 is directly connected, Loopback1
O E1    10.0.0.0/22 [110/30] via 10.0.254.9, 00:03:34, FastEthernet0/0
O E1    10.0.4.0/22 [110/40] via 10.0.254.14, 00:03:35, FastEthernet0/1
                    [110/40] via 10.0.254.9, 00:03:35, FastEthernet0/0
O       10.0.254.4/30 [110/20] via 10.0.254.14, 00:03:35, FastEthernet0/1
O       10.0.254.0/30 [110/20] via 10.0.254.9, 00:03:35, FastEthernet0/0
C       10.0.254.12/30 is directly connected, FastEthernet0/1
C       10.0.254.8/30 is directly connected, FastEthernet0/0

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

P.S. Вопросы и идеи можно высказывать ниже, в комментариях 😉


Комментарии: