이 문서는 잘못된 인터페이스를 가리키는 캐시된 유효한 Cisco Express Forwarding 인접성으로 인해 발생한 Cisco CEF(Express Forwarding) 라우팅 루프 및 최적 상태가 아닌 라우팅의 문제를 해결하는 데 도움이 됩니다.다음과 같은 이유로 인해 잘못된 인터페이스가 있는 인접성이 생성됩니다.
고정 경로는 멀티 액세스 인터페이스를 직접 가리킵니다.
유효한 Cisco Express Forwarding 인접성은 ARP(Proxy Address Resolution Protocol) 회신의 결과로 작성됩니다.
이 문서에서 사용하는 몇 가지 개념을 더 잘 이해하려면 다음 리소스를 사용하십시오.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
라우터 R1은 직렬 8/0을 통해 R3에 연결되고 라우터 R2는 직렬 8/0을 통해 R4에 연결됩니다. 이 그림에서 볼 수 있듯이 R1과 R2는 이더넷 0/0을 통해 연결됩니다.
R2는 R4에서 10.10.34.0/24에 대한 eBGP(Border Gateway Protocol) 접두사 업데이트를 수신합니다. R2는 iBGP(internal BGP)를 통해 이 접두사를 R1에 전달합니다.
R2에는 R4의 직렬 8/0 IP 주소 10.10.24.4을 가리키는 고정 기본 경로(0.0.0.0/0)이 있습니다.
R2에는 R2와 R4 간의 직렬 연결이 실패할 경우 패킷을 라우팅하기 위해 인터페이스 이더넷 0/0을 가리키는 백업 부동 기본 경로(IP 경로 0.0.0.0 0.0.0.0 Ethernet0/0 10)도 있습니다.
R1에는 IP 주소가 10.10.13.3인 R3의 Serial 8/0을 가리키는 기본 경로가 있습니다.
10.10.34.0/24으로 향하는 IP 트래픽은 R1과 R2 사이에서 루프됩니다. R1에서 traceroute 명령 출력을 확인합니다.
R1#traceroute 10.10.34.4 Type escape sequence to abort. Tracing the route to 10.10.34.4 1 192.168.12.2 20 msec 20 msec 20 msec 2 192.168.12.1 8 msec 12 msec 8 msec 3 192.168.12.2 8 msec 8 msec 12 msec 4 192.168.12.1 12 msec ...
R1의 이더넷 0/0(IP 주소 192.168.12.1)과 R2의 이더넷 0/0(IP 주소 192.168.12.2) 사이에서 10.10.34.4 홉으로 향하는 트래픽에 유의하십시오. 10.10.34.0/24으로 향하는 R1의 트래픽은 iBGP 학습 접두사 10.10.34.0/24 때문에 R2로 이동해야 합니다. 그런 다음 R2에서 트래픽은 R4로 라우팅해야 합니다. 그러나 traceroute 명령 출력은 R1과 R2 간의 라우팅 루프를 확인합니다.
R1 |
---|
hostname R1 ! ip subnet-zero ! ip cef ! interface Ethernet0/0 ip address 192.168.12.1 255.255.255.0 ! interface Serial8/0 ip address 10.10.13.1 255.255.255.0 ! router bgp 11 no synchronization bgp log-neighbor-changes neighbor 10.10.13.3 remote-as 12 neighbor 192.168.12.2 remote-as 11 no auto-summary ! ip route 0.0.0.0 0.0.0.0 10.10.13.3 |
R2 |
---|
hostname R2 ! ip cef ! interface Ethernet0/0 ip address 192.168.12.2 255.255.255.0 ! interface Serial8/0 ip address 10.10.24.2 255.255.255.0 ! router bgp 11 no synchronization bgp log-neighbor-changes network 192.168.12.0 neighbor 10.10.24.4 remote-as 10 neighbor 192.168.12.1 remote-as 11 neighbor 192.168.12.1 next-hop-self no auto-summary ! ip route 0.0.0.0 0.0.0.0 10.10.24.4 ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10 ! |
10.10.34.4으로 향하는 패킷은 R1과 R2 사이에 반복되므로 문제 해결을 시작합니다.먼저 R1에서 IP 라우팅을 확인합니다. show ip route 10.10.34.0 명령 출력은 10.10.34.0/24으로 향하는 패킷의 다음 홉을 확인합니다. traceroute 명령 first hop과 일치합니다. 여기서 패킷은 next hop 192.168.12.2으로 전송되며 R1에서 패킷이 올바르게 스위칭됩니다.
R1#show ip route 10.10.34.0 Routing entry for 10.10.34.0/24 Known via "bgp 11", distance 200, metric 0 Tag 10, type internal Last update from 192.168.12.2 00:22:59 ago Routing Descriptor Blocks: * 192.168.12.2, from 192.168.12.2, 00:22:59 ago Route metric is 0, traffic share count is 1 AS Hops 1
다음 단계는 R2의 IP 라우팅 테이블을 확인하는 것입니다. 이 show ip route 10.10.34.0 명령 출력에서 10.10.34.0으로 향하는 패킷은 Serial 8/0에서 next hop 10.10.24.4으로 라우팅되어야 합니다. 그러나 traceroute 명령은 R1으로 전환된 패킷을 IP 주소 192.168.12.1으로 다시 전환하여 표시합니다. 추가 조사가 R2에서 다음 홉으로 향하는 패킷을 출력할 때 10.10.24.4 대신 traceroute 명령).
R2#show ip route 10.10.34.0 Routing entry for 10.10.34.0/24 Known via "bgp 11", distance 20, metric 0 Tag 10, type external Last update from 10.10.24.4 00:42:32 ago Routing Descriptor Blocks: * 10.10.24.4, from 10.10.24.4, 00:42:32 ago Route metric is 0, traffic share count is 1 AS Hops 1
이 시점에서 Cisco Express Forwarding-switched 네트워크에서 패킷 포워딩 결정은 다음 내용으로 구성된다는 것을 이해하는 것이 중요합니다.
가장 긴 접두사 일치에 대한 라우팅 테이블 조회.
FIB(Forwarding Information Base) 조회
라우팅 테이블이 확인되었으므로 Cisco Express Forwarding FIB를 확인하십시오.show ip cef 10.10.34.4 detail 명령의 결과에서 Cisco Express Forwarding 스위치는 Serial 8/0에서 next hop 대신 10.10.34.4 이더넷 0/0을 로그아웃합니다(show ip route 10.10.34.0 명령 출력에 표시됨). 이러한 불일치가 네트워크에 루프를 생성합니다.
R2#show ip cef 10.10.34.4 detail 10.10.34.4/32, version 19, cached adjacency 10.10.34.4 0 packets, 0 bytes via 10.10.34.4, Ethernet0/0, 0 dependencies next hop 10.10.34.4, Ethernet0/0 valid cached adjacency
다음 단계는 Cisco Express Forwarding 인접성 테이블을 살펴보고 Cisco Express Forwarding이 패킷을 이더넷 0/0으로 전환하는 방법을 확인하는 것입니다. ARP로 인해 인접성이 구축됩니다.
R2#show adjacency ethernet 0/0 detail | begin 10.10.34.4 IP Ethernet0/0 10.10.34.4(5) 50 packets, 2100 bytes AABBCC006500AABBCC0066000800 ARP 03:02:00
이 show ip arp 명령 출력은 확인입니다.
R2#show ip arp 10.10.34.4 Protocol Address Age (min) Hardware Addr Type Interface Internet 10.10.34.4 60 aabb.cc00.6500 ARPA Ethernet0/0
다음으로 라우팅 테이블에 IP 경로가 있을 때 이 ARP 항목이 생성된 이유를 확인합니다.라우팅 테이블을 다시 한 번 보십시오.
R2#show run | include ip route 0.0.0.0 ip route 0.0.0.0 0.0.0.0 10.10.24.4 ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10
R2와 R4 간에 직렬 연결이 실패하면 R2에는 R1의 이더넷 IP 주소 192.168.12.1이 아닌 다중 액세스 인터페이스 이더넷 0/0을 가리키는 부동 고정 경로가 있기 때문에 Ethernet 0/0에서 부동 고정 경로를 사용하여 모든 트래픽이 라우팅됩니다. 따라서 알 수 없는 모든 대상에 대해 라우터 R2는 Ethernet0/0 인터페이스를 통해 ARP 요청을 보냅니다.이 경우 R2는 10.10.34.0 네트워크에 대한 더 구체적인 경로를 잃었습니다.따라서 데이터 패킷이 이 네트워크에 있는 호스트에 도착하면 이더넷 인터페이스를 통해 ARP 요청을 생성합니다.프록시 ARP는 R1의 이더넷 인터페이스에서 기본적으로 활성화되어 있으며 R3을 가리키는 기본 경로가 있으므로, 프록시 ARP 회신을 자신의 MAC 주소로 응답합니다.따라서 R2는 모든 트래픽을 R1로 전송하고, R1은 기본 경로(0.0.0.0/0)을 사용하여 모든 트래픽을 AS 12로 전달하고, 그 결과 인터넷을 통해 10.10.34.4으로 전달합니다.
R2는 R1에서 프록시 ARP 응답을 수신하면 인터페이스 이더넷 0/0을 가리키는 /32개의 유효한 Cisco Express Forwarding 인접성을 생성합니다. 이 Cisco Express Forwarding 항목은 프록시 ARP 라우터 R1이 이더넷 세그먼트에 있을 때까지 만료되지 않습니다.따라서 /32 Cisco Express Forwarding 항목은 R2와 R4 간의 직렬 연결이 백업되고 라우팅 테이블 기본 경로가 Serial 8/0을 AS 10으로 이동한 후에도 계속해서 패킷을 Cisco Express Forwarding-switch에 사용합니다. 그 결과는 라우팅 루프입니다.
마지막으로, 로그를 보고 직렬 링크(s8/0)가 플랩되었는지 확인합니다.이렇게 하면 라우팅 테이블에 부동 고정 경로가 설치되고, 그러면 프록시 ARP가 생성되고 Cisco Express Forwarding FIB에 Cisco Express Forwarding 항목 10.10.34.4/32이 설치됩니다.
R2#show log | beg Ethernet0/0 [..] %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0, changed state to down %BGP-5-ADJCHANGE: neighbor 10.10.24.4 Down Interface flap %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0, changed state to up %BGP-5-ADJCHANGE: neighbor 10.10.24.4 Up
로그가 원인을 확인합니다.요약하면, 다음 단계는 이벤트의 시퀀스를 보여줍니다.
R2의 직렬 8/0 작동이 중단됩니다.
R2에는 10.10.34.4으로 향하는 패킷이 있습니다.
R2는 이더넷 0/0으로 직접 향하는 백업 기본 경로를 따릅니다.
R2는 10.10.34.4에 대한 ARP 요청을 전송합니다.
R1(프록시)은 자체 MAC 주소를 사용하여 R2에 ARP 요청에 응답합니다.
이제 R2에는 MAC 주소가 R1인 10.10.34.4에 대한 ARP 항목이 있습니다.
R2는 10.10.34.4에 대한 Cisco Express Forwarding 인접성을 생성하고 이더넷 0/0을 통해 이 대상에 대한 10.10.34.4/32 항목을 Cisco Express Forwarding 테이블(FIB)에 설치합니다. 이 Cisco Express Forwarding 항목은 ARP 항목이 유효하거나 이더넷 세그먼트에 R1이 있을 때까지 유지됩니다.
R2의 직렬 8/0이 나타납니다.
R2는 R4에서 next hop 10.10.24.4을 사용하여 eBGP 경로 10.10.34.0/24을 학습하고 IP 라우팅 테이블에 경로를 설치합니다.
R1은 R2에서 iBGP를 통해 접두사 10.10.34.0/24을 학습하고 IP 라우팅 테이블에 설치합니다.
R1에는 10.10.34.4으로 향하는 패킷이 있습니다.
R1은 라우팅 테이블을 살펴보고 R2에 대한 iBGP 접두사 경로와 일치시키고 R2에 대한 경로를 확인합니다.
R2는 10.10.34.4으로 향하는 패킷을 수신합니다. 10.10.34.4/32에 대한 Cisco Express Forwarding 항목이 이미 있으므로 FIB 테이블에서 MAC 주소가 R1인 이더넷 0/0을 가리키므로 라우팅 테이블을 보지 않고 패킷을 R1로 다시 보냅니다.이렇게 하면 루프가 생성됩니다.
이더넷 0/0을 직접 가리키는 부동 고정 경로를 다음 hop 주소를 가리키는 고정 경로로 교체합니다.
R2(config)#no ip route 0.0.0.0 0.0.0.0 ethernet 0/0 10 R2(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.1 10
다중 액세스 인터페이스 Ethernet 0/0 대신 다음 hop IP 주소를 가리키는 고정 경로가 있는 경우 R2가 모든 대상에 대해 ARP 요청을 보내는 것을 중지합니다.패킷은 다음 홉을 기반으로 라우팅되고 스위칭됩니다. 따라서 모든 ARP Cisco Express Forwarding 항목과 루프가 방지됩니다.
올바른 인터페이스 Serial 8/0을 가리키는 R2의 Cisco Express Forwarding 항목을 확인합니다.
R2#show ip cef 10.10.34.4 10.10.34.0/24, version 32, cached adjacency to Serial8/0 0 packets, 0 bytes via 10.10.24.4, 0 dependencies, recursive next hop 10.10.24.4, Serial8/0 via 10.10.24.0/24 valid cached adjacency