{"id":80,"date":"2017-02-06T01:35:44","date_gmt":"2017-02-05T23:35:44","guid":{"rendered":"http:\/\/blog.devices.pl\/?p=80"},"modified":"2017-03-24T10:26:56","modified_gmt":"2017-03-24T08:26:56","slug":"edgerouter-pro-jako-router-bgpospf","status":"publish","type":"post","link":"https:\/\/blog.devices.pl\/?p=80","title":{"rendered":"EdgeRouter PRO jako router BGP\/OSPF"},"content":{"rendered":"<p>Jaki\u015b czas temu w moje r\u0119ce wpad\u0142 produkt Ubiquiti Networks &#8211; mianowicie EdgeRouter Lite i od razu przyci\u0105gn\u0105\u0142 moj\u0105 uwag\u0119 faktem, \u017ce generalnie w \u015brodku tego do\u015b\u0107 taniego urz\u0105dzenia siedzi rasowy Linux (Debian) z zainstalowan\u0105 &#8222;nak\u0142adk\u0105&#8221; bazuj\u0105c\u0105 na forku VyattaOS. Nie by\u0142oby w tym nic specjalnego &#8211; gdy\u017c sporo urz\u0105dze\u0144 bazuje na Linuxie &#8211; niemniej jednak wykorzystanie Debiana wraz z &#8222;uszytym&#8221; na miar\u0119 kernelem dla platformy sprz\u0119towej Cavium Octeon dawa\u0142o ca\u0142kiem niez\u0142e mo\u017cliwo\u015bci. Po pierwsze &#8211; pe\u0142na mo\u017cliwo\u015b\u0107 skorzystania z repozytorium dawa\u0142a mo\u017cliwo\u015b\u0107 kompilacji\/instalacji niemal\u017ce dowolnego oprogramowania. Po drugie &#8211; wbudowane w kernel modu\u0142y dla chipsetu firmy Cavium dawa\u0142o wr\u0119cz osza\u0142amiaj\u0105ce rezultaty je\u015bli chodzi o wydajno\u015b\u0107. Warto wspomnie\u0107, \u017ce wersja LITE spokojnie daje rad\u0119 przerzuca\u0107 ponad 1 milion PPS\u00f3w przy zegarze na poziomie 500MHZ i wielko\u015bci ramki na poziomie 64 bajt\u00f3w. Robi to wra\u017cenie &#8211; szczeg\u00f3lnie, \u017ce sprz\u0119t ten kosztuje poni\u017cej 400z\u0142. Dodatkowo sam uk\u0142ad Octeon zapewnia sprz\u0119tow\u0105 akceleracj\u0119 dla trasowania oraz przetwarzania pakiet\u00f3w co powoduje, \u017ce router przy niewielkim zu\u017cyciu CPU jest w stanie spokojnie &#8222;przetrawi\u0107&#8221; realnego ruchu 1Gbit\/s.<br \/>\n<!--more-->Mimo bardzo fajnego hardware&#8217;u oprogramowanie kt\u00f3re by\u0142o instalowane na urz\u0105dzeniu posiada\u0142o sporo ni\u017csze mo\u017cliwo\u015bci w stosunku nawet do kr\u00f3luj\u0105cego na domowych routerach OpenWRT czy nie wspominaj\u0105c ju\u017c o Mikrotikowym RouterOS. Wersja 1.4 oprogramowania EdgeOS zasadniczo nie pozwala\u0142a na nic wi\u0119cej &#8211; wi\u0119c pozostawa\u0142o tak naprawd\u0119 mozolne &#8222;d\u0142ubanie&#8221; w terminalu aby uzyska\u0107 stosown\u0105 funkcjonalno\u015b\u0107 &#8211; lub po prostu r\u0119cznie d\u0142ubi\u0105c w Debianie.<\/p>\n<div id=\"attachment_81\" style=\"width: 710px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/5191_2.jpg\"><img aria-describedby=\"caption-attachment-81\" loading=\"lazy\" class=\"size-full wp-image-81\" src=\"http:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/5191_2.jpg\" alt=\"\" width=\"700\" height=\"467\" srcset=\"https:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/5191_2.jpg 700w, https:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/5191_2-300x200.jpg 300w, https:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/5191_2-450x300.jpg 450w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-81\" class=\"wp-caption-text\">Pierwsza wersja EdgeRouter LITE<\/p><\/div>\n<p>Poza t\u0105 niedogodno\u015bci\u0105 &#8211; pierwsze wersje LITE posiada\u0142y r\u00f3wnie\u017c szereg wad. Porty Ethernet w ilo\u015bci skromnej ilo\u015bci 3 sztuk skutecznie uniemo\u017cliwia\u0142y wykorzystanie urz\u0105dzenia jako prostego &#8222;domowego routerka&#8221; a do tego firmware wraz z Debianem instalowane by\u0142y na wbudowanym w urz\u0105dzenie pendrive&#8217;wie wciskanym w port USB dolutowanym do PCB. Jak si\u0119 okaza\u0142o w czasie &#8211; bardzo cz\u0119sto pendrive nie wytrzymywa\u0142 pr\u00f3by czasu i albo si\u0119 uszkadza\u0142 skutecznie uniemo\u017cliwiaj\u0105c poprawn\u0105 prac\u0119 urz\u0105dzenia &#8211; albo po prostu pojawia\u0142y si\u0119 b\u0142\u0119dy magistrali USB. \u00a0Nowsze wersje (z prostok\u0105tn\u0105 obudow\u0105) posiada\u0142y ju\u017c zupe\u0142nie inny uk\u0142ad pami\u0119ci Flash &#8211; niemniej wci\u0105\u017c urz\u0105dzenie uruchamia\u0142o si\u0119 poprzez magistral\u0119 USB.<\/p>\n<p>Pewien prze\u0142om dokona\u0142 si\u0119 dopiero po pojawieniu si\u0119 &#8222;najmocniejszej&#8221; wersji EdgeRoutera z dopiskiem PRO. Wersja PRO przygotowana by\u0142a ju\u017c do ci\u0119\u017cszych zada\u0144 i z uwagi na dopisek PRO doczeka\u0142a si\u0119 obudowy typu RACK 1U oraz 6 port\u00f3w Ethernet (Gigabit Ethernet) wraz z dwoma portami Combo (SFP+RJ45). Ca\u0142o\u015b\u0107 nap\u0119dzana najszybszym dwurdzeniowym procesorem Octeon o taktowaniu 1GHZ pozwala\u0142a zgodnie z deklaracj\u0105 producenta przenie\u015b\u0107 do 2Mpps\u00f3w przy deklarowanym maksymalnym poborze energii na poziomie 40W &#8211; co w por\u00f3wnaniu do ci\u0119\u017ckich i pr\u0105do\u017cernych PCt\u00f3w robi ca\u0142kiem niez\u0142e wra\u017cenie.<\/p>\n<p><strong>EdgeRouter PRO &#8230;. jako BGP?<\/strong><\/p>\n<p><a href=\"http:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/ubiquiti-edgerouter-pro_5616.jpg\"><img loading=\"lazy\" class=\"size-full wp-image-82 aligncenter\" src=\"http:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/ubiquiti-edgerouter-pro_5616.jpg\" alt=\"\" width=\"1680\" height=\"551\" srcset=\"https:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/ubiquiti-edgerouter-pro_5616.jpg 1680w, https:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/ubiquiti-edgerouter-pro_5616-300x98.jpg 300w, https:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/ubiquiti-edgerouter-pro_5616-768x252.jpg 768w, https:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/ubiquiti-edgerouter-pro_5616-1024x336.jpg 1024w, https:\/\/blog.devices.pl\/wp-content\/uploads\/2017\/02\/ubiquiti-edgerouter-pro_5616-500x164.jpg 500w\" sizes=\"(max-width: 1680px) 100vw, 1680px\" \/><\/a>Pomys\u0142 na u\u017cycie EdgeRoutera PRO jako routera BGP narodzi\u0142 si\u0119 zupe\u0142nie przez przypadek podczas\u00a0poeksperymentowania z mo\u017cliwo\u015bciami Linuxa na tej platformie sprz\u0119towej. G\u0142\u00f3wnym powodem wykorzystania ER-PRO do BGP by\u0142a ch\u0119\u0107 po pierwsze zredukowania koszt\u00f3w energii elektrycznej oraz mo\u017cliwo\u015b\u0107 wykorzystania wi\u0119kszej ilo\u015bci port\u00f3w Ethernet w stosunku do 2-4 port\u00f3w jakie mo\u017cna by\u0142o wykorzysta\u0107 w standardowym sprz\u0119cie PC. Poza tym jednolita platforma sprz\u0119towa dawa\u0142a mo\u017cliwo\u015b\u0107 zasadniczo uwolnienia si\u0119 od problem\u00f3w typowych dla architektury PC &#8211; problem z przerwaniami, podzia\u0142em w\u0105tk\u00f3w karty sieciowej na rdzenie. Po wielu testach uda\u0142o mi si\u0119 stwierdzi\u0107, \u017ce ER-PRO po prostu przerzuca bez wi\u0119kszego wysi\u0142ku nawet kilka \u0142adnych gigabit\u00f3w ruchu bez specjalnego zm\u0119czenia czy gubienia ramek w stosunku do posiadanej platformy PC opartej o profesjonalny sprz\u0119t firmy Supermicro. Pomys\u0142 wi\u0119c wyda\u0142 si\u0119 ca\u0142kiem rozs\u0105dny, zwa\u017cywszy \u017ce&#8230;. \u00a0do BGP na platformie PC u\u017cywa\u0142em od wielu lat BIRDa &#8211; a kt\u00f3rego instalacja pod EdgeRouterem wydawa\u0142a si\u0119 dziecinnie \u0142atwa.<\/p>\n<p><strong>Dlaczego BIRD?<\/strong><\/p>\n<p>BIRD to daemon protoko\u0142u BGP\/OSPF\/BFD dla Linuxa oraz innych system\u00f3w Unixopodobnych. Mimo, \u017ce generalnie prym pod tym k\u0105tem i niemal standardem od wielu lat stanowi Quagga &#8211; to BIRD w stosunku do konkurencji posiada szereg niezaprzeczalnych zalet. G\u0142\u00f3wn\u0105 zalet\u0105 BIRDa s\u0105 przede wszystkim niewielkie wymagania sprz\u0119towe &#8211; zgodnie z dokumentacj\u0105 i por\u00f3wnaniem &#8211; BIRD z\u017cera nawet 3-krotnie mniej pami\u0119ci operacyjnej w stosunku do Quaggi przy podobnej ilo\u015bci zaci\u0105gni\u0119tych prefiks\u00f3w. Poza tym BIRD\u00a0generalnie nie jest tak\u0105 rozpasan\u0105 &#8222;koby\u0142\u0105&#8221; w stosunku do Quaggi i potrafi przetwarza\u0107 ca\u0142kiem dobrze r\u00f3\u017cnego rodzaju filtry co czyni go znacznie &#8222;szybszym&#8221; zamiennikiem. Dodatkowo g\u0142\u00f3wn\u0105 zalet\u0105 oraz powodem uruchamiania BGP pod BIRDem by\u0142o moje lenistwo &#8211; konfiguracj\u0119 BIRDa praktycznie ju\u017c mia\u0142em podan\u0105 na widelcu, wi\u0119c &#8230; po co kombinowa\u0107? Zwa\u017cywszy, \u017ce implementacja BGP w \u00f3wczesnej najnowszej wersji EdgeOS pozostawa\u0142a nie tylko wiele do \u017cyczenia &#8211; co by\u0142o po prostu niemo\u017cliwe.<\/p>\n<p><strong>Jak zainstalowa\u0107 BIRDa?<\/strong><\/p>\n<p>W pierwszej kolejno\u015bci musimy zainstalowa\u0107 najnowsz\u0105 wersj\u0119 EdgeOS. W tym celu pobieramy odpowiedni upgrade ze strony :\u00a0https:\/\/www.ubnt.com\/download\/edgemax\/<br \/>\nNa chwil\u0119 obecn\u0105 najnowsz\u0105 wersj\u0105 jest wersja 1.9.1. W celu dodania repozytorium Wheezy (taka jest wersja Debiana dla wersji 1.9.1) wpisujemy spod konsoli :<\/p>\n<blockquote><p>configure<br \/>\nset system package repository wheezy components 'main contrib non-free&#8217;<br \/>\nset system package repository wheezy distribution wheezy<br \/>\nset system package repository wheezy url http:\/\/http.us.debian.org\/debian<br \/>\ncommit<br \/>\nsave<br \/>\nexit<\/p><\/blockquote>\n<p>Nast\u0119pnie ju\u017c spod konsoli wpisujemy sudo bash i nast\u0119pnie apt-get update w celu zaktualizowania dost\u0119pnych pakiet\u00f3w. Pami\u0119tajmy o tym, \u017ceby nasz router mia\u0142 dost\u0119p do Internetu &#8211; to chyba jest oczywiste \ud83d\ude09<\/p>\n<p>Aby m\u00f3c \u0142atwo konfigurowa\u0107 BIRDa do edycji i poruszania si\u0119 po strukturze katalog\u00f3w mo\u017cemy zainstalowa\u0107 Midnight Commandera &#8211; w tym celu wpisujemy apt-get install mc. Po instalacji uruchamiamy mc i przechodzimy do katalogu \/etc\/apt\/source.list i dodajemy wpis :<\/p>\n<blockquote><p>deb http:\/\/ftp.de.debian.org\/debian wheezy-backports main<\/p><\/blockquote>\n<p>Zapisujemy i ponownie wykonujemy apt-get update. Z uwagi, \u017ce repozytorium Debiana nie posiada zwykle najnowszej wersji BIRDa musimy wybra\u0107 najnowsz\u0105 wersj\u0119 jaka jest dost\u0119pna. W tym celu wpisujemy :<\/p>\n<blockquote><p>apt-cache policy bird<\/p><\/blockquote>\n<p>I nast\u0119pnie\u00a0apt-get install bird=1.4.5-1~bpo70+1 &#8211; gdzie\u00a01.4.5-1~bpo70+1 wpisujemy najnowsz\u0105 dost\u0119pn\u0105 wersj\u0119. Generalnie w moim przypadku jest to wersja 1.4.5 wi\u0119c powiedzmy jest to w miar\u0119 &#8222;\u015bwie\u017ca&#8221; wersja. By\u0107 mo\u017ce za nied\u0142ugo dost\u0119pna b\u0119dzie jeszcze nowsza wersja.<\/p>\n<p><strong>Od czego zaczynamy?<\/strong><\/p>\n<p>Po pierwsze konfiguracja BIRDa jest dziecinnie prosta. Konfiguracja zasadniczo sk\u0142ada si\u0119 z jednego pliku w postaci : \/etc\/bird.conf i ew. \/etc\/bird6.conf dla protoko\u0142u IPv6.<\/p>\n<p>Struktura pliku jest do\u015b\u0107 dobrze opisana w oryginalnej dokumentacji. Zanim jednak zaczniemy bawi\u0107 si\u0119 BGP musimy wprowadzi\u0107 par\u0119 do\u015b\u0107 istotnych modyfikacji do konfiguracji EdgeRouter&#8217;a. Po pierwsze musimy skonfigurowa\u0107 adresacj\u0119 na interfejsach &#8211; tak jak powinny one by\u0107 zaadresowane.<\/p>\n<p>Nast\u0119pnie musimy napisa\u0107 prosty skrypt, kt\u00f3ry pozwoli nam wprowadzi\u0107 par\u0119 &#8222;udogodnie\u0144&#8221; w celu optymalizacji dzia\u0142ania naszego routera i zminimalizowania zu\u017cycia procesora.<\/p>\n<p>W tym celu tworzymy plik start.sh w katalogu\u00a0\/config\/scripts\/post-config.d\/ :<\/p>\n<blockquote><p>cd \/config\/scripts\/post-config.d\/<br \/>\ntouch start.sh<br \/>\nchmod +x start.sh<br \/>\nchmod 777 start.sh<\/p><\/blockquote>\n<p>Nast\u0119pnie umieszczamy w nim np.:<\/p>\n<blockquote><p>#!\/bin\/sh<\/p>\n<p>echo &#8222;0&#8221; &gt; \/proc\/sys\/net\/ipv4\/conf\/all\/log_martians<\/p><\/blockquote>\n<p>W logach nie b\u0119dziemy przechowywa\u0107 komunikat\u00f3w martians &#8211; cz\u0119sto zapycha nam to niepotrzebnie SYSLOGA.<\/p>\n<blockquote><p>iptables -A FORWARD -p tcp &#8211;dport 135:139 -j DROP<br \/>\niptables -A FORWARD -p tcp &#8211;dport 135:139 -j DROP<br \/>\niptables -A FORWARD -p udp &#8211;sport 135:139 -j DROP<br \/>\niptables -A FORWARD -p udp &#8211;sport 135:139 -j DROP<br \/>\niptables -A FORWARD -p tcp &#8211;dport 445 -j DROP<br \/>\niptables -A FORWARD -p tcp &#8211;dport 445 -j DROP<br \/>\niptables -A FORWARD -p udp &#8211;sport 445 -j DROP<br \/>\niptables -A FORWARD -p udp &#8211;sport 445 -j DROP<\/p><\/blockquote>\n<p>#Mo\u017cemy przyblokowa\u0107 r\u00f3\u017cnego rodzaju \u015bmieci kt\u00f3re b\u0119d\u0105 przekazywane pomi\u0119dzy portami.<\/p>\n<blockquote><p>ip rule add to 185.23.12.0\/23 table BGP<br \/>\nip rule add from 185.23.12.0\/23 table BGP<\/p><\/blockquote>\n<p>#Je\u015bli korzystamy z alternatywnej tablicy dla BGP koniecznie musimy dopisa\u0107 nasze prefiksy tak, aby by\u0142y one w tablicy routingu przeznaczone dla BGP. Inaczej mimo &#8222;zassania&#8221; prefiks\u00f3w globalnych nasze nie b\u0119d\u0105 propagowane &#8222;w g\u00f3r\u0119&#8221; sieci, gdy\u017c BIRD b\u0119dzie rozg\u0142asza\u0142 tylko to co zostanie w tej tablicy umieszczone.<\/p>\n<blockquote><p>iptables -t raw -A PREROUTING -j NOTRACK<\/p><\/blockquote>\n<p># Je\u015bli nasze BGP b\u0119dzie tylko i wy\u0142\u0105cznie przerzuca\u0107 ramki &#8211; powinni\u015bmy nie u\u017cywa\u0107 conntracka gdy\u017c przy nawet nie du\u017cym ruchu jeste\u015bmy w stanie go zapcha\u0107 pr\u0119dzej czy p\u00f3\u017aniej. Komenda ta generalnie odci\u0105\u017ca przetwarzanie ka\u017cdego po\u0142\u0105czenia dzi\u0119ki czemu nasz router po pierwsze nie obci\u0105\u017ca pami\u0119ci &#8211; po drugie jego wydajno\u015b\u0107 wzrasta co najmniej kilkukrotnie! No chyba, \u017ce chcemy u\u017cywa\u0107 NAT &#8211; ale tego raczej nie powinien wykonywa\u0107 router BGP.<\/p>\n<blockquote><p>iptables -A FORWARD -m icmp -p icmp &#8211;icmp-type destination-unreachable -j DROP<br \/>\niptables -A FORWARD -m icmp -p icmp &#8211;icmp-type port-unreachable -j DROP<br \/>\niptables -A FORWARD -m icmp -p icmp &#8211;icmp-type net-unreachable -j DROP<br \/>\niptables -A FORWARD -m icmp -p icmp &#8211;icmp-type host-unreachable -j DROP<br \/>\niptables -A FORWARD -m icmp -p icmp &#8211;icmp-type time-exceeded -j DROP<br \/>\niptables -A FORWARD -s 0.0.0.0\/0 -d 0.0.0.0\/0 -p udp &#8211;dport 1900 -j DROP<\/p><\/blockquote>\n<p># te regu\u0142ki pozwalaj\u0105 nam na ograniczenie r\u00f3znego rodzaju flood\u00f3w i \u015bmieci jakie generowane s\u0105 przez DDOSy.<\/p>\n<blockquote><p>echo &#8222;160&#8221; &gt; \/proc\/sys\/net\/ipv4\/netfilter\/ip_conntrack_generic_timeout<br \/>\necho &#8222;160&#8221; &gt; \/proc\/sys\/net\/ipv4\/netfilter\/ip_conntrack_icmp_timeout<br \/>\necho &#8222;160&#8221; &gt; \/proc\/sys\/net\/ipv4\/netfilter\/ip_conntrack_tcp_timeout_close<br \/>\necho &#8222;180&#8221; &gt; \/proc\/sys\/net\/ipv4\/netfilter\/ip_conntrack_tcp_timeout_close_wait<br \/>\necho &#8222;640&#8221; &gt; \/proc\/sys\/net\/ipv4\/netfilter\/ip_conntrack_tcp_timeout_established<br \/>\necho &#8222;160&#8221; &gt; \/proc\/sys\/net\/ipv4\/netfilter\/ip_conntrack_tcp_timeout_fin_wait<br \/>\necho &#8222;160&#8221; &gt; \/proc\/sys\/net\/ipv4\/netfilter\/ip_conntrack_tcp_timeout_last_ack<br \/>\necho &#8222;2212000&#8221; &gt; \/proc\/sys\/net\/ipv4\/netfilter\/ip_conntrack_max<br \/>\necho &#8222;2212000&#8221; &gt; \/proc\/sys\/net\/nf_conntrack_max<\/p><\/blockquote>\n<p>#Je\u015bli potrzebowaliby\u015bmy u\u017cywa\u0107 Conntracka dobrze jest zoptymalizowa\u0107 jego parametry.<\/p>\n<blockquote><p>echo 4096 &gt; \/proc\/sys\/net\/ipv4\/neigh\/default\/gc_thresh3<\/p><\/blockquote>\n<p># Je\u015bli mamy du\u017co adres\u00f3w MAC w naszej sieci &#8211; warto zwi\u0119kszy\u0107 tablic\u0119 ARP.<br \/>\nDobrym rozwi\u0105zaniem w tym wypadku jest rozdzielenie tablicy g\u0142\u00f3wnej routingu z tablic\u0105 do kt\u00f3rej b\u0119d\u0105 wpada\u0142y wpisy BGP. Nie jest to konieczne &#8211; ale pozwala zaoszcz\u0119dzi\u0107 troch\u0119 zasob\u00f3w sprz\u0119towych oraz pozwala rozdzieli\u0107 prefiksy rozg\u0142aszane przez protok\u00f3\u0142 BGP z prefiksami np. wewn\u0119trznymi. W tym celu nale\u017cy doda\u0107 po prostu wpis do pliku :\u00a0\/etc\/iproute2\/rt_tables np.<\/p>\n<blockquote><p>20 BGP<\/p><\/blockquote>\n<p>Spowoduje to utworzenie tablic nr 20 o nazwie BGP.<\/p>\n<p>Sama konfiguracja BIRDa jest zasadniczo bardzo prosta. Najprostszy (ALE NIE ZALECANY!) konfig wygl\u0105da nast\u0119puj\u0105co :<\/p>\n<blockquote><p>log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };<br \/>\nlog &#8222;\/tmp\/bird.log&#8221; all;<\/p><\/blockquote>\n<p>Ustawiamy aby, BIRD wypluwa\u0142 nam wszelkiego rodzaju problemy bezpo\u015brednio do sysloga &#8211; to bardzo si\u0119 przydaje podczas ew. diagnostyki<\/p>\n<blockquote><p>router id 0.0.0.1;<\/p><\/blockquote>\n<p>Ustawiamy ID routera &#8211; warto\u015b\u0107 ta musi by\u0107 unikatowa &#8211; najcze\u015bciej jest to adres IP publiczny<\/p>\n<blockquote><p>protocol device { }<br \/>\nprotocol direct { }<\/p>\n<p>protocol kernel {<br \/>\nscan time 360; \/\/ co jaki interwa\u0142 czasu mamy sprawdza\u0107 zmiany w kernelu<br \/>\nimport all; \/\/ z wpis\u00f3w z kernela importujemy wszystko<br \/>\nexport all; \/\/ oraz eksportujemy wszystkie prefiksy<br \/>\nkernel table 20; \/\/ jako tablic\u0119 routingu dla BIRDa u\u017cywamy alternatywn\u0105 o numerze 20 (o nazwie BGP)<br \/>\nlearn on; \/\/ w\u0142\u0105czamy uczenie si\u0119 nowych wpisow<br \/>\n}<\/p>\n<p>protocol bgp MAIN {<br \/>\nlocal as 12881; \/\/ nasz lokalny numer ASN<br \/>\ndirect;<br \/>\npreference 1000; \/\/ lokalna waga\/preferencja interfejsu<br \/>\nnext hop self; \/\/ rozglaszamy ze sami jestesmy brama<br \/>\nsource address 10.0.5.108; \/\/ nasz adres zrodlowy dla tej sesji BGP<br \/>\nneighbor 10.0.5.99 as 6619; \/\/ dane naszego sasiada<br \/>\nimport all; \/\/ importujemy wszystko &#8211; NIE ZALECAMY TEGO!<br \/>\nexport all; \/\/ exportujemy wszystko co mamy w tablicy routingu &#8211; KONIECZNIE TUTAJ MUSZA ZNALEZC SIE FILTRY!!!<br \/>\n}<\/p><\/blockquote>\n<p><strong>Performance i stabilno\u015b\u0107<\/strong><\/p>\n<p>BIRD generalnie po zainstalowaniu z repozytorium powinien bez problemu startowa\u0107 przy ka\u017cdym uruchomieniu si\u0119 EdgeRoutera i zasadniczo nie wymagane jest stosowanie dodatkowych &#8222;watchdog\u00f3w&#8221; &#8211; chocia\u017c mo\u017cemy bez wi\u0119kszego problemu zainstalowa\u0107 pakiet monit, kt\u00f3ry przy prostej konfiguracji pozwoli nam uruchomi\u0107 ponownie BIRDa w razie &#8222;wywalenia si\u0119&#8221;.<\/p>\n<p>Dzia\u0142anie BIRDa mo\u017cemy monitorowa\u0107 za pomoc\u0105 komendy birdc i tutaj generalnie nale\u017cy si\u0119gn\u0105\u0107 do dokumentacji, gdy\u017c sk\u0142adnia w niczym nie przypomina tej z Cisco czy z Quaggi. \u00a0Dla monitorowania generalnie zu\u017cycia pami\u0119ci i obci\u0105\u017cenia procesora proponuje od razu z repozytorium doinstalowa\u0107 pakiet htop kt\u00f3ry pozwala r\u00f3wnie\u017c na monitorowanie obci\u0105\u017cenia nie tylko procesora przez software, ale r\u00f3wnie\u017c pozwala zobaczy\u0107 obci\u0105\u017cenie procesora przez hardware.<\/p>\n<p>Dla przyk\u0142adu &#8211; 3 pe\u0142ne tablice BGP oraz 6 lokalnych sesji BGP w przypadku BIRDa wymaga ok. 140MB pami\u0119ci operacyjnej co jest ilo\u015bci\u0105 \u015bmiesznie ma\u0142\u0105. Czas konwergencji i przeliczenia tras zajmuje stosunkowo niewielk\u0105 ilo\u015b\u0107 czasu i zajmuje z zegarkiem w r\u0119ku ok. 30 sekund na maszynie pokroju ER-PRO.<\/p>\n<p>Poprawnie\u00a0skonfigurowany router BGP pozwala przerzuci\u0107 sumarycznie ok. 2-3Gbit\/s ruchu. Co my\u015bl\u0119 jak na sprz\u0119t za 1500z\u0142 jest ilo\u015bci\u0105 wystarczaj\u0105c\u0105 i zarazem imponuj\u0105c\u0105!h<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jaki\u015b czas temu w moje r\u0119ce wpad\u0142 produkt Ubiquiti Networks &#8211; mianowicie EdgeRouter Lite i od razu przyci\u0105gn\u0105\u0142 moj\u0105 uwag\u0119 faktem, \u017ce generalnie w \u015brodku tego do\u015b\u0107 taniego urz\u0105dzenia siedzi rasowy Linux (Debian) z zainstalowan\u0105 &#8222;nak\u0142adk\u0105&#8221; bazuj\u0105c\u0105 na forku VyattaOS. &hellip; <a href=\"https:\/\/blog.devices.pl\/?p=80\">Czytaj dalej <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.devices.pl\/index.php?rest_route=\/wp\/v2\/posts\/80"}],"collection":[{"href":"https:\/\/blog.devices.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.devices.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.devices.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.devices.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=80"}],"version-history":[{"count":7,"href":"https:\/\/blog.devices.pl\/index.php?rest_route=\/wp\/v2\/posts\/80\/revisions"}],"predecessor-version":[{"id":90,"href":"https:\/\/blog.devices.pl\/index.php?rest_route=\/wp\/v2\/posts\/80\/revisions\/90"}],"wp:attachment":[{"href":"https:\/\/blog.devices.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=80"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.devices.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=80"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.devices.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}