GRE 터널 재귀 라우팅 오류
이전에 GRE 터널링을 구성했다면 다음 오류를 만났을 수 있습니다.
%TUN-5-RECURDOWN: Tunnel0 temporarily disabled due to recursive routing무슨 일이 일어났는지 보면, 라우터가 터널 자체를 통해 터널 인터페이스의 목적지 IP 주소를 학습한 것입니다. 결과적으로, 라우팅 테이블에서 터널 목적지 IP 주소에 대한 이전 항목을 제거했습니다. 이제 터널 목적지에 더 이상 도달할 수 없게 되어 터널이 무너졌습니다.
시연
훨씬 더 이해가 잘 되도록 시연해 보겠습니다. 다음은 우리가 사용할 토폴로지입니다.
위에서 라우터 세 개가 있고, R1과 R3 사이에 GRE 터널을 만드는 것이 아이디어입니다. 먼저 인터페이스에 IP 주소를 구성하고 RIP를 사용해 R1과 R3가 서로에게 도달할 수 있도록 합니다.
R1(config)# interface fastEthernet 0/0
R1(config-if)# ip address 192.168.12.1 255.255.255.0
R1(config-if)# exit
R1(config)# interface loopback0
R1(config-if)# ip address 1.1.1.1 255.255.255.255
R1(config-if)# exit
R2(config)# interface fastEthernet 0/0
R2(config-if)# ip address 192.168.12.2 255.255.255.0
R2(config-if)# exit
R2(config)# interface fastEthernet 1/0
R2(config-if)# ip address 192.168.23.2 255.255.255.0
R3(config)# interface fastEthernet 0/0
R3(config-if)# ip address 192.168.23.3 255.255.255.0
R3(config-if)# exit
R3(config)# interface loopback 0
R3(config-if)# ip address 3.3.3.3 255.255.255.255
R3(config-if)# exit이제 모든 라우터에 RIP를 구성합시다.
R1(config)# router rip
R1(config-router)# version 2
R1(config-router)# no auto-summary
R1(config-router)# network 192.168.12.0
R1(config-router)# network 1.0.0.0
R2(config)# router rip
R2(config-router)# version 2
R2(config-router)# no auto-summary
R2(config-router)# network 192.168.12.0
R2(config-router)# network 192.168.23.0
R3(config)# router rip
R3(config-router)# version 2
R3(config-router)# no auto-summary
R3(config-router)# network 192.168.23.0
R3(config-router)# network 3.0.0.0위의 network 명령은 R1과 R3가 서로에게 도달할 수 있도록 보장합니다. 이제 R1과 R3의 루프백 인터페이스 사이에 터널 인터페이스를 만듭니다.
R1(config)# interface tunnel 1
R1(config-if)# tunnel source loopback0
R1(config-if)# ip address 192.168.13.1 255.255.255.0
R1(config-if)# tunnel destination 3.3.3.3
R3(config)# interface tunnel 1
R3(config-if)# tunnel source loopback0
R3(config-if)# ip address 192.168.13.3 255.255.255.0
R3(config-if)# tunnel destination 1.1.1.1이렇게 하면 R1과 R3의 루프백 인터페이스 사이에 터널이 활성화됩니다. 터널 인터페이스에 192.168.13.0/24 네트워크를 구성했습니다. 계속하기 전에 R1과 R3의 라우팅 테이블을 보여드리겠습니다.
R1# show ip route rip | include 3.3.3.3
R 3.3.3.3 [120/2] via 192.168.12.2, 00:00:24, FastEthernet0/0
R3# show ip route rip | include 1.1.1.1
R 1.1.1.1 [120/2] via 192.168.23.2, 00:00:17, FastEthernet0/0위의 출력을 잘 보세요. R1과 R3는 각각 서로의 루프백 인터페이스에 도달하는 데 hop count 2를 가지고 있습니다.
오류 발생
이제 터널 인터페이스에서 RIP를 활성화합니다.
R1(config)# router rip
R1(config-router)# network 192.168.13.0
R3(config)# router rip
R3(config-router)# network 192.168.13.0터널 인터페이스에서 RIP를 활성화하자마자 R1과 R3에서 다음 메시지를 보게 됩니다.
%TUN-5-RECURDOWN: Tunnel1 temporarily disabled due to recursive routing
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to down여기서 무슨 일이 일어나고 있을까요? 터널 인터페이스에서 RIP를 활성화하기 전에는 R1과 R3가 R2를 통해 hop count 2로 서로의 루프백 인터페이스에 도달할 수 있다는 것을 학습했습니다.
터널 인터페이스에서 RIP를 활성화한 후, R1과 R3는 hop count 1로 서로의 루프백 인터페이스에 도달할 수 있다는 것을 학습합니다. 결과적으로 라우팅 테이블에 이 새로운 정보를 설치하고 이전 정보를 제거합니다. 빠르다면 터널이 올라올 때 라우팅 테이블에서 잡을 수 있습니다. R3의 예입니다.
R3# show ip route rip | include 1.1.1.1
R 1.1.1.1 [120/1] via 192.168.13.1, 00:00:02, Tunnel1위에서 R3가 hop count 1로 터널 인터페이스를 통해 1.1.1.1에 도달하려고 하는 것을 볼 수 있습니다. 터널을 통해 터널 목적지에 도달하려는 시도는 약간 문제가 됩니다. 고전적인 닭과 달걀 문제입니다.
해결 방법
이를 어떻게 해결할까요? 라우터가 터널 자체를 통해 터널 목적지에 도달하지 않도록 보장해야 합니다. 이를 위한 몇 가지 옵션이 있습니다.
- 터널 인터페이스에서 터널 목적지 IP 주소를 광고하지 마세요. 광고하지 않거나 라우트 필터링을 사용하세요.
- 터널을 통한 터널 목적지 IP 주소의 administrative distance가 라우팅 테이블에 있는 것보다 높(나쁘게)도록 하세요.
- 터널을 통한 터널 목적지 IP 주소의 메트릭이 라우팅 테이블에 있는 것보다 나쁘도록 하세요.
설정에서 문제를 해결하기 위해 한 가지 기법을 사용하겠습니다.
R1(config)# router rip
R1(config-router)# offset-list 0 in 3 tunnel 1
R3(config)# router rip
R3(config-router)# offset-list 0 in 3 tunnel 1offset-list를 사용해 메트릭을 변경할 수 있습니다. 위 예제에서는 RIP가 터널 인터페이스를 통해 광고하는 모든 네트워크가 hop count 3을 가지도록 구성합니다.
터널을 통한 hop count 3은 R2를 통한 hop count 2보다 높(나쁘기) 때문에, 라우터 R1과 R3는 이제 터널 목적지 IP 주소에 도달하기 위해 FastEthernet 링크를 사용할 것입니다.
참고: 이 예제에서는 RIP를 사용했지만, OSPF나 EIGRP 같은 다른 라우팅 프로토콜에서도 같은 문제가 발생할 수 있습니다.
구성
각 장치의 최종 구성은 다음과 같습니다.
R1
hostname R1
!
ip cef
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface Tunnel1
ip address 192.168.13.1 255.255.255.0
tunnel source Loopback0
tunnel destination 3.3.3.3
!
interface FastEthernet0/0
ip address 192.168.12.1 255.255.255.0
!
router rip
offset-list 0 in 3 Tunnel1
network 1.0.0.0
network 192.168.12.0
network 192.168.13.0
no auto-summary
!
endR2
hostname R2
!
ip cef
!
interface FastEthernet0/0
ip address 192.168.12.2 255.255.255.0
!
interface FastEthernet0/1
no ip address
!
interface FastEthernet1/0
ip address 192.168.23.2 255.255.255.0
!
router rip
network 192.168.12.0
network 192.168.23.0
no auto-summary
!
endR3
hostname R3
!
ip cef
!
interface Loopback0
ip address 3.3.3.3 255.255.255.255
!
interface Tunnel1
ip address 192.168.13.3 255.255.255.0
tunnel source Loopback0
tunnel destination 1.1.1.1
!
interface FastEthernet0/0
ip address 192.168.23.3 255.255.255.0
!
router rip
offset-list 0 in 3 Tunnel1
network 3.0.0.0
network 192.168.13.0
network 192.168.23.0
no auto-summary
!
end이 예제가 GRE 재귀 라우팅 문제를 이해하고 해결하는 데 도움이 되었기를 바랍니다.
포럼 답글
ReneMolenaar (질문자 인용)
안녕 Rene,
새 웹사이트를 정말 좋아합니다. 그러나 이 시나리오에 대해 혼란스럽습니다. 터널이 비활성화되는 것은 이해하지만, offset list를 사용해 터널을 통한 라우트가 FastEthernet 링크보다 나쁘게 보이도록 하면, FastEthernet 링크를 통해 1.1.1.0/24에 도달할 수 있다는 것이 무슨 의미인가요? 터널 목적지에 fast ethernet 링크를 통해 도달한다면 터널의 목적을 무력화하는 것 아닌가요? 제 말이 통하기를 바랍니다.
ReneMolenaar
안녕 Prash,
이 시나리오는 재귀 라우팅 오류가 왜 발생하는지를 시연하기 위한 것입니다. 사람들이 터널 인터페이스에 사용되는 IP 주소를 터널 자체를 통해 광고할 때 발생합니다. 일반적으로 이는 사람들이 만드는 구성 오류일 뿐입니다. 반면에 CCIE 랩 시험에서 만날 수도 있습니다.
system
이 IP 항목(3.3.3.3)을 확인해 주세요.
ReneMolenaar
무엇에 대해서요?
system
감사합니다 보스.
60개의 추가 답글이 있습니다. 커뮤니티 포럼을 방문해 질문하거나 토론에 참여하세요.
출처: networklessons.com - GRE Tunnel Recursive Routing Error
태그: GRE, Tunnel