LINUX.ORG.RU
ФорумAdmin

OSPF между Mikrotik и Debian

 , , ,


0

1

Впервые делаю связку OSPF между микротом и debian’ом и не совсем получается.

Дано:
Внешние IP:
Микрот - 1.1.1.1
Debian - 2.2.2.2

Туннель:
Микрот - 10.0.0.1/30
Debian - 10.0.0.2/30

Что было сделано: На микроте:

/interface ipip add !keepalive remote-address=2.2.2.2 local-address=1.1.1.1
/ip address add address=10.0.0.1/30 interface=ipip-tunnel1

На Debian:

cat /etc/systemd/network/ipip-home.netdev

[NetDev]
Name=ipip-home
Kind=ipip

[Tunnel]
Remote=1.1.1.1
Local=2.2.2.2
cat /etc/systemd/network/ipip-home.network

[Match]
Name=ipip-home

[Network]
Address=10.0.0.1/30
cat /etc/systemd/network/isp.network

[Match]
Name=enp10s0

[Network]
Description=RosTelekom network
Address=Внешний
Gateway=Шлюз
DNS=ДНС’ы
LinkLocalAddressing=no
IPv6AcceptRA = no
Tunnel=ipip-home

Смотрим что получилось
На микротике

/interface/ipip/ print 
0 R ipip-tunnel1  auto        1480  1.1.1.1  2.2.2.2    inherit

На Debian

ip a
ipip-home@enp10s0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ipip 2.2.2.2 peer 1.1.1.1
    inet 10.0.0.1/30 brd 10.0.0.3 scope global ipip-home
       valid_lft forever preferred_lft forever

Добавил на микроте OSPF:

/routing ospf instance add name=instance1 router-id=10.0.0.2
/routing ospf area add instance=instance1 name=backbone
/routing ospf interface-template add area=backbone networks=10.0.0.0/30 type=ptp
/routing ospf interface-template add area=backbone networks=172.16.96.0/29 passive

Добавил на Debian OSPF:

vim /etc/frr/daemons

ospfd=yes
Esc + Z + Z

systemctl restart frr

vtysh
confugure terminal
(conf)$ ip forwarding
(conf)$ router ospf
(conf-router)$ network 172.16.3.0/27 area 0
(conf-router)$ network 10.0.0.0/30 area 0
(conf-router)$ neighbor 10.0.0.2
(conf-router)$ exit
(conf)$ interface ipip-home
(conf-if)$ ip ospf network broadcast
(conf-if)$ end
$ wr
$ exit

systemctl restart frr

Хэллоуйки посылает, но почему-то соседства не находит

tcpdump -i ipip-home

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ipip-home, link-type RAW (Raw IP), snapshot length 262144 bytes
07:11:49.693556 IP 10.0.0.1 > ospf-all.mcast.net: OSPFv2, Hello, length 48
07:11:52.708093 IP T2.primorye.net.ru > ospf-all.mcast.net: OSPFv2, Hello, length 44
07:11:59.694006 IP 10.0.0.1 > ospf-all.mcast.net: OSPFv2, Hello, length 48
07:12:02.704408 IP T2.primorye.net.ru > ospf-all.mcast.net: OSPFv2, Hello, length 44
07:12:09.694024 IP 10.0.0.1 > ospf-all.mcast.net: OSPFv2, Hello, length 48
07:12:10.019988 IP T2.primorye.net.ru.5678 > 255.255.255.255.5678: UDP, length 124
07:12:12.707207 IP T2.primorye.net.ru > ospf-all.mcast.net: OSPFv2, Hello, length 44
07:12:19.694168 IP 10.0.0.1 > ospf-all.mcast.net: OSPFv2, Hello, length 48
07:12:22.704249 IP T2.primorye.net.ru > ospf-all.mcast.net: OSPFv2, Hello, length 44

Может гуру модели OSI подскажут где я что не доглядел…?!?

★★

Последнее исправление: Shprot (всего исправлений: 2)
Ответ на: комментарий от l0stparadise

Тьфу ты йоп-мать…! (ударил себя ладошкой по лбу) Ну точно же…! =)

show ip ospf neighbor

Neighbor ID     Pri State           Up Time         Dead Time Address         Interface                        RXmtL RqstL DBsmL
10.0.0.2        128 Init/-          2m20s             33.792s 10.0.0.2        ipip-home:10.0.0.1             0     0     0
show ip ospf route
============ OSPF network routing table ============
N    10.0.0.0/24           [10] area: 0.0.0.0
                           directly attached to ipip-home
N    172.16.3.0/27         [100] area: 0.0.0.0
                           directly attached to vlan30

Со стороны Debian сосед появился и то, что я анонсировал тоже, а вот со стороны микрота нет ничего. Скорее всего я в микроте что-то не так сделал, сейчас затраблшутим.

Спасибо тебе огромное добрый, сетевой человек…=) Указал на косяк…

Shprot ★★
() автор топика
Ответ на: комментарий от Turbid

Я видимо снова споткнулся на какой-то банальности

/routing/ospf/lsa/ print
Flags: S - self-originated, F - flushing, W - wraparound; D - dynamic 
 0 SD instance=ospf-instance-1 area=ospf-area-1 type="router" originator=10.0.0.2 
      id=10.0.0.2 sequence=0x80000001 age=42 checksum=0x6FF1 body=options=E
/routing/ospf/instance/ print
Flags: X - disabled, I - inactive 
 0   name="ospf-instance-1" version=2 vrf=main router-id=10.0.0.2
/routing/ospf/interface-template print
Flags: X - disabled, I - inactive 
 0   area=ospf-area-1 instance-id=0 networks=10.0.0.0/30 type=ptp retransmit-interval=5s transmit-delay=1s hello-interval=10s 
     dead-interval=40s priority=128 cost=1 

В neighbor микрота пусто…=(

Со стороны Debian сосед есть

show ip ospf neighbor 

Neighbor ID     Pri State           Up Time         Dead Time Address         Interface                        RXmtL RqstL DBsmL
10.0.0.2        128 Init/-          8.535s            31.464s 10.0.0.2        ipip-home:10.0.0.1             0     0     0

WTF…?!?

Shprot ★★
() автор топика
Последнее исправление: Shprot (всего исправлений: 2)

Может кто незамыленным глазом увидит что не так?

-> тут <- hello всем от микрота
-> тут <- hello всем от debian

Меня смущает что адрес источника hello дебиана не туннельный. Такая сеть есть, но я её даже не анонисровал

Shprot ★★
() автор топика

Есть у меня дежавю какое-то на эту тему, что на стороне с Linux надо TTL поправить. Но это было с GRE и Quagga с одной стороны и с Циской с другой. Уходило с TTL=1, а из-за тонеля снималась лишняя единичка. Может с ipip так же. Буковку «v» к параметрам tcpdump добавь, глянь ttl. И надо на стороне Микротика как-то глянуть, как долетает.

AS ★★★★★
()
Ответ на: комментарий от AS
tcpdump: listening on ipip-home, link-type LINUX_SLL (Linux cooked v1), snapshot length 262144 bytes
08:13:40.847463 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 153)
    T2.primorye.net.ru.5678 > 255.255.255.255.5678: UDP, length 125
08:13:42.094290 IP (tos 0xc0, ttl 1, id 21048, offset 0, flags [none], proto OSPF (89), length 68)
    10.0.0.1 > ospf-all.mcast.net: OSPFv2, Hello, length 48
	Router-ID 10.0.0.1, Backbone Area, Authentication Type: none (0)
	Options [External]
	  Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.252, Priority 1
	  Neighbor List:
	    T2.primorye.net.ru
08:13:43.726103 IP (tos 0x0, ttl 1, id 56167, offset 0, flags [DF], proto OSPF (89), length 64)
    T2.primorye.net.ru > ospf-all.mcast.net: OSPFv2, Hello, length 44
	Router-ID T2.primorye.net.ru, Backbone Area, Authentication Type: none (0)
	Options [External]
	  Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.252, Priority 128

Меня смущает что со сотороны микрота Router-ID по доменному имени пытается идентифицироваться

Shprot ★★
() автор топика
Ответ на: комментарий от Shprot

08:13:42.094290 IP (tos 0xc0, ttl 1

Вот да, улетает с TTL=1. Вопрос - как прилетает. Ну или просто попробуй 2 сделать, или больше. Хотя оттуда с 1 прилетает, по идее так же должно быть.

Router-ID по доменному имени пытается идентифицироваться

T2.primorye.net.ru ? Это tcpdump. «n» ещё добавь.

AS ★★★★★
()
Ответ на: комментарий от l0stparadise

Честно говоря, вот из-за такой ерунды я в схожей связке mikrotik+frr забил на ospf и настроил все через bgp. Да, я объективно ниасилятор, но bgp с полпинка завелся.

OSPF Микротика так-то тоже с полпинка заводится, что с Quagga, что с Bird, что с коммутаторами Eltex 34xx. Я потому проблемы и подозреваю из-за тонеля.

AS ★★★★★
()
Ответ на: комментарий от AS

Я потому проблемы и подозреваю из-за тонеля

Связку ipip (даже gre попробвал) микрот+debian я впервые делал и смутило, что на стороне микротика значение кипалив либо убирают, либо ставят очень большое. С дефолтным, которое стоит (00:00:10/10) туннель не поднимается. Может в этом дело? Может что-то надо на стороне дебиана подкрутить?

Shprot ★★
() автор топика
Последнее исправление: Shprot (всего исправлений: 1)
Ответ на: комментарий от AS

Вот да, улетает с TTL=1.

Ещё раз wireshark’ом посмотрел что происходит. С микрота в дебиан летит хэллоука с ttl247, а вот с дебиана в микрот даже подсвечивает и говорит что ттл онли 1.

Подскажи, а как в systemd-networkd (не в самом ядре) указать TTL…?

Shprot ★★
() автор топика
Ответ на: комментарий от Shprot

Подскажи, а как в systemd-networkd (не в самом ядре) указать TTL…?

Вот тут я пас. ненужнод есть ненужнод. :-)
Но как я TTL для Квагги менял на GRE тоннеле тоже пока вспомнить не могу. Но как-то менял. Может быть, кстати, через iptables.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 3)
Ответ на: комментарий от Shprot

а вот с дебиана в микрот даже подсвечивает и говорит что ттл онли 1.

И, кстати, если окажется, что дело в этом, можно на FRR баг повесить, что TTL надо, иногда, делать 2. А лучше иметь возможность задать не только для BGP нейбора.

AS ★★★★★
()
Ответ на: комментарий от anonymous

Или ошибся когда сюда постил или когда настраивал.

Я в сотый раз уже перенастраиваю. Это уже gre и копи/пастом просто вставил сеть из очередного мануала. С обоих концов всё правильно, но слёзы уже наворачиваются от того, что не работает. Я, соответствуя своему зодиаку (овен), хочу добиться результата! =)

Shprot ★★
() автор топика
Ответ на: комментарий от Shprot

Стараюсь не СКУФ’иться и придерживаться молодёжного. На этой реализации у меня nftables

Ну молодёжное точно не справится, надо же не всем подряд пакетам TTL увеличивать, а только OSPF. Значит надо что-то с условием. А nftables тоже умеет наверное.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

Интересный момент. Маршрутизаторы подключаются друг к другу как точка-точка. Не смотря на это хеллоуки отправляются на мультикаст оспф’а - 224.0.0.5
Пинги с дебиана на 224.0.0.5 уходят, а с микрота - таймаут.

Shprot ★★
() автор топика
Ответ на: комментарий от Shprot

Маршрутизаторы подключаются друг к другу как точка-точка. Не смотря на это хеллоуки отправляются на мультикаст оспф’а - 224.0.0.5

Так а зачем ip ospf network broadcast? Но я не знаю кстати, ipip он ptp, или broadcast.

AS ★★★★★
()
Ответ на: комментарий от l0stparadise

Вот из-за такой ерунды я в схожей связке mikrotik+frr забил на ospf и настроил все через bgp

После недельных попыток, а также траблшутинга и приминения разных приёмов я сдался и настроил openvpn. Это конечно совсем нединамическая маршрутизация, но добавлять раздачу маршрутов на сервере мне подходит.

Shprot ★★
() автор топика
Ответ на: комментарий от Shprot

После недельных попыток, а также траблшутинга и приминения разных приёмов я сдался и настроил openvpn. Это конечно совсем нединамическая маршрутизация, но добавлять раздачу маршрутов на сервере мне подходит.

Копаем ломом? Как это знакомо )

anonymous
()