PROTOKÓŁ BGP. Łukasz Bromirski PODSTAWY DZIAŁANIA BUDOWA STYKU Z INTERNETEM PROJEKT BGP BLACKHOLING PL. lukasz@bromirski.net lbromirski@cisco.



Podobne dokumenty
PROJEKT BGP BLACKHOLING PL

Marcin Mazurek P.I.W.O, 22/05/2004, Poznań, Polska:)

Projekt BGP BLACKHOLING PL Łukasz Bromirski

BGP. Piotr Marciniak (TPnets.com/KIKE) Ożarów Mazowiecki, 26 marca 2010 r.

(secure) ROUTING WITH OSPF AND BGP FOR FUN, FUN & FUN. Łukasz Bromirski. lukasz@bromirski.net

Jak zbudować profesjonalny styk z internetem?

ISP od strony technicznej. Fryderyk Raczyk

Sterowanie ruchem wyjściowym

Projekt BGP BLACKHOLING PL Łukasz Bromirski

Mechanizmy routingu w systemach wolnodostępnych

Protokół BGP Podstawy i najlepsze praktyki Wersja 1.0

Konfigurowanie protokołu BGP w systemie Linux

Ochrona sieci operatorów internetowych

ROUTING DYNAMICZNY. Łukasz Bromirski. ...a Linux.

Locator/ID SPlit (LISP) Łukasz Bromirski

1.1 Ustawienie adresów IP oraz masek portów routera za pomocą konsoli

Zarządzanie systemem komendy

Routing dynamiczny... 2 Czym jest metryka i odległość administracyjna?... 3 RIPv RIPv Interfejs pasywny... 5 Podzielony horyzont...

BGP Blackholing PL. v2.0 re(boot reload) Łukasz Bromirski

Warstwa sieciowa rutowanie

WPROWADZENIE DO PROTOKOŁU BGP (BORDER GATEWAY PROTOCOL)

IP Anycast. Ochrona i skalowanie usług sieciowych. Łukasz Bromirski lbromirski@cisco.com

Konfigurowanie protokołu BGP w ruterach Cisco

PROTOKOŁY DYNAMICZNEGO ROUTINGU IP RIP i OSPF

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Wykorzystanie połączeń VPN do zarządzania MikroTik RouterOS

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PODSTAWY RUTINGU IP. WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r.

OSPF... 3 Komunikaty OSPF... 3 Przyległość... 3 Sieć wielodostępowa a punkt-punkt... 3 Router DR i BDR... 4 System autonomiczny OSPF...

Routing - wstęp... 2 Routing statyczny... 3 Konfiguracja routingu statycznego IPv Konfiguracja routingu statycznego IPv6...

Warsztaty: Protokół BGP Podstawy i najlepsze praktyki

Podstawy Sieci Komputerowych Laboratorium Cisco zbiór poleceń

EFEKTYWNOŚĆ PROTOKOŁÓW TRASOWA- NIA BGP + OSPF PRZY REALIZACJI USŁUG TRANSPORTU DANYCH

ZADANIE.03 Cisco.&.Juniper Routing dynamiczny i statyczny (OSPF, trasa domyślna) 1,5h

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

Załącznik produktowy nr 6 do Umowy Ramowej - Usługa Dostępu do Sieci Internet

Sieci komputerowe. Routing. dr inż. Andrzej Opaliński. Akademia Górniczo-Hutnicza w Krakowie.

Rozległe Sieci Komputerowe

Praktyczne aspekty implementacji IGP

Piotr Jabłoński, Łukasz Bromirski

Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr piąty

Routing. mgr inż. Krzysztof Szałajko

ZiMSK NAT, PAT, ACL 1

Wykład 3: Internet i routing globalny. A. Kisiel, Internet i routing globalny

Adresy w sieciach komputerowych

Link-State. Z s Link-state Q s Link-state. Y s Routing Table. Y s Link-state

PBS. Wykład Routing dynamiczny OSPF EIGRP 2. Rozwiązywanie problemów z obsługą routingu.

ZADANIE.03 Routing dynamiczny i statyczny (OSPF, trasa domyślna) 1,5h

Adresy IP v.6 IP version 4 IP version 6 byte 0 byte 1 byte 2 byte 3 byte 0 byte 1 byte 2 byte 3

Konfiguracja połączenia G.SHDSL punkt-punkt w trybie routing w oparciu o routery P-791R.

ZiMSK. Routing dynamiczny 1

Open Shortest Path First Protokół typu link-state Szybka zbieżność Obsługa VLSMs (Variable Length Subnet Masks) Brak konieczności wysyłania

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Routowanie we współczesnym Internecie. Adam Bielański

B Instrukcja do ćwiczenia

Warsztaty z Sieci komputerowych Lista 3

Firewall bez adresu IP

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

PROTOKOŁY RUTINGU W SIECIACH PAKIETOWYCH

Gdzie ComNet świadczy usługi.

Konfigurowanie protokołu OSPF w systemie Linux

Badanie protokołów routingu

BADANIE DOBORU TRAS W WIELODROGOWEJ ARCHITEKTURZE SIECIOWEJ ZE WZGLĘDU NA ZMIENNE WARUNKI SIECIOWE

Instrukcja do laboratorium 2. Podstawowa konfiguracja środowiska MPLS (Multi-Protocol Label Switching)

ZADANIE.02 Podstawy konfiguracji (interfejsy) Zarządzanie konfiguracjami 1,5h

Bezpieczeństwo mojej sieci O czym pomyśleć zanim będzie za późno Łukasz Bromirski lbromirski@cisco.com

SPECYFIKACJA TECHNICZNA PRZEDMIOTU UMOWY DOTYCZĄCA CZĘŚCI AKTYWNEJ ŁĄCZA

router wielu sieci pakietów

Konfiguracja aplikacji ZyXEL Remote Security Client:

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

Bezpieczeństwo routerów i sieci IP Najlepsze praktyki

Bezpieczeństwo w M875

Laboratorium - Przeglądanie tablic routingu hosta

Sieci Komputerowe Laboratorium 08 OSPF

GRAF DECYZJI O TRASIE PAKIETU

RUTERY. Dr inŝ. Małgorzata Langer

Warsztaty z Sieci komputerowych Lista 3

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

3. Routing z wykorzystaniem wektora odległości, RIP

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Laboratorium 2.8.2: Zaawansowana konfiguracja tras statycznych

Open Shortest Path First Protokół typu link-state Szybka zbieżność Obsługa VLSMs (Variable Length Subnet Masks) Brak konieczności wysyłania

PORADNIKI. Routery i Sieci

lp wykonawca nr w dzienniku (dz) 1. POL GRZYBOWSKI MAZUR zadanie rodzaj tunelowania typ tunelu wybór 1. wyspy IPv6 podłączone w trybie Manual Mode 4

Bezpieczeństwo sieci. Łukasz Bromirski. (a raczej zaledwie parę przykładów) SecureCON 2007, Wrocław

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski

Dlaczego? Mało adresów IPv4. Wprowadzenie ulepszeń względem IPv4 NAT CIDR

Struktura adresu IP v4

BRINET Sp. z o. o.

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Nowe zasady przydziału zasobów z RIPE

CCIE R&S / SP #15929 lbromirski@cisco.com. Kraków, II.2009

Sieci komputerowe dr Zbigniew Lipiński

Laboratorium Konfiguracja oraz weryfikacja protokołu RIP

Ćwiczenie Konfiguracja statycznych oraz domyślnych tras routingu IPv4

Zarządzanie Jakością Usług w Sieciach Teleinformatycznych

Monitoring ruchu sieciowego w nk.pl w oparciu o protokół netflow oraz rozwiązania opensource

Przesyłania danych przez protokół TCP/IP

Transkrypt:

PROTOKÓŁ BGP PODSTAWY DZIAŁANIA BUDOWA STYKU Z INTERNETEM PROJEKT BGP BLACKHOLING PL Łukasz Bromirski lukasz@bromirski.net lbromirski@cisco.com 1

Parę uwag na początek Slajdy będą dostępne na mojej stronie prywatnej i na stronie konferencji http://lukasz.bromirski.net W sieci jest bardzo dużo informacji Polecane URLe i książki na końcu tej prezentacji Please do ask questions 2

Agenda Protokół BGP podstawy polityka routingu multihoming Zebra/Quagga vs XORP vs OpenBGPd Przykłady konfiguracji Projekt BGP Blackholing PL 3

PROTOKÓŁ BGP 4

BGP Border Gateway Protocol Protokół routingu dynamicznego, używany do wymiany informacji o sieciach pomiędzy systemami autonomicznymi (AS) Zdefiniowany i opisany w RFC1771 używa połączeń TCP na port 179 od tego czasu pojawiło się wiele RFC rozszerzających standard stale trwają pracę nad nową wersją: http://www.ietf.org/internet-drafts/draft-ietf-idr-bgp4-26.txt 5

BGP Jak wygląda AS? Grupa sieci współdzieląca politykę routingu, zwykle pozostająca pod kontrolą jednej organizacji Systemy autonomiczne identyfikuje się za pomocą 16 bitowego numeru (ASN Autonomous System Number) 1-64511 publiczne, przydzielane przez RIRy 64512-65534 prywatne, nie powinny znaleźć się w Internecie 0 i 65535 - zarezerwowane 6

BGP podstawy terminologii Pracuje w oparciu o TCP Port 179 Protokół klasy path-vector ibgp i ebgp 7

BGP jak działa (w telegraficznym skrócie) Otrzymuje informacje o podsieciach (prefiksach) do sieci zarówno od wewnętrznych jak i zewnętrznych sąsiadów Wybiera najlepszą trasę i instaluje ją w tablicy routingu Taka trasa może zostać również wysłana do zewnętrznych (external) sąsiadów Mechanizmy polityki routingu mogą wpłynąć na wybór najlepszej trasy 8

BGP ebgp - external BGP Sesja BGP zestawiona pomiędzy routerami BGP z różnych ASów Routery powinny być bezpośrednio połączone Możliwe również zestawienie sesji przez wiele hopów (ebgp multihop) 9

BGP Konfiguracja ebgp Router A (w AS 100): interface fxp0 ip address 169.254.10.1 255.255.255.248 router bgp 100 network 169.254.50.0 mask 255.255.255.0 neighbor 169.254.10.3 remote-as 101 neighbor 169.254.10.3 prefix-list RtrC-in in neighbor 169.254.10.3 prefix-list RtrC-out out 10

BGP Konfiguracja ebgp Router C (w AS 101): interface em0 ip address 169.254.10.3 255.255.255.248 router bgp 101 network 169.254.53.0 mask 255.255.255.0 neighbor 169.254.10.1 remote-as 100 neighbor 169.254.10.1 prefix-list RtrA-in in neighbor 169.254.10.1 prefix-list RtrA-out out 11

BGP ibgp - internal BGP Sesje BGP pomiędzy routerami w tym samym ASie IGP powinien zapewnić łączność (routing) pomiędzy routerami ibgp, zatem nie ma konieczności połączenia bezpośredniego Każdy z routerów ibgp musi być połączony sesją z każdym innym routerem ibgp w tym samym AS (zapobiega to powstawaniu pętli) 12

BGP ibgp pomiędzy interfejsami loopback Interfejsy loopback są zawsze w stanie podniesionym Sesja ibgp jest zatem niezależna od stanu konkretnego interfejsu fizycznego ani zmian w topologii sieci Warto konfigurować sesje ibgp z interfejsów loopback 13

BGP Konfiguracja ibgp Router A (w AS 100): interface loopback 0 ip address 192.168.0.1 255.255.255.255 router bgp 100 network 169.254.50.0 mask 255.255.255.0 neighbor 192.168.0.5 remote-as 100 neighbor 192.168.0.5 update-source loopback 0 neighbor 192.168.0.7 remote-as 100 neighbor 192.168.0.7 update-source loopback 0 14

BGP Konfiguracja ibgp Router B (w AS 100): interface loopback 0 ip address 192.168.0.5 255.255.255.255 router bgp 100 network 169.254.50.0 mask 255.255.255.0 neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 update-source loopback 0 neighbor 192.168.0.7 remote-as 100 neighbor 192.168.0.7 update-source loopback 0 15

Protokół BGP Jak wymieniane są informacje pomiędzy AS? AS 101 AS 102 akceptuję 10.0.0.0/24 50.0.0.0/24 akceptuję Aby sieci w AS101 i AS102 mogły się komunikować: AS 101 musi rozgłosić swoje prefiksy do AS 102 AS 102 musi zaakceptować prefiksy z AS 101 AS 102 musi rozgłosić swoje prefiksy do AS 101 AS 101 musi zaakceptować prefiksy z AS 102 16

PROTOKÓŁ BGP ATRYBUTY 17

Protokół BGP Atrybuty Opisuje charakterystyki rozgłaszanego prefiksu Transitive/non-transitive AS-PATH lista numerów AS, przez które dana trasa była rozgłaszana np. akceptujemy prefiksy, ale tylko z ASx Next-hop - adres IP, przez który rozgłaszany prefiks jest osiągalny Origin wskazuje skąd w BGP pojawił się prefiks: IGP wprowadzony do BGP z IGP EGP otrzymany przez EGP incomplete stworzone przez redystrybucję 18

Protokół BGP Atrybuty AS Path Filtrowanie na podstawie zawartości AS-PATH: ip as-path access-list 10 permit ^$. Dokładnie jeden znak * Dowolna ilość poprzedzającego wyrażenia ^ Początek $ Koniec _ Początek, koniec, przerwa, nawias 19

Protokół BGP Atrybuty AS Path Przykłady proste:.* Cokolwiek ^$ Trasy lokalne dla tego AS _1800$ Trasy stworzone w AS1800 ^1800_ Trasy otrzymane od AS1800 _1800_ Trasy przez AS1800 _790_1800_ Trasy przez AS1800 a później przez AS790 ^(1800_)+$ Dowolna ilość AS1800 w AS-PATH 20

Protokół BGP Atrybuty AS Path Przykłady trochę mniej proste: ^[0-9]+$ Długość ścieżki AS-PATH =1 ^[0-9]+_[0-9]+$ Długość ścieżki AS-PATH =2 ^[0-9]*_[0-9]+$ Długość ścieżki AS-PATH 1 lub 2 ^[0-9]*_[0-9]*$ Długość ścieżki AS-PATH 0, 1 lub 2 _(701 1800)_ Trasy które przeszły przez AS701 lub 1800 _1849(_.+_)12163$ Trasy powstałe w AS12163, które przeszły przez AS1849 21

Protokół BGP Atrybuty local preference jakość prefiksu z punktu widzenia AS nie rozgłaszane poza AS wpływa na wybór ruchu wychodzącego w całym ASie domyślnie 100, czym wyższa tym trasa lepsza weight jakość prefiksu lokalna dla routera nie przekazywana do innych routerów 22

Protokół BGP Atrybuty community 32-bitowa liczba, zwykle zapisywana w formacie X:Y, gdzie X = AS systemu używającego community a Y = arbitralna wartość, dla której definujemy znaczenie SP publikują listy community, które honorują i na podstawie których mogą wykonywać zmiany w polityce routingu MED Multi-Exit Discriminator wpływa na wybór trasy ruchu przychodzącego, jeśli posiadamy więcej niż jedno łącze do tego samego AS 23

Protokół BGP Atrybuty no-export nie rozgłaszać do innych sąsiadów ebgp no-advertise nie rozgłaszać w ogóle nigdzie 24

Protokół BGP Jak BGP wybiera trasę? Nie bierz pod uwagę trasy, dla której next-hop jest nieosiągalny Nie bierz pod uwagę trasy ibgp, jeśli procesy nie są zsynchronizowane Najwyższa waga (lokalne dla routera) Najwyższe local-preference (globalne w AS) Preferuj trasę, stworzoną (originate) lokalnie Najkrótsza AS-PATH [...] http://www.cisco.com/en/us/tech/tk365/technologies_tech_note09186a0080094431.shtml 25

PRZYKŁADY KONFIGURACJI 26

Protokół BGP Kiedy NIE stosować BGP? Jeden SP i jedno łącze trasa domyślna wystarczy Jeden SP i dwa łącza z osobną adresacją policy-routing Wiele łącz o małej przepustowości (<1Mbit/s) zwykle wiele osobnych klas/pul adresowych SP niechętni takim rozwiązaniom brak uzasadnienia - biznesowego ani praktycznego 27

Protokół BGP Multihoming Po co multihoming? redundancja: jeden router, jedno łącze, jeden punkt styku z ISP = jeden duży problem w przypadku awarii któregoś z tych elementów wysoka dostępność: istotna w zastosowaniach biznesowych, coraz istotniejsza dla wszelkiego rodzaju ASK/OSK rozkładanie obciążenia: wybór optymalnej trasy, możliwość stosowania własnej polityki routingu Multihoming może być realizowany do jednego ISP (dwa niezależne łącza) dwóch/więcej ISP 28

Przykłady konfiguracji Jeden router, dwaj SP AS300 ISP-GW ISP-GW AS100 AS200 RTR-A.1 RTR-B.1 192.168.0.0/30 192.168.10.0/30.2.2 GW AS333 PI: 172.16.10.0/24 29

Przykłady konfiguracji Jeden router, dwaj SP! ip as-path access-list 10 permit ^$! router bgp 333 network 172.16.10.0 mask 255.255.255.0 neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 filter-list 10 out! zapobiegamy staniu się tranzytem pomiędzy ASami neighbor 192.168.10.1 remote-as 200 neighbor 192.168.10.1 filter-list 10 out! zapobiegamy staniu się tranzytem pomiędzy ASami 30

Przykłady konfiguracji Jeden router, dwaj SP, jak nas widać z AS300? as300# show ip bgp 172.16.10.0/24 BGP routing table entry for 172.16.10.0/24, version 1952 Paths: (2 available, best #2, advertised over ibgp, ebgp) 100 333 172.16.10.0/24 from 2.2.2.2 Origin IGP, metric 0, localpref 100, valid, external 200 333 172.16.10.0/24 from 1.1.1.1 Origin IGP, metric 0, localpref 100, valid, external, best 31

Przykłady konfiguracji Jeden router, dwaj SP, co jeśli AS200 ma np. słabsze łącza? route-map AS200-out permit 10 set as-path prepend 333 333! zmniejszamy atrakcyjność łącza z punktu widzenia SP route-map AS200-in permit 10 set local-preference 10! zmniejszamy atrakcyjność dowolnego prefiksu otrzymanego! przez to łącze z naszego punktu widzenia! router bgp 333 neighbor 192.168.10.1 remote-as 200 neighbor 192.168.10.1 route-map AS200-in in neighbor 192.168.10.1 route-map AS200-out out neighbor 192.168.10.1 filter-list 10 out 32

Przykłady konfiguracji Jeden router, dwaj SP, a jak nas widać z AS300 po prependowaniu? as300# show ip bgp 172.16.10.0/24 BGP routing table entry for 172.16.10.0/24, version 1952 Paths: (2 available, best #1, advertised over ibgp, ebgp) 100 333 172.16.10.0/24 from 2.2.2.2 Origin IGP, metric 0, localpref 100, valid, external, best 200 333 333 333 172.16.10.0/24 from 1.1.1.1 Origin IGP, metric 0, localpref 100, valid, external 33

Przykłady konfiguracji Dwa routery, dwaj SP AS300 ISP-GW ISP-GW AS100 AS200 RTR-A.1 RTR-B.1 192.168.0.0/30 192.168.10.0/30.2.2 GW-A AS333 GW-B PI: 172.16.10.0/24 34

Przykłady konfiguracji Dwa routery, dwaj SP GW-A: ip as-path access-list 10 permit ^$ router bgp 333 network 172.16.10.0 mask 255.255.255.0 neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 filter-list 10 out neighbor 172.16.10.2 remote-as 333 neighbor 172.16.10.2 descr ibgp GW-B 35

Przykłady konfiguracji Dwa routery, dwaj SP GW-B: ip as-path access-list 10 permit ^$ router bgp 333 network 172.16.10.0 mask 255.255.255.0 neighbor 192.168.10.1 remote-as 200 neighbor 192.168.10.1 filter-list 10 out neighbor 172.16.10.1 remote-as 333 neighbor 172.16.10.1 descr ibgp GW-A 36

Przykłady konfiguracji Dwa routery, dwaj SP, udostępniają community dla prependowania AS GW-B: route-map AS100-out permit 10 set community 200:1302 router bgp 333 neighbor 192.168.10.1 remote-as 200 neighbor 192.168.10.1 filter-list 10 out neighbor 192.168.10.1 send-community 37

Przykłady konfiguracji Communities w AS5617 (TP S.A.) http://www.ripe.net/fcgi-bin/whois?searchtext=as5617&form_type=simple 38

ZEBRA/QUAGGA vs XORP vs OpenBGPd 39

Quagga/Zebra vs XORP vs OpenBGPd Quagga/Zebra jest najdłużej rozwijanym projektem mimo to od czasu do czasu pojawiają się błędy głównie przez utrzymanie kompatybilności z możliwie dużą liczbą różnych OSów i platform XORP z uwagi na swoją wydajność i pamięciożerność, jest obecnie raczej ciekawostką duże zużycie CPU i pamięci dwukrotnie większe niż Quagga deklaracje zespołu XORP performance is not our top priority OpenBGPd jest mały i napisany od zera bardzo duża wydajność szczególnie synchronizacja RIB/FIB i małe zużycie pamięci 40

Quagga 0.99.1 PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 18716 quagga 96 0 55312K 54884K select 0:13 0.00% 0.00% bgpd 16551 quagga 96 0 41780K 41328K select 0:16 0.05% 0.05% zebra q-bgpd# show ip bgp summary BGP router identifier A.B.C.D, local AS number 65118 26870 BGP AS-PATH entries 1 BGP community entries Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd C.C.C.C 4 100 230441 4 0 0 0 2w6d14h 163075 Total number of neighbors 1 41

Quagga Konfiguracja podstawowego peeringu router bgp 10 neighbor 66.66.66.10 remote-as 20 42

OpenBGPd 3.7 PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 588 _bgpd 76 0 31996K 31500K select 0:08 1.56% 1.56% bgpd 587 root 76 0 6800K 6280K select 0:19 0.00% 0.00% bgpd 589 _bgpd 76 0 1780K 1280K select 0:02 0.00% 0.00% bgpd openbgpd# bgpctl show summary Neighbor AS MsgRcvd MsgSent OutQ Up/Down State/PrefixRcvd 192.168.0.1 100 29896 4 0 00:42:19 163075 43

OpenBGPd Konfiguracja podstawowego peeringu AS 10 neighbor 66.66.66.10 { remote-as 20 announce none } 44

XORP PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 4116 root 58 0 8992K 5860K RUN 1:16 42.48% 42.48% xorp_fea 4117 root 58 0 164M 148M select 1:12 41.36% 41.36% xorp_bgpd 4118 root 2 0 12684K 10976K select 1:25 5.18% 5.18% xorp_rib 4105 root 2 0 7980K 6576K select 0:13 0.20% 0.20% xorp_rtrmgr 4119 xorp 2 0 5912K 4476K select 0:06 0.00% 0.00% xorpsh Xorp> show bgp peers detail Peer 1: local 192.168.0.199/179 remote 192.168.0.1/179 Peer ID: 192.168.0.1 Peer State: ESTABLISHED Admin State: START Negotiated BGP Version: 4 Peer AS Number: 65118 Updates Received: 48921, Updates Sent: 0 Messages Received: 48934, Messages Sent: 4 Time since last received update: 0 seconds Number of transitions to ESTABLISHED: 1 Time since last entering ESTABLISHED state: 312 seconds Retry Interval: 120 seconds Hold Time: 120 seconds, Keep Alive Time: 40 seconds Configured Hold Time: 120 seconds, Configured Keep Alive Time: 40 seconds Minimum AS Origination Interval: 0 seconds Minimum Route Advertisement Interval: 0 seconds 45

XORP Konfiguracja podstawowego peeringu protocols { bgp { bgp-id: 66.66.66.10 targetname: "bgp" local-as: 10 peer 66.66.66.1 { peer-port: 179 local-port: 179 local-ip: 66.66.66.10" disable: false ipv4-unicast: true md5-password: as: 20 next-hop: 66.66.66.1 } } 46

Protokół BGP O czym jeszcze warto pomyśleć? Nadzorowanie i monitorowanie pracy przez SNMP mrtg, cacti Monitorowanie ruchu obciążenia łącz, najpopularniejszego typu ruchu itp. itd. Netgraph NetFlow + wizualizacja przez cflowd/flowd/etc. Zabezpieczenie sesji BGP przez MD5 lub IPsec we FreeBSD: device crypto options TCP_SIGNATURE options FAST_IPSEC 47

PROJEKT BGP BLACKHOLING PL 48

Projekt BGP Blackholing PL Po co? Typowy atak DDoS I Ty możesz stać się źródłem ataku! Co zrobić żeby się dołączyć? 49

CUDOWNĄ CECHĄ INTERNETU JEST TO, ŻE JESTEŚMY POŁĄCZENI ZE WSZYSTKIMI. OKROPNĄ CECHĄ INTERNETU JEST TO, ŻE JESTEŚMY POŁĄCZENI ZE WSZYSTKIMI. VINT CERF, GŁÓWNY STRATEG MCI 50

KAŻDY MA JAKIŚ PLAN. DOPÓKI NIE OBERWIE. MIKE TYSON, BYŁY BOKSER 51

Typowy DDoS Setki/tysiące trojanów-zombie Setki tysięcy pakietów na sekundę Wielusetmegabitowy strumień śmieci Zatyka sukcesywnie kolejne wąskie gardła: styk(i) z Internetem źródła styk(i) z Internetem atakowanego sieć ISP styki ISP z innymi ISP kto popsuł Internet? 52

Typowy DDoS Jak to się dzieje? QWE JKL XYZ ISP-GW AS100 ISP-GW AS300 ISP-GW GHI ISP-GW ISP-GW ISP-GW AS200 ISP-GW ISP-GW DEF SITE-A ABC 53

Typowy DDoS Co ja mogę zrobić dla zwiększenia bezpieczeństwa? QWE JKL XYZ ISP-GW AS100 ISP-GW AS300 ISP-GW GHI BCP38 (urpf) BCP38, prefiksy ISP-GW AS200 ISP-GW ISP-GW Mechanizmy QoS ISP-GW ISP-GW DEF SITE-A ABC 54

BGP blackholing PL O czym mówimy? Grupa entuzjastów różnego rodzaju zagadnień sieciowych Grupa route-serwerów prefiksy bogon (1/8, 2/8, 169.254/16 etc.) opcja akceptowania prefiksów rozgłaszanych przez członków projektu Kończymy tworzyć regulamin...ale już przyłączamy członków lista pocztowa ruszy lada chwila Projekt oparty o dobrą wolę i wolny czas brak jakichkolwiek gwarancji Analogia do projektu grupy Cymru http://www.cymru.com/bgp/bogon-rs.html my dodatkowo umożliwiamy rozgłaszanie własnych prefiksów 55

BGP blackholing Czego potrzebuję? Cisco/Juniper wszystko w komplecie OpenBGPd wszystko w komplecie Quagga/Zebra patch do poprawnej obsługi Null0 --- quagga-0.99.1/zebra/zebra_rib.c +++ quagga-0.99.1-blackhole/zebra/zebra_rib.c @@ -405,6 +405,8 @@ { SET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE); nexthop->rtype = newhop->type; + if (newhop->type == NEXTHOP_TYPE_BLACKHOLE) + nexthop_blackhole_add (rib); if (newhop->type == NEXTHOP_TYPE_IPV4 newhop->type == NEXTHOP_TYPE_IPV4_IFINDEX) nexthop->rgate.ipv4 = newhop->gate.ipv4; 56

BGP blackholing Konfiguracja Quagga/Zebra/Cisco Etap pierwszy: ruch do odebranych z route-servera prefiksów, kierujemy na interfejs Null0: ip route 192.0.2.1/32 Null0! ip community-list 99 permit 64999:666! route-map BH permit 10 match community 99 set ip next-hop 192.0.2.1! router bgp 100 neighbor 10.0.0.8 remote-as 64999 neighbor 10.0.0.8 description BGP BH 01 neighbor 10.0.0.8 route-map BH in neighbor 10.0.0.8 ebgp-multihop 255 57

BGP blackholing Konfiguracja - OpenBGPd Etap pierwszy: ruch do odebranych z route-servera prefiksów, kierujemy na interfejs Null0: neighbor 10.0.0.8 { remote-as 64999 description BGP BH 01 multihop 255 announce none } allow from any community 64999:666 set nexthop blackhole allow from any community 64999:666 set pftable "bogons" 58

BGP blackholing RPF - Jak to działa? RPF = Reverse Path Filtering Źródłowy adres każdego pakietu jest porównywany z zawartością tablicy routingu Jeśli podsieć z której pakiet przyszedł nie zgadza się z wpisami w tablicy routingu pakiet zostaje odrzucony XXX em0 RPF-01 fxp0 SRC: 172.16.50.5 172.16.50.0/24 172.16.50.0/24 connected via fxp0 59

BGP blackholing Konfiguracja - RPF Etap drugi: dzięki mechanizmowi RPF, ruch również z odebranych z route-servera prefiksów, kierujemy na interfejs Null0: FreeBSD, tryb strict : deny log ip from any to any not verrevpath in via em0 FreeBSD, tryb loose : deny log ip from any to any not versrcpath in via em0 Cisco, tryb strict : ip verify unicast source reachable via rx Cisco, tryb loose : ip verify unicast source reachable via any 60

BGP blackholing Jak wysłać informacje o ataku na własną sieć? Etap trzeci: możemy rozgłaszać IP i podsieci z własnego AS a jeśli wykryjemy na nie atak do wszystkich uczestników projektu tak, by: zachować styk z ISP pomóc walczyć operatorom z DDoSem zatrzymać zombie w innych sieciach przed generowaniem śmieci upstream BH-SVR 172.16.0.65! GWB GW GWA 172.16.0.0/24 61

BGP blackholing Jak wysłać informacje o ataku na własną sieć? route-map BH-SEND permit 10 match tag 666 set community 64999:999! router bgp 100 redistribute static route-map BH-SEND neighbor 10.0.0.8 remote-as 64999 neighbor 10.0.0.8 send-community [...]! atak na 172.16.10.15? ip route 172.16.10.15/32 Null0 tag 666! koniec ataku na 172.16.10.15? no ip route 172.16.10.15/32 Null0 tag 666 62

BGP blackholing Jak wykorzystać peering z BGP BH PL w środku sieci? BH-SVR BH-SVR Mimo uruchomienia BGP BH na GW, nadal reszta sieci może być przeciążana przez ataki inicjowane z jej środka Rozwiązaniem jest konfiguracja ibgp Sesje ebgp GW RTR-A RTR-B RTR-C RTR-D RTR-E RTR-F 63

BGP blackholing Jak wykorzystać peering z BGP BH PL w środku sieci? GW ebgp do BGP BH PL i ibgp do routerów w środku sieci: router bgp 100 neighbor 10.0.0.8 remote-as 64999 neighbor 10.0.0.8 description BGP BH 01 neighbor 10.0.0.8 route-map BH in neighbor 10.0.0.8 ebgp-multihop 255 neighbor 172.16.0.10 remote-as 100 neighbor 172.16.0.10 description ibgp-rtr-a neighbor 172.16.0.10 send-communities [...] 64

BGP blackholing Jak wykorzystać peering z BGP BH PL w środku sieci? RTR-A ibgp z GW router bgp 100 neighbor 172.16.0.1 remote-as 100 neighbor 172.16.0.1 description ibgp-gw neighbor 172.16.0.1 route-map BH in! ip route 192.0.2.1/32 Null0 ip community-list 99 permit 64999:666! route-map BH permit 10 match community 99 set ip next-hop 192.0.2.1 65

BGP blackholing Jak mogę się przyłączyć? Napisz maila na adres bgp@networkers.pl Podaj: typ swojego routera rodzaj i ilość styków z operatorami czy posiadasz i jeśli tak to jaki publiczny ASN czy chcesz korzystać z możliwości wstrzykiwania prefiksów ze swojego ASa? działający telefon kontaktowy Postaramy się jak najszybciej skontaktować, podając potrzebne do zestawienia sesji informacje 66

Apel do wszystkich świadomych administratorów Wykorzystaj w swojej sieci mechanizm RPF zastępując nim statyczne filtry na sieci bogon Zastanów się nad zastosowaniem mechanizmów QoS na swoich łączach z SP przede wszystkim dla ruchu: ICMP UDP TCP Dołącz się do projektu BGP Blackholing PL jeszcze dziś! 67

GDZIE WARTO RZUCIĆ OKIEM 68

Książki 69

Zasoby WWW Pakiet Quagga: http://www.quagga.net Pakiet XORP: http://www.xorp.org Demon OpenBGPd: http://www.openbgpd.org i drzewo portów FreeBSD 70

Zasoby WWW BGP4.AS http://www.bgp4.as ISP Essentials: ftp://ftp-eng.cisco.com/cons/isp/essentials/ ISP Security Essentials (NANOG): http://www.nanog.org/ispsecurity.html Prezentacje Philipa Smitha ftp://ftp-eng.cisco.com/pfs/seminars/ 71

& 72

PROTOKÓŁ BGP PODSTAWY DZIAŁANIA BUDOWA STYKU Z INTERNETEM PROJEKT BGP BLACKHOLING PL Dziękuję za uwagę lukasz@bromirski.net lbromirski@cisco.com 73