Specify a Next Hop IP Address for Static Routes
Introduction
Ten dokument opisuje podstawową koncepcję tras statycznych. Scenariusz problemowy jest używany w celu zademonstrowania okoliczności, w których pożądane jest określenie interfejsu, przez który adres IP następnego skoku może być osiągnięty podczas konfigurowania trasy statycznej. Niezastosowanie się do tego może prowadzić do niepożądanego zachowania i uszkodzenia stanu sieci.
Informacje podstawowe
Trasy statyczne są używane z wielu powodów i są często używane, gdy nie ma dynamicznej trasy do docelowego adresu IP, lub gdy chcesz zastąpić dynamicznie nauczoną trasę.
Domyślnie, trasy statyczne mają odległość administracyjną równą jeden, co daje im pierwszeństwo przed trasami z dowolnego dynamicznego protokołu routingu. Po zwiększeniu odległości administracyjnej do wartości większej niż w przypadku dynamicznego protokołu routingu trasa statyczna może stanowić zabezpieczenie w przypadku awarii routingu dynamicznego. Na przykład trasy oparte na protokole Enhanced Interior Gateway Routing Protocol (EIGRP) mają domyślną odległość administracyjną 90 dla tras wewnętrznych i 170 dla tras zewnętrznych. Aby skonfigurować trasę statyczną, która jest zastępowana przez trasę EIGRP, należy określić odległość administracyjną większą niż 170 dla trasy statycznej.
Ten rodzaj trasy statycznej z dużą odległością administracyjną jest nazywany pływającą trasą statyczną. Jest ona instalowana w tablicy routingu tylko wtedy, gdy dynamicznie uczona trasa zniknie. Przykładem pływającej trasy statycznej jest ip route 172.31.10.0 255.255.255.0 10.10.10.2 101.
Uwaga: Odległość administracyjna równa 255 jest uważana za nieosiągalną, a trasy statyczne z odległością administracyjną równą 255 nigdy nie są wprowadzane do tablicy routingu.
Trasa statyczna do interfejsu bez adresu IP następnego skoku
Jeśli wskażesz trasę statyczną do interfejsu i nie określisz adresu IP następnego skoku, trasa jest wstawiana do tablicy routingu tylko wtedy, gdy interfejs jest aktywny. Taka konfiguracja nie jest zalecana, ponieważ gdy trasa statyczna wskazuje na interfejs i nie ma informacji o następnym skoku, router traktuje każdy z hostów w zasięgu trasy jako bezpośrednio połączony przez ten interfejs. Przykładem takiej trasy statycznej jest ip route 0.0.0.0.0 0.0.0 Ethernet0.
W przypadku tego typu konfiguracji router wykonuje protokół ARP (Address Resolution Protocol) na Ethernecie dla każdego miejsca docelowego, które router znajdzie poprzez trasę domyślną, ponieważ router uważa wszystkie te miejsca docelowe za bezpośrednio połączone z Ethernetem 0. Ten rodzaj trasy statycznej, szczególnie jeśli jest używany przez wiele pakietów do wielu różnych podsieci docelowych, może powodować wysokie wykorzystanie procesora i bardzo dużą pamięć podręczną ARP (wraz z błędami alokacji pamięci). Dlatego ten rodzaj trasy statycznej nie jest zalecany.
Gdy określisz adres następnego skoku na bezpośrednio połączonym interfejsie, router nie wykonuje ARP dla każdego adresu docelowego. Przykładem jest ip route 0.0.0.0 0.0.0.0 Ethernet0 192.168.1.1. Możesz określić tylko bezpośrednio podłączony adres następnego skoku, ale nie jest to zalecane z powodów, które są opisane w tym dokumencie. Nie musisz określać bezpośrednio podłączonego adresu next hop. Możesz określić adres zdalnego następnego skoku oraz interfejs, do którego jest on rekurencyjny.
Jeśli istnieje możliwość, że interfejs z następnym skokiem przestanie działać i następny skok będzie osiągalny przez trasę rekurencyjną, wtedy powinieneś określić zarówno adres IP następnego skoku, jak i alternatywny interfejs, przez który następny skok powinien zostać znaleziony. Na przykład, ip route 10.0.0.1 255.255.255.255 Serial 3/3 192.168.20.1. Dodanie alternatywnego interfejsu umożliwia instalację trasy statycznej w sposób bardziej deterministyczny.
Pływający przykład trasy statycznej
Przykład ten opisuje użycie pływających tras statycznych i ilustruje potrzebę określenia zarówno interfejsu wyjściowego, jak i adresu następnego skoku za pomocą polecenia trasy statycznej.
Problem
Przy konfiguracji sieci, która jest zilustrowana na następnym obrazku, jeden host 172.31.10.1 ma połączenie z Internetem. W tym przykładzie, host nawiązuje połączenie ze zdalnym hostem internetowym 10.100.1.1:
W tej konfiguracji, podstawowym łączem jest łącze pomiędzy portem szeregowym 1/0 na R1 a portem szeregowym 1/0 na R2 dla ruchu do i z hosta 172.31.10.1 do Internetu. Host 10.100.1.1 jest tutaj używany jako przykład hosta internetowego. Łącze pomiędzy portem szeregowym 2/0 na R1 a portem szeregowym 2/0 na R2 jest łączem zapasowym. Łącze zapasowe powinno być używane tylko wtedy, gdy łącze podstawowe zawiedzie. Jest to realizowane za pomocą tras statycznych, które wskazują na łącze podstawowe oraz za pomocą zmiennych tras statycznych, które wskazują na łącze zapasowe.
Na R1 istnieją dwie trasy statyczne do tego samego celu (172.31.10.0/24). Jedna trasa jest zwykłą trasą statyczną, a druga trasa jest pływającą trasą statyczną, która jest zapasową lub nadmiarową ścieżką do sieci docelowej w sieci LAN. Problem w tym scenariuszu polega na tym, że pływająca trasa statyczna nigdy nie jest instalowana w tablicy routingu, gdy podstawowe łącze jest wyłączone.
Tak wygląda konfiguracja na R1:
hostname R1
!
interface Serial1/0
ip address 10.10.10.1 255.255.255.252
!
interface Serial2/0
ip address 10.10.20.1 255.255.255.252
!
ip route 10.0.0.0 255.0.0.0 192.168.10.2
! This is the primary route to get to hosts on the Internet.
ip route 172.31.10.0 255.255.255.0 10.10.10.2
! This is the preferred route to the LAN.
ip route 172.31.10.0 255.255.255.0 10.10.20.2 250
! This is the floating static route to the LAN.
Tak wygląda konfiguracja na R2:
hostname R2
!
interface Serial1/0
ip address 10.10.10.2 255.255.255.252
!
interface Serial2/0
ip address 10.10.20.2 255.255.255.252
!
ip route 0.0.0.0 0.0.0.0 10.10.10.1
ip route 0.0.0.0 0.0.0.0 10.10.20.1 250
!
To jest tabela routingu dla R1:
R1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 5 subnets, 3 masks
S 10.0.0.0/8 via 192.168.10.2
C 10.10.10.0/30 is directly connected, Serial1/0
L 10.10.10.1/32 is directly connected, Serial1/0
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 via 10.10.10.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
Gdy wykonywany jest ping z hosta do hosta internetowego 10.100.1.1, działa zgodnie z oczekiwaniami:
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 73/78/80 ms
A traceroute z hosta do hosta internetowego 10.100.1.1 pokazuje, że:
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 10.10.10.1 31 msec 39 msec 39 msec
3 192.168.10.2 80 msec * 80 msec
Pierwotnie używane jest łącze 10.10.10.0/30.
Jeśli wyłączysz port szeregowy 1/0 w R1 w celu przetestowania przełączania awaryjnego, powinieneś oczekiwać, że R1 zainstaluje zmienną trasę statyczną do lokalnej sieci LAN 172.31.10.0, a R2 zainstaluje zmienną trasę statyczną do 0.0.0.0 przez 10.10.20.1. Należy spodziewać się przepływu ruchu przez łącze zapasowe.
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#interface serial1/0
R1(config-if)#shutdown
R1(config-if)#end
R1#
Jednakże trasa statyczna dla sieci LAN 172.31.10.0/24 pozostaje w tablicy routingu dla R1:
R1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks
S 10.0.0.0/8 via 192.168.10.2
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 via 10.10.10.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
R1#show ip route 172.31.10.0
Routing entry for 172.31.10.0/24
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 10.10.10.2
Route metric is 0, traffic share count is 1
R1#show ip route 10.10.10.2
Routing entry for 10.0.0.0/8
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 192.168.10.2
Route metric is 0, traffic share count is 1
Ping i traceroute z hosta już nie działają:
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
…
Pływająca trasa statyczna nie jest zainstalowana na R1, a podstawowa trasa statyczna nadal znajduje się w tablicy routingu dla R1, mimo że łącze portu szeregowego 1/0 jest wyłączone. Dzieje się tak, ponieważ trasy statyczne są z natury rekurencyjne. Zawsze zachowujesz trasę statyczną w tablicy routingu tak długo, jak długo masz trasę do następnego skoku.
W tym scenariuszu problemowym, można by oczekiwać, że skoro podstawowe łącze jest wyłączone, powinieneś mieć pływającą trasę statyczną z odległością administracyjną 250 zainstalowaną w tablicy routingu na R1. Jednakże, pływająca trasa statyczna nie jest zainstalowana w tablicy routingu, ponieważ zwykła trasa statyczna pozostaje w tablicy routingu. Adres następnego skoku 10.10.10.2 jest pomyślnie rekursywny (do 192.168.10.2) poprzez trasę statyczną 10.0.0.0/8, która jest obecna w tablicy routingu.
Rozwiązanie
Skonfiguruj trasę statyczną na R1, gdzie następny skok nie może być rekursywny do innej trasy statycznej. Cisco zaleca, aby skonfigurować zarówno interfejs wychodzący, jak i adres następnego skoku dla trasy statycznej. W przypadku interfejsu szeregowego, specyfikacja interfejsu wychodzącego jest wystarczająca, ponieważ interfejs szeregowy jest interfejsem typu punkt-punkt. Jeśli interfejsem wychodzącym jest interfejs Ethernet, wtedy musisz skonfigurować zarówno interfejs wychodzący jak i adres next hop.
Tutaj trasa statyczna dla sieci LAN jest skonfigurowana ze specyfikacją interfejsu wychodzącego:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#no ip route 172.31.10.0 255.255.255.0 10.10.10.2
R1(config)#ip route 172.31.10.0 255.255.255.0 Serial1/0
R1(config)#end
R1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks
S 10.0.0.0/8 via 192.168.10.2
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 via 10.10.20.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
Ping i traceroute z hosta do hosta internetowego teraz działają, a łącze zapasowe jest używane:
R1#show ip route 172.31.10.0
Routing entry for 172.31.10.0/24
Known via "static", distance 250, metric 0 (connected)
Routing Descriptor Blocks:
* 10.10.20.2
Route metric is 0, traffic share count is 1
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 76/79/80 ms
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 10.10.20.1 38 msec 39 msec 40 msec
3 192.168.10.2 80 msec * 80 msec
Wnioski
Cisco zdecydowanie zaleca, aby podczas konfigurowania tras statycznych określać interfejs wychodzący i adres IP następnego skoku. Jeśli interfejs wychodzący jest łączem typu punkt-punkt (np. łącze szeregowe), określenie adresu następnego skoku nie jest konieczne.