토폴로지 다이어그램
기본 구성
IP 구성
| 인터페이스 | IP 주소 |
|---|---|
| R5 G0/0/0 | 12.1.1.5/24 |
| R5 LoopBack 0 | 5.5.5.5/32 |
| R1 G0/0/0 | 12.1.1.1/24 |
| R1 G0/0/2 | 23.1.1.1/24 |
| R1 LoopBack 0 | 1.1.1.1/32 |
| R2 G0/0/0 | 23.1.1.2/24 |
| R2 G0/0/1 | 34.1.1.2/24 |
| R2 LoopBack 0 | 2.2.2.2/32 |
| R3 G0/0/1 | 34.1.1.3/24 |
| R3 G0/0/2 | 45.1.1.3/24 |
| R3 LoopBack 0 | 3.3.3.3/32 |
| R4 G0/0/0 | 45.1.1.4/24 |
| R4 LoopBack 0 | 4.4.4.4/32 |
2. 영역 구성
| 라우터 | 영역 |
|---|---|
| R5 | AS100 |
| R1, R2, R3 | AS200 |
| R4 | AS300 |
| R1, R2, R3 | OSPF Area 0 |
IBGP는 일반적으로 루백 인터페이스로 이웃 관계를 설정합니다(안정성). 먼저 IGP를 구성하여 루백 인터페이스 경로를 제공해야 합니다.
EBGP는 일반적으로 직접 연결된 인터페이스로 이웃 관계를 설정합니다.
3. 이웃 관계 설정
AS100
R5
bgp 100
router-id 5.5.5.5
neighbor 12.1.1.1 as-number 200
AS200
R1, R2, R3는 먼저 IGP 관계를 설정하고, 루백 인터페이스 경로가 확보된 후 IBGP 관계를 설정해야 합니다.
IGP
R1
ospf router-id 1.1.1.1
area 0
network 23.1.1.0 0.0.0.255
network 1.1.1.1 0.0.0.255
R2
ospf router-id 2.2.2.2
area 0
network 23.1.1.0 0.0.0.255
network 34.1.1.0 0.0.0.255
network 2.2.2.2 0.0.0.0
R3
ospf router-id 3.3.3.3
area 0
network 34.1.1.0 0.0.0.255
network 3.3.3.3 0.0.0.0
IBGP
R1
bgp 200
router-id 1.1.1.1
neighbor 12.1.1.5 as-number 100
neighbor 2.2.2.2 as-number 200
neighbor 2.2.2.2 update-source LoopBack 0
R2
bgp 200
router-id 2.2.2.2
neighbor 1.1.1.1 as-number 200
neighbor 1.1.1.1 update-source LoopBack0
neighbor 3.3.3.3 as-number 200
neighbor 3.3.3.3 update-source LoopBack0
R3
bgp 200
router-id 3.3.3.3
neighbor 2.2.2.2 as-number 200
neighbor 2.2.2.2 update-source LoopBack0
neighbor 45.1.1.4 as-number 300
AS300
R4
bgp 300
router-id 4.4.4.4
neighbor 45.1.1.3 as-number 200
R3에서 이웃 관계를 확인합니다.
실험 1: 라우팅 발행
BGP 라우팅 추가
R2에서 OSPF 경로를 도입합니다:
import-route ospf 1
R5에서 라우팅을 추가합니다:
network 5.5.5.5 32
R2에서 라우팅 항목을 확인합니다:
1.1.1.1 라우팅 항목이 최적이 아닌 이유는 다음 홉이 접두사와 일치하여 재귀 루프가 발생하기 때문입니다.
5.5.5.5 라우팅 항목이 최적이 아닌 이유는 다음 홉에 도달할 수 없기 때문입니다.
이는 BGP 경로 속성에서 NextHop 속성 때문입니다.
| 규칙 | 핵심 목적 | 설계 의미 |
|---|---|---|
| 1. EBGP로 라우팅 전송 → NextHop을 로컬 직접 연결 IP로 설정 | EBGP 피어 간 다음 홉 도달 가능성 보장, AS 간 입구 명확화 | AS 간 라우팅의 기본 도달 가능성 보장 |
| 3. IBGP가 EBGP 라우팅 전달 → NextHop 변경 없음 | 완전한 경로 정보 유지, AS 내 출구 명확화, 제어 평면과 데이터 평면 분리 | AS 내 경로 선택 정확성 및 루프 방지 보장 |
이로 인해 R3에서 해당 라우팅 항목에 도달할 수 없습니다.
next-hop-self는 규칙 3을 수동으로 해결하여 다음 홉 도달 불가 문제를 해결하는 데 사용됩니다.
EBGP 이웃으로부터 수신한 라우팅을 IBGP 이웃으로 전달할 때, 다음 홉 주소를 로컬의 update-source로 수정해야 합니다.
R1에서 R2 라우터로 향하는 라우팅의 다음 홉을 자신으로 설정합니다:
neighbor 2.2.2.2 next-hop-self
R2 라우팅 테이블을 확인합니다:
라우팅 항목이 업데이트됩니다.
실험 2: 라우팅 리플렉터
R3 라우팅 테이블이 비어 있는지 확인합니다.
원인: BGP 수평 분할 (IBGP 피어로부터 얻은 라우팅은 다른 IBGP 피어로 전송하지 않음)
해결 방법:
- 전체 연결 (Full Mesh)
- 라우팅 리플렉터
- 연합 (Confederation)
라우팅 리플렉터를 사용하여 해결합니다.
R1을 R2의 클라이언트로 설정합니다:
neighbor 1.1.1.1 reflect-client
다시 라우팅 테이블을 확인합니다.
이 시나리오에서는 클라이언트로부터 학습한 라우팅이 모든 비클라이언트와 클라이언트(발생 클라이언트 제외)로 전송됩니다.
실험 3: 라우팅 블랙홀
라우팅 블랙홀: 라우팅이 있지만 접속할 수 없는 상태
라우팅 블랙홀 해결 방법:
- BGP를 OSPF에 도입
- 전체 연결 (Full Mesh)
- MPLS
R5에서 5.5.5.5 라우팅을 선언합니다:
network 5.5.5.5 32
R4에서 4.4.4.4 라우팅을 선언합니다:
network 4.4.4.4 32
AS200에서 R1과 R3의 IBGP 관계만 유지합니다.
R1 이웃 설정
R3 이웃 설정
R5 라우팅 테이블을 확인합니다.
이때 4.4.4.4로 ping을 시도합니다.
연결되지 않은 이유는 R2에 R4 라우팅이 없고 IBGP 관계가 설정되지 않았기 때문입니다.
R1, R2, R3 간에 전체 연결을 설정합니다.
이제 다시 ping이 통합니다.