이번에는 BGP안으로 네트워크를 재분배 하는 방법을 알아 보도록 하겠습니다.
위의 0~4의 루프백에서 일정 주소를 제외하고 재분배를 통한 광고를 하는 것을 보여드리겠습니다.
먼저 Access-list 를 Loopback_AD 라는 이름으로 생성하겠습니다.
R5(config)#no ip access-list standard Loopback_AD
R5(config)#ip access-list standard Loopback_AD
R5(config-std-nacl)#deny 200.1.4.0
R5(config-std-nacl)#deny 200.1.5.0
R5(config-std-nacl)#permit any
R5(config-std-nacl)#exit
ACL 을 만들었으면, 이번에는 재분배시 참조할 route-map을 생성하여 줍니다.
Filter 라는 이름으로 생성한 뒤 route-map 안에는 match ip add Loopback_ADD 만
해주시면 됩니다.
R5(config)#route-map Filter
R5(config-route-map)#match ip address Loopback_AD
R5(config-route-map)#exit
R5(config)#exit
R5#
R5#sh route
R5#sh route-map
route-map Filter, permit, sequence 10
Match clauses:
ip address (access-lists): Loopback_AD
Set clauses:
Policy routing matches: 0 packets, 0 bytes
R5#sh ac
R5#sh access
R5#sh access-list
R5#sh access-lists Loopback_AD
Standard IP access list Loopback_AD
20 deny 200.1.5.0
10 deny 200.1.4.0
30 permit any
R5#
위와 같이 route-map 이 설정된 것을 확인 하실 수 있습니다.
자 이제 이를 bgp로 넣어 보도록 하겠습니다.
R5(config)#router bgp 6500
R5(config-router)#redis
R5(config-router)#redistribute
R5(config-router)#redistribute
R5(config-router)#redistribute ?
bgp Border Gateway Protocol (BGP)
connected Connected
dvmrp Redistribution of DVMRP into BGP IPv4 Multicast
eigrp Enhanced Interior Gateway Routing Protocol (EIGRP)
isis ISO IS-IS
iso-igrp IGRP for OSI networks
mobile Mobile routes
odr On Demand stub Routes
ospf Open Shortest Path First (OSPF)
rip Routing Information Protocol (RIP)
static Static routes
R5(config-router)#redistribute conne
R5(config-router)#redistribute connected ?
metric Metric for redistributed routes
route-map Route map reference
<cr>
R5(config-router)#redistribute connected route
R5(config-router)#redistribute connected route-map Filter
R5(config-router)#
connected 된 주소를 재분배 하는데, route-map Filter를 사용해서 재분배를 해준다는 명령어 입니다.
올바르게 재분배를 한 뒤 bgp를 보겠습니다.
역시나 bgp는 시간이 꽤나 걸리므로, 기다려 보시길 바랍니다.
R5#sh ip bgp
BGP table version is 4, local router ID is 200.1.6.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 50.1.1.0/24 0.0.0.0 0 32768 i
R5#
R5#show ip bgp
BGP table version is 9, local router ID is 200.1.6.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 5.5.5.5/32 0.0.0.0 0 32768 ?
*> 10.1.45.0/30 0.0.0.0 0 32768 ?
*> 50.1.1.0/24 0.0.0.0 0 32768 i
*> 200.1.1.0 0.0.0.0 0 32768 ?
*> 200.1.2.0 0.0.0.0 0 32768 ?
*> 200.1.3.0 0.0.0.0 0 32768 ?
R5#
BGP는 전체적으로 매우 느린 프로토콜이라서 기다리다보면 약 1분? 내로 아마 제대로 올라올 것입니다.
결과적으로 보게 되면 access-list에서 deny 된 아이피를 제외하고는 route-map에 의해서 나머지 connected된 주소들이 제대로 광고 된 것을 볼 수 있습니다.
앞에서 no auto-summary에 대해서 말씀드렸었는데, 12.2(8)T 이전 버전에서는 auto-summary가 기본으로 켜져 있엇지만
그 뒤의 버전에서부터는 자동으로 no auto-summary가 적용된다고 합니다.
R5(config)#ip access-list standard Loopback_AD
R5(config-std-nacl)#permit 200.1.1.0
R5(config-std-nacl)#permit 200.1.2.0
R5(config-std-nacl)#permit 200.1.3.0
R5(config-std-nacl)#permit 200.1.4.0
R5(config-std-nacl)#permit 200.1.5.0
R5(config-std-nacl)#exit
자 이제 앞의 ACL을 지우고 다시 위와 같이 설정해보겠습니다. 역시나 한...참... 기다리면..
R5#sh ip bgp
BGP table version is 13, local router ID is 200.1.6.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 50.1.1.0/24 0.0.0.0 0 32768 i
*> 200.1.1.0 0.0.0.0 0 32768 ?
*> 200.1.2.0 0.0.0.0 0 32768 ?
*> 200.1.3.0 0.0.0.0 0 32768 ?
*> 200.1.4.0 0.0.0.0 0 32768 ?
*> 200.1.5.0 0.0.0.0 0 32768 ?
R5#
이렇게 제대로 라우팅 테이블이 올라오는 군요
자 이제 R1에서 한번 보겠습니다.
R1#sh ip bgp
BGP table version is 1, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i50.1.1.0/24 10.1.45.2 0 100 0 6500 i
* i200.1.1.0 10.1.45.2 0 100 0 6500 ?
* i200.1.2.0 10.1.45.2 0 100 0 6500 ?
* i200.1.3.0 10.1.45.2 0 100 0 6500 ?
* i200.1.4.0 10.1.45.2 0 100 0 6500 ?
* i200.1.5.0 10.1.45.2 0 100 0 6500 ?
R1#
뭔가 좀 다르죠?
그런데 한가지 부족한게 있는 것 같군요...
R4에서 한번 봅시다.
R4#sh ip bgp
BGP table version is 15, local router ID is 10.1.45.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 50.1.1.0/24 10.1.45.2 0 0 6500 i
*> 200.1.1.0 10.1.45.2 0 0 6500 ?
*> 200.1.2.0 10.1.45.2 0 0 6500 ?
*> 200.1.3.0 10.1.45.2 0 0 6500 ?
*> 200.1.4.0 10.1.45.2 0 0 6500 ?
*> 200.1.5.0 10.1.45.2 0 0 6500 ?
R4#
뭔가 좀 다르다 했더니 > 가 빠졌죠? 이건 매우 중요합니다.
그렇다면 R1에서 라우팅 테이블을 한번 보죠
R1#sh ip route
Codes: 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
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/129] via 10.1.12.2, 06:07:28, Serial1/0
10.0.0.0/30 is subnetted, 4 subnets
C 10.1.13.0 is directly connected, Serial1/1
C 10.1.12.0 is directly connected, Serial1/0
O 10.1.24.0 [110/128] via 10.1.12.2, 06:07:28, Serial1/0
O 10.1.34.0 [110/192] via 10.1.12.2, 06:07:28, Serial1/0
R1#
이런...... 역시나 하나도 라우팅 테이블에 올라오지 않는군요.
//////////////////////////////////
//////////////////////////////////
//////////////////////////////////
//////////////////////////////////
///////////내용추가 예정////////////
//////////////////////////////////
//////////////////////////////////
//////////////////////////////////
//////////////////////////////////
- BGP Synchronization
- Do not use or advertise a route learned via iBGP until the same route has been learned from the internal routing protocol.
- 12.2(8)T 이전의 버전에서는 ON 이었고,
- 12.2(8T) 이후의 버전에서는 OFF가 default로 설정되었다.
제 버전은 ROM: 3600 Software (C3640-JK9O3S-M), Version 12.3(8)T3, RELEASE SOFTWARE (fc1) 입니다.
그렇다면 당연히 no synchronizatino 이 적용되어 있겠네요 한번 확인해 보겠습니다.
router bgp 5500
no synchronization
bgp log-neighbor-changes
neighbor 4.4.4.4 remote-as 5500
neighbor 4.4.4.4 update-source Loopback1
no auto-summary
아무튼 지금 상태에서 한번 생각을 해보겠습니다.
R1에서 라우팅 테이블을 확인해 보겠습니다.
BGP 경로가 하나도 올라 오지 않은 것을 알 수 있습니다. 생각해 보면 매우 간단합니다.
BGP 경로를 통해 이동을 하려고 해도, R1에서 안다고 해서 R2나 R3에서는 이에 대한 정보를 알지 못합니다.
그래서 R2,R3에서 패킷이 드랍되어 버린다는 것이죠.
R1#sh ip bgp
BGP table version is 1, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i50.1.1.0/24 10.1.45.2 0 100 0 6500 i
* i200.1.1.0 10.1.45.2 0 100 0 6500 ?
* i200.1.2.0 10.1.45.2 0 100 0 6500 ?
* i200.1.3.0 10.1.45.2 0 100 0 6500 ?
* i200.1.4.0 10.1.45.2 0 100 0 6500 ?
* i200.1.5.0 10.1.45.2 0 100 0 6500 ?
R1#
R1#
위를 보시면 next hop 이 10.1.45.2 인데, R2나 R3가 저 경로를 알고 있나요? 당연히 모르죠, 그래서 드랍된다는것입니다.
이를 해결하기 위해서는 아래와 같이 설정해 주게 되면
R4(config-router)# neighbor 1.1.1.1 next-hop-self
목적지에 대한 next-hop 이 ospf에서 광고된 4.4.4.4로 설정되어 버립니다.
R1#sh ip bgp
BGP table version is 7, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i50.1.1.0/24 4.4.4.4 0 100 0 6500 i
*>i200.1.1.0 4.4.4.4 0 100 0 6500 ?
*>i200.1.2.0 4.4.4.4 0 100 0 6500 ?
*>i200.1.3.0 4.4.4.4 0 100 0 6500 ?
*>i200.1.4.0 4.4.4.4 0 100 0 6500 ?
*>i200.1.5.0 4.4.4.4 0 100 0 6500 ?
R1#
네 이와 같이 되어 라우팅 테이블에도 정상적으로 올라 오게 됩니다.
꼭 알아 두셔야 합니다. sh ip bgp 에서 보이는 경로중, > 표시가 있는 경로가 라우팅 테이블에 올라오게 됩니다.