SPOJE.NET

Technická dokumentace

Uživatelské nástroje

Nástroje pro tento web


howto:network:routing

Routing a ASN

Zde budeme shromažďovat dulezite poznámky k routingu. Routing realizujeme pomocí démona QUAGGA

Pro nahlížení do aktuální konfigurace dynamického routingu používáme aplikaci MRLG (Multi-Router Looking Glass)

ospfd (ipv4)

ospf filtry

OSPF filtry zabranuji šíření nežádoucích IP rozsahů do zbytku sítě (např. natované a jiné pomocné rozsahy)

router ospf
 redistribute connected metric-type 1 route-map just-cloud
 
...
 
distribute-list net-cloud out connected
 
access-list net-cloud permit 10.11.0.0/16
access-list net-cloud permit 10.34.0.0/16
access-list net-cloud permit 77.87.240.0/21
access-list net-cloud deny any
 
route-map just-cloud permit 10
 match ip address net-cloud

Pokud chceme vsechny connected routy sirit s volitelnou metrikou - napr. pouzivame u anycastu, kde chceme sirit jednu IP adresu z vice routeru:

redistribute connected metric 1000 route-map just-cloud

Nastaveni ospf router ID

Je nutne dodrzet tato pravidla:

  • Pokud ma router nejaky dummy interface, tak jako ospf router-id pouzijeme IP adresu dummy interface
  • Pokud ma router vice linek a nema zaroven zadny dummy interface (napr. klientsky router u zakaznika se dvema linkama) pouzijeme jako ospf router-id IP adresu vnitrniho LAN rozhrani smerem k zakaznikovi
  • NIKDY nepouzivame jako ospf router id IP adresu rozhrani, na ktere je zapnute ospf (typicky propojovavaci rozsahy mezi routery)

Nastaveni ospf filtru na mikrotiku

Dulezite udelat na vsech mikrotikach, ktere maji zapnute ospf

routing filter add chain=ospf-out prefix=10.0.0.0/8 prefix-length=8-32 action=accept
routing filter add chain=ospf-out prefix=77.87.240.0/21 prefix-length=21-32 action=accept
routing filter add chain=ospf-out action=reject

* Mikrotik RouterOS v7

odlisnosti v nastaveni ospf-out filtru od verze 7.x - ukazano na predchozim nastaveni:

routing/filter/rule/ add chain=OSPF-OUT disabled=no rule="if ( dst in 10.0.0.0/8 ) { accept }"
routing/filter/rule/ add chain=OSPF-OUT disabled=no rule="if ( dst in 77.87.240.0/21 ) { accept }"
routing/filter/rule/ add chain=OSPF-OUT disabled=no rule="if ( dst in 0.0.0.0/0 ) { reject }"

POZOR: Pokud chcete v mikrotiku z nejakeho duvodu zadat na pevno routu do 10.0.0.0/8 staticky, je potřeba upravit i ospf filtr, aby se tato staticka routa nesirila dal do site !! - tj. v prvnim pravidle zmenime /8 na nejmensi mozny rozsah napr. pouze brevnov.

routing filter add chain=ospf-out prefix=10.11.0.0/16 prefix-length=16-32 action=accept

Sireni default routy

Na hranicnim BGP routeru

Prikaz pro distribuci musi byt pred definici networku, jinak to nefunguje ..

router ospf
 ospf router-id 77.87.240.1
 redistribute connected route-map just-cloud
 redistribute connected metric-type 1
 redistribute static metric-type 1
 default-information originate always metric-type 1
 passive-interface eth0
 passive-interface eth1
 passive-interface eth2
 passive-interface vlan3300
 network 77.87.240.20/30 area 0
 network 77.87.240.8/30 area 0

Pokud chceme sirit IP adresu routru jako default gateway do zbytku site (typicky na BGP routeru s full route, ktera nema zadanou default routu) pouzijeme prikaz

 default-information originate always metric-type 1

Na jinem typu routeru

Toto predpokladá, že je default routa zadaná na příslušném routeru staticky

 default-information originate metric-type 1

Telnet - VTYSH

Quaggu je doporučeno konfigurovat přímo bez editace konfiguračních souborů (a nutnosti následujícího restartu). Požít se k tomu dá buď připojení přes telnet na příslušný port démona:

Vyžaduje znalost hesla do terminálu (zjistit se dá přečtením z konfiguračního souboru)

127.0.0.1:2601 - zebra
127.0.0.1:2604 - ospfd
127.0.0.1:2605 - bgpd
root@veskrini:~# telnet localhost 2601
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
 
Hello, this is Quagga (version 0.99.15).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
 
 
User Access Verification
 
Password:

Druhá možnost je použít příkaz VTYSH, který sjednocuje všechny konfigurace do jednoho shellu.

Před použitím příkazu VTYSH se ujistěte, že máte v souboru /etc/bash.bashrc přidanou řádku export VTYSH_PAGER=more

Na prikladu si ukazeme, jak pridat statickou routu bez nutnosti restartu quaggy:

1. pres sshcko vlezeme na router, kde chceme routu nastavovat 2. zavolane prikaz rw 3. zavolame prikaz vtysh

root@sysifos:~# vtysh 
 
Hello, this is Quagga (version 0.99.10).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
 
sysifos#
sysifos# configure terminal

Po zadani prikazu configure terminal jsme v konfiguracnim rezimu

sysifos(config)#

chceme pridat do rozsahu subnet napr. 10.11.120.0/24 kterou budeme routovat pres router 10.11.6.236

sysifos(config)# ip route 10.11.120.0/24 10.11.6.236

Po zadani enter se zmena ihned projevi. pro kontrolu muzeme napsat prikaz show running-config

Na konec je potreba jeste zmenu ulozit do konfiguraku, aby se projevila i po restartu serveru.

sysifos(config)# exit
sysifos# write file

terminal pak opustime dalsim napsanim prikazu exit

4. Zavolame prikaz ro

Pokud chceme jiz existujici routu zrusit, zadavame prikaz stejne, jenom pred prikaz pridame slovo no

sysifos(config)# no ip route 10.11.120.0/24 10.11.6.236

Výpis existujících rout

1. Pripojime se na terminal ospf:

root@sysifos:~# vtysh 
 
Hello, this is Quagga (version 0.99.10).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
 
sysifos#

2. Zadame prikaz (pro volani prikazu show neni potreba zalogovani do konfiguracni urovne, tedy staci jen zalogovani pres telnet)

sysifos# show ip ospf database
 
       OSPF Router with ID (10.11.6.234)
 
                Router Link States (Area 0.0.0.0)
 
Link ID         ADV Router      Age  Seq#       CkSum  Link count
10.11.0.1       10.11.0.1        901 0x8000becb 0xc2ce 27
10.11.0.3       10.11.0.3        614 0x800033e9 0xa57c 5
10.11.0.4       10.11.0.4       1285 0x800030ad 0x8e4b 1
 
....
 
                Net Link States (Area 0.0.0.0)
 
Link ID         ADV Router      Age  Seq#       CkSum
10.11.6.234     10.11.6.234     1477 0x8000055a 0x4463
10.11.7.97      10.11.0.15       635 0x800005aa 0xa0cc
10.11.7.193     10.11.0.44       749 0x80000311 0x7f25
10.11.7.241     10.11.0.44       640 0x800003e5 0x87c5
10.11.8.2       10.11.0.5       1278 0x80000547 0x9712
10.11.9.18      10.11.0.22      1426 0x800004d4 0xf3f5
 
....
 
10.34.0.1       10.34.0.1        539 0x800000b5 0x2709 E1 10.34.0.1/32 [[0x0]]
10.34.0.2       10.34.0.2       1127 0x80006f06 0x2846 E1 10.34.0.2/32 [[0x0]]
10.34.0.6       10.34.0.2       1127 0x800055f3 0x7224 E1 10.34.0.6/32 [[0x0]]
10.34.0.64      10.34.0.64      1306 0x80001522 0x1b15 E1 10.34.0.64/32 [[0x0]]
10.34.0.69      10.34.0.69       499 0x80000d30 0xc659 E1 10.34.0.69/32 [[0x0]]
10.34.0.70      10.34.0.70      1533 0x80001f5b 0x2ab6 E1 10.34.0.70/32 [[0x0]]
10.34.1.8       10.34.0.1        439 0x800000b5 0xab83 E1 10.34.1.8/29 [[0x0]]
10.34.4.192     10.34.0.1        459 0x800000b5 0xe382 E1 10.34.4.192/28 [[0x0]]
10.34.4.208     10.34.0.1        599 0x800000b5 0x81cb E1 10.34.4.208/29 [[0x0]]
10.34.5.32      10.34.0.1        479 0x80000066 0x9ea6 E1 10.34.5.32/28 [[0x0]]
10.34.6.0       10.34.0.2       1127 0x800055f3 0x6fa6 E1 10.34.6.0/25 [[0x0]]
10.34.6.240     10.34.0.2       1127 0x800055f3 0xa80c E1 10.34.6.240/28 [[0x0]]
10.34.7.0       10.34.7.1        141 0x80001f68 0xf2dd E1 10.34.7.0/25 [[0x0]]
10.34.12.0      10.34.7.1        141 0x80001f68 0xb893 E1 10.34.12.0/24 [[0x0]]
 
...

Co dělat když to nefunguje

Nejprve je potreba zapnout debugovani. Na zacatek konfiguraku ospfd.conf pridejte toto

debug ospf ism
debug ospf zebra
log file /tmp/ospf.log

Restartujte quaggu a proctete log. Pokud najdete hlasku, podobnou teto:

Ztracejí se OSPF routy

Pokud v logu najdeme tuto hlasku

2013/03/24 22:29:46 OSPF: can't setsockopt IP_ADD_MEMBERSHIP (fd 6, addr 10.11.11.41, ifindex 43, AllSPFRouters): No buffer space available; perhaps a kernel limit on # of multicast group memberships has been exceeded?

pak je problem v omezeni multicastu na routeru. Resenim je zvetsit limit na multicastove skupiny na routeru. Do /etc/sysctl.conf pridejte nasledujici radku

net.ipv4.igmp_max_memberships=400

zadejte prikaz sysctl -p a restartujte quaggu. Nyni by jiz vse melo opet fungovat

POZOR: Nezapomente opet po dokonceni debugovani zakomentovat prislusne radky v ospfd.conf !! Pokud na to zapomenete, je schopen log pretect a quagga se potom muze splasit !

BGP

Mapa site

Visuzalizace BGP peeru atp. - https://www.robtex.com/as

Poznamky k nastaveni BGP

howto/network/routing.txt · Poslední úprava: 2023/01/19 21:18 autor: gandalf