OSPF authentication между Juniper и CISCO(на эмуляторе GNS3)

Для работы протокола OSPF иногда бывает нужна аутентификация между нейборами.

Под аутентификацией подразумевается работа установление соединения при указаном верном пароле. Пароль может быть указан как простым текстом( его можно выловить снифером) и в шифрованном, мд5 алгоритмом.

Продемонстрирую это на следующей схеме:

 

Настроим ospf между cisco C7200-ADVENTERPRISEK9-M и junos на нашем любимом эмуляторе gns3.

Настройка банальна: создадим нулевую зону(area) укажем интерфейсы и пропишем пароль.

Cisco: Отключим вывод логов в консоль, настроим интерфейс для связанности и лупбек(для наглядности):

Router1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#no loggin
Router1(config)#no logging con
Router1(config)#no logging console
Router1(config)#interface GigabitEthernet0/0
Router1(config-if)# description "TO Juniper"
Router1(config-if)# ip address 10.0.0.1 255.255.255.252
Router1(config-if)#exit
Router1(config)#int lo0
Router1(config-if)#ip add
Router1(config-if)#ip address 1.1.1.1 255.255.255.255
Router1(config-if)#no shut
Router1(config-if)#exit
Router1(config)#exit

Теперь настроим интерфейсы на джунипере(базовую настройку пропускаю):

admin@Router2> configure

Entering configuration mode

[edit]
admin@Router2#

[edit]
admin@Router2# set interfaces em0 description TO-Cisco

[edit]
admin@Router2# set interfaces em0 unit 0 family inet address 10.0.0.2/30

[edit]
admin@Router2# set interfaces lo0 unit 0 family inet address 2.2.2.2/32

[edit]
admin@Router2# commit and-quit
commit complete
Exiting configuration mode

Проверяем пинг:

admin@Router2> ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1): 56 data bytes
64 bytes from 10.0.0.1: icmp_seq=0 ttl=255 time=33.341 ms
64 bytes from 10.0.0.1: icmp_seq=1 ttl=255 time=13.843 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=255 time=22.677 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=255 time=17.891 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=255 time=14.169 ms
^C
--- 10.0.0.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 13.843/20.384/33.341/7.222 ms

не самый лучший пинг конечно, но эмулятор, что поделаешь)

Раз связь есть — настроим протокол оспф. Пусть пароль будет «juniper».

Cisco:

Router1#
Router1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#r
Router1(config)#router o
Router1(config)#router os
Router1(config)#router ospf 1
Router1(config-router)#ar
Router1(config-router)#area 0 au
Router1(config-router)#area 0 authentication
Router1(config-router)#exit
Router1(config)#in
Router1(config)#interface g
Router1(config)#interface gi
Router1(config)#interface gigabitEthernet 0/0
Router1(config-if)#ip o
Router1(config-if)#ip ospf au
Router1(config-if)#ip ospf authentication-
Router1(config-if)#ip ospf authentication-key 
Router1(config-if)#ip ospf authentication-key juniper
Router1(config-if)#ip os
Router1(config-if)#ip ospf a
Router1(config-if)#ip ospf 1 area 0
Router1(config-if)#end
Router1#wr
Building configuration...
[OK]

Теперь джунипер:

admin@Router2> configure
Entering configuration mode
The configuration has been changed but not committed

[edit]
admin@Router2# edit protocols ospf

[edit protocols ospf]
admin@Router2# set area 0 interface em0 authentication simple-password juniper

[edit protocols ospf]
admin@Router2# commit and-quit
commit complete
Exiting configuration mode

Проверяем:

admin@Router2> show ospf neighbor
Address          Interface              State     ID               Pri  Dead
10.0.0.1         em0.0                  Full      1.1.1.1            1    36

Router1#sh ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2         128   FULL/BDR        00:00:33    10.0.0.2        GigabitEthernet0/0

Все заработало.

Глянем, что показывает снифер.

Для этого щелкнем на порту коммутатора, выберем «Start capturing»:

У меня в настройках, по умолчанию, запускается сниффер, если у вас не так то снова щелкните на порту и выберите «запустить сниффер». Далее появляется вопрос, на каком порту «ловить» траффик, выбираем, жмем «ок»:

Появляется снифер(wireshark), выбираем hello packet и видим наш пароль:

Как видно, перехватить не трудно) Так что зашифруем пароль:

Джунипер:

admin@Router2> configure
Entering configuration mode

[edit]
admin@Router2# edit protocols ospf

[edit protocols ospf]
admin@Router2# show
area 0.0.0.0 {
    interface em0.0 {
        authentication {
            simple-password "$9$iqPQ/CuEclFnclKMN-Hqm"; ## SECRET-DATA
        }
    }
}

[edit protocols ospf]
admin@Router2# set area 0.0.0.0 interface em0.0 authentication md5 1 key juniper

[edit protocols ospf]
admin@Router2# commit and-quit
commit complete
Exiting configuration mode

admin@Router2>

Циско:

Router1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#in
Router1(config)#interface gi
Router1(config)#interface gigabitEthernet 0/0
Router1(config-if)#ip os
Router1(config-if)#ip ospf au
Router1(config-if)#ip ospf authentication m
Router1(config-if)#ip ospf authentication message-digest
Router1(config-if)#ip ospf me
Router1(config-if)#ip ospf message-digest-key 1 md5 juniper
Router1(config-if)#end

Проверяем, поднялся ли ОСПФ:

admin@Router2> show ospf neighbor
Address          Interface              State     ID               Pri  Dead
10.0.0.1         em0.0                  Full      1.1.1.1            1    34

Проверим сниффером, что изменилось:

Теперь наш ключ зашифрован.

На этом все.