지금까지의 내용을 그대로 따라한 경우, 아래와 같이 된다.
1. 3개의 OSPF Area 각각의 OSPF 경로가 형성된다.
2. 주요 4개의 라우터(A00A/A00B/A10A/A20A)간 루프백 인터페이스를 기준으로 한 eBGP경로가 생성됨.
3. 주요 4개의 라우터(A00A/A00B/A10A/A20A)간 eBGP 경로를 기반으로 터널링 연결을 통한 논리적 직접연결이 형성된다.
4. 4개의 ISP는 eBGP로 선언한 네트워크가 없어 주요 4개 라우터에 관련 경로가 남지 않음.
OSPF 단일 Area의 경우는 상관없으나, 여러 Area를 포함하는 경우, 반드시 모든 Area는 Area 0에 연결되어야만 한다. 앞에서 설정한 Tunnel 인터페이스는 이를 위해서 논리적으로 연결을 형성하기 위해 사용된 것이다.
그럼 이제 이를 이용해서 연결을 시도해 보자. (편의상 A00A와 A10A연결로 진행)
먼저 eBGP와 Tunnel 인터페이스가 정상적으로 활성화 되었는지 show ip route 명령으로 확인한다.
먼저 A00A는 아래와 같다.
아래와 같이 A10A의 루프백 인터페이스 및 Tunnel 12 인터페이스 연결이 확인된다.
그리고 A10A는 아래와 같다.
아래와 같이 A00A의 루프백 인터페이스 및 Tunnel 12 인터페이스 연결이 확인된다.
이제 여기에 Area 연결을 위해 Tunnel 12 인터페이스를 OSPF에 선언한다.
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
그러면 아래와 같이 터널의 연결이 끊겼다가 다시 복구되는게 반복된다.
일반적으로 터널링 연결상태에서 연결이 끊기는 경우는 아래와 같다.
- There is no route to the tunnel destination address.
터널의 목적지(destination)로 연결되는 경로를 알 수 없는 경우.
* 이를 방지하기 위해서 Tunnel 인터페이스와 무관하게 라우팅 태이블에 올라오도록 설정한다. 여기서는 eBGP를 사용.
- The interface that anchors the tunnel source is down.
터널의 출발지(source) 인터페이스가 다운된 경우.
* 여기서는 이를 방지하기 위해서 Loopback 인터페이스를 사용했다.
- The route to the tunnel destination address is through the tunnel itself.
터널의 목적지(destination)로 향하는 경로가 터널 자신이 될 경우.
여기서는 세번째가 원인. OSPF에 선언된 네트워크중 주요 라우터의 루프백 인터페이스가 포함되어 있기 때문이다. 해결방법은 크게 두가지 방법이 있다.
1. Tunnel을 통해 연결하는 Routing Protocol에 해당 Tunnel의 Destination/Source에 해당하는 Network를 포함시키지 않는다.
2. Tunnel을 통해 연결하는 Routing Protocol에서 해당 Tunnel의 Destination/Source에 해당하는 Network를 광고하지 않는다.
지금과 같은 경우, iBGP로 연결된 구간이 있기 때문에 1번은 불가. 때문에 2번을 선택해서 아래와 같이 진행한다.
A00A
Router(config)# access-list 11 deny 204.172.100.160 0.0.0.3 - Tunnel 12 destination 관련
Router(config)# access-list 11 permit any
Router(config)# router ospf 5730
Router(config-router)# distribute-list 11 in
A10A
Router(config)# access-list 10 deny 203.172.100.128 0.0.0.3 - Tunnel 12 destination 관련
Router(config)# access-list 10 permit any
Router(config)# router ospf 5730
Router(config-router)# distribute-list 10 in
위 내용의 의미는 ACL을 통해서 광고 대상을 설정한 뒤(여기서는 Tunnel 12 destination에 대한 network), distribute-list 명령으로 OSPF 네이버간 받아들이는(distribute-list [acl] in) 광고를 제한한것. 외부로 보내는 광고를 제한(distribute-list [acl] out)하지 않는 이유는 iBGP기반이 되는 영역과 중복되고, 다른 장비에는 경로에 대한 광고를 보내야 하기 때문.
최종적으로 이 환경에서 OSPF Area 연결에 대한 명령은 아래와 같이 된다.
A00A
access-list 11 deny 204.172.100.160 0.0.0.3
access-list 11 deny 206.172.100.160 0.0.0.3
access-list 11 permit any
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
network 192.168.121.64 0.0.0.3 area 20
distribute-list 11 in
A00B
access-list 11 deny 204.172.100.160 0.0.0.3
access-list 11 deny 206.172.100.160 0.0.0.3
access-list 11 permit any
router ospf 5730
network 192.168.111.68 0.0.0.3 area 10
network 192.168.121.68 0.0.0.3 area 20
distribute-list 11 in
A10A
access-list 10 deny 203.172.100.128 0.0.0.3
access-list 10 deny 205.172.100.128 0.0.0.3
access-list 10 permit any
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
network 192.168.111.68 0.0.0.3 area 10
distribute-list 10 in
A20A
access-list 10 deny 203.172.100.128 0.0.0.3
access-list 10 deny 205.172.100.128 0.0.0.3
access-list 10 permit any
router ospf 5730
network 192.168.121.64 0.0.0.3 area 20
network 192.168.121.68 0.0.0.3 area 20
distribute-list 10 in
P.S : distribute-list에 사용되는 ACL은 반드시 Standard ACL만 사용 가능하다. 조금 다른 경우로, X.X.X.0/24는 차단하고 X.X.X.0/25는 받도록 하고싶은 경우라면 ACL이 아닌 Prefix-List를 사용해야 한다.
P.S : 사실 이 현상 자체는 좀 더 간단한 방법으로 해결 가능하다.
관련 링크
GRE Tunnel Keepalives
OSPF Inbound Filtering Using Route Maps with a Distribute List
댓글 없음:
댓글 쓰기