본문 바로가기
네트워크

BGP #1(iBGP,eBGP)

by CBROJIN 2025. 4. 7.

[학습 목표]

1) BGP

2) eBGP

3) iBGP

 

 

BGP 실습 설정
기본 설정
R1(config)#int lo0
R1(config-if)#ip add 10.10.10.10 255.255.255.0
R1(config)#int e0/0
R1(config-if)#ip add 10.10.12.1 255.255.255.0
R1(config-if)#no shut

eBGP 설정
R1(config)#router bgp 1
R1(config-router)#bgp router-id 10.10.10.10
R1(config-router)#neighbor 10.10.12.2 remote-as 2
R1(config-router)#network 10.10.10.0 mask 255.255.255.0
기본 설정
R2(config)#int lo0
R2(config-if)#ip add 20.20.20.20 255.255.255.0
R2(config-if)#int e0/0
R2(config-if)#ip add 10.10.12.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int e0/1
R2(config-if)#ip add 20.20.23.2 255.255.255.0
R2(config-if)#no shut
R2(config)#router ospf 1
R2(config-router)#router-id 20.20.20.20
R2(config-router)#network 10.10.12.2 0.0.0.0 area 0
R2(config-router)#network 20.20.23.2 0.0.0.0 area 0
R2(config-router)#network 20.20.20.20 0.0.0.0 area 0
R2(config-router)#passive-interface e0/0
R2(config)#int range e0/0-1
R2(config-if-range)#ip ospf network point-to-point

eBGP 설정
R2(config)#router bgp 2
R2(config-router)#bgp router-id 20.20.20.20
R2(config-router)#neighbor 10.10.12.1 remote-as 1
R2(config-router)#network 20.20.20.0 mask 255.255.255.0

iBGP 설정
R2(config)#router bgp 2
R2(config-router)#neighbor 30.30.30.30 remote-as 2
R2(config-router)#neighbor 30.30.30.30 update-source lo0
R2(config-router)#neighbor 40.40.40.40 remote-as 2 
R2(config-router)#neighbor 40.40.40.40 update-source lo0

기본 설정
R3(config)#int lo0
R3(config-if)#ip add 30.30.30.30 255.255.255.0
R3(config-if)#int e0/1
R3(config-if)#ip add 20.20.23.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#int e0/2
R3(config-if)#ip add 30.30.34.3 255.255.255.0
R3(config-if)#no shut
R3(config)#router ospf 1
R3(config-router)#router-id 30.30.30.30
R3(config-router)#network 20.20.23.3 0.0.0.0 area 0
R3(config-router)#network 30.30.34.3 0.0.0.0 area 0
R3(config-router)#network 30.30.30.30 0.0.0.0 area 0
R3(config)#int range e0/1-2
R3(config-if-range)#ip ospf network point-to-point

iBGP 설정
R3(config)#router bgp 2
R3(config-router)#bgp router-id 30.30.30.30
R3(config-router)#neighbor 20.20.20.20 remote-as 2
R3(config-router)#neighbor 20.20.20.20 update-source lo0
R3(config-router)#neighbor 40.40.40.40 remote-as 2
R3(config-router)#neighbor 40.40.40.40 update-source lo0
R3(config-router)#network 30.30.30.0 mask 255.255.255.0

기본 설정
R4(config-if)#int lo0
R4(config-if)#ip add 40.40.40.40 255.255.255.0
R4(config-if)#int e0/2
R4(config-if)#ip add 30.30.34.4 255.255.255.0
R4(config-if)#no shut
R4(config)#router ospf 1
R4(config-router)#router-id 40.40.40.40
R4(config-router)#network 30.30.34.4 0.0.0.0 area 0
R4(config-router)#network 40.40.40.40 0.0.0.0 area 0
R4(config-router)#int e0/2
R4(config-if)#ip ospf network point-to-point

iBGP 설정
R4(config)#router bgp 2
R4(config-router)#bgp router-id 40.40.40.40
R4(config-router)#neighbor 30.30.30.30 remote-as 2
R4(config-router)#neighbor 30.30.30.30 update-source lo0 
R4(config-router)#neighbor 20.20.20.20 remote-as 2
R4(config-router)#neighbor 20.20.20.20 update-source lo0
R4(config-router)#network 40.40.40.0 mask 255.255.255.0

 

 

1) BGP란 무엇인가?

✅ 정의

  • BGP (Border Gateway Protocol는 인터넷에서 사용하는 Exterior Gateway Protocol (EGP)다.
  • 현재 사용하는 버전은 BGP-4, Path Vector Protocol 기반이다.
  • AS (Autonomous System, 자율 시스템) 간에 라우팅 정보를 교환하는 데 사용된다.
  • 경로 선택 시 단순히 metric이 아닌, 경로 속성(Path Attributes)을 기반으로 "최적의 경로"를 선택한다.
  • TCP 포트 179를 사용하고, 신뢰성 있는 연결을 위해 TCP 기반이다.

ex) 네트워크가 한 회사 내부라면 IGP (예: OSPF, EIGRP 등)를 사용하고 네트워크가 다른 회사나 조직과 연결될 땐 BGP를 사용한다.

 

쉽게 말해서,

인터넷에서 수많은 네트워크(AS: Autonomous System)를 서로 연결해주는 라우팅 프로토콜이다.


2) eBGP란 무엇인가?

✅ 정의

  • eBGP는 서로 다른 Autonomous System (AS) 간에 경로 정보를 교환하는 External BGP 세션을 의미한다.
  • 인터넷 환경에서 ISP, 클라우드 사업자, 또는 기업 네트워크가 다른 외부 네트워크와 트래픽을 주고받기 위해 사용한다.

즉, 경계 라우터들 간에 라우팅 정책 및 경로 정보를 교환하여 인터넷 전체에서 목적지까지의 최적 경로를 계산하는 것이 eBGP의 주 목적이다.

 

주요 특징

항목 설명
AS 간 연결 서로 다른 AS 번호를 가진 라우터 간에 구성됨
기본 TTL TCP 세션의 TTL은 1로 설정되며, **직접 연결(Direct Link)**이 기본 전제이다
경로 속성 AS_PATH, NEXT_HOP, ORIGIN, MED 등의 Path Attributes를 사용하여 경로 선택
트래픽 제어 prefix-list, AS-path filter, route-map 등을 통해 정교한 경로 제어가 가능
라우팅 정책 정책 기반 라우팅 및 비대칭 라우팅 방지 등을 위해 Inbound/Outbound 정책 수립 필수
인증 기능 BGP session 보호를 위한 MD5 Authentication 가능 (Cisco: neighbor X.X.X.X password ...)

 

🔎 실습

R1 BGP table

AS 1 의 eBGP router R1과 AS 2 의 eBGP router R2가 eBGP 관계를 맺었다.

 

R1(config)#router bgp 1
R1(config-router)#bgp router-id 10.10.10.10
R1(config-router)#neighbor 10.10.12.2 remote-as 2
R1(config-router)#network 10.10.10.0 mask 255.255.255.0

 

#

R1(config)#router bgp 1

  • 이 명령어는 AS 번호 1번으로 BGP 프로세스를 시작한다는 의미이다.
  • 여기서 1은 R1 라우터가 속한 자율 시스템 번호(AS number)이다.
  • BGP는 각 라우터가 자신이 속한 AS 번호를 기준으로 피어와 세션을 맺기 때문에, 이 값은 정확해야 한다.

R1(config-router)#neighbor 10.10.12.2 remote-as 2

  • 이 명령어는 BGP 피어를 지정하는 핵심 명령어이다.
  • 10.10.12.2는 이웃 라우터의 인터페이스 IP 주소이다.
  • remote-as 2는 상대방 라우터가 속한 AS 번호가 2번이라는 의미이다.
  • 이 설정을 통해 R1과 R2는 서로 다른 AS 번호를 사용하므로 eBGP 세션이 수립된다.
  • 이웃 라우터와의 TCP 179번 포트 연결이 이 설정을 통해 이루어진다.

R1(config-router)#network 10.10.10.0 mask 255.255.255.0

  • 이 명령어는 BGP가 외부로 광고할 네트워크를 지정하는 명령이다.
  • 해당 네트워크가 라우팅 테이블(RIB)에 존재하면 광고가 가능하다.
  • 즉, 10.10.10.0/24 네트워크가 show ip route 상에서 존재해야 광고가 수행된다.
  • 보통은 Loopback 인터페이스나 Static Route 등을 통해 RIB에 등록해 두는 것이 일반적이다.

2) iBGP란 무엇인가?

✅ iBGP란?

  • iBGP는 하나의 Autonomous System (AS) 내에서 BGP 경로 정보를 내부 라우터들끼리 전달하기 위해 사용하는 BGP 프로토콜이다.

즉, 같은 AS 번호를 공유하는 라우터 간에 구성되는 BGP 세션을 의미한다.

✅ iBGP가 왜 필요할까?

eBGP를 통해 외부 AS에서 받은 경로 정보를 내부로 전달하려면, AS 내부에서도 BGP 프로토콜을 사용해야 한다.
단, IGP(OSPF, EIGRP 등)로는 BGP 경로 속성 (AS_PATH, MED, LOCAL_PREF 등)을 유지하면서 전달할 수 없기 때문에,
iBGP를 통해 내부에서도 BGP 경로를 그대로 전달해야 한다.

 

✅ iBGP와 eBGP의 차이점

항목 iBGP eBGP
AS 번호 동일한 AS 번호 서로 다른 AS 번호
기본 TTL 255 1
NEXT_HOP 변경 변경하지 않는다 (수동 설정 필요) 기본적으로 상대방 인터페이스로 변경된다
루프 방지 Split Horizon 룰 사용 AS_PATH 사용
Peer 구성 방식 Full Mesh 필요 (Route Reflector 등 회피 가능) 직접 연결만 하면 됨
일반 용도 내부 BGP 경로 분산 외부 네트워크와 BGP 세션 구성

🔎 실습

iBGP 설정 후 R4 -> R1 Ping

 

iBGP 설정 후 R4에서 R1 lo0으로 ping을 확인한다.

ping 10.10.10.10 은 실패 하지만,

ping 10.10.10.10 source 40.40.40.40 은 성공한다.

 

왜냐하면,

R4(config-router)#neighbor 20.20.20.20 update-source lo0

기본적으로 BGP는 피어 IP로 설정한 주소에 대해 라우터의 해당 인터페이스 IP를 출발지로 사용하는데,

이 명령은 BGP 세션을 구성할 때, 출발지(Source) IP를 Loopback0 인터페이스의 IP로 설정하겠다는 의미이다.

따라서 인터페이스 주소는 모르기 때문에 실패하지만, Loopback 주소는 알기 때문에 핑이 간다.

이 설정은 상대방도 반드시 update-source를 Loopback으로 설정해야 세션이 맺어진다.

즉, 이웃 간에 Loopback ↔ Loopback으로 세션을 구성하는 방식이다.

 

iBGP 설정 후 R2 bgp 테이블

 

R2,R3,R4 모두 위 명령어 처럼 iBGP 맺은 후, R2 bgp table 모습이다.

 

R2(config)#router bgp 2
R2(config-router)#neighbor 30.30.30.30 remote-as 2
R2(config-router)#neighbor 30.30.30.30 update-source lo0
R2(config-router)#neighbor 40.40.40.40 remote-as 2 
R2(config-router)#neighbor 40.40.40.40 update-source lo0

 

#

 

* → 유효한 경로임

> → BGP가 선택한 최적 경로임

i  이 경로가 같은 AS 안에서 iBGP를 통해 전달받은 경로라는 뜻이다.

Next Hop

10.10.12.1 → 이 경로로 패킷을 보내야 목적지에 도달 가능함

Path

1 i

1 = eBGP로 받은 경로로, AS 1을 거쳐왔다는 의미

i = iBGP로 내부에서 받아들였다는 뜻 (AS 내부 전달)

 

 

Next Hop IP가 라우팅 테이블에 있어야 트래픽이 실제로 전달된다 → show ip route로 확인

30.30.30.30, 40.40.40.40 같은 Next Hop은 IGP로 reachability 확보되어야 함

 

 

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

BGP #3(weight,local preference,MED)  (0) 2025.04.12
BGP #2(Next Hop,Split Horizon)  (0) 2025.04.10
OSPF #4(Virtual-link,Demand circuit)  (0) 2025.04.05
OSPF #3(Summarization,Authentication)  (0) 2025.04.02
OPSF #2(LSA,Stub Area)  (0) 2025.03.30