• BGP는 IGP에서 접두사를 검증할 수 없는 경우, iBGP 네이버로부터 학습한 내용을 eBGP 네이버에게 알리지 않는다.
  • 동기화는 AS 내에 모든 라우터가 iBGP를 활성화할 필요가 없었던 시절에 적용되어 온 규칙이며, 현재는 사용되지 않는다.
  • iBGP 피어링은 반드시 직접 연결되어 있지 않은 라우터 간에도 피어링을 맺을 수 있다. iBGP 피어링은 iBGP 라우터가 AS 내에서 실행되는 IGP를 통해 서로 연결될 수만 있으면 된다.

 

이 시나리오는 R1과 R5 간에 통신이 아닌 BGP가 BGP 동기화를 통해 접두사를 공유하는 방식에 초점을 맞췄다. BGP 접두사가 테이블에 어떻게 표시되는지 확인하는데에 국한되었으며, R5에서 R1로 ping은 필수가 아니다. 그리고 전송 AS의 모든 라우터에서 iBGP를 실행하지 않는 시나리오에 대한 솔루션을 말한다.

 

iBGP 세션 설정을 위해 IGP(OSPF) 구성. (R1은 접두사를 광고하고 R2, R3에서 이를 학습한다.)

R2와 R4는 iBGP 피어링을 맺고, OSPF를 통해 서로 통신. (R4는 R2로부터 iBGP를 통해 1.1.1.0/24 학습)

 

OSPF 구성
R2
router ospf 1
 network 2.2.2.2 0.0.0.0 area 0
 network 192.1.23.0 0.0.0.255 area 0
 
R3
router ospf 1
 network 3.3.3.3 0.0.0.0 area 0
 network 192.1.23.0 0.0.0.255 area 0
 network 192.1.34.0 0.0.0.255 area 0
 
R4
router ospf 1
 network 4.4.4.4 0.0.0.0 area 0
 network 192.1.34.0 0.0.0.255 area 0

 

BGP 구성
R1
router bgp 1
 network 1.1.1.0 mask 255.255.255.0
 neighbor 192.1.12.2 remote-as 2
 
R2
router bgp 2
 neighbor 4.4.4.4 remote-as 2
 neighbor 4.4.4.4 update-source Loopback0
 neighbor 4.4.4.4 next-hop-self
 neighbor 192.1.12.1 remote-as 1
 
R3(BGP X)
 
R4
router bgp 2
 neighbor 2.2.2.2 remote-as 2
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 2.2.2.2 next-hop-self
 neighbor 192.1.45.5 remote-as 3
 
R5
router bgp 3
 neighbor 192.1.45.4 remote-as 2

 

1.1.1.0/24의 BGP 테이블 확인. R4, R5 모두 이 네트워크에 대해 알고있다.

R4#sh ip bgp
     Network          Next Hop            Metric LocPrf Weight Path
 *>i 1.1.1.0/24       2.2.2.2                  0    100      0 1 i
 
R5#sh ip bgp
     Network          Next Hop            Metric LocPrf Weight Path
 *>  1.1.1.0/24       192.1.45.4                             0 2 1 i

 

현재 문제는 R4 또는 R5가 도달할 수 없는 경로를 학습했다는 거다. R3에서 BGP를 실행하지 않았기 1.1.1.0/24 네트워크를 모르고, AS3에서 AS1로 IP 패킷이 전달되지 못하고 R4가 R3에게 패킷을 전달하면 R3는 해당 패킷을 드랍한다. (R3 블랙홀)

R3#sh ip rou 1.1.1.0
% Network not in table

R4#sh ip rou 1.1.1.0
% Network not in table

이 문제를 해결하기 위해 동기화 규칙이 만들어졌다.

 

BGP 동기화 활성화

  • 경계 라우터(R2, R4)에서 활성화 한다. 동기화를 활성화하면 1.1.1.0/24 네트워크를 더 이상 R5에 광고하지 않고, IGP에서 해당 경로를 알고 있으면 R3가 패킷을 전달할 수 있다는 것을 알고 나서 R5에 경로를 광고한다.
  • 동기화가 활성화되면 사용 중인 IGP에서 해당 경로를 알아내기 전까지 해당 경로가 라우팅 테이블에 설치되지 않는다.
  • 동기화 규칙의 역할은 라우터가 먼저 경로가 IGP에 의해 알려진 경로인지 확인하도록 하는 것이다. OSPF의 경우 LSDB에서 해당 경로에 대한 기록이 있는지 확인한다.
R1, R2
router bgp 2
 synchronization
R4#sh ip bgp
     Network          Next Hop            Metric LocPrf Weight Path
 * i 1.1.1.0/24       2.2.2.2                  0    100      0 1 i
R4#
R4#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.0/24, version 3
Paths: (1 available, no best path)
  Not advertised to any peer
  Refresh Epoch 3
  1
    2.2.2.2 (metric 3) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal, not synchronized
      rx pathid: 0, tx pathid: 0

 

R4의 BGP 테이블에서 네트워크가 학습되지만 사용할 수 없는 경로이다. no best path와 not synchronized를 확인할 수 있다.

R5#sh ip bgp 1.1.1.1
% Network not in table

 

이 문제를 해결하기 위해 동기화를 비활성화하고, 풀 메시 구성하여 AS 내의 모든 라우터가 iBGP 피어링을 맺거나 IGP에 접두사를 재분배하여 해결할 수 있다.

R2
route-map AS1 permit 10
 match ip address 1
!         
access-list 1 permit 1.1.1.0 0.0.0.255
!
router ospf 1
 redistribute bgp 2 subnets route-map AS1
 
 R4는 해당 네트워크에 대한 IGP 경로가 라우팅 테이블에 저장되어 있지 않으면, BGP 경로 저장을 거부한다.
이렇게 하면 해당 경로가 IGP 도메인 내에서 인식되므로 iBGP를 실행하지 않는 모든 라우터가 해당 경로를
라우팅할 수 있다.

R2에서 1.1.1.0/24 네트워크를 OSPF로 재분배하여 R4의 OSPF에 해당 네트워크를 포함. 이렇게 하면 동기화 규칙이 충족되고 1.1.1.0/24로 향하는 BGP 경로가 라우팅 테이블에 등록된다.

R3#sh ip rou 1.1.1.0
Routing entry for 1.1.1.0/24
  Known via "ospf 1", distance 110, metric 1
  Tag 1, type extern 2, forward metric 1
  Last update from 192.1.23.2 on GigabitEthernet0/1, 00:00:05 ago
  Routing Descriptor Blocks:
  * 192.1.23.2, from 2.2.2.2, 00:00:05 ago, via GigabitEthernet0/1
      Route metric is 1, traffic share count is 1
      Route tag 1
      
R4#sh ip rou 1.1.1.0
Routing entry for 1.1.1.0/24
  Known via "ospf 1", distance 110, metric 1
  Tag 1, type extern 2, forward metric 2
  Last update from 192.1.34.3 on GigabitEthernet0/2, 00:00:05 ago
  Routing Descriptor Blocks:
  * 192.1.34.3, from 2.2.2.2, 00:00:05 ago, via GigabitEthernet0/2
      Route metric is 1, traffic share count is 1
      Route tag 1

     Network          Next Hop            Metric LocPrf Weight Path
 r>i 1.1.1.0/24       2.2.2.2                  0    100      0 1 i

'r' : 해당 경로가 라우팅 테이블에 등록되지 않았음을 의미한다. 하지만 OSPF를 통해
라우팅 테이블에 저장된다. 이상태는 해당 경로가 eBGP를 통해 R5에게 전달되지 않는다는
것을 의미하지는 않는다. 따라서 R4에는 OSPF를 통해 학습된 1.1.1.0/24 경로가 있으므로
라우팅이 가능하다.

R5#sh ip rou 1.1.1.0
Routing entry for 1.1.1.0/24
  Known via "bgp 3", distance 20, metric 0
  Tag 2, type external
  Last update from 192.1.45.4 00:00:05 ago
  Routing Descriptor Blocks:
  * 192.1.45.4, from 192.1.45.4, 00:00:05 ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 2
      MPLS label: none
      
     Network          Next Hop            Metric LocPrf Weight Path
 *>  1.1.1.0/24       192.1.45.4                             0 2 1 i

 

Q. R4에서 OSPF에서 BGP로 재분배를 하지 않고, BGP로 다시 재분배하지 않는가? R5가 접두사를 학습하는 방법은?

A. BGP를 통한 광고의 전제 조건은 해당 네트워크가 로컬 라우팅 테이블에 있어야 한다는 것이다. '1.1.1.0/24'는 BGP 테이블에는 있지만 R4의 라우팅 테이블에는 없었다.

해결책은 해당 네트워크를 라우터 자체 내에서 BGP에서 OSPF로 재분배하는 것이다. 그 결과 네트워크가 라우팅 테이블에 저장되고 BGP를 사용하여 R5로 광고된다. (BGP가 해당 네트워크 정보의 소스이기 때문에 BGP로 다시 재분배할 필요가 없다)

'네트워크 > BGP' 카테고리의 다른 글

[BGP] iBGP  (0) 2025.05.06
[BGP] 속성7 - Prefer eBGP over iBGP  (1) 2025.04.30
[BGP] 속성6 - MED(metric)  (0) 2025.04.29
[BGP] 속성5 - Origin Code  (0) 2025.04.29
[BGP] 속성4 - AS Path  (0) 2025.04.28

+ Recent posts