Optymalizacja routingu
Transkrypt
Optymalizacja routingu
Optymalizacja routingu • CCNP Routing & Switching (prezentacje) • Rick Graziani • Homer Simpson • Łukasz Sturgulewski Zagadnienia Problemy z wydajnością sieci i metody kontroli aktualizacji routingu i tras. Przyczyny wykorzystywania wielu protokołów routingu w sieciach. Redystrybucja tras pomiędzy wieloma protokołami routingu. Różne metody kontroli ruchu generowanego przez aktualizacje routingu oraz użytkowników. Optymalizacja routingu 2 Routing – Problemy z wydajnością Nadmierna liczba aktualizacji routingu: Użycie CPU i RAM może drastycznie wzrosnąć (chwilowe skoki, piki), wzrost zależy głównie od: Rozmiaru aktualizacji routingu Częstotliwości aktualizacji routingu Projektu sieci Nieprawidłowo skonfigurowane mapy routingu lub filtry. Wiele protokołów routingu działających jednocześnie w tym samym systemie autonomicznym. Optymalizacja routingu 3 Wiele protokołów routingu działających jednocześnie Różne protokoły routingu nie zostały zaprojektowane do współpracy ze sobą. Każdy protokół zbiera inne rodzaje informacji oraz inaczej reaguje na zmiany topologii. Uruchomienie wielu protokołów w sieci (na urządzeniu) zwiększa zapotrzebowanie na CPU i RAM (wiele topologii, baz danych oraz tablic routingu). Routing – Problemy z wydajnością Rozwiązania Ograniczać liczbę używanych jednocześnie protokołów. Używać passive interfaces, aby rozgłoszenia routingu nie wychodziły danym interfejsem. Filtrowanie i agregowanie tras aby ograniczyć liczbę rozgłoszeń i ich rozmiar: Access control lists (ACLs) Route maps Distribute lists Prefix lists Optymalizacja routingu 5 Filtrowanie tras Używanie route maps, distribute lists, prefix lists zamiast tradycyjnych, typowych ACL zwiększa elastyczność konfiguracji. Filtry mogą być użyte do: Blokowania wysyłania aktualizacji routingu poprzez wybrane interfejsy. Kontrola rozgłoszeń tras w aktualizacjach routingu. Kontrola przetwarzania aktualizacji routingu. Błędy w konfiguracji filtrów oraz ich przypisania do interfejsów mogą mieć duży wpływ na spadek wydajności sieci. Optymalizacja routingu 6 Proces filtrowania aktualizacji routingu 1. Odebranie aktualizacji routingu (bufor) i weryfikacja: 2. Czy interfejs ma dodany filtr? 3. Czy filtr posiada wpis pozwalający na przetwarzanie tej aktualizacji routingu? 4. Przetwarzanie aktualizacji routingu zgodnie z konfiguracją filtra. Optymalizacja routingu 7 Użycie wielu protokołów routingu w sieciach Optymalizacja routingu 8 Dlaczego używa się wielu protokołów routingu? Stan przejściowy: Migracja ze starego IGP do nowego IGP. Protokoły zależne od aplikacji: Jeden protokół nie zawsze obsłuży wszystkie zadania / aplikacje. Sprawy organizacyjne i współpraca: Wiele departamentów zarządzanych przez różnych administratorów. Grupy słabo współpracujące ze sobą. Brak kompatybilności urządzeń: Wielu producentów, różny rok produkcji, różna wydajność. Routery bazujące na hostach/serwerach. Fuzja firm / korporacji / instytucji. Optymalizacja routingu 9 Multiple Routing Protocols Multiple Routing Processes Routery wspierają do około 30 dynamicznych procesów routingu. Router ma możliwość jednoczesnego używania wielu protokołów routingu: RIP, OSPF, IGRP, IS-IS, EIGRP, IPX RIP, RTMP (AppleTalk). Możliwość uruchomienia wielu procesów routingu dla tego samego protokołu routingu (nie dotyczy RIP). Wiele procesów OSPF: router ospf 10 router ospf 15 Optymalizacja routingu 10 Multiple Routing Protocols Multiple Routing Processes Router# show running-config router ospf 24 network 10.2.0.0 0.0.255.255 area 0 ! niezalecane! router ospf 46 network 192.168.2.0 0.0.0.255 area 2 ! router igrp 53 network 172.16.0.0 network 172.17.0.0 ! niezalecane! router igrp 141 network 10.0.0.0 network 192.168.3.0 Optymalizacja routingu 11 Od prostych do złożonych sieci Proste sieci wymagają prostych protokołów routingu – najczęściej jeden protokół jest wystarczający. Wskazane jest używanie jednego protokołu routingu w całej obsługiwanej sieci IP. Jednak rozwój sieci, łączenie i ich powiększania sprawia, iż może istnieć konieczność wsparcia wielu protokołów routingu – wymiana danych pomiędzy nimi staje się bardzo ważna! Optymalizacja routingu 12 Złożone sieci Złożone sieci wymagają dokładnego i ostrożnego projektu dla routingu oraz optymalizacji ruchu w tym: Redystrybucja pomiędzy protokołami routingu Filtrowanie tras Sumaryzacja Optymalizacja routingu 13 Redystrybucja – Redistribution Wymiana informacji o trasach pomiędzy różnymi protokołami routingu nazywana jest redystrybucją tras (route redistribution). Zdolność routerów granicznych, przyłączanych do różnych domen routingu, do wymiany ogłoszeń informacji o routingu pomiędzy tymi domenami (różnymi protokołami routingu). Przykład: trasy poznane w procesie protokołu RIP mogą być zaimportowane do procesu protokołu OSPF. Optymalizacja routingu 14 Przykład redystrybucji tras Optymalizacja routingu 15 Trasy redystrybuowane Redystrybucja zawsze wykonywana jest na wyjściu routera; router wykonujący redystrybucję nie zmienia własnej tablicy routingu. Sąsiedzi granicznego routera widzą trasy redystrybuowane jako zewnętrzne trasy (external routes). Tylko trasy znajdujące się w tablicy routingu będą redystrybuowane! Optymalizacja routingu 16 Problemy redystrybucji Możliwe problemy przy używaniu redystrybucji: Routing feedback (pętle) Redystrybucja dwukierunkowa i wiele urządzeń granicznych – dane mogą powrócić do systemu AS z którego pochodzą. Brak zgodności informacji o trasach Kompletnie różne metryki w różnych protokołach routingu. Brak zgodności czasów zbieżności Różne czasy zbieżności dla protokołów routingu DOBRE PLANOWANIE: AD, metryki, filtry: route maps, distribute lists, prefix lists. Optymalizacja routingu 17 Wybór najlepszej trasy Routery używają dwóch parametrów do wyboru najlepszej trasy: Dystans administracyjny (Administrative distance): Określa poziom zaufania do danego protokołu routingu (zdefiniowany przez dostawcę urządzenia ale można go zmieniać!). Pierwsze kryterium zaufania routera do protokołów routingu jeśli więcej niż jeden protokół routingu dostarczył informacje o tym samym celu. Metryka routingu (Routing metric): Metryka jest wartością reprezentującą ścieżkę pomiędzy lokalnym routerem i siecią docelową według używanego protokołu routingu (w każdym protokole inaczej wyznaczana i otrzymująca wartości z różnych zakresów). Metryka jest używana przez protokoły routingu do określenia najlepszej ścieżki do celu. Optymalizacja routingu 18 Dystans administracyjny Tylko boundary router powinien mieć uruchomiony więcej niż jeden protokół routingu (ze względu na zapotrzebowanie na CPU i RAM) i tylko wtedy gdy jest to niezbędne. W takim przypadku możliwa jest sytuacja jak na rysunku – ta sama sieć pochodzi z różnych protokołów. Dystans administracyjny pozwala określać „poziom zaufania” do protokołów. Jeśli dwie trasy mają taką samą część adresu sieci system wybierze trasę o mniejszym administracyjnym dystansie. Optymalizacja routingu 19 Dystans administracyjny Default Administrative Distance Value Connected interface 0 Static route out an interface 1 Static route to a next-hop address 1 EIGRP summary route 5 External BGP 20 Internal EIGRP 90 IGRP 100 OSPF 110 IS-IS 115 RIPv1 and RIP v2 120 Exterior Gateway Protocol (EGP) 140 On-Demand Routing (ODR) 160 External EIGRP 170 Internal BGP 200 Unknown 255 Optymalizacja routingu More Trustworthiness Routing Protocol Less 20 Dystans administracyjny integer <0, 255> 0 – sieci bezpośrednio podłączone do urządzenia (zawsze preferowane) 255 – sieci (informacje routingu) powinny być ignorowane niższa wartość oznacza wyższy poziom zaufania Podsumowanie: nie jest łatwo porównywać jabłka z pomarańczami ale można jednoznacznie zdecydować, który owoc będzie preferowany. Optymalizacja routingu 21 Przykład zmiany AD IGRP at 100 favored OSPF now favored Optymalizacja routingu 22 Przykład zmiany AD Router(config-router)#distance weight [source-ip-address source-mask (access-list-number | name)] RTZ(config)#router rip RTZ(config-router)#distance 105 10.4.0.2 255.255.255.0 Opcjonalne argumenty pozwalają na zastosowanie AD = 105 dla wszystkich tras otrzymanych z 10.4.0.2 Ta wartość ma znaczenie tylko lokalne pozostałe routery będą miały wartość AD = 120. Optymalizacja routingu 23 Przykład zmiany AD dla wszystkich tras otrzymanych z 10.4.0.2 RTZ(config)#router rip RTZ(config-router)#distance 105 10.4.0.2 255.255.255.0 RTZ(config-router)#distance 97 10.3.0.1 255.255.255.0 2 RTZ(config)#access-list 2 permit 192.168.3.0 0.0.0.255 tylko dla trasy do sieci 192.168.3.0/24 otrzymanej z 10.3.0.1 RTZ#show ip route R 192.168.5.0/24 [105/1] via 10.4.0.2, 00:00:02, Serial1 10.0.0.0/16 is subnetted, 5 subnets R 10.2.0.0 [120/1] via 10.3.0.1, 00:00:02, Serial0 C 10.3.0.0 is directly connected, Serial0 R 10.1.0.0 [120/2] via 10.3.0.1, 00:00:02, Serial0 C 10.4.0.0 is directly connected, Serial1 R 192.168.1.0/24 [120/3] via 10.3.0.1, 00:00:02, Serial0 R 192.168.2.0/24 [120/2] via 10.3.0.1, 00:00:02, Serial0 R 192.168.3.0/24 [97/1] via 10.3.0.1, 00:00:02, Serial0 Optymalizacja routingu 24 Metryki Routingu (Routing Metric) Router graniczny dokonuje zmiany metryki podczas redystrybucji trasy, aby zachować zgodność z protokołem docelowym. Cisco IOS ma przypisane domyślne metryki kiedy wybrany protokół jest dystrybuowany do innego: Protocol That Route Is Redistributed Into … Default Seed Metric 0 (interpreted as infinity) 0 (interpreted as infinity) RIP IGRP / EIGRP OSPF 20 for all except BGP routes (BGP routes have a default seed metric of 1) IS-IS 0 BGP BGP metric is set to IGP metric value Optymalizacja routingu 25 Definiowanie nowej metryki Nowa metryka może być zdefiniowana w czasie konfiguracji redystrybucji. Po określeniu nowej metryki w czasie procesu redystrybucji, metryka przyrasta normalnie w ramach systemu autonomicznego zgodnie z zasadami danego protokołu routingu. Wyjątkiem od tej reguły są trasy OSPF E2. Nowa metryka może być zdefiniowana na dwa sposoby: default-metric ustala nowa metrykę dla wszystkich redystrybuowanych tras redistribute ustala specyficzną nową metrykę dla redystrybuowanej trasy Optymalizacja routingu 26 R3(config)# router R3(config-router)# R3(config-router)# R3(config-router)# R3(config-router)# R3(config-router)# R3(config-router)# rip network 172.18.0.0 network 172.19.0.0 router ospf 1 network 192.168.2.0 0.0.0.255 area 0 redistribute rip subnets metric 30 OSPF nowa metryka R3(config)# router R3(config-router)# R3(config-router)# R3(config-router)# R3(config-router)# R3(config-router)# R3(config-router)# rip network 172.18.0.0 network 172.19.0.0 router ospf 1 network 192.168.2.0 0.0.0.255 area 0 redistribute rip subnets default-metric 30 OSPF RIP AS Cost = 100 R2 R1 Table R1 C C R R R 172.16.0.0 172.20.0.0 [120/1] 172.17.0.0 [120/1] 172.19.0.0 [120/2] 172.18.0.0 172.18.0.0 172.17.0.0 172.16.0.0 Table R2 C C C R R 172.17.0.0 172.19.0.0 172.20.0.0 [120/1] 172.16.0.0 [120/1] 172.18.0.0 Cost = 10 192.168.2.0 172.19.0.0 172.20.0.0 R4 R3 Table R3 C C R R R C O 172.18.0.0 172.19.0.0 [120/1] 172.17.0.0 [120/1] 172.20.0.0 [120/2] 172.16.0.0 192.168.2.0 [110/110] 192.168.1.0 Table R4 C C O O O O O 192.168.1.0 192.168.2.0 E2 [110/30] E2 [110/30] E2 [110/30] E2 [110/30] E2 [110/30] 172.16.0.0 172.17.0.0 172.18.0.0 172.19.0.0 172.20.0.0 Metody redystrybucji • One-point redistribution • Tylko jeden router dokonuje redystrybucji typu: one-way lub two-way. One-Point Redistribution RIP • Mogą istnieć inne boundary routers ale nie mają one włączonej / skonfigurowanej redystrybucji. OSPF boundary router • Multipoint redistribution • Wiele routerów dokonuje redystrybucji typu: one-way lub two-way. Multipoint Redistribution RIP OSPF • Większa skłonność do powstawania pętli routingu. boundary routers One-Point Redistribution One-Point One-Way Redistribution RIP OSPF Redistributing from RIP to OSPF Default route to the OSPF network One-Point Two-Way Redistribution RIP OSPF Redistributing from RIP to OSPF and from OSPF to RIP Przykładowy problem One-Point One-Way Redistribution 2 Only R2 is configured to redistribute the EIGRP routes into the OSPF domain. Therefore the external 10.0.0.0 network is redistributed into the OSPF domain with an administrative distance of 110. 3 OSPF O E2 10.0.0.0/8 [110/20] R3 R2 Although R3 has a direct connection to R1, R3 will use the OSPF route via R2 to get to the 10.0.0.0 network due to the lower administrative distance of OSPF (110). This creates a suboptimal routing issue. R1 EIGRP 1 R1 announces the external EIGRP route 10.0.0.0 with an administrative distance of 170 to both R2 and R3. Optymalizacja routingu 30 Multipoint Redistribution Multipoint One-Way Redistribution RIP OSPF Redistributing RIP into OSPF Redistributing RIP into OSPF Multipoint Two-Way Redistribution RIP OSPF Redistributing RIP into OSPF and OSPF into RIP Redistributing RIP into OSPF and OSPF into RIP Multipoint Redistribution Routing Protocol A 2 R2 is configured to redistribute routing protocol B routes. Redistributed protocol B routes 3 R3 R2 Routing Protocol B 1 R3 is configured to redistribute routing protocol B routes. R1 R1 announces protocol B routes to both R2 and R3. Optymalizacja routingu 32 Core & Edge Routing Protocols Często używane pojęcia przy redystrybucji pomiędzy protokołami typu IGP: Core routing protocol Edge routing protocol Jeśli działa wiele protokołów routingu typu IGP: Core routing protocol jest tym bardziej zaawansowanym, docelowym (EIGRP, OSPF). Edge routing protocol jest tym prostszym, starszym (RIP). Optymalizacja routingu 33 Techniki redystrybucji Technique #1 Redistribute routes from the edge into the core. Redistribute a default route from the core into the edge. Technique #2 Redistribute routes from the edge into the core. Edge Routing Protocol Redistribute static routes about the core into the edge. 172.16.0.0 Core Routing Protocol 10.0.0.0 Technique #3 When using multiple boundary routers, redistribute routes from the core into the edge and filter inappropriate routes. Technique #4 Redistribute all routes from the edge into the core. Redistribute all routes from the core into the edge. Then modify the administrative distance associated with redistributed routes so that they are not the selected routes when multiple routes exist for the same destination. Optymalizacja routingu 34 Implementacja redystrybucji Optymalizacja routingu 37 Typowe problemy redystrybucji Pętle routingu Brak zgodności/kompatybilności informacji o routingu Niezgodne czasy zbieżności (dla różnych protokołów) Protokoły typu Classless (RIPv2) i Classful (RIPv1) Optymalizacja routingu 38 Wskazówki dotyczące implementacji redystrybucji Dobre obeznanie z zarządzaną siecią. Tylko routery brzegowe/graniczne (boundary routers) mają uruchomione więcej niż jeden protokół routingu. Wykorzystanie głównie poniższych scenariuszy: one-way redistribution with multiple boundary routers two-way redistribution with a single boundary router Optymalizacja routingu 39 Konfiguracja redystrybucji Polecenie redistribution dostępne jest dla wszystkich protokołów routingu jednak jego zastosowanie/działanie może być różne i zależne od protokołu. Optymalizacja routingu 40 Etapy redystrybucji 1. Zidentyfikować routery brzegowe/graniczne, które będą wykonywać redystrybucję. 2. Wyznaczyć protokół routingu rdzenia (core) 3. Wyznaczyć protokół routingu brzegu (edge) Określić jakie trasy z EDGE mają być propagowane do CORE (ograniczyć ich liczbę!). 4. Określić metodę wrzucania tych tras do rdzenia: Sumować, ograniczać liczbę nowych wpisów w routerze brzegowym / granicznym. 5. Określić jak wrzucać dane z protokołu routingu CORE do protokołu routingu EDGE. Optymalizacja routingu 42 Redystrybucja do RIP R1(config)# router rip R1(config-router)# redistribute ospf 1 metric 3 R1(config-router)# RIP OSPF .1 R1 O 172.16.1.0/24 [110/50] 192.168.1.0 /24 10.1.1.0 /24 Fa0/0 .2 Fa0/0 R2 R 172.16.0.0 [120/3] Table R1 C 10.1.1.0 R 192.168.1.0 [120/1] 0 172.16.1.0 [110/50] Parameter Description protocol The source protocol from which routes are redistributed. Table R2 C 10.1.1.0 C 192.168.1.0 R 172.16.0.0 [120/3] For OSPF, this value is an OSPF process ID. process-id For EIGRP or BGP, this value is an AS number. This parameter is not required for IS-IS. route-type (Optional) A parameter used when redistributing OSPF routes into another routing protocol. (Optional) A parameter used to specify the RIP hop count seed metric for the redistributed route. metric-value map-tag If this value is not specified and no value is specified using the default-metric router configuration command, then the default metric is 0 and interpreted as infinity which means that routes will not be redistributed. (Optional) Specifies the identifier of a configured route map to be interrogated to filter the importation of routes from the source routing protocol to the current RIP routing protocol. Redystrybucja do OSPF R1(config)# router ospf 1 R1(config-router)# redistribute eigrp 100 subnets metric-type 1 R1(config-router)# OSPF EIGRP AS 100 .1 R1 D 172.16.1.0/24 [90/409600] 192.168.1.0 /24 10.1.1.0 /24 Fa0/0 .2 Fa0/0 O E1 172.16.1.0 [110/20] Table R1 C 10.1.1.0 0 192.168.1.0 [110/20] D 172.16.1.0 [90/409600] Parameter Description protocol The source protocol from which routes are redistributed. process-id metric-value map-tag subnets tag-value R2 Table R2 C 10.1.1.0 C 192.168.1.0 O E1 172.16.0.0 [110/20] For EIGRP or BGP, this value is an AS number. This parameter is not required for RIP or IS-IS. (Optional) A parameter that specifies the OSPF seed metric used for the redistributed route. The default metric is a cost of 20 (except for BGP routes, which have a default metric of 1). (Optional) Specifies the identifier of a configured route map to be interrogated to filter the importation of routes from the source routing protocol to the current OSPF routing protocol. ((Optional) OSPF parameter that specifies that subnetted routes should be redistributed. Otherwise, only classful routes are redistributed. (Optional) A 32-bit decimal value attached to each external route to be used by ASBRs. Redystrybucja do EIGRP R1(config)# router eigrp 100 R1(config-router)# redistribute ospf 1 metric 10000 100 255 1 1500 R1(config-router)# EIGRP AS 100 OSPF .1 R1 O 172.16.1.0/24 [110/50] 10.1.1.0 /24 Fa0/0 C 10.1.1.0 0 192.168.1.0 [90/307200] O 172.16.1.0 [110/50] process-id route-type metric-value map-tag .2 Fa0/0 R2 D EX 172.16.1.0/24 [170/281600] Table R1 Parameter protocol 192.168.1.0 /24 Table R2 C 10.1.1.0 C 192.168.1.0 D EX 172.16.1.0 [170/307200] Description The source protocol from which routes are redistributed. For OSPF, this value is an OSPF process ID. For BGP, this value is an AS number. This parameter is not required for RIP or IS-IS. (Optional) A parameter used when redistributing OSPF routes into another routing protocol. Required if the default-metric command is not configured otherwise it is optional . A parameter that specifies the EIGRP seed metric, in the order of bandwidth, delay, reliability, load, and maximum transmission unit (MTU), for the redistributed route. If this value is not specified when redistributing from another protocol and no default metric has been configured, then no routes will not be redistributed. (Optional) Specifies the identifier of a configured route map to be interrogated to filter the importation of routes from the source routing protocol to the current EIGRP routing protocol. Domyślna metryka R1(config)# router ospf 1 R1(config-router)# default-metric 30 R1(config-router)# redistribute eigrp 100 subnets metric-type 1 R1(config-router)# OSPF EIGRP AS 100 .1 R1 D 172.16.1.0/24 [90/409600] 192.168.1.0 /24 10.1.1.0 /24 Fa0/0 .2 Fa0/0 R2 O E1 172.16.1.0 [110/20] Table R1 C 10.1.1.0 0 192.168.1.0 [110/20] D 172.16.1.0 [90/409600] Table R2 C 10.1.1.0 C 192.168.1.0 O E1 172.16.1.0 [110/30] Domyślna metryka jest konfigurowalna. Parametr jest wartością metryki: RIP – liczba hopów OSPF – przypisany koszt EIGRP – parametry: bandwidth (kbps), delay (dziesiątki ms), reliability (0-255), loading (1-255), mtu Domyślna metryka R1(config)# router eigrp 100 R1(config-router)# default-metric 10000 100 255 1 1500 R1(config-router)# redistribute ospf 1 R1(config-router)# EIGRP AS 100 OSPF .1 R1 10.1.1.0 /24 Fa0/0 192.168.1.0 /24 .2 Fa0/0 R2 D EX 172.16.1.0/24 [170/281600] O 172.16.1.0/24 [110/50] Table R1 C 10.1.1.0 0 192.168.1.0 [90/307200] O 172.16.1.0 [110/50] Table R2 C 10.1.1.0 C 192.168.1.0 D EX 172.16.1.0 [170/307200] One Way vs Two Way EIGRP Routes RTB(config-router)#router eigrp 24 RTB(config-router)#redistribute connected metric 10000 100 255 1 1500 RTB(config-router)#redistribute static metric 10000 100 255 1 1500 Którą trasą z R1 do 10.0.0.0 /8? RIP, OSPF i EIGRP są skonfigurowane jednocześnie na routerach • RIP podejmie decyzję: R1 R4 R6 • OSPF podejmie decyzję: R1 R2 R3 R5 R6 • EIGRP podejmie decyzję: R1 R2 R3 R5 R6 Ponieważ EIGRP ma najmniejszy administracyjny dystans to jego trasa zostanie umieszczona w tablicy routingu. Która trasa trafi do tablicy routingu? RIP, OSPF i EIGRP są skonfigurowane jednocześnie na routerach: EIGRP (internal): 192.168.32.0/26 RIP: 192.168.32.0/24 OSPF: 192.168.32.0/19 Optymalizacja routingu 50 Weryfikacja redystrybucji Poznaj topologię sieci – ze szczególną uwagą na redundantne trasy. Prześledź tablice routingu na routerach (głównie brzegowy router oraz wybrane wewnętrzne routery) Sprawdź tablice topologii czy wprowadzone zmiany odniosły skutek. traceroute do sieci z możliwymi różnymi trasami. Rozwiązywanie problemów: traceroute i debug na routerach brzegowych / granicznych oraz wewnętrznych. Optymalizacja routingu 51 Kontrola ruchu aktualizacji routingu Optymalizacja routingu 52 Zarządzanie aktualizacjami routingu Propagowanie informacji o routingu może być zarządzane za pomocą: Passive interface Static routes Default route Route maps Distribute lists Prefix lists Uwagi: Nie ma rozwiązania uniwersalnego dla wszystkich scenariuszy. Różne techniki mogą być używane jednocześnie. Optymalizacja routingu 53 Interfejs pasywny (Passive Interface) Interfejs pasywny zapobiega wysyłaniu i odbieraniu aktualizacji routingu: • RIP: interfejs nasłuchuje (odbiera) ale nie wysyła aktualizacji routingu. • OSPF i EIGRP: interfejs ani nie nasłuchuje ani nie wysyła aktualizacji; brak możliwość ustanowienia sąsiedztwa. passive-interface default Duże korporacje mogę mieć wiele interfejsów do konfiguracji. Konieczne może być ustawienie ponad 100 interfejsów jako pasywne (passive-interface) passive-interface default domyślne ustawienie wszystkich interfejsów jako pasywne. Wybrane interfejsy, w pełni funkcjonalne, można skonfigurować za pomocą polecenia: no passive-interface Optymalizacja routingu 55 Static Routes Default Routes Trasy statyczne: ręcznie skonfigurowane trasy: wymiana ściśle określonych informacji pomiędzy AS, eliminacja routingu dynamicznego na przejściu z LAN do WAN. Konsekwencje stosowania: jeśli istnieje potrzeba ich rozgłaszania poprzez protokół routingu wymagana jest redystrybucja. aby zredukować liczbę tras statycznych można zdefiniować trasę domyślną. Optymalizacja routingu 56 Mapy routingu (Route Maps) Polityki routingu (Policy Routing) Wyrafinowane trasy statyczne. Podobne do ACL, lepsza kontrola nad procesem routingu (np. ip route – bazuje wyłącznie na adresach docelowych) – RM także po adresie źródła oraz portach (jak ACL). Podobne do języków skryptowych: match i set podobne do instrukcji warunkowych “if, then”. Jeśli warunki w match spełnione wtedy set. Podobnie jak ACL Route Maps mogą być używane w różnych poleceniach, konfiguracjach, zastosowaniach, scenariuszach. Optymalizacja routingu 57 Zastosowania map routingu Filtrowanie tras podczas redystrybucji: Wszystkie protokoły routingu IP (czy to problem, że tylko IP?) mogą używać map routingu. redistribute protocol route-map Polityki routingu – PBR (Policy-Based Routing) PBR pozwala zdefiniować polityki routingu bardziej zaawansowane niż tablice routingu bazujące tylko na adresach docelowych. Polecenie ip policy route-map w konfiguracji interfejsu. NAT Mapy routingu dostarczają lepszej kontroli nad procesem translacji adresów. BGP Mapy routingu są podstawowym narzędziem do implementacji polityk w protokole BGP. Optymalizacja routingu 58 Schemat operacji PBR Incoming packet Is there a route map applied the incoming interface? No Yes Is there a match with a deny statement? Yes Forward the packet through the normal routing channel. No Is there a match with a permit statement? R1 Yes Apply set commands. Optymalizacja routingu 59 Mapy routingu (Route Maps) Bardziej wyrafinowane trasy statyczne Zastąpienie routingu dynamicznego: Na styku LAN z WAN Wewnątrz AS Głównie pomiędzy AS Routing Table Routing Policy Optymalizacja routingu 60 Definiowanie mapy routingu Router(config)# route-map map-tag [permit | deny] [sequence-number] Parameter map-tag Description Name of the route map. permit | deny (Optional) A parameter that specifies the action to be taken if the route map match conditions are met; the meaning of permit or deny is dependent on how the route map is used. sequence-number (Optional) A sequence number that indicates the position that a new route map statement will have in the list of route map statements already configured with the same name. Polityki routingu – PBR (Policy-Based Routing) ISP2 Polityki routingu – PBR (Policy-Based Routing) ISP2 RTA(config)#interface e0 RTA(config-if)#ip policy route-map ISP1 RTA(config)#interface e1 RTA(config-if)#ip policy route-map ISP2 RTA(config)#access-list 1 permit 192.168.1.0 0.0.0.255 RTA(config)#access-list 2 permit 172.16.1.0 0.0.0.255 RTA(config)#route-map ISP1 permit 10 RTA(config-route-map)#match ip address 1 RTA(config-route-map)#set interface s0 RTA(config)#route-map ISP2 permit 10 RTA(config-route-map)#match ip address 2 RTA(config-route-map)#set interface s1 63 Polityki routingu – PBR (Policy-Based Routing) A co z ruchem pomiędzy 172.16.1.0 i 192.168.1.0 ?? ISP2 Optymalizacja routingu 64 Mapy routingu – działanie route-map DEMO permit 10 OR AND match X Y Z match A AND set B set C If {(X OR Y OR Z) AND A match} Then {Set B AND C} (and exit route-map) route-map DEMO permit 20 match Q set R Else If Q matches Then set R route-map DEMO permit 30 Else Set nothing (and exit route-map) (and exit route-map) Mapy routingu – działanie Mapa routingu zawiera listę warunków Lista jest przetwarzana od góry do dołu (jak ACL) Numery sekwencyjne są używane do wstawiania i usuwania wpisów Mapa routingu (wpis na niej) może pozwalać albo zabraniać działania trasowania. Pierwsze znalezione dopasowanie jest przetwarzane Wpis w mapie routingu może mieć: Wiele warunków match w tej samej linii (OR) Wiele warunków match w kolejnych liniach (AND) Kiedy znalezione zostanie dopasowanie, wykonana zostanie zdefiniowana akcja i opuszczona mapa routingu. Inne wpisy nie będą przetwarzane. Optymalizacja routingu 66 match Command PBR Description match community Matches a BGP community match interface Matches any routes that have the next hop out of one of the interfaces specified match ip address Matches any routes that have a destination network number address that is permitted by a standard or extended ACL match ip next-hop Matches any routes that have a next-hop router address that is passed by one of the ACLs specified match ip route-source Matches routes that have been advertised by routers and access servers at the address that is specified by the ACLs match length Matches based on the layer 3 length of a packet match metric Matches routes with the metric specified match route-type match tag Matches routes of the specified type Matches tag of a route set Command set as-path set automatic-tag set community PBR Description Modifies an AS path for BGP routes Computes automatically the tag value Sets the BGP communities attribute set default interface Indicates where to output packets that pass a match clause of a route map for policy routing and have no explicit route to the destination set interface Indicates where to output packets that pass a match clause of a route map for policy routing Indicates where to output packets that pass a match clause of a route set ip default next-hop map for policy routing and for which the Cisco IOS software has no explicit route to a destination PBR set ip next-hop set level set local-preference set metric set metric-type set tag set weight Indicates where to output packets that pass a match clause of a route map for policy routing Indicates where to import routes for IS-IS and OSPF Specifies a BGP local preference value Sets the metric value for a routing protocol Sets the metric type for the destination routing protocol Sets tag value for destination routing protocol Specifies the BGP weight value Przykład: Single interface – source IP address Lucy 172.16.4.2/24 172.16.2.1/24 Schroeder 172.16.4.1/24 Linus S0 E0 172.16.4.3/24 172.16.3.1/24 Pigpen Charlie 172.16.1.1/24 172.16.6.1/24 172.16.7.1/24 172.16.1.2/24 172.16.8.1/24 Implementacja polityki routingu wg poniższych reguł: Ruch z 172.16.6.0/24 wysyłany do Lucy Ruch z 172.16.7.0/24 wysyłany do Pigpen Pozostały ruch wysyłany bez zmian Optymalizacja routingu 69 Lucy 172.16.4.2/24 172.16.2.1/24 Schroeder 172.16.4.1/24 Linus S0 E0 172.16.4.3/24 172.16.3.1/24 Pigpen Charlie 172.16.1.1/24 Linus: 172.16.6.1/24 172.16.7.1/24 172.16.8.1/24 inter S0 ip policy route-map Sally access-list 1 permit 172.16.6.0 0.0.0.255 access-list 2 permit 172.16.7.0 0.0.0.255 route-map Sally permit 10 match ip address 1 set ip next-hop 172.16.4.2 route-map Sally permit 15 match ip address 2 set ip next-hop 172.16.4.3 172.16.1.2/24 Polityka routingu na int S0 wysyła przychodzące pakiety do mapy routingu Sally. Wpis 10 używa ACL 1. Jeśli istnieje dopasowanie wtedy ruch jest przekierowywany do Lucy. Jeśli brak dopasowania pakiet jest sprawdzany pod kątem wpisu 15. Jeśli istnieje dopasowanie wtedy ruch jest przekierowywany do Pigpen. Jeśli brak dopasowania pakiet, taki jak z 172.16.8.0/24, jest routowany normalnie. Przykład: Single interface – destination IP address Lucy 172.16.4.2/24 172.16.2.1/24 Schroeder 172.16.4.1/24 Linus S0 E0 172.16.4.3/24 172.16.3.1/24 Pigpen Charlie 172.16.1.1/24 172.16.6.1/24 172.16.7.1/24 172.16.1.2/24 172.16.8.1/24 Implementacja polityki routingu wg poniższych reguł: Ruch z 172.16.1.1 wysyłany do Lucy Ruch z od 172.16.7.1 do 172.16.1.2 wysyłany do Pigpen Pozostały ruch wysyłany bez zmian Optymalizacja routingu 71 Lucy 172.16.4.2/24 172.16.2.1/24 Schroeder 172.16.4.1/24 Linus S0 E0 172.16.4.3/24 172.16.3.1/24 Pigpen Charlie 172.16.1.1/24 172.16.6.1/24 172.16.7.1/24 172.16.1.2/24 172.16.8.1/24 Linus: inter S0 ip policy route-map Sally access-list 101 permit ip any host 172.16.1.1 access-list 102 permit ip host 172.16.7.1 host 172.16.1.2 route-map Sally permit 10 match ip address 101 set ip next-hop 172.16.4.2 route-map Sally permit 15 match ip address 102 set ip next-hop 172.16.4.3 Lucy 172.16.4.2/24 172.16.2.1/24 Schroeder 172.16.4.1/24 FTP Telnet Linus S0 Client Port 1027 FTP data port E0 172.16.4.3/24 Port 1026 FTP cmd port 1 172.16.3.1/24 Pigpen FTP Server Port 21 FTP cmd port Port 20 FTP-data port Intiate Connection SP=1026 DP=21 Connection ACKed SP=21 DP=1026 2 Data sent SP=20 DP=1027 3 Telnet Charlie 172.16.1.1/24 172.16.6.1/24 172.16.7.1/24 172.16.8.1/24 inter E0 172.16.1.2/24 4 Data ACKed SP=1027 DP=20 Client: SP=1026 DP=21 Server: SP= 20 DP=1027 ip policy route-map Rerun ! Used when 172.16.1.1 is the client 1 access-list 105 permit tcp 172.16.1.0 0.0.0.255 any eq ftp 4 access-list 105 permit tcp 172.16.1.0 0.0.0.255 any eq ftp-data ! Used when 172.16.1.1 is the server 3 access-list 105 permit tcp 172.16.1.0 0.0.0.255 eq ftp-data any 2 access-list 105 permit tcp 172.16.1.0 0.0.0.255 eq ftp any access-list 106 permit tcp 172.16.1.0 0.0.0.255 eq telnet any route-map Rerun permit 10 match ip address 105 set ip next-hop 172.16.2.1 route-map Rerun permit 20 match ip address 106 set ip next-hop 172.16.3.1 80 Mapy routingu użyte do redystrybucji Mapy routingu można używać do szczegółowej / precyzyjnej kontroli procesu redystrybucji pomiędzy protokołami routingu. Przykład planu implementacji: Definiowanie (łącznie z nazwą) mapy routingu za pomocą polecenia route-map Definiowanie warunku do spełnienia (polecenie match). Definiowanie akcji do wykonania jeśli warunek jest spełniony (polecenie set). Wybranie mapy routingu, która ma być użyta do redystrybucji. Użycie polecenia redistribute protocol route-map map-tag Optymalizacja routingu 83 Mapy routingu do redystrybucji Router(config)# route-map map-tag [permit | deny] [sequence-number] Definicja mapy routingu Router(config-route-map)# match {conditions} Określenie warunków Router(config-route-map)# set {actions} Określenie działania/akcji Router(config-router)# redistribute protocol [process-id] route-map map-tag Redystrybucja nastąpi tylko przy zachowaniu zgodności z mapą routingu match Command Description match community Matches a BGP community match interface Matches any routes that have the next hop out of one of the interfaces specified match ip address Matches any routes that have a destination network number address that is permitted by a standard or extended ACL match ip next-hop Matches any routes that have a next-hop router address that is passed by one of the ACLs specified match ip route-source Matches routes that have been advertised by routers and access servers at the address that is specified by the ACLs match length Matches based on the layer 3 length of a packet match metric Matches routes with the metric specified match route-type match tag Matches routes of the specified type Matches tag of a route set Command set as-path set automatic-tag set community Description Modifies an AS path for BGP routes Computes automatically the tag value Sets the BGP communities attribute set default interface Indicates where to output packets that pass a match clause of a route map for policy routing and have no explicit route to the destination set interface Indicates where to output packets that pass a match clause of a route map for policy routing set ip default nexthop Indicates where to output packets that pass a match clause of a route map for policy routing and for which the Cisco IOS software has no explicit route to a destination set ip next-hop Indicates where to output packets that pass a match clause of a route map for policy routing set level set local-preference set metric set metric-type set tag set weight Indicates where to import routes for IS-IS and OSPF Specifies a BGP local preference value Sets the metric value for a routing protocol Sets the metric type for the destination routing protocol Sets tag value for destination routing protocol Specifies the BGP weight value Mapy routingu do redystrybucji R1(config)# access-list 23 permit 10.1.0.0 0.0.255.255 R1(config)# access-list 29 permit 172.16.1.0 0.0.0.255 R1(config)# access-list 37 permit 10.0.0.0 0.255.255.255 R1(config)# R1(config)# route-map REDIS-RIP permit 10 R1(config-route-map)# match ip address 23 29 R1(config-route-map)# set metric 500 R1(config-route-map)# set metric-type type-1 R1(config-route-map)# R1(config-route-map)# route-map REDIS-RIP deny 20 R1(config-route-map)# match ip address 37 R1(config-route-map)# R1(config-route-map)# route-map REDIS-RIP permit 30 R1(config-route-map)# set metric 5000 R1(config-route-map)# set metric-type type-2 R1(config-route-map)# R1(config-route-map)# router ospf 10 R1(config-router)# redistribute rip route-map REDIS-RIP subnets R1(config-router)# 10 każdy pakiet routingu spełniający ACL 23 lub 29 będzie miał zmienioną metrykę. 20 każdy pakiet routingu spełniający ACL 37 nie będzie redystrybuowany. 30 wszystkie pozostałe pakiety routingu będą miały zmienioną metrykę. Problem pętli (Route Feedback) OSPF Area 0 RIPv2 R 192.168.1.0 [120/1] O E2 192.168.1.0 [110/20] R1 R3 O E2 192.168.1.0 [110/20] R2 Istnieje możliwość, iż routing feedback może spowodować nieoptymalny routing gdyż trasy są redystrybuowane przez więcej niż jeden router tak jak w konfiguracji typu two-way multipoint redistribution (R1 i R2). Szczegółowa analiza procesu powstawania pętli (routing feedback): • • • • • RIPv2 na R3 ogłasza sieć 192.168.1.0. R1 redystrybuuje sieć 192.168.1.0 do OSPF. OSPF propaguję tę trasę poprzez całą domenę OSPF. Router OSPF może ogłosić sieć 192.168.1.0 do R2. R2 redystrybuuje sieć 192.168.1.0 z OSPF z powrotem do sieci RIPv2 tworząc pętle (routing feedback). Mapy routingu zapobiegające Route Feedback OSPF Area 0 RIPv2 R 192.168.1.0 [120/1] O E2 192.168.1.0 [110/20] R1 R3 O E2 192.168.1.0 [110/20] R2 R1(config)# access-list 1 permit 192.168.1.0 0.0.0.255 R1(config)# route-map OSPF-into-RIP deny 10 R1(config-route-map)# match ip address 1 R1(config-route-map)# route-map OSPF-into-RIP permit 20 R1(config-route-map)# router rip R1(config-router)# redistribute ospf 10 metric 5 route-map OSPF-into-RIP R1(config-router)# router ospf 10 R1(config-router)# redistribute rip subnets R1(config-router)# Aby chronić przed pętlą (routing feedback), na R1 i R2 została dodana mapa routingu o nazwie OSPF-into-RIP. we wpisie 10, każdy pakiet routingu spełniający ACL 1 jest zabroniony i nie będzie redystrybuowany z powrotem do RIP. we wpisie 20, wszystkie inne pakiety routingu są dozwolone i będą redystrybuowane oraz będą miały przypisaną metrykę 5 w protokole RIP. List dystrybucji (Distribute Lists) Precyzyjna metoda kontroli aktualizacji routingu wykorzystująca ACL: Administrator decyduje, o których trasach będą rozgłaszane informacje. Bezpieczeństwo, zmniejszenie obciążenia, dokładniejsze (granularne) zarządzanie, koszty Lista dystrybucji filtruje aktualizacje routingu, zaś typowa ACL filtruje ruch użytkowników. Przykład implementacji: Określić ruch, który ma być filtrowany przez ACL lub mapę routingu. Powiązać listę dystrybucji z ACL lub mapą routingu za pomocą polecenia distribute-list Filtry routingu – zbiór reguł, który dokładnie określa jakie trasy router wysyła lub odbiera w aktualizacjach routingu. Optymalizacja routingu 90 Przykład Nie pokazywać RTZ sieci 10.1.1.0 OUT Optymalizacja routingu 91 Przykład Nie pokazywać RTZ sieci 10.1.1.0 OUT Zastosowane do wszystkich int Optymalizacja routingu 92 Przykład Nie pokazywać RTZ sieci 10.1.1.0 OUT Zastosowane tylko do int S2 RTA(config)#router rip RTA(config-router)#network 10.0.0.0 RTA(config-router)#distribute-list 24 out s2 RTA(config)#access-list 24 deny 10.1.1.0 0.0.0.255 RTA(config)#access-list 24 permit any Optymalizacja routingu 93 Przykład Nie pokazywać RTZ sieci 10.1.1.0 IN s0 Zastosowane do wszystkich int także e0 e0 RTZ Optymalizacja routingu 94 Przykład Nie pokazywać RTZ sieci 10.1.1.0 IN s0 Zastosowane tylko do s0 RTZ(config)#router rip e0 RTZ(config-router)#network 10.0.0.0 RTZ(config-router)#distribute-list 16 in s0 RTZ(config)#access-list 16 deny 10.1.1.0 0.0.0.255 RTZ(config)#access-list 16 permit any Optymalizacja routingu 95 Filtrowanie przychodzących aktualizacji routingu Router(config-router)# distribute-list {access-list-number | name} [route-map map-tag] interface-number] Parameter in [interface-type Description access-list-number | Specifies the standard access list number or name. name map-tag in interface-type interface-number (Optional) Specifies the name of the route map that defines which networks are to be installed in the routing table and which are to be filtered from the routing table. This argument is supported by OSPF only. Applies the access list to incoming routing updates. (Optional) Specifies the interface type and number from which updates are filtered. Nie broni przed wejściem pakietu do routera ale przed wysyłaniem informacji o sieci poprzez wybrany protokół routingu! Filtrowanie wychodzących aktualizacji routingu Router(config-router)# distribute-list {access-list-number | name} [routing-process parameter]] Parameter out [interface-name | routing-process Description access-list-number | Specifies the standard access list number or name. name out Applies the access list to outgoing routing updates. interface-name (Optional) Specifies the name of the interface out of which updates are filtered. routing-process (Optional) Specifies the name of the routing process, or the keyword static or connected, that is being redistributed and from which updates are filtered. routing-process parameter (Optional) Specifies a routing process parameter, such as the AS number of the routing process. distribute-list out/in R1(config-router)# distribute-list out Filter outgoing routing updates R1 R1(config-router)# distribute-list in Filter incoming routing updates R1 Filtrowanie wychodzących aktualizacji routingu EIGRP AS 1 10.0.0.0 192.168.5.0 172.16.0.0 R2 R1 D 10.0.0.0/8 [90/...] S0/0/0 R3 D 172.16.0.0/16 [90/...] D 10.0.0.0/8 [90/...] R2(config)# access-list 7 permit 172.16.0.0 0.0.255.255 R2(config)# R2(config)# router eigrp 1 R2(config-router)# network 172.16.0.0 R2(config-router)# network 192.168.5.0 R2(config-router)# distribute-list 7 out Serial0/0/0 R2(config-router)# Ukrycie sieci 10.0.0.0 przed urządzeniami w sieci 192.168.5.0 Listy dystrybucji zapobieganie pętli tras RIPv2 10.1.0.0/16 10.2.0.0/16 10.3.0.0/16 OSPF 10.0.0.8/30 10.0.0.0/30 R1 R2 S0/0/3 R4 R2(config)# access-list 2 deny 10.8.0.0 0.3.255.255 R2(config)# access-list 2 permit any R2(config)# access-list 3 permit 10.8.0.0 0.3.255.255 R2(config)# router ospf 1 R2(config-router)# network 10.0.0.8 0.0.0.3 area 0 R2(config-router)# redistribute rip subnets R2(config-router)# distribute-list 2 out rip R2(config-router)# router rip R2(config-router)# network 10.0.0.0 R2(config-router)# version 2 R2(config-router)# passive-interface Serial0/0/3 R2(config-router)# redistribute ospf 1 metric 5 R2(config-router)# distribute-list 3 out ospf 1 R2(config-router)# R3 10.8.0.0/16 10.9.0.0/16 10.10.0.0/16 10.11.0.0/16 Listy dystrybucji Dla każdego interfejsu oraz procesu routingu można zdefiniować poniższe listy dystrybucji: RTZ(config)#router rip RTZ(config-router)#distribute-list 1 in RTZ(config-router)#distribute-list 2 out RTZ(config-router)#distribute-list 3 in e0 RTZ(config-router)#distribute-list 4 out e0 RTZ#show ip protocols Routing Protocol is "rip" Sending updates every 30 seconds, next due in 25 seconds Invalid after 180 seconds, hold down 180, flushed after 240 Outgoing update filter list for all interfaces is 2 Ethernet0 filtered by 4 Incoming update filter list for all interfaces is 1 Ethernet0 filtered by 3 Wady list dystrybucji Używanie list dystrybucji do filtrowania tras w protokołach routingu ma kilka wad: Brak kompatybilności z protokołami typu stan łącza (link state) jak OSPF Nie jest łatwo dostosować maskę podsieci (np. sumowanie wielu sieci) ACL są oceniane sekwencyjnie dla każdego prefiksu w aktualizacji routingu Rozszerzone ACL mogą być trudne (niska przejrzystość, wysoka komplikacja) w konfiguracji Listy dystrybucji ukrywają część informacji o sieci co może prowadzić do problemów: Istnieją nadmiarowe ścieżki, protokół dynamiczny wybierze jedną z nich, w razie awarii wybranej skorzysta z zapasowej… jeśli włączona zostanie lista dystrybucji i o zapasowej ścieżce rozgłoszenia nie zostaną wysłane – klapa, brak komunikacji (tak jak w trasach statycznych!!). Optymalizacja routingu 102 Listy prefiksów (Prefix Lists) Listy prefiksów mogą być używane jako alternatywa dla ACL w poleceniach filtrowania aktualizacji routingu. Charakterystyka: Znacząca poprawa wydajności w stosunku do ACL (także bo krótsze listy!) Numerowanie wpisów na listach (łatwa modyfikacja, dodawania itp. itd.) Większa elastyczność przy określaniu maski Optymalizacja routingu 103 Podobieństwa pomiędzy Prefix List i ACL Wiele wpisów: każdy ma test i wynik. Pierwsze dopasowanie jest przetwarzane, działanie permit albo deny. Jeśli brak jakiegokolwiek dopasowania to domyślnie istnieje wpis deny. ALE pusta lista prefiksów pozwala na dowolny prefiks. Optymalizacja routingu 104 Konfiguracja Prefix List Router(config)# ip prefix-list {list-name | list-number} [seq seq-value] {deny | permit} network/length [ge ge-value] [le le-value] Parameter Description list-name The name of the prefix list that will be created (it is case sensitive). list-number The number of the prefix list that will be created. seq seq-value A 32-bit sequence number of the prefix-list statement. Default sequence numbers are in increments of 5 (5, 10, 15, and so on). deny | permit The action taken when a match is found. network / length The prefix to be matched and the length of the prefix. The network is a 32-bit address; the length is a decimal number. ge ge-value (Optional) The range of the prefix length to be matched. The range is assumed to be from ge-value to 32 if only the ge attribute is specified. le le-value (Optional) The range of the prefix length to be matched. The range is assumed to be from length to le-value if only the le attribute is specified. Konfiguracja Prefix List no ip prefix-list list-name ip prefix-list list-name description text Wskazówki: Najlepsza wydajność gdy najczęściej używane wpisy są na samej górze. seq seq-value pozwala wstawiać wpisy pomiędzy już istniejące. Optymalizacja routingu 106 Prefix-list #1 172.16.11.0 AS 65001 172.16.10.0 AS 65000 R3 R2 10.1.1.1 R1 R1(config)# ip prefix-list TEN-ONLY permit 172.16.10.0/8 le 24 R1(config)# router bgp 65000 R1(config-router)# aggregate-address 172.16.0.0 255.255.0.0 R1(config-router)# neighbor 10.1.1.1 remote-as 65001 R1(config-router)# neighbor 10.1.1.1 prefix-list TEN-ONLY out R1(config-router)# exit R1(config)# do show running-config | include ip prefix-list ip prefix-list TEN-ONLY seq 5 permit 172.0.0.0/8 le 24 R1(config)# Zmieniona konfiguracja na ip prefix-list TEN-ONLY permit 172.0.0.0/8 le 24 Tylko pierwsze 8-bitów w adresie jest istotne ze względu na użycie prefiksu /8 W takim przypadku sąsiad R3 nauczy się o sieciach 172.16.0.0/16, 172.16.10.0/24 oraz 172.16.11.0/24. Czyli o trasach, których pierwsze 8-bitów ma wartość 172 a długość prefiksu zwiera się pomiędzy 8 i 24. Prefix-list #2 172.16.11.0 AS 65001 172.16.10.0 AS 65000 R3 R2 10.1.1.1 R1 R1(config)# ip prefix-list TEN-ONLY permit 172.16.10.0/8 le 16 R1(config)# router bgp 65000 R1(config-router)# aggregate-address 172.16.0.0 255.255.0.0 R1(config-router)# neighbor 10.1.1.1 remote-as 65001 R1(config-router)# neighbor 10.1.1.1 prefix-list TEN-ONLY out R1(config-router)# exit R1(config)# Teraz sąsiad R3 nauczy się tylko o sieci 172.16.0.0/16. czyli o trasach, których pierwsze 8-bitów ma wartość 172 a długość prefiksu zwiera się pomiędzy 8 i 16. Prefix-list #3 172.16.11.0 AS 65001 172.16.10.0 AS 65000 R3 R2 10.1.1.1 R1 R1(config)# ip prefix-list TEN-ONLY permit 172.16.10.0/8 ge 17 R1(config)# router bgp 65000 R1(config-router)# aggregate-address 172.16.0.0 255.255.0.0 R1(config-router)# neighbor 10.1.1.1 remote-as 65001 R1(config-router)# neighbor 10.1.1.1 prefix-list TEN-ONLY out R1(config-router)# exit R1(config)# Teraz sąsiad R3 nauczy się tylko o sieciach 172.16.10.0/24 i 172.16.11.0/24. R1 zignoruje parametr /8 i rozgłosi trasy gdy długość prefiksu zwiera się pomiędzy 17 i 32. Prefix-list #4 172.16.11.0 AS 65001 172.16.10.0 AS 65000 R3 R2 10.1.1.1 R1 R1(config)# ip prefix-list TEN-ONLY permit 172.16.10.0/8 ge 16 le 24 R1(config)# router bgp 65000 R1(config-router)# aggregate-address 172.16.0.0 255.255.0.0 R1(config-router)# neighbor 10.1.1.1 remote-as 65001 R1(config-router)# neighbor 10.1.1.1 prefix-list TEN-ONLY out R1(config-router)# exit R1(config)# Teraz sąsiad 10.1.1.1 nauczy się o sieciach 172.16.0.0/16, 172.16.10.0/24 i 172.16.11.0/24 R1 zignoruje parametr /8 i rozgłosi trasy gdy długość prefiksu zwiera się pomiędzy 16 i 24. Prefix-list #5 172.16.11.0 AS 65001 172.16.10.0 AS 65000 R3 R2 10.1.1.1 R1 R1(config)# ip prefix-list TEN-ONLY permit 172.16.10.0/8 ge 17 le 24 R1(config)# router bgp 65000 R1(config-router)# aggregate-address 172.16.0.0 255.255.0.0 R1(config-router)# neighbor 10.1.1.1 remote-as 65001 R1(config-router)# neighbor 10.1.1.1 prefix-list TEN-ONLY out R1(config-router)# exit R1(config)# Teraz sąsiad 10.1.1.1 nauczy się o sieciach 172.16.10.0/24 i 172.16.11.0/24. R1 zignoruje parametr /8 i rozgłosi trasy gdy długość prefiksu zwiera się pomiędzy 17 i 24. Wiele metod kontroli aktualizacji routingu Jak kombinacja: prefix lists, distribute lists i route maps może wpływać na przychodzące i wychodzące informacje o routingu: • Wszystkie metody muszą pozwolić na trasy otrzymane od sąsiadów zanim trafią one do tablicy routingu. • Wyjściowe trasy muszą przejść przez wszystkie metody zanim trafią do sąsiadów. Implementacja kontroli ścieżki (Path Control) • CCNP Routing & Switching (prezentacje) • Rick Graziani • Homer Simpson • Łukasz Sturgulewski Zagadnienia związane z kontrolą ścieżki Jak różne metody kontroli ścieżki wpływają na ruch. Konfiguracja offset-lists w celu kontroli ścieżki. Konfiguracja IP SLA (Service-Level Agreement) w celu kontroli ścieżki. Opis zaawansowanych narzędzi kontroli ścieżki. Optymalizacja routingu 117 Wprowadzenie do kontroli ścieżki (Path Control) Optymalizacja routingu 118 Kontrola ścieżki – wydajność sieci Jaką ścieżką ruch użytkowników będzie się poruszał… Czasem może istnieć tylko jedna ścieżka! Ale w zaawansowanych sieciach nie tylko istnieje redundancja urządzeń ale także ścieżek (zarówno wewnętrznych jak i zewnętrznych). KLUCZEM w wyborach ścieżek jest zastosowany i skonfigurowany protokół routingu: AD, metryki, liczniki – mają wpływ na wybór ścieżki Implementacja wielu protokołów routingu może prowadzić do zakłóceń w pracy sieci (wydajność urządzeń, brak spójności w trasach). Optymalizacja routingu 119 Skutki redundancji w sieci Resiliency (żywotność): Zapewnienie akceptowalnego poziomu dostępu do usług kiedy wydarzy się błąd. Sama redundancja nie gwarantuje żywotności! Availability (dostępność): Czas potrzebny na ustalenie nowej ścieżki, po awarii połączenia, nazywa się czasem zbieżności – im krótszy tym lepszy, zależy od protokołu routingu, dla części aplikacji może nie być wystarczający! Adaptability (zdolność adaptacji): Zmiana parametrów pracy sieci, stanu linków itp. itd. – zdolność adaptacji do zmieniających się warunków (czas!) Performance (wydajność): Używanie wielu linków do optymalnego wykorzystania pasma i nadmiarowych ścieżek. Optymalizacja routingu 120 Skutki redundancji w sieci Wsparcie dla usług sieciowych i aplikacji: Różne metody kontroli ścieżki pozwalają na: zwiększenie bezpieczeństwa, optymalizację wykorzystania połączeń, QoS/CoS. Predictability (przewidywalność) Zarządzanie ścieżkami powinno wynikać z przyjętej i przemyślanej strategii dzięki czemu jest bardziej przewidywalne. Asymetryczny ruch Ruch w jedną stronę może być przesyłany inną ścieżka niż ruch powrotny, to jest raczej wskazane – lepsze wykorzystanie pasma ale trudniejsza analiza. BGP szczególnie ten protokół wymaga uważnego sterowania ścieżkami w obu kierunkach. Optymalizacja routingu 121 Narzędzia kontroli ścieżki Dobry projekt adresacji. Redystrybucja oraz inne protokoły routingu. Characteristic OSPF EIGRP Route Marking Tags for external routes can be added at distribution points Tags for all routes can be configured Metric Can be changed for external routes at redistribution points Can be set using route maps Next hop Can be changed for external routes at redistribution points Can be set for all routes under various conditions Filtering Summary information can be filtered at ABRs and ASBRs Can be configured anywhere for any routes Route summarization Can be configured only on ABRs and ASBRs Can be configured anywhere for any routes; auto summarization is on by default Unequal cost load balancing Not available Available, with variance command. Narzędzia kontroli ścieżki Podstawowe narzędzia: Passive interfaces Distribute lists Prefix lists Administrative distance Route maps Route tagging Zaawansowane narzędzia: Offset lists IP SLAs OER, Virtualization, WAAS Optymalizacja routingu 123 Kontrola ścieżki Ogólnie wszystkie omawiane zagadnienia w tej prezentacji służą zarządzaniem ścieżką jaką będą poruszały się dane użytkowników. KLUCZOWE jest posiadanie strategii / pomysłu zarządzania ścieżkami a następnie dobranie do tego celu odpowiednich narzędzi. Offset-Lists offset list jest mechanizmem pozwalającym na zwiększenie przychodzących i wychodzących metryk dla tras poznanych poprzez RIP i EIGRP. offset list może być limitowana poprzez ACL oraz interfejsy. Aby utworzyć offset-list, należy użyć polecenia offset-list. wartość offsetu jest dodawana do metryki routingu. Optymalizacja routingu 125 Definiowanie Offset-List Router(config-router)# offset-list {access-list-number | access-list-name} {in | out} offset [interface-type interface-number] Parameter access-list-number | access-list-name Description Standard access list number or name to be applied. Access list number 0 indicates all access lists. If the offset value is 0, no action is taken. in Applies the access list to incoming metrics. out Applies the access list to outgoing metrics. offset Positive offset to be applied to metrics for networks matching the access list. If the offset is 0, no action is taken interface-type interface-number (Optional) Interface type and number to which the offset list is applied. Przykład Offset List R1 LAN ma dostęp do ISP poprzez R4 or R5. • Mniej hop’ów, lepsza ścieżka wg RIP Offset list i ACL na R2 sprawia że preferowana ścieżka do172.16.0.0 będzie prowadziła poprzez R4. • offset-list doda offset równy 2 do metryki otrzymanej od R5. 1.54 Mbps R1 R2 1.54 Mbps R3 R4 S0/0/0 Internet Service Provider 64 kbps RIPv2 R5 R2(config)# access-list 21 permit 172.16.0.0 0.0.255.255 R2(config)# router rip R2(config-router)# offset-list 21 in 2 serial 0/0/0 Weryfikacja Offset Lists traceroute weryfikacja ścieżki. show ip route aktualna metryka dla danej sieci. show ip eigrp topology weryfikacja topologii dla EIGRP debug ip eigrp debug ip rip Optymalizacja routingu 128 IP SLA (Service Level Agreements) Optymalizacja routingu 129 Przykładowy scenariusz dla IP SLA ISP 1 Branch Site 10.1.1.0 R2 .1 Internet R1 172.16.1.0 ISP 2 .1 R3 2 x ISP, linki do ISP OK., problem z linkami/infrastrukturą u ISP1, routing dynamiczny da radę ale nie jest praktyczny! A może zróbmy PBR z testowaniem zasobów u ISP (np. DNS) albo w Internecie? Jak testować zasoby? ODP: IP SLA Kontrola ścieżki z użyciem IP SLA IP Service Level Agreements (SLA) używa aktywnego monitorowania ruchu w celu pomiaru wydajności / jakości działania sieci. IP SLA wysyła dane poprzez sieć do innych urządzeń obsługujących IP SLA i na podstawie odpowiedzi ocenia stan / zdrowie sieci i usług. IP SLA może być wysyłane pomiędzy: Urządzeniami Cisco Urządzeniami Cisco a hostami / serwerami Optymalizacja routingu 131 IP SLA Zbierane informacje pozwalają określić: Dostępność zasobów sieciowych (Network resource availability) Czas odpowiedzi (Response time) Opóźnienie (One-way latency) Zmienność opóźnienia (Jitter - interpacket delay variance) Utracone pakiety (Packet loss) Wydajność aplikacji (Application performance: VoIP, MPLS, QoS) Czas odpowiedzi serwera (Server response time) Optymalizacja routingu 132 Source, Responder, Operation IP SLA source – wysyła próbne pakiety do celu Należy skonfigurować jakiego typu będą to pakiety. IP SLA control protocol – komunikacja kontrolna z celem, można używać weryfikacji tożsamości opartej na MD5. IP SLA responder – odbiera próbne pakiety ze źródła, wysyła odpowiedzi. IP SLA operation – pomiary zawierające protokoły, częstotliwość, pułapki oraz poziomy. Optymalizacja routingu 133 Operacje IP SLA Istnieją dwa typy operacji: Gdy cel nie jest IP SLA responder, wtedy pozostaje głównie zwykłe ICMP Gdy cel jest IP SLA responder, dostępna większa liczba protokołów i możliwych do zebrania statystyk. IP SLAs Source Generated ICMP traffic to measure network response R1 IP SLAs Source DNS Server R2 Generated traffic to measure the network R1 IP SLAs Responder R2 MIB data retrieved via SNMP Definiowanie operacji IP SLA Definiowanie obiektu IP SLA i przejście do trybu konfiguracji IP SLA. Router(config)# ip sla operation-number Numer operacji SLA ip sla Większość opcji istnieje dla celu typu Responder, dla Non-responder używa się głównie icmp-echo. R1(config)# ip sla 1 R1(config-ip-sla)# ? IP SLAs entry configuration commands: dhcp DHCP Operation dns DNS Query Operation exit Exit Operation Configuration frame-relay Frame-relay Operation ftp FTP Operation http HTTP Operation icmp-echo ICMP Echo Operation icmp-jitter ICMP Jitter Operation path-echo Path Discovered ICMP Echo Operation path-jitter Path Discovered ICMP Jitter Operation slm SLM Operation tcp-connect TCP Connect Operation udp-echo UDP Echo Operation udp-jitter UDP Jitter Operation voip Voice Over IP Operation R1(config-ip-sla)# Definiowanie operacji IP SLA ICMP Echo Definiowanie operacji ICMP echo ze źródła do celu typu non-responder. Router(config-ip-sla)# icmp-echo {destination-ip-address | destination-hostname} [source-ip {ip-address | hostname} | source-interface interface-name] Parameter Description destination-ip-address | Destination IPv4 or IPv6 address or hostname. destination-hostname source-ip {ip-address | hostname} source-interface interface-name (Optional) Specifies the source IPv4 or IPv6 address or hostname. When a source IP address or hostname is not specified, IP SLAs chooses the IP address nearest to the destination. (Optional) Specifies the source interface for the operation. icmp-echo R1(config-ip-sla)# icmp-echo 209.165.201.30 R1(config-ip-sla-echo)# ? IP SLAs echo Configuration Commands: default Set a command to its defaults exit Exit operation configuration frequency Frequency of an operation history History and Distribution Data no Negate a command or set its defaults owner Owner of Entry request-data-size Request data size tag User defined tag threshold Operation threshold in milliseconds timeout Timeout of an operation tos Type Of Service verify-data Verify data vrf Configure IP SLAs for a VPN Routing/Forwarding in-stance R1(config-ip-sla-echo)# Harmonogram operacji IP SLA Router(config)# ip sla schedule operation-number [life {forever | seconds}] [start-time {hh:mm[:ss] [month day | day month] | pending | now | after hh:mm:ss}] [ageout seconds] [recurring]] Parametry polecenia ip sla schedule Parameter operation-number Description Number of the IP SLAs operation to schedule. life forever (Optional) Schedules the operation to run indefinitely. life seconds (Optional) Number of seconds the operation actively collects information. The default is 3600 seconds (one hour). start-time (Optional) Time when the operation starts. hh:mm[:ss] Specifies an absolute start time using hour, minute, and (optionally) second. Use the 24-hour clock notation. month day (Optional) Name of the month to start the operation in. If month is not specified, the current month is used. (Optional) Number of the day (in the range 1 to 31) to start the operation on. If a day is not specified, the current day is used. pending (Optional) No information is collected. This is the default value. now (Optional) Indicates that the operation should start immediately. after hh:mm:ss (Optional) Indicates that the operation should start this amount of time after this command was entered. ageout seconds (Optional) Number of seconds to keep the operation in memory when it is not actively collecting information (default is 0 seconds which means it never ages out). recurring (Optional) Indicates that the operation will start automatically at the specified time and for the specified duration every day. Parametry śledzenia obiektu IP SLA Router(config)# track object-number ip sla operation-number {state | reachability} Parameter object-number operation-number state reachability Description Object number representing the object to be tracked. The range is from 1 to 500. Number used for the identification of the IP SLAs operation you are tracking. Tracks the operation return code. Tracks whether the route is reachable. R1(config)# track 1 ip sla 1 reachability R1(config-track)# ? Tracking instance configuration commands: default Set a command to its defaults delay Tracking delay exit Exit from tracking configuration mode no Negate a command or set its defaults R1(config-track)# Opóźnienie zmiany statusu śledzonego obiektu Router(config-track)# delay {up seconds [down seconds] | [up seconds] down seconds} Parameter up down seconds Description Time to delay the notification of an up event. Time to delay the notification of a down event. Delay value, in seconds. The range is from 0 to 180 with the default being 0. Routing statyczny i IP SLA ip route prefix mask address interface dhcp distance name next-hop-name permanent track number tag tag Parameter Description prefix mask The IP network and subnet mask for the remote network to be entered into the IP routing table. address The IP address of the next hop that can be used to reach the destination network. interface The local router outbound interface to be used to reach the destination network. dhcp distance name next-hop-name permanent track number tag tag (Optional) Enables a DHCP server to assign a static route to a default gateway. (Optional) The administrative distance to be assigned to this route. (Optional) Applies a name to the specified route. (Optional) Specifies that the route will not be removed from the routing table even if the interface associated with the route goes down. (Optional) Associates a track object with this route. Valid values for the number argument range from 1 to 500. (Optional) A value that can be used as a match value in route maps. Przykładowy scenariusz dla IP SLA IP SLA 11 wysyła ciągle ICMP Echo Requests do serwera DNS (10.1.3.3) co 10 sekund. IP SLA śledzi ten obiekt i tak długo jak serwer DNS jest dostępny domyślna trasa do R2 będzie w tablicy routingu. ISP 1 10.1.3.3 Customer A Primary Path 10.1.1.0 R2 .1 Internet R1 172.16.1.0 ISP 2 .1 172.16.3.3 Backup Path R3 R1(config)# ip sla 11 R1(config-ip-sla)# icmp-echo 10.1.3.3 R1(config-ip-sla-echo)# frequency 10 R1(config-ip-sla-echo)# exit R1(config)# ip sla schedule 11 life forever start-time now R1(config)# track 1 ip sla 11 reachability R1(config-track)# delay down 10 up 1 R1(config-track)# exit R1(config)# ip route 0.0.0.0 0.0.0.0 10.1.1.1 2 track 1 Przykładowy scenariusz dla IP SLA ISP 1 10.1.3.3 Customer A Primary Path 10.1.1.0 R2 .1 Internet R1 172.16.1.0 ISP 2 .1 172.16.3.3 Backup Path R3 R1(config)# ip sla 22 R1(config-ip-sla)# icmp-echo 172.16.3.3 R1(config-ip-sla-echo)# frequency 10 R1(config-ip-sla-echo)# exit R1(config)# ip sla schedule 22 life forever start-time now R1(config)# track 2 ip sla 22 reachability R1(config-track)# delay down 10 up 1 R1(config-track)# exit R1(config)# ip route 0.0.0.0 0.0.0.0 172.16.1.1 3 track 2 Advanced Path Control Tools Cisco IOS Optimized Edge Routing Virtualization Cisco Wide Area Application Services Optymalizacja routingu 168 Cisco IOS OER (Optimized Edge Routing) Cisco IOS OER is intended for sites using multiple Internet or WAN service providers. Cisco IOS OER uses tools such as Cisco IOS IP SLAs to automatically detect network service degradation and to make dynamic routing decisions and adjustments based on criteria such as response time, packet loss, jitter, path availability, traffic load distribution, and so forth. In contrast, normal routing protocols focus on detecting a routing path using static routing metrics, rather than the condition of the service over that path. Optymalizacja routingu 169 Cisco IOS OER Operation The Cisco IOS OER border routers monitor route prefixes information and gather performance statistics over each external interface (in this example, using Cisco IOS IP SLAs). This information is periodically reported to the master controller. • If the prefixes and exit links comply with a configured policy, routing remains as is. • If not, the master controller makes a policy-based decision and notifies the border routers, which change the path, by either adding static routes or changing routing protocol parameters. Virtualization Virtualization is another advanced technology that includes benefits such as traffic segregation across a common physical network infrastructure. An example of virtualization is the use of virtual routing and forwarding (VRF) tables, which are virtual routing tables used to separate the routing function by group, on one physical router. For example, employee routes could be kept separate from guest routes by using two different VRFs. These VRFs could also be associated with other virtualization and traffic segregation elements on the network, such as virtual LANs (VLANs), virtual private networks (VPNs), and generic routing encapsulation (GRE) tunnels, to provide an end-to-end, segregated path across the network. Optymalizacja routingu 171 Cisco WAAS (Wide Area Application Services) Cisco WAAS is a good example of the use of PBR to adjust the path of traffic based on advanced services for that traffic, to provide both scalability and high availability. Technologies such as Web Cache Communications Protocol (WCCP) perform a similar function, which is to have routers redirect normal traffic flows into Cisco WAAS devices, where a series of data reduction, flow optimization, and application acceleration services are implemented, and then have them route the flows back into their normal path across the WAN. This use of path control is becoming common in networks with branch offices. Optymalizacja routingu 172 Podsumowanie – kontrola ścieżki Redundancja – współcześnie jedno z kluczowych słów w systemach informatycznych, zapewnia: elastyczność, dostępność, adaptacyjność, wydajność, wsparcie dla usług sieciowych i aplikacji, przewidywalność, asymetryczny ruch. Kontrola ścieżki powinna zawierać między innymi: dobry projekt adresacji sieci, redystrybucja i inne cechy protokołów routingu oraz: passive interfaces, distribute lists, prefix lists, administrative distance, route maps/PBR, route tagging, offset lists, IP SLAs. Optymalizacja routingu 173