인터넷 라우팅의 이층 구조
- Border gateway: 한 기관 네트워크에서 외부 인터넷으로 나가는 관문 라우터
- Autonomous system(AS): 한 기관의 네트워크
- 자신의 prefix를 전 세계에 광고하는 네트워크
- AS는 BGP로 prefix를 광고하고 ASN을 부여받음
Tracert 예시
더보기




- KT, HE, FLRNET, UFL 네 개 망을 거치며 각 망 내부에서 여러 라우터를 통과함
- Hurricane Electric (HE) 망 내부: 7개 라우터 경우
- KT망 내부: 7개 라우터 경우
층 | 프로토콜 | 목적 |
망 단위(Inter‑AS) | BGP | 정책 기반 경로 제어 |
망 내부(Intra‑AS) | OSPF / IS‑IS | 최단거리 (효율) 라우팅 |
- 망 단위 라우팅은 BGP + 망 내부는 OSPF/IS‑IS 최단거리 기반
- 이층 구조 덕분에 인터넷 규모가 커도 라우팅이 가능하고 내부 변화가 외부에 미치는 영향이 작음
망 수준의 인터넷 연결 구조
- BGP의 역할: 네트워크의 prefix를 전세계의 core 라우터에 심는 것
- 방법: 전세계의 core 라우터들로 prefix 정보를 보냄
AS
- 종류
- Stub: 외부로 트래픽을 내보내지만 타임즈 중계 X
- Transit: 다른 AS 트래픅을 전달, 중계
- AS 사이의 관계
- 상-하 관계: 작은 AS가 큰 AS에게 접속료 지불
- Peer 관계: Private Peering / Public Peering
BGP
- BGP peering: 망 단위 라우팅을 결정하기 위해 인접한 AS 사이에서 BGP로 대화하는 라우터 쌍
BGP 프로토콜 특성
- 정책 기반 프로토콜: 최단경로가 아니라 비용·계약·성능 등 내부 정책에 따라 경로 수용/폐기 결정.
- Path‑Vector 프로토콜: Announcement가 거쳐온 AS‑Path를 검사하여 loop 제거.
- 예) AS‑Path가 너무 길거나, 금지 AS가 포함되면 해당 경로를 버린다.
BGP 메시지 형식
- 마커: 인증 용도(초기 값 1111....1) 또는 BGP 메시지 사이 경계 표시
- 상호 인증 후 고유 패턴으로 변경
- BGP 세션 해킹 방지
- 길이 = 헤어 + 바디
- 타입
Type | 기능 |
1 | Open – 세션 협상 |
2 | Update – 경로 광고/철회 |
3 | Notification – 오류 통보 |
4 | Keepalive – 세션 유지(헤더만) |
Open 메시지
- 필드: Version(4), ASN, Hold Time(기본 180 s), BGP Identifier(라우터 IP), 옵션 파라미터(예: 인증 방법)
- Open 응답: Keepalive(성공) / Notification(실패)
- Hold Time의 1/3마다 Keepalive를 주고받아 세션 생존을 확인.
메시지 예시
더보기


필드 | 값 | 설명 |
Marker | ff…ff (16 바이트) | 세션 초기엔 전부 1로 채워 인증·동기화용 “가드 패턴” 역할. (MD5 · TCP‑AO 인증을 쓰면 이후 16바이트 해시로 대체) |
Length | 45 | 전체 메시지 길이. BGP 헤더(19B) + OPEN 바디(26B) = 38B가 일반적이지만, 이 예시는 옵션 7B가 더 있어 45B. |
Type | 1 (OPEN) | 1 = OPEN, 2 = UPDATE, 3 = NOTIFICATION, 4 = KEEPALIVE |
Version | 4 | 현재 표준인 BGP‑4 사용을 나타냄 |
My AS | 65300 | 발신 라우터가 속한 자신의 AS 번호. 64512~65534 범위는 private AS(랩 실습·테스트용). |
Hold Time | 180 초 | 이 시간(+ 1/3마다 Keepalive)을 넘겨 아무 패킷도 못 받으면 세션 종료. 두 라우터는 더 작은 값으로 동기화. |
BGP Identifier | 4.4.4.4 / 3.3.3.3 | 라우터를 유일하게 식별하는 32비트 IP 주소(대개 Loopback). Best‑Path Tie‑break 단계에서 사용. |
Optional Parameters Length | 16 | 다음 TLV(Parameter)들의 총 바이트 수 |
Optional Parameter #1 | Type 2 (Capability), Length 6 | Capability TLV 안에 여러 기능 광고 |
Capability.Code | 1 | Multiprotocol Extensions(RFC 4760): AFI/SAFI 값을 통해 “IPv4 Unicast(0x00 0x01)” 같은 추가 주소‑패밀리를 지원한다고 알림. |
OPEN → KEEPALIVE 순서
- TCP 179 번 포트에서 3‑way handshake.
- 양쪽이 OPEN 패킷 교환 & 버전/Capability 협상.
- 내용에 문제가 없으면 KEEPALIVE(Type 4, 길이 19B) 즉시 응답 → 세션 성공.
- 이후 Hold‑Time/3(여기선 60 초)마다 Keepalive를 보내 세션 유지.문제가 생기면 NOTIFICATION(Type 3) 으로 에러 코드 전송 후 세션 종료
Update 메시지
- NLRI(Network Layer Reachability Info): 도달 가능 프리픽스 + 애트리뷰트 세트
- 두 종류
- Announcement – 새로운 경로 + 애트리뷰트
- Withdrawal – 더 이상 유효하지 않은 프리픽스
- Update 수신 → 로컬 BGP 테이블 갱신 → 필터링 후 다른 피어로 재전파
- 세션이 Established 상태가 되면, 양쪽 라우터는 Complete BGP Table을 UPDATE로 한 번 쏟아낸다.
- 그 이후엔 변화가 있을 때마다 해당 프리픽스만 부분 UPDATE(announcement 또는 withdrawal)로 전송.
- 경로가 바뀔 때마다 위 선택 규칙을 즉시 재적용해 Best‑Path를 정하고, 필요하면 다른 피어들에게 다시 UPDATE.
- 연속된 변화가 많아 CPU를 잡아먹을 때는 Route‑Flap Damping 기능으로 광고를 잠시 묶어 둔다.
패킷 설명
더보기

Path‑Attribute 맥락
- ORIGIN = INCOMPLETE → 정적 경로나 OSPF 등 IGP 외부에서 가져온 정보.
- AS‑PATH = 빈값 → iBGP 내부 광고라 AS 번호를 추가하지 않았다.
- MED = 86 → 이 경로로 우리 AS로 들어올 때는 비용 86로 계산해 달라는 추천값이다.
- LOCAL‑PREF = 100 → 우리 AS 내부에서 나갈 때 기본 우선순위.
- EXTENDED_COMMUNITIES → Route‑Target 같은 MPLS‑VPN 정책 태그가 여기에 숨어 있을 가능성이 높다.
- MP_REACH_NLRI → 오늘 설명의 주인공. 이 한 덩어리에 다중 프로토콜용 Next‑Hop 과 VPNv4 NLRI 가 함께 담겨 있다.

MP_REACH_NLRI 세부 해부
- Flags 0x80 → Optional, Non‑transitive, Complete. 즉 다른 AS로 넘길 의무는 없고, 이 BGP 라우터가 이해 못하면 드롭해야 한다.
- Type‑Code 14 → ‘MP_REACH_NLRI’ 라는 것을 나타낸다.
- Length 33 → 현재 TLV 전체 길이(33바이트).
헤더 필드
- AFI 1 → IPv4 계열.
- SAFI 128 → Labeled VPN Unicast, 즉 VPNv4 주소‑패밀리. MPLS 라벨 + Route Distinguisher(RD) + IPv4 프리픽스 조합으로 하나의 128‑bit 경로를 만든다.
- Next‑Hop (12바이트) → PE 라우터가 자신을 가리키며 넣어 준 IPv4 주소(+ IPv4‑내부용 전역 주소가 하나 더). 디코더가 값은 생략했지만 길이로 보아 두 개 주소(4 + 8) 구성.
- SNPA 수 0 → Frame‑Relay 등에서 쓰는 서브네트워크 포인트; MPLS‑VPN에선 0이 일반적.
NLRI(네트워크 레이어 도달성 정보)
- Prefix‑Length 120 → 이 길이는 라벨(20) + RD(64) + IPv4‑Prefix(36?) 를 비트 단위로 합친 결과. 실제 IPv4 주소는 뒤에 32비트만 쓰이고, 라벨/RD가 앞에 붙으므로 총길이가 120.
- Label Stack 25(b) → MPLS Label 25, bottom‑of‑stack 비트(b) 가 1. 전달 면에서 이 라벨 하나로 스택이 끝난다.
- Route Distinguisher 100:100 → 64‑bit RD를 “100:100” 형태로 사람이 읽기 좋게 표시. RD가 다르면 IPv4 주소가 같아도 다른 VPN으로 간주된다.
- IPv4 Prefix 170.0.0.0 → 고객 쪽 실제 네트워크. RD와 결합해 100:100:170.0.0.0/?? 라는 VPNv4 경로가 완성된다.
NOTIFICATION 메시지
- 세션 중 오류가 발견되면 즉시 전송 Error Code / Sub‑code / 문제 패킷 일부를 담는다.
- 패킷을 보낸 직후 TCP 연결을 끊어 BGP Finite‑State‑Machine을 Idle로 되돌린다.
KEEPALIVE
- OPEN 패킷을 정상 수락했다는 확인용
- 이후 Hold-Time의 ${1/3}$ 간격으로 주고 받으며 세션이 살아있음을 알림
BGP Path Attributes
- Well‑known Mandatory: 모든 라우터가 반드시 이해 + 모든 경로에 필수 포함 -> ORIGIN, AS‑PATH, NEXT‑HOP
- Well‑known Discretionary: 모든 라우터가 이해해야 하지만 포함은 선택 -> LOCAL‑PREF, ATOMIC‑AGGREGATE
- Optional Transitive: 포함 여부는 자유, 몰라도 그대로 전달 -> AGGREGATOR, COMMUNITY
- Optional Non‑transitive: 포함 여부는 자유, 몰라서 이해 못 하면 전파 금지 ->MULTI‑EXIT‑DESC (MED)
- BGP announcement가 전달되어 온 AS 경로
- BGP는 path vector 프로토콜
- 라우팅 loop 탐지
1. ORIGIN (Well‑known Mandatory)
- 값 0 = IGP, 1 = EGP, 2 = INCOMPLETE.
- 숫자가 작을수록 믿음직하다고 간주되어 경로 선택 3단계에서 우선.
2. AS‑PATH (Well‑known Mandatory)
- 경로가 거쳐 온 AS를 왼→오 순으로 나열.
- 루프 탐지 & 두 번째 선택 기준(짧을수록 선호).
- 필요하면 AS‑Prepend 로 일부러 길게 만들어 우선순위를 낮출 수 있다.
3. NEXT‑HOP (Well‑known Mandatory)
- 이 경로로 패킷을 보낼 때 첫 번째로 만나야 할 IPv4/IPv6 주소.
- eBGP Peer라면 같은 링크에 붙은 상대 주소가 들어간다.
- iBGP 내부에선 BGP‑NEXT‑HOP‑SELF 명령으로 자신을 재지정해 정합성을 유지한다.
4. LOCAL‑PREF (Well‑known Discretionary)
- 현 AS를 빠져나가는 경로 선호도. 값이 크면 Best‑Path 1순위.
- iBGP 내부만 돌아다니고 외부(다른 AS)로는 전파되지 않는다.
5. ATOMIC‑AGGREGATE (Well‑known Discretionary)
- 여러 프리픽스를 한데 묶어 집약(aggregate) 할 때 세부 정보가 일부 사라졌을 수 있다는 경고 플래그.
- 루프 방지를 위해 일부 라우터가 원시 경로를 그대로 유지할지 결정할 때 참고.
6. MULTI‑EXIT‑DESC(MED) (Optional Non‑transitive)
- 상대 AS에게 우리로 들어오는 여러 링크 중 이 링크가 더 낫다고 추천.
- 값이 작을수록 우선이며, AS 경계 내부 비교에만 쓰이고 다른 AS로 퍼지지 않는다.
7. COMMUNITY (Optional Transitive)
- 32‑bit 라벨(0:0 ~ 65535:65535). 복수 개를 붙일 수 있다.
- no‑export(0xFFFFFF01), local‑AS(0xFFFFFF02) 같은 예약값으로 배포 범위를 제어하거나,
사업자마다 자의적인 번호 체계를 두어 대량 정책(프리픽스 필터, MED 변경 등) 을 손쉽게 구사한다.
8. AGGREGATOR (Optional Transitive)
- 프리픽스를 집약한 라우터 ID와 AS를 명시.
- 다단 집약 시 디버깅용 메타데이터 역할.
ORIGIN
- Prefix 정보가 애초에 어느 source로부터 얻어졌는지 표현
종류
- IGP 생성
- EGP 생성 (더 이상 쓰이지 않음)
- 기타:OSPF, 정적 경로로부터 유입
높은 LOCAL‑PREF → 짧은 AS‑PATH → 작은 ORIGIN → 작은 MED → [eBGP 습득 > iBGP 습득] → IGP distance to NEXT‑HOP → 작은 Router‑ID
'Computer Science > Network' 카테고리의 다른 글
[L3] Internetworking Protocol(IP) (2) | 2025.04.17 |
---|---|
[L3] IP Address system (0) | 2025.04.17 |
[L2] ARP (0) | 2025.04.16 |