====== Routing a ASN ======
Zde budeme shromažďovat dulezite poznámky k routingu. Routing realizujeme pomocí démona QUAGGA
* {{:howto:quagga.pdf|Dokumentace Quaggy}}
* {{:howto:ipv6_in_practice_springer-2007_.pdf|Implementace IPv6 }}
Pro nahlížení do aktuální konfigurace dynamického routingu používáme aplikaci MRLG (**Multi-Router Looking Glass**)
* MRLG pro CZFree - [[http://sysifos.brevnov.czf/mrlg/]]
* MRLG pro Internet - [[http://dionysus.spoje.net/mrlg/]]
===== 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 ====
* [[http://www.velocityreviews.com/forums/t34285-how-to-configure-backup-route-with-bgp.html]]
* [[http://blog.ioshints.info/2008/02/bgp-essentials-as-path-prepending.html]]
* [[http://www.dslreports.com/faq/14664]]
* [[http://wiki.nil.com/AS-path_prepending_%28technical_details%29]]
* [[http://lg.de-cix.net/]]