Weight 

  • 가중치가 가장 높은 경로를 우선한다.
  • 해당 라우터에만 적용되는 값이며 시스코에서만 사용된다.
  • BGP 라우터 간에는 교환되지 않는다.
  • 로컬 프레퍼런스와 같이 외부로 가는 경로를 결정할 때 사용된다.
  • 로컬 프레퍼런스는 다른 iBGP 네이버에게 전송되어 경로 결정에 영햐을 주는 반면, 웨이트는 다른 BGP 네이버에게 영향을 주지 않는다. 

 

weight 조정 전

  • BGP 구성 시 라우터 ID를 설정한 이유는. R2와 R3는 루프백 인터페이스에서 동일한 IP 주소를 갖기 때문에 동일한 라우터 ID를 할당받게 되고 BGP 네이버 관계를 맺을 수 없다.
R1#sh ip bgp
     Network          Next Hop            Metric LocPrf Weight Path
 *   2.2.2.2/32       1.1.13.3                 0             0 2 i
 *>                   1.1.12.2                 0             0 2 i
  • 모든 BGP 속성이 동일하므로 최종적으로 라우터 ID로 최적 경로를 정한다.
  • 라우터가 생성하는 prefix의 기본 가중치는 32768이다.  R2 또는 R3의 BGP 테이블에서 2.2.2.2/32를 확인할 수 있다.

 

weight 조정

router bgp 1
 neighbor 1.1.13.3 weight 500
 
clear ip bgp * soft
R1#sh ip bgp 
     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       1.1.13.3                 0           500 2 i
 *                    1.1.12.2                 0             0 2 i

 

 

특정 네트워크 weight 조정

R1#sh ip bgp
     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       1.1.13.3                 0           500 2 i
 *                    1.1.12.2                 0             0 2 i
 *>  6.6.6.6/32       1.1.13.3                 0           500 2 i
 *                    1.1.12.2                 0             0 2 i
R1#sh ip bg
     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       1.1.13.3                 0           500 2 i
 *                    1.1.12.2                 0             0 2 i
 *   6.6.6.6/32       1.1.13.3                 0           500 2 i
 *>                   1.1.12.2                 0           600 2 i

 

R1 설정

route-map Lo6-weight permit 10
 match ip address 1
 set weight 600
!
route-map Lo6-weight permit 20
 set weight 0
!
!
access-list 1 permit 6.6.6.6

router bgp 1
 bgp router-id 1.1.1.1
 bgp log-neighbor-changes
 neighbor 1.1.12.2 remote-as 2
 neighbor 1.1.12.2 route-map Lo6-weight in
 neighbor 1.1.13.3 remote-as 2
 neighbor 1.1.13.3 weight 500

 

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

[BGP] 속성3 - Originate  (0) 2025.04.22
[BGP] 속성2 - Local Preference  (0) 2025.04.18
[BGP] 속성(attribute)  (0) 2025.04.17
[BGP] 스플릿 호라이즌(split horizon rule)  (0) 2025.04.14
[BGP] Next Hop  (0) 2025.04.13

BGP(Border Gateway Rrotocol) 라우터는 일반적으로 동일한 목적지로 가는 여러 경로를 수신하고, IGP와 마찬가지로 각 목적지로 가는 쵲거의 경로를 선택해야 한다.

IGP는 Metric이 가장 낮은 경로를 선택한다. (OSPF는 가장 낮은 비용의 경로를 선택) 그러나 BGP는 여러 속성을 기반으로 최적의 경로를 선택한다.

Priority Attribute 분류
1 Weight well-known mandatory
2 Local Preference  
3 Originate  
4 AS path length  
5 Origin code well-known mandatory
6 MED optional non-transitive
7 eBGP path over iBGP path  
8 Shortest IGP path to BGP next hop  
9 Oldest path  
10 Router ID  
11 Neighbor IP address  

 

1. Weight

  • 가중치가 가장 높은 경로를 우선한다.
  • 해당 라우터에만 적용되는 값이며 시스코에서만 사용된다.
  • BGP 라우터 간에는 교환되지 않는다.
  • 로컬 프레퍼런스와 같이 외부로 가는 경로를 결정할 때 사용된다.
  • 로컬 프레퍼런스는 다른 iBGP 네이버에게 전송되어 경로 결정에 영햐을 주는 반면, 웨이트는 다른 BGP 네이버에게
    영향을 주지 않는다. 

2. Local Preference (well-known discretionary)

  • AS 외부로 나가는 아웃바운드 경로를 결정할 때 사용.(인접 AS에서 들어오는 경로를 조정할 때 사용하는 MED와 반대)
  • AS 내의 iBGP 피어간에만 전달된다.
  • eBGP 라우터에게는 보내지 않는다.
  • 높은 값이 우선하며, 기본값은 100이다.

3. Originate

  • 로컬 라우터에서 시작된 경로를 우선한다. 즉, 다른 peer 라우터에 의해 BGP 테이블에 설치한 경로보다 로컬 라우터가 직접 포함한 경로(network)를 선호함.
  • BGP netowrk 명령어, redistribution, aggregation(축약)을 통해 BGP 테이블에서 경로를 가져올 수 있다.
  • IGP 처럼 네트워크 명령어 또는 재분배로 광고할 수 있지만 BGP에서 network 명령어는 동작 방식이 다르다. IGP에서는 network 명령을 사용하여 network 범위에 속하는 모든 인터페이스에서 IGP를 활성화 한다.
    BGP에서는 인터페이스와 관계가 없고, 라우팅 테이블만 확인한다. (network 명령과 일치하는 네트워크를 찾으면 BGP 테이블에 설치)

4. AS Path

  • AS 경로는 해당 네트워크까지 가는 경로상에 있는 AS의 번호들을 기록해 놓은 속성.
  • AS_SET와 AS_SEQUENCE 가 있다.
  • AS_SEQUENCE는 해당 네트워크까지 소속된 AS 번호가 가장 오른쪽에 기록되고, 현재의 AS와 인접한 AS 번호가 가장 왼쪽에 기록된다.

5. Origin Code

  • 특정 네트워크를 BGP에 포함시킨 방법을 표시한다.
  • IGP(i), EGP(e), incomplete(?) 세 가지의 오리진 코드가 있다.
    - IGP(i) : network 명령어를 사용하여 BGP에 포함된 네트워크를 의미하며, 직접 광고했음을 나타낸다.
    - incomplete(?) : network 명령어가 아닌 방법으로 BGP에 재분배된 네트워크를 의미한다.
  • 축약된 경로의 오리진은 축약전의 상세 네트워크 중에서 가장 높은 순위의 오리진 코드를 갖는다.
  • 우선순위 IGP < EGP < incomplete, 우선순위가 낮은 오리진 코드가 우선된다.

6. MED(metric)

  • AS 간에 교환되며, 이틑 통해 인접 AS에서 현재의 AS로 진입하기 위해 어떤 경로를 사용해야 하는지 알 수 있다.
  • MED는 인접 라우터에게 자신의 AS에 어떻게 들어와야 하는지 인입 경로를 광고할 때 사용.
  • MED 값이 가장 낮은 경로를 선호한다.

7. eBGP path voer iBGP path

  • 특정 경로에대해서 iBGP와 eBGP 두 개의 경로를 아는 경우.
    iBGP 경로보다 eBGP 경로를 선호한다.
  • Administrative Distance 와 혼동하면 안된다. BGP 라우터는 먼저 BGP 테이블에서 최적 경로를 파악하고, 그 다음 라우팅 테이블에 저장을 할지 판단할 때 AD를 확인한다. (동일 경로에 대해서 정적 또는 IGP 경로가 있는 경우)
    즉, iBGP 경로와 eBGP 경로는 BGP 테이블에서 이미 결정되므로 AD 값은 비교하지 않는다.

 

 

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

[BGP] 속성2 - Local Preference  (0) 2025.04.18
[BGP] 속성1 - Weight  (0) 2025.04.17
[BGP] 스플릿 호라이즌(split horizon rule)  (0) 2025.04.14
[BGP] Next Hop  (0) 2025.04.13
[BGP] 컨페더레이션  (0) 2025.04.12
  • BGP는 디스턴스 벡터 라우팅 프로토콜로 Routing Loop을 방지하기 위한 메커니즘으로 Split Horizion Rule이 적용되며, 룰은 다음과 같다 'iBGP 라우터는 iBGP를 통해 학습된 경로를 다른 iBGP 피어에게 재광고하지 않는다.'
    이처럼 동작하는 이유는 서로 다른 AS 간에 eBGP를 사용할 때 BGP는 라우팅 루프를 방지하기 위해 AS_Path 속성을 사용한다. 그러나 AS 내에서는 AS 번호가 변경되지 않으므로 이러한 루프 방지 메커니즘을 사용할 수 없기 때문이다.
  • BGP 스플릿 호라이즌 룰을 해결하는 방법.
    1. Full Mesh 설정
    2. Route Reflector 설정
    3. Confederation 설정

 

예시 1)

 

스플릿 호라이즌이 동작하지 않으면 R1은 자신이 생성한 iBGP 업데이트 메시지를 수신하게 된다.

 

split horizon이 적용되면, R2는 R1에서 학습한 iBGP 네트워크 정보를 R3으로 광고 하지 않는다.

즉, AS 내의 모든 iBGP 라우터가 네트워크 정보를 학습하려면 AS 내 모든 iBGP 라우터가 다른 모든 iBGP 라우터와 이웃이 되어야 한다. Full Mesh iBGP 피어링 설정이 되어야 하며, 대규모 AS에서는 관리가 어려워지고 리소스가 많이 소모될 수 있기 때문에 BGP Route Reflector를 사용할 수 있다.

 

예시 2)

R2#sh ip bgp
     Network          Next Hop            Metric LocPrf Weight Path
 *>  1.1.1.1/32       1.1.12.1                 0             0 1 i

R3#sh ip bgp
     Network          Next Hop            Metric LocPrf Weight Path
 *>i 1.1.1.1/32       2.2.2.2                  0    100      0 1 i 

R4#sh ip bgp
R4의 BGP 테이블에는 1.1.1.1/32 네트워크가 없다.
R3이 iBGP 네이버인 R2에게서 수신한 1.1.1.1/32 네트워크를 BGP 스플릿 호라이즌 룰 때문에 또 다른
iBGP 네이버인 R4에게 전송하지 못하기 때문이다.
------------ R2 ------------
router ospf 234
 network 1.1.23.0 0.0.0.255 area 0
 network 2.2.2.0 0.0.0.255 area 0

router bgp 234
 bgp router-id 2.2.2.2
 network 2.2.2.2 mask 255.255.255.255
 neighbor 1.1.12.1 remote-as 1
 neighbor 3.3.3.3 remote-as 234
 neighbor 3.3.3.3 update-source Loopback0
 neighbor 3.3.3.3 next-hop-self
 
------------ R3 ------------
router ospf 234
 network 1.1.23.0 0.0.0.255 area 0
 network 1.1.34.0 0.0.0.255 area 0
 network 3.3.3.0 0.0.0.255 area 0

router bgp 234
 bgp router-id 3.3.3.3
 network 3.3.3.3 mask 255.255.255.255
 neighbor 2.2.2.2 remote-as 234
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 4.4.4.4 remote-as 234
 neighbor 4.4.4.4 update-source Loopback0
 
------------ R4 ------------
router ospf 234
 network 1.1.34.0 0.0.0.255 area 0
 network 4.4.4.0 0.0.0.255 area 0

router bgp 234
 bgp router-id 4.4.4.4
 network 4.4.4.4 mask 255.255.255.255
 neighbor 3.3.3.3 remote-as 234
 neighbor 3.3.3.3 update-source Loopback0

 

 

1. Full Mesh 설정

구성 예2)의 R2에서 R3 외에 R4에 대한 네이버 설정을 추가한다. R2는 1.1.1.1 네트워크에 대한 라우팅 정보를 R3, R4에게 동시에 전송한다. full mesh 설정 방법은 iBGP로 수신한 라우팅 정보를 iBGP로 전송할 필요가 없기 때문에 BGP 스플릿 호라이즌 문제가 해결된다.

R2#sh run | s r b
router bgp 234
 bgp router-id 2.2.2.2
 network 2.2.2.2 mask 255.255.255.255
 neighbor 1.1.12.1 remote-as 1
 neighbor 3.3.3.3 remote-as 234
 neighbor 3.3.3.3 update-source Loopback0
 neighbor 3.3.3.3 next-hop-self
 neighbor 4.4.4.4 remote-as 243
 neighbor 4.4.4.4 update-source Loopback0
 neighbor 4.4.4.4 next-hop-self
 
R4#sh run | s r b
router bgp 234
 bgp router-id 4.4.4.4
 network 4.4.4.4 mask 255.255.255.255
 neighbor 2.2.2.2 remote-as 234
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 3.3.3.3 remote-as 234
 neighbor 3.3.3.3 update-source Loopback0

 

2. Route Reflector

  • 특정 라우터가 루트 리플렉터가 되면 iBGP 네이버 중에서 Route Reflector Client에 대해서는 스플릿 호라이즌 룰을 적용하지 않는다.
  • 루트 리플렉터 라우터는 iBGP로 받은 정보를 다른 iBGP로 광고할 수 있다.
  • Full Mesh로 설정해야 하는 번거로움을 피할 수 있다.
  • 루트 리플렉터 라우터는 다른 루트 리플렉터 라우터의 클라이언트가 될 수 있다.

R2#sh run | s r o 
router ospf 234
 network 1.1.23.0 0.0.0.255 area 0
 network 2.2.2.0 0.0.0.255 area 0

R2#sh run | s r b
router bgp 234
 bgp router-id 2.2.2.2
 network 2.2.2.2 mask 255.255.255.255
 neighbor 1.1.12.1 remote-as 1
 neighbor 3.3.3.3 remote-as 234
 neighbor 3.3.3.3 update-source Loopback0
 neighbor 3.3.3.3 next-hop-self
 no neighbor 4.4.4.4 ◀
R3#sh run | s r o 
router ospf 234
 network 1.1.23.0 0.0.0.255 area 0
 network 1.1.34.0 0.0.0.255 area 0
 network 3.3.3.0 0.0.0.255 area 0

R3#sh run | s r b
router bgp 234
 bgp router-id 3.3.3.3
 network 3.3.3.3 mask 255.255.255.255
 neighbor 2.2.2.2 remote-as 234
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 2.2.2.2 route-reflector-client ◀
 neighbor 4.4.4.4 remote-as 234
 neighbor 4.4.4.4 update-source Loopback0
 neighbor 4.4.4.4 route-reflector-client ◀
R4#sh run | s r o 
router ospf 234
 network 1.1.34.0 0.0.0.255 area 0
 network 4.4.4.0 0.0.0.255 area 0

R4#sh run | s r b
router bgp 234
 bgp router-id 4.4.4.4
 network 4.4.4.4 mask 255.255.255.255
 neighbor 3.3.3.3 remote-as 234
 neighbor 3.3.3.3 update-source Loopback0
 no neighbor 2.2.2.2 ◀

 

 

3. Confederation 설정

컨페더레이션 사용시 iBGP 네이버가 eBGP 네이버로 변경되기 때문에 'iBGP로 받은 네트워크는 iBGP로 광고하지 못한다'는 스플릿 호라이즌 룰 자체가 적용되지 않는다.

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

[BGP] 속성1 - Weight  (0) 2025.04.17
[BGP] 속성(attribute)  (0) 2025.04.17
[BGP] Next Hop  (0) 2025.04.13
[BGP] 컨페더레이션  (0) 2025.04.12
[BGP] 개요  (0) 2025.04.12

1. Full-Cone NAT

  • Private IP/Port와 특정 Public IP/Port를 1:1로 매핑시키는 방식이다.
  • 어떤 외부 호스트든 Public IP/Port로 접근시 매핑된 정보를 통해 내부 호스트로 접근할 수 있다.(외부에서 내부로 접근 가능)
  • 내부 호스트가 직접 통신한 대상이 아니더라도 누구든 매핑된 NAT IP 주소를 알고 있다면 내부 호스트에게 패킷을 보낼 수 있다.

 

2. Restricted-Cone NAT

  • 동일한 Private IP로부터 전송되는 모든 패킷은 동일한 NAT IP 주소로 매핑되는 방식이다.
  • Full-Cone과 다른점
    full-cone NAT는 누구든지 매핑된 NAT 정보를 알면 패킷을 내부 호스트에게 전달할 수 있지만, 해당 방식은 내부 호스트가 기존에 외부 대상의 IP 주소로 패킷을 보낸 경우에만 해당 외부 호스트가 내부 호스트로 패킷을 보낼 수 있다.
  • '1.1.1.1:80', '1.1.1.1:88' Port가 달라도 IP가 같으면 내부 호스트와 통신이 가능하다.
  • IP가 다른 '5.5.5.5:80' 패킷은 Port가 같아도 NAT에서 필터링된다. (임의의 외부 호스트는 직접 접근 불가)

 

3. Port Restricted-Cone NAT

  • Restricted Cone과 유사하며, Port 제한이 추가된다.
    즉, 기존에 내부 호스트와 통신한 IP와 Port를 갖는 외부 호스트만 내부 호스트로 패킷을 보낼 수 있다.
  • Restricted-Cone에서는 외부 대상의 Port가 같지 않아도 IP가 같으면 내부 호스트와 통신이 가능하지만 Port Restricted-Cone에서는 IP와 Port 모두 일치해야 한다. (임의의 포트에서 오는 트래픽은 차단됨)
  • PAT(Port Address Translation)의 기능과 유사하다.
    - 외부에서 내부로 먼저 접근할 수 없다.
    - 내부에서 외부로 먼저 외부로 통신이 된 이후에 외부에서 내부로 접근할 수 있다.

 

4. Symmetric

  • PAT라고 하며, 모든 유형 중에서 가장 제한적이다.
  • 내부 호스트의 IP/Port와 통신하는 외부 대상의 IP/Port를 기준으로 매핑되는 방식이다.
    [내부 IP/Port, 외부 IP/Port] → [외부 NAT IP/Port]
  • Symmetric 방식은 동일한 내부 호스트의 IP/Port라도 다른 외부 대상으로 요청을 보낼 떄마다 다른 NAT IP가 사용된다.
  • 외부 대상이 응답할 때, 매핑된 공인 포트(10000, 20000)만 허용.
  • 외부에서 직접 접근 불가.
  • 같은 대상으로 여러 번 요청을 보내도 대상이 동일하면 기존에 사용한 NAT IP/Port 매핑을 재사용한다.

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

NAT 종류와 개념  (0) 2025.04.04
  • 방화벽 정책의 오프로드 level을 조정하는 설정으로, Fortigate의 하드웨어 가속 기능을 최대한 활용하는 설정이다.
  • policy-offload-level 옵션은 NP(network processor) 또는 ASIC 칩을 이용하여 트래픽을 offload하는 방식에 영향을 준다.
  • SSL 검사(inspection)나 UTM 기능이 필요한 경우에는 적절히 조정해야 한다. 성능 최적화가 필요하지만 보안 기능을 유지해야 한다면 'default' 또는 'ipsec-offload', 'dos-offload' 옵션을 고려하는 것이 좋다.

 

set policy-offload-level 옵션

  • ipsec-offload : ipsec 트래픽에 대해 하드웨어 가속을 적용, 나머지 트래픽은 default 동작.
  • dos-offload : DoS 보호 기능만 하드웨어 오프로드로 처리하고, 나머지 트래픽은 CPU에서 처리, 일반 트래픽은 UTM 기능을 사용하면서, 대량의 DoS 트래픽을 하드웨어로 처리해 CPU 보호.
  • full-offload : 일부 경우를 제외한 트래픽 처리를 CPU를 우회하여 전용 프로세서(NP)에서 처리하여 CPU 부하를 줄이고, 대용량 트래픽 환경에서 고속 패킷 처리 성능을 극대화.
  • default : 트래픽 유형과 방화벽 정책에 따라 자동으로 하드웨어(asic) 처리 또는 소프트웨어 처리(cpu)를 전환하며 동작.
  • 트래픽 유형과 방화벽 정책 설정에 따라 가능하면 하드웨어 가속(NP6, CP9 등)을 사용하고, UTM 기능이 활성화되어 있으면 소프트웨어 처리(CPU)로 전환된다.
  • disable : 하드웨어 가속(offload) 기능을 비활성화 하고, 모든 트래픽을 CPU에서 처리한다. UTM 기능을 활성화한 상태와 유사하게 동작하며, 모든 패킷이 CPU를 거치므로 fortigate의 보안 기능을 최대로 활용할 수 있다.

 

설정 방법(CLI에서만 가능)

config firewall policy
    edit <Policy_ID>
        set policy-offload-level full-offload
    next
end

 

IT 분야에서 'offload'의 뜻

IT분야에서 offload는 주로 부하를 분산시키거나 특정 작업을 다른 시스템이나 프로세스에 맡기는 행위를 의미한다.

 

주요 예시

서버 오프로딩(Server Offloading): 서버의 처리 부하를 줄이기 위해 일부 작업을 다른 시스템으로 이전하는 것.

예: 로드 밸런서가 트래픽을 여러 서버로 분산.

'FortiGate' 카테고리의 다른 글

참고  (0) 2025.03.20
[Fortigate] vDOM ing  (0) 2025.03.18
[FortiGate] NTP 설정  (0) 2025.03.18
  • BGP가 prefix를 광고할 때 next hop 주소가 포함된다.
  • Update Message에서 다음 내용을 확인할 수 있다.
    - NLRI filed : prefix와 prefix length가 포함
    - path attributes : next hop 필드가 포함
  • next hop은 eBGP 또는 iBGP를 사용하는지에 따라 다르다.
    - eBGP 라우터는 일반적으로 다른 eBGP 라우터에 라우팅 정보를 보낼 때 그 라우터와 연결된 IP를 next hop으로 광고한다.
  • iBGP 라우터는 일반적으로 next hop 주소를 변경하지 않는다.
  • IPG의 next hop ip 주소는 항상 물리적으로 접속된 인접 라우터의 ip 주소이다.

 

구성

eBGP에서 eBGP로

  • BGP는 처음 라우팅 정보를 보낸 라우터가 next hop이 되고, 다른 AS로 넘어갈 때는 그 AS와 연결되는 라우터가 next hop이 된다.
  • eBGP 라우터는 일반적으로 다른 eBGP 라우터에 라우팅 정보를 보낼 때 그 라우터와 연결된 IP를 next hop으로 광고한다.
R2#sh ip bgp
     Network          next hop            Metric LocPrf Weight Path
 *>  1.1.1.1/32       1.1.12.1                 0             0 1 i
R3#sh ip bgp
     Network          next hop            Metric LocPrf Weight Path
 *>  1.1.1.1/32       1.1.23.2                               0 2 1 i

 

iBGP에서 iBGP로

  • BGP는 동일 AS 내부에서는 next hop 주소를 변경하지 않는다.
  • BGP 스플릿 호라이즌 룰 때문에 iBGP 라우터는 인접 라우터에게만 프리픽스를 알린다. R4는 R5에 프리픽스를 알리고, R5는 R6에게 해당 프리픽스를 알리지 않는다.
R5#sh ip bgp
     Network          next hop            Metric LocPrf Weight Path
 r>i 4.4.4.4/32       4.4.4.4                  0    100      0 i
R6#sh ip bgp
     Network          next hop            Metric LocPrf Weight Path
 r>i 4.4.4.4/32       4.4.4.4                  0    100      0 i
  • 목적지 4.4.4.4에 대해서 AD 값이 더 나은 OSPF로 인해 라우팅 테이블에는 OSPF 경로로 저장되고, BGP 테이블에는 ' r>i ' 상태로 나타난다.

 

eBGP에서 iBGP로

R4#sh ip bgp | i 1.1.1.1
 *>  1.1.1.1/32       1.1.14.1                 0             0 1 i
R4#sh ip bgp | i 2.2.2.2
 *>  2.2.2.2/32       1.1.14.1                               0 1 2 i
R4#sh ip bgp | i 3.3.3.3
 *>  3.3.3.3/32       1.1.14.1                               0 1 2 3 i

 

iBGP는 eBGP에서 학습된 경로의 next hop을 변경하지 않는다. (R5, R6에서 전부 next hop이 '1.1.14.1'로 동일.)

R5#sh ip bgp | i 1.1.1.1
 * i 1.1.1.1/32       1.1.14.1                 0    100      0 1 i
R5#sh ip bgp | i 2.2.2.2
 * i 2.2.2.2/32       1.1.14.1                 0    100      0 1 2 i
R5#sh ip bgp | i 3.3.3.3
 * i 3.3.3.3/32       1.1.14.1                 0    100      0 1 2 3 i

 

  • iBGP 라우터인 R5, R6이 1.1.14.1로 도달 하기 위해서, R4에서 1.1.14.0/24 네트워크를 광고하거나 BGP Next Hop Self를 사용해야 한다.

 

iBGP에서 eBGP로

R4#sh ip bgp | i 5.5.5.5
 r>i 5.5.5.5/32       5.5.5.5                  0    100      0 i

 

R1과 R4는 eBGP를 사용하므로 next hop이 1.1.14.4로 변경 된다.

R1#sh ip bgp | i 5.5.5.5
 *>  5.5.5.5/32       1.1.14.4                               0 456 i

 

다른 AS로 넘어갈 때는 그 AS와 연결되는 라우터가 next hop이 된다.

R2#sh ip bgp | i 5.5.5.5
 *>  5.5.5.5/32       1.1.12.1                               0 1 456 i
R3#sh ip bgp | i 5.5.5.5
 *>  5.5.5.5/32       1.1.23.2                               0 2 1 456 i

 

※ eBGP는 다른 eBGP 라우터에 네트워크를 광고할 때 자체 IP 주소를 next hop으로 광고한다.

iBGP는 next hop 주소를 변경하지 않는다.

 

이러한 동작을 여러 옵션을 사용하여 변경할 수 있다. eBGP next hop을 그대로 유지하면서 next hop 기능은 변경하지 않거나, iBGP의 경우 BGP next hop 자체 설정을 사용하여 프리픽스를 광고하는 라우터의 next hop 주소를 변경할 수 있다.

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

[BGP] 속성(attribute)  (0) 2025.04.17
[BGP] 스플릿 호라이즌(split horizon rule)  (0) 2025.04.14
[BGP] 컨페더레이션  (0) 2025.04.12
[BGP] 개요  (0) 2025.04.12
[BGP] BGP 테이블 2  (0) 2025.04.11

 

 

SW-1#sh run | s r b
router bgp 1
 bgp router-id 1.1.1.1
 bgp log-neighbor-changes
 network 1.1.1.1 mask 255.255.255.255
 neighbor 1.1.12.2 remote-as 234

SW-1#sh ip bgp su
BGP router identifier 1.1.1.1, local AS number 1
BGP table version is 10, main routing table version 10
3 network entries using 432 bytes of memory
3 path entries using 240 bytes of memory
3/3 BGP path/bestpath attribute entries using 456 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1152 total bytes of memory
BGP activity 6/3 prefixes, 6/3 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
1.1.12.2        4          234      13      13       10    0    0 00:07:38        2
SW-1#
SW-1#sh ip bgp
BGP table version is 11, 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, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  1.1.1.1/32       0.0.0.0                  0         32768 i
 *>  2.2.2.2/32       1.1.12.2                 0             0 234 i
 *>  3.3.3.3/32       1.1.12.2                               0 234 i
 *>  4.4.4.4/32       1.1.12.2                               0 234 i
SW-1#
SW-1#
SW-1#sh ip rou 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "connected", distance 0, metric 0 (connected, via interface)
  Advertised by bgp 1
  Routing Descriptor Blocks:
  * directly connected, via Loopback0
      Route metric is 0, traffic share count is 1
SW-1#
SW-1#
SW-1#sh ip rou bgp
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      2.0.0.0/32 is subnetted, 1 subnets
B        2.2.2.2 [20/0] via 1.1.12.2, 00:11:30
      3.0.0.0/32 is subnetted, 1 subnets
B        3.3.3.3 [20/0] via 1.1.12.2, 00:04:45
      4.0.0.0/32 is subnetted, 1 subnets
B        4.4.4.4 [20/0] via 1.1.12.2, 00:04:14

 

SW-2#sh run | s r b
router bgp 65002
 bgp router-id 2.2.2.2
 bgp log-neighbor-changes
 bgp confederation identifier 234
 bgp confederation peers 65003 
 network 2.2.2.2 mask 255.255.255.255
 neighbor 1.1.12.1 remote-as 1
 neighbor 3.3.3.3 remote-as 65003
 neighbor 3.3.3.3 ebgp-multihop 2
 neighbor 3.3.3.3 update-source Loopback0

SW-2#sh ip
*Apr 12 12:34:46.023: %SYS-5-CONFIG_I: Configured from console by console
SW-2#sh ip bgp su
BGP router identifier 2.2.2.2, local AS number 65002
BGP table version is 5, main routing table version 5
3 network entries using 432 bytes of memory
3 path entries using 240 bytes of memory
3/3 BGP path/bestpath attribute entries using 456 bytes of memory
2 BGP AS-PATH entries using 48 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1176 total bytes of memory
BGP activity 3/0 prefixes, 3/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
1.1.12.1        4            1      13      13        4    0    0 00:07:38        1
3.3.3.3         4        65003       6       8        4    0    0 00:02:02        1
SW-2#
SW-2#sh ip bgp
BGP table version is 7, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  1.1.1.1/32       1.1.12.1                 0             0 1 i
 *>  2.2.2.2/32       0.0.0.0                  0         32768 i
 r>  3.3.3.3/32       3.3.3.3                  0    100      0 (65003) i
 r>  4.4.4.4/32       4.4.4.4                  0    100      0 (65003 65004) i
SW-2#
SW-2#
SW-2#sh ip rou 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "bgp 65002", distance 20, metric 0
  Tag 1, type external
  Last update from 1.1.12.1 00:09:13 ago
  Routing Descriptor Blocks:
  * 1.1.12.1, from 1.1.12.1, 00:09:13 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 1
      MPLS label: none
SW-2#
SW-2#
SW-2#sh ip rou bgp
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      1.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
B        1.1.1.1/32 [20/0] via 1.1.12.1, 00:12:00

 

SW-3#sh run | s r b
router bgp 65003
 bgp router-id 3.3.3.3
 bgp log-neighbor-changes
 bgp confederation identifier 234
 bgp confederation peers 65002 65004 
 network 3.3.3.3 mask 255.255.255.255
 neighbor 2.2.2.2 remote-as 65002
 neighbor 2.2.2.2 ebgp-multihop 2
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 4.4.4.4 remote-as 65004
 neighbor 4.4.4.4 ebgp-multihop 2
 neighbor 4.4.4.4 update-source Loopback0

SW-3#sh ip bgp su
BGP router identifier 3.3.3.3, local AS number 65003
BGP table version is 6, main routing table version 6
4 network entries using 576 bytes of memory
4 path entries using 320 bytes of memory
4/4 BGP path/bestpath attribute entries using 608 bytes of memory
3 BGP AS-PATH entries using 72 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1576 total bytes of memory
BGP activity 4/0 prefixes, 4/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
2.2.2.2         4        65002       8       6        4    0    0 00:02:02        2
4.4.4.4         4        65004       5       9        4    0    0 00:00:35        1
SW-3#
SW-3#sh ip bgp
BGP table version is 6, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  1.1.1.1/32       1.1.12.1                 0    100      0 (65002) 1 i
 r>  2.2.2.2/32       2.2.2.2                  0    100      0 (65002) i
 *>  3.3.3.3/32       0.0.0.0                  0         32768 i
 r>  4.4.4.4/32       4.4.4.4                  0    100      0 (65004) i
SW-3#
SW-3#
SW-3#sh ip rou 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "bgp 65003", distance 200, metric 0
  Tag 65002, type internal
  Last update from 1.1.12.1 00:03:36 ago
  Routing Descriptor Blocks:
  * 1.1.12.1, from 2.2.2.2, 00:03:36 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 65002
      MPLS label: none
SW-3#
SW-3#
SW-3#sh ip rou bgp
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      1.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
B        1.1.1.1/32 [200/0] via 1.1.12.1, 00:06:24

 

SW-4#sh run | s r b
router bgp 65004
 bgp router-id 4.4.4.4
 bgp log-neighbor-changes
 bgp confederation identifier 234
 bgp confederation peers 65003 
 network 4.4.4.4 mask 255.255.255.255
 neighbor 3.3.3.3 remote-as 65003
 neighbor 3.3.3.3 ebgp-multihop 2
 neighbor 3.3.3.3 update-source Loopback0
 
 SW-4#sh ip bgp su
BGP router identifier 4.4.4.4, local AS number 65004
BGP table version is 8, main routing table version 8
4 network entries using 576 bytes of memory
4 path entries using 320 bytes of memory
4/4 BGP path/bestpath attribute entries using 608 bytes of memory
3 BGP AS-PATH entries using 72 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1576 total bytes of memory
BGP activity 4/0 prefixes, 4/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
3.3.3.3         4        65003       9       5        8    0    0 00:00:35        3
SW-4#
SW-4#sh ip bgp
BGP table version is 8, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  1.1.1.1/32       1.1.12.1                 0    100      0 (65003 65002) 1 i
 r>  2.2.2.2/32       2.2.2.2                  0    100      0 (65003 65002) i
 r>  3.3.3.3/32       3.3.3.3                  0    100      0 (65003) i
 *>  4.4.4.4/32       0.0.0.0                  0         32768 i
SW-4#
SW-4#
SW-4#sh ip rou 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "bgp 65004", distance 200, metric 0
  Tag 65003, type internal
  Last update from 1.1.12.1 00:02:05 ago
  Routing Descriptor Blocks:
  * 1.1.12.1, from 3.3.3.3, 00:02:05 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 65003
      MPLS label: none
SW-4#
SW-4#
SW-4#sh ip rou bgp
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      1.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
B        1.1.1.1/32 [200/0] via 1.1.12.1, 00:04:53

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

[BGP] 스플릿 호라이즌(split horizon rule)  (0) 2025.04.14
[BGP] Next Hop  (0) 2025.04.13
[BGP] 개요  (0) 2025.04.12
[BGP] BGP 테이블 2  (0) 2025.04.11
[BGP] BGP 테이블 1  (0) 2025.04.11

개요

  • AS(Autonomous System) 간 네트워크 정보를 라우팅하는 데 사용되는 Distance Vector 라우팅 프로토콜이다.
  • 유니캐스트 방식으로 라우팅 정보를 전송하며 TCP 포트 번호 179번을 사용하여 신뢰성 있는 통신을 한다.
  • IGP와 달리 BGP는 일련의 속성을 사용하여 각 목적지에 대한 최적의 경로를 결정한다.
  • 자율 시스템(Autonomous System, AS) : 하나의 관리 주체 하에 운영되는 네트워크의 집합이다. 각 AS는 고유한 AS 번호를 가진다.
  • 경로 광고(Route Advertisement) : BGP 라우터는 자신이 속한 AS의 네트워크 정보다 다른 AS로부터 학습한 경로 정보를 인접한 BGP 라우터에게 알린다. 이때, 단순히 목적지 네트워크 정보뿐만 아니라 해당 경로를 거쳐온 AS들의 목록(AS Path) 등의 속성(Attribute) 정보도 함께 전달한다.
  • 경로 선택(Route Selection) : BGP 라우터는 수신한 다양한 경로 정보들을 기반으로 최적의 경로를 선택한다. 이때, AS Path 길이, policy, Preference, MED, Weight 등 다양한 속성들을 고려한다.
  • BGP는 AS Path 정보를 활용하여 라우팅 루프를 방지한다. 라우터는 자신이 이미 거쳐 온 AS가 경로 정보에 포함되어 있으면 해당 경로를 무시한다.

 

  • 동일한 AS내에 BGP로 동작하는 라우터가 여러개 존재할 때는 해당 AS내에서 별개로 IGP를 설정한다.
  • IGP의 용도
    - BGP 네이버로 가는 경로를 알리기 위해
    - BGP 넥스트 홉 문제 해결을 위해
    - BGP 싱크 문제 해결을 위해
    - AS 내부에서의 라우팅을 위해
  • iBGP가 동작하려면 BGP와 IGP의 동기화, next-hop까지의 통신, split horizon 문제가 해결되어야 한다.
    (iBGP로 광고받은 네트워크는 IGP가 확인해주어야만 사용할 수 있다.)
  • 특정 네트워크를 BGP에 포함시킬 때 netmask 명령어 다음에 지정하는 subnet mask와 정확히 일치하는 네트워크가 라우팅 테이블에 존재해야 한다.
  • BGP는 라우팅 테이블에 있는 네트워크에 대해서만 라우팅 정보를 전송할 수 있다.

 

 

BGP가 작동하려면 왜 IGP가 필요한가.

BGP가 정상적으로 작동하려면 확인하려면 IGP 또는 Static Routing이 필요하다.iBGP 스플릿 호라이즌 룰 때문에 iBGP 인접 라우터들의 full mesh가 필요하다. 즉, 모든 iBGP 라우터는 AS 내의 다른 모든 iBGP 라우터와 인접해야 한다. 이러한 iBGP 라우터들 연결하기 위해서 IGP를 사용하고, 네이버 인접성을 위해 루프백 인터페이스를 사용하는 것이 일반적이다.

 

iBGP 경로를 IGP로 재분배

BGP를 사용할 때는 iBGP를 통해 학습된 경로를 IGP로 재배포 하지 않는 것이 좋다. iBGP와 OSPF와 같은 IGP가 라우팅 정보를 처리하는 방식의 근본적인 차이로 인해 루프가 발생할 수 있다.

iBGP는 스플릿 호라이즌 규칙 메커니즘으로 AS 내에서 라우팅 루프를 방지하고, 반면 OSPF와 같은 IGP는 이 규칙을 사용하지 않는다. IGP는 몯느 이웃 라우터에 학습된 경로를 모두 알린다. 따라서 iBGP에서 학습된 경로를 OSPF로 재분배하면 OSPF는 해당 경로를 원래 알린 iBGP라우터를 포함한 모든 이웃 라우터에게 알리게 되고 이로 인해 루프가 발생할 가능성이 있다.

 

라우팅 루프의 가능성을 줄이기 위해 네트워크를 IGP에 직접 광고하고 재분배 하지 않는 것이다. 즉, iBGP에서 OSPF로 특정 경로를 재분배하는 대신, 해당 경로가 속한 네트워크에 직접 광고하는 것이다. 이렇게 하면 OSPF 도메인에 있는 모든 라우터가 네트워크로 ㅇ녀결되는 경로를 갖게 되어 라우팅 루프 발생 가능성을 방지할 수 있다.

 

Route Reflector VS Confederations

AS 내에 BGP를 구축할 때 전제 조건은 모든 iBGP 라우터 간에 full mesh 피어링을 구성하는 것이다. 그러나 피어링 수가 기하급수적으로 증가하면 관리와 확장성에 문제가 생길 수 있다.

 

이를 해결 하기 위해 BGP의 두 가지 기능 중 하느를 사용할 수 있다.

  • BGP Route Reflector
  • BGP Confederations

 

두 방법 모두 기존 iBGP full mesh를 구축하기에는 너무 복잡한 대규모 AS를 관리하는 데 사용된다.

  • RR은 일반적으로 구성 및 유지 관리의 단순성이 매우 중요한 네트워크에서 선호된다.
  • 반면, 컨페더레이션은 일반적으로 라우팅 정책을 광범위하게 제어해야 하고 이를 계층적으로 관리해야 하는 복잡한 네트워크 환경에서 사용되며, AS를 더 작은 AS로 분할하기 때문에 RR보다 확장성이 더 뛰어나다.

두 기술 모두 iBGP 구성을 단순화하는 데 사용할 수 있지만, RR은 일반적으로 구현 및 관리가 더 쉬워 단순한 네트워크에 적합하고, 컨페터레이션은 더 복잡하지만 더욱 세밀한 제어와 유연성을 제공하므로 규모가 크거나 복잡한 네트워크에 더 적합하다.

 

iBGP 구성시 Loopback 주소를 사용하여 장애에 대비한 이중화가 가능.

ㆍiBGP neighbor 지정시 보통 라우터의 Loopbacp 주소를 사용한다. 직접 연결된 1.1.23.3으로 지정해도 되지만 SW2-3간의 링크가 다운될 경우 백업 경로가 있음에도 SW2-3간의 iBGP neighbor가 해제된다.

ㆍR2가 iBGP 네이버인 R3에게 BGP 세션을 맺기 위한 메시지를 보내려면 해당 IP 주소와 연결되는 경로를 알아야 한다. R2의 라우티 ㅇ테이블에 네이버 주소로 사용하는 3.3.3.3 네트워크에 대한 정보가 저장되어 있어야만 R2와 R3간에 iBGP 네이버가 구성되며, IGP를 사용하는 이유 중 하나이다.

ㆍ대부분의 경우, BGP 네트워크가 많아 IGP로 재분배하면 라우터가 다운될 수도 있고, 장애처리도 힘들기 때문에 BGP를 IGP로 재분배하는 경우는 많지 않다.

 

BGP Table

 

BGP Neighnor Table

 

BGP 동기화

ㆍno sync 설정

ㆍBGP를 IGP로 재분배

ㆍ컨페더레이션 설정

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

[BGP] Next Hop  (0) 2025.04.13
[BGP] 컨페더레이션  (0) 2025.04.12
[BGP] BGP 테이블 2  (0) 2025.04.11
[BGP] BGP 테이블 1  (0) 2025.04.11
[BGP] eBGP, iBGP 기본 설정  (0) 2025.04.10

+ Recent posts