====== 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/]]