BGP 개념 및 eBGP 설정을 보시려면 아래 링크 클릭!
HQ ↔ Branch1 ↔ Branch2 구간 iBGP 구성으로 변경
기존 eBGP 정보 삭제
- 이 경우 반대편 라우터에서 BGP Neighbor 지정 시 Update-Source를 상대방 라우터가 neighbor로 지정한 IP 주소가 되도록 설정해야 한다.
<HQ> router ospf 1 no default-information originate always ! router bgp 20 no network 3.3.3.0 mask 255.255.255.0 no network 4.4.4.0 mask 255.255.255.0 neighbor 3.3.3.3 remote-as 20 neighbor 3.3.3.3 update-source loopback 0 !
<Branch1> conf t router bgp 20 bgp router-id 3.3.3.3 neighbor 2.2.2.2 remote-as 20 neighbor 2.2.2.2 update-source loopback 0 neighbor 4.4.4.4 remote-as 20 neighbor 4.4.4.4 update-source loopback 0 network 3.3.3.0 mask 255.255.255.0 exit
<Branch2> conf t router bgp 20 bgp router-id 3.3.3.3 neighbor 3.3.3.3 remote-as 20 neighbor 3.3.3.3 update-source loopback 0 network 4.4.4.0 mask 255.255.255.0 exit |
show ip bgp 명령어를 통해 확인해 보면 정상적으로 정보가 교환되지 않는 것을 확인할 수 있다.
- HQ의 BGP Table에서는 Branch2의 iBGP정보 (4.4.4.0/24)가 확인되지 않는다.
- r> i는 BGP 정보에서는 가장 좋은데 전체 동적 라우팅 프로토콜에서는 좋지 않다는 의미이다.
- show ip route 명령어를 확인해 보면 OSPF가 등록돼 있다.
- Branch1의 BGP Table에서는 모든 정보가 확인되지만 KT의 1.1.1.0/24 정보가 Best Path(>)로 선택되지 않았다.
- Branch2의 BGP Table에서는 HQ가 전달하는 BGP정보 (1.1.1.0/24, 2.2.2.0/24) 정보가 확인되지 않는다.
iBGP 문제 설정
1) Split-horizon 문제
- IGP에서 'Split-horizon'은 Distance Vector 계열에서 사용되는 Loop 방지 Solution 중 하나이다.
- 자신이 수신한 경로 정보는 다시 해당 인터페이스를 통해서 다른 장비에게 광고하지 않는 것을 의미한다.
- BGP의 경우도 Loop를 방지하기 위해서 Split-horizon을 사용한다. 하지만 동작 방식은 IGP와 다르다.
- IGP로 수신한 경로 정보는 다시 iBGP로 다른 장비에게 광고할 수 없다.
Split-horizon 문제를 해결할 수 있는 방법
1. Full-mesh 연결 (소규모 네트워크에 적합)
- 모든 라우터 장비에 광고가 가능하다.
<HQ> conf t router bgp 20 neighbor 4.4.4.4 remote-as 20 neighbor 4.4.4.4 update-source loopback 0 exit
<Branch2> conf t router bgp 20 neighbor 2.2.2.2 remote-as 20 neighbor 2.2.2.2 update-source loopback 0 exit |
- 설정을 완료하면 이웃이 자동으로 맺어지는 것을 확인할 수 있다.
show ip bgp summary
- Full-mesh 방식은 AS 규모가 작은 경우에는 큰 문제가 없지만 AS 규모가 확장될수록 설정이 복잡해지고 문제가 발생될 확률이 크다.
2. Route-Reflector (일반적으로 가장 많이 활용된다.)
- Route-Reflector는 BGP Split-horizon 규칙을 면제받은 Router를 의미한다.
- iBGP로 수신한 경로 정보를 자신의 Route-Reflector-Client 라우터에게 다시 한번 iBGP로 광고하는 것이 가능하다.
기존 full-mesh 설정 정보 삭제
<HQ> conf t router bgp 20 no neighbor 4.4.4.4 remote-as 20
<Branch2> conf t router bgp 20 no neighbor 2.2.2.2 remote-as 20 |
route-reflector 설정
- route-reflector설정을 한 라우터에만 한번 더 iBGP광고를 하는 것이 가능하다.
<Branch1> conf t router bgp 20 neighbor 2.2.2.2 route-reflector-client neighbor 4.4.4.4 route-reflector-client exit |
show ip bgp summary
show ip bgp
- HQ 라우터에 Route-Reflector 연결을 했기 때문에 Branch2 정보인 4.4.4.0/24가 등록되어 있다.
- Branch2 라우터에서는 Route-Reflector 연결을 했기 때문에 HQ 정보인 2.2.2.0/24가 등록되어 있다.
- KT 라우터 BGP 정보(1.1.1.0/24)가 보이지 않는다. 이유는 Branch1번에서 KT라우터가 Best Path로 등록되어있지 않기 때문이다.
- Branch1번 에서는 모두 등록되어있지만 1.1.1.0에 Best Path(>)로 선택되어있지 않다. (Next-Hop 도달성 문제)
- BGP의 경우 BGP 테이블에서 Best Path(>)로 선택되지 못한 경로는 다른 Peer에게 Update하지 않는다.
3. Confederation
- 하나의 공인 AS를 다수의 사설 AS(64512 ~ )로 나눠서 구성하는 것이 가능하다.
- iBGP Peer를 eBGP Peer인 것처럼 동작하기 때문에 iGBP와 관련된 Split-horizon과 BGP 동기화 문제를 신경 쓸 필요가 없다.
2) Next-Hop 도달성 문제
- BGP의 경우 Peer에게 수신한 네트워크 정보의 Next-hop에 대한 도달성이 있어야만 해당 네트워크 정보를 사용할 수 있다.
- 만약 수신한 네트워크 정보의 Next-hop 도달성이 없다면 해당 경로가 Best Path 일지라도 '>'코드가 생성되지 않고, 결과적으로 해당 정보는 BGP에서 사용되지 않는다.
(사용되지 않는다는 것은 Routing Table에 등록이 불가능하고, 다른 BGP Peer에게 해당 경로 정보를 광고하지 않는다는 의미이다.)
- BGP의 경우 동일 AS 안에서 특정 네트워크 정보를 광고하는 경우 해당 네트워크에 대한 Next-hop 주소가 변경되지 않는다. Next-Hop 주소가 변경되는 경우는 AS가 변경되는 경우이다.
show ip route
- HQ 라우터에는 KT 라우터가 최적경로로 등록되어 있다.
- bgp 정보를 확인해 보면 1.1.1.0/24에 대한 Next-Hop 주소가 1.1.100.1로 설정되어 있다.
- 하지만 Branch1 라우터의 라우팅 정보를 확인해 보면 1.1.100.1 경로 정보가 Routing Table에 등록되어 있지 않아서 Best Path(>)로 등록되지 못한다.
- Next-Hop 도달성 문제를 해결해 주어야 KT라우터와 통신이 가능하다.
show ip bgp 1.1.1.0
- 1.1.100.1로 가는 경로가 inaccessible로 되어있는 것을 확인할 수 있다.
BGP Next-hop 도달성 문제 해결
1. AS 경계 라우터에서 DMZ 네트워크를 IGP로 광고
- 불필요한 Hello 패킷 전송을 막기 위해 passive-interface fa 0/0 입력
- 그 외에도 다른 방법으로도 Branch1, 2 라우터에 도달성을 해결해 주면 Next-Hop 문제를 해결할 수 있다.
<HQ> router ospf 1 network 1.1.100.2 0.0.0.0 area 0 passive-interface fa 0/0 !
- or -
router ospf 1 restribute connected subnets !
- or -
router ospf 1 default-information originate always ! |
Branch2 라우터 확인
show ip bgp
- 기존에 없던 1.1.1.0 네트워크가 Best Path로 설정되었다.
show ip route
- BGP Table에 Best Path로 등록되었기 때문에 Routing Table에도 BGP경로가 등록되었다.
2. 관리자가 직접 Next-hop에 대한 도달성을 수동으로 구성
- Branch1, 2 라우터에서 Static Routing을 통해 수동으로 구성한다.
- 소규모 네트워크에 적합하다.
<Branch1> conf t ip route 1.1.100.1 255.255.255.255 fa 1/0 1.1.100.5
<Branch2> conf t ip route 1.1.100.1 255.255.255.255 fa 0/0 1.1.100.13 |
3. AS 경계 라우터에서 Next-hop-self 명령어 사용
- 앞선 1,2번 같은 경우 사용자가 직접 네트워크를 보면서 지정해야 하는 불편함이 있다.
- 1, 2번 해서 설정한 방식을 해제한 후 진행한다.
neighbor 3.3.3.3 next-hop-self
3.3.3.3 BGP Peer에게 BGP 정보를 광고하는 경우 해당 정보들의 Next-Hop을 자신의 주소로 변경하여 광고한다.
<HQ> conf t router bgp 20 neighbor 3.3.3.3 next-hop-self ! |
show ip bgp
- 1.1.1.0 네트워크로 가는 Next-Hop 정보가 1.1.100.1이 아닌 인접 라우터인 HQ(2.2.2.2)로 설정되어 있고 Best Path(>)로 지정된 것을 확인할 수 있다.
- Branch2 라우터의 경우도 똑같이 Next-Hop 이 2.2.2.2로 설정되어 있다.
show ip route
- 라우팅 정보도 1.1.1.0으로 가는 정보가 2.2.2.2 BGP로 설정된 것을 확인할 수 있다.
3) Synchronization (동기화) 문제
BGP Synchonization(동기화) 규칙
- iBGP로 광고받은 경로 정보는 다시 IGP(ex. RIP/ EIGRP / OSPF...)로 해당 정보를 광고받아야 사용이 가능하다.
<HQ/Branch1/Branch2> conf t no router bgp 20
<HQ> conf t router bgp 20 bgp router-id 2.2.2.2 neighbor 1.1.100.1 remote-as 10 neighbor 4.4.4.4 remote-as 20 neighbor 4.4.4.4 update-source loopback 0 neighbor 4.4.4.4 next-hop-self network 2.2.2.0 mask 255.255.255.0 exit
<Branch2> conf t router bgp 20 bgp router-id 4.4.4.4 neighbor 2.2.2.2 remote-as 20 neighbor 2.2.2.2 update-source loopback 0 network 4.4.4.0 mask 255.255.255.0 exit |
설정 확인
show ip bgp summary
show ip bgp
Synchronization기능 활성화
- 오늘날 IOS는 기본적으로 BGP 구성시 Synchronization과 auto-summary기능이 비활성화되어 있다.
- 테스트를 위해서 동기화 기능을 활성화시킨다.
do clear ip bgp *
bgp 연결관계 초기화
<HQ/Branch2> conf t router bgp 20 synchronization exit do clear ip bgp * |
- 1.1.1.0으로 가는 경로가 Best Path에서 해제된 것을 확인할 수 있다.
- 1.1.1.0에 대한 BGP 정보를 확인해보면 동기화되어있지 않다고 나온다.
- 2.2.2.0에 대한 정보는 Best Path로 등록되어있다.
- no syncronization 명령어로 동기화 설정을 해제하면 다시 1.1.1.0이 Best Path로 설정되지만 중간에 위치한 Branch1의 Routing Table에 1.1.1.0/24 경로가 없기 때문에 통신이 불가능하다. (Blackhole 현상)
- 중간 라우터가 BGP로 수신한 경로에 대한 도달성이 있는 것을 확인할 필요가 있다.
- Branch2 라우터는 iGBP로 수신한 1.1.1.0/24 정보다 Next-Hop 장치인 Branch1도 알고 있다는 확신이 필요하다. 이를 위해서 BGP 동기화를 수행하였다.
(BGP 동기화 = iBGP 수신 정보 = IGP(ex.OSPF) 수신 정보)
BGP 동기화 문제 해결방법
1. BGP 정보를 IGP로 재분배
- Branch2 라우터 동기화 설정 후 진행
restribute bgp 20 subnets
BGP 정보를 IGP(OSPF)로 재분배하여 BGP 동기화 규칙을 만족시킨다.
<HQ> conf t router ospf 1 redistribute bgp 20 subnets ! |
설정 확인
show ip route
- Branch1 라우터에서 KT라우터로 가는 OSPF 정보가 등록되었다.
show ip bgp
- bgp의 최적 경로로 등록되었지만 OSPF에 밀려서 r>로 바뀐 것을 확인할 수 있다.
- 통신은 정상적으로 이루어지는 것을 확인할 수 있다.
- 이 방식은 BGP 경로 정보가 많은 경우에는 사용이 불가능하다.
2. BGP 동기화를 비활성화 후 관리자가 직접 도달성 확인
no redistribute bgp 20
1번에서 설정했던 재분배 제거
<HQ> conf t router ospf 1 no redistribute bgp 20 !
<HQ / Branch2> conf t router bgp 20 no synchronization ! => 오늘날 IOS는 BGP 구성시 no synchronization 옵션은 기본적으로 설정되어 있다. |
- BGP 동기화 규칙을 비활성화시켜 IGP로 수신한 경로 정보를 먼저 Routing Table에 등록하게 만든다.
- 그 후 관리자가 BGP 설정이 안 되어 있는 라우터에 Static/Default Route 등을 사용하여 직접 도달성 문제를 해결하는 방식이다.
- AS에 포함된 모든 라우터에 iBGP를 설정하여 BGP경로 정보가 모든 라우터에 등록되게 만드는 것도 가능하다.
<Branch1> conf t ip route 1.1.1.0 255.255.255.0 fa 1/0 1.1.100.5 ip route 1.1.1.0 255.255.255.0 fa 0/0 1.1.100.9 100
- or -
conf t ip route 0.0.0.0 0.0.0.0 fa 1/0 1.1.100.5 ip route 0.0.0.0 0.0.0.0 fa 0/0 1.1.100.9 100
- or - <HQ> router ospf 1 default-information originate always ! |
- 정상적으로 Ping 통신이 가능한 것을 확인할 수 있다.
3. Confederation 구성
'Network > Router' 카테고리의 다른 글
[Router] EoMPLS(Ethernet over MPLS) 구성 (0) | 2020.01.10 |
---|---|
[Router] MPLS(Multi Protocol Label Switching) VPN LDP(Label Distribution Protocol) 구성 및 확인 (0) | 2020.01.09 |
[Router] BGP(Border Gateway Protocol) 개념 및 설정 (1 / 2) (1) | 2019.12.24 |
[Router] Floating Static Routing + IP SLA (0) | 2019.12.24 |
[Router] Remote Access VPN (Easy VPN) 개념, 설정 (0) | 2019.12.11 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊