목차/04. BGP

04BGPBGP

BGP(Border Gateway Protocol)자율 시스템(AS) 사이를 잇는 inter-AS 라우팅 프로토콜 입니다. 인터넷의 등뼈를 이루는 프로토콜로, 같은 AS 안에서도, 서로 다른 AS 사이에서도 쓸 수 있습니다. 이 장은 BGP가 어떤 원리로 동작하는지부터, Gaia Portal과 Gaia Clish에서 글로벌 설정·peer group·remote peer·confederation·route reflection·route dampening·community를 구성하고, peer를 재시작·모니터링하며, IPv6·세션 종류·path attribute·MED·IGP 연동·인바운드 필터·재분배·multihop·MD5 인증까지 원문이 다루는 모든 절차·표·파라미터·명령·주의사항을 빠짐없이 풀어 설명합니다. 요약이 아니라, 왜 그렇게 쓰는지를 함께 담은 완전한 안내입니다.

BGP의 동작 원리

AS(Autonomous System, 자율 시스템)단일 기술 관리 아래 묶인 라우터 집합 입니다. AS 내부에서는 패킷을 어디로 보낼지 정할 때 IGP(Interior Gateway Protocol) 와 공통 metric을 쓰고, 다른 AS로 패킷을 보낼 때는 BGP 같은 exterior 라우팅 프로토콜 을 씁니다.

BGP는 업데이트 메시지를 "네트워크 번호 + AS path" 쌍 으로 보냅니다. 여기서 AS path지정된 네트워크에 닿기까지 거쳐야 하는 AS들의 나열 입니다. AS path에는 서로 다른 경로를 묶은(aggregate) 결과를 표현하기 위한 일정한 구조가 있습니다. 이 업데이트 메시지는 신뢰성 있는 전달을 보장하기 위해 TCP 전송 메커니즘 위로 흐릅니다. 이 점은 datagram 서비스 위에 스스로 신뢰성을 얹는 IGP와 대비 됩니다.

path-vector 라우팅 프로토콜 인 BGP는 라우터 reachability(도달 가능성) 정보를 자신의 peer 또는 neighbor 라우터에만 분배 합니다. 정보를 아무에게나 뿌리지 않고 직접 맺은 이웃에게만 전한다는 점이 핵심입니다.

또한 VTI(virtual tunnel interface)에서 BGP를 켜 route-based VPN 위로 BGP를 운영할 수도 있습니다.

BGP 4-Byte AS

BGP 4-Byte AS32-bit AS 번호 를 구성할 수 있게 해 주는 기능입니다. 이 기능은 기본으로 켜져 있고, 끌 수 없 습니다.

AS 번호를 설정하는 명령은 다음과 같습니다.

set as {off | <1-4294967295> | <0.1-65535.65535>}
save config

예를 들면 이렇게 씁니다.

MyGW> set as 1.14464

설정된 4-Byte AS는 다음 명령으로 확인합니다.

show as

출력 예는 다음과 같으며, 점 표기(1.14464)와 단일 정수 표기(80000)가 함께 나타납니다.

Autonomous System Number 1.14464 (80000)

Gaia Portal에서 BGP 구성하기

이 절은 Gaia Portal의 Advanced Routing > BGP 화면에 있는 각 필드의 의미를 항목별로 설명합니다.

전체 구성 흐름은 다음과 같습니다.

  1. 좌측 내비게이션 트리에서 Advanced Routing > BGP 를 클릭합니다.
  2. Router ID 를 포함한 BGP Global Settings 를 구성합니다(아래 "BGP Global Settings" 참고).
  3. (선택) Peer Group 을 구성합니다(아래 "AS Peer Group Settings", "Remote Peers" 참고).
  4. (선택) Miscellaneous Settings 를 구성합니다(아래 "Miscellaneous Settings" 참고).

BGP Global Settings 구성

전역 설정은 다음 순서로 다룹니다.

  1. 좌측 트리에서 Advanced Routing > BGP 클릭.
  2. BGP Global Settings 영역에서 Change Global Settings 클릭.
  3. Router ID 구성.
  4. Autonomous System 설정 구성.
  5. Save 클릭.

"Router ID and Cluster ID" 영역 필드

파라미터설명
Router ID자율 시스템 안에서 이 라우터를 고유하게 식별 합니다. BGP·OSPF 프로토콜이 이 Router ID를 사용합니다.
Cluster ID for Route Reflectorsroute reflection에 쓰이는 cluster ID입니다. 기본 cluster ID는 Router ID와 같습니다. cluster에 route reflector가 둘 이상이면 이 기본값을 반드시 덮어써야 합니다.
Local Autonomous System Number이 라우터의 로컬 자율 시스템 번호입니다.

Cluster ID에 대해 좀 더 설명하면, 보통 한 라우터가 client 집합(=cluster)의 reflector 역할 을 합니다. 다만 이중화를 위해 둘 이상의 라우터를 같은 cluster의 reflector로 둘 수도 있는데, 이때는 cluster를 담당하는 모든 reflector를 식별하도록 cluster ID를 골라야 합니다. 단, 불필요하게 여러 개의 reflector를 두는 것은 권하지 않 습니다 — 이중화 reflector의 peer들에 경로를 저장하느라 메모리 사용량이 늘어나기 때문입니다. 범위는 dotted-quad이고, 기본값은 Router ID 필드의 IP 주소입니다.

"Autonomous System" 영역 필드

이 영역은 구성되지 않은 상태(Unconfigured)에서 시작하며, 다음 값을 다룹니다. AS 번호와 Confederation/Routing Domain Identifier는 서로 배타적 이라는 점이 중요합니다. 라우터는 AS 번호로 구성하거나, confederation 멤버로 구성하거나 둘 중 하나만 가능합니다.

파라미터설명
Local Autonomous System Number이 라우터의 로컬 AS 번호. Confederation·Routing Domain Identifier와 상호 배타 입니다. 범위 1-65535, 기본값 없음.
Confederation전체 confederation 시스템의 식별자. 외부 BGP 세션에서 이 값을 AS로 사용합니다. 바깥 세상에서는 confederation ID가 하나의 거대한 AS 번호 처럼 보이므로, confederation ID는 전 세계적으로 고유한, 정상적으로 할당된 AS 번호 여야 합니다. 범위 1-65535, 기본값 없음.
Number of loops permitted in AS_PATH(confederation용)confederation의 경우, 로컬 AS가 BGP로 학습한 경로의 AS path에 나타날 수 있는 횟수. 실제로 나타난 횟수가 이 값보다 많으면 해당 경로는 폐기·거부됩니다. 범위 1-10, 기본값 1.
Routing Domain Identifier이 라우터의 RDI. BGP confederation을 쓸 때만 필요 합니다. confederation 밖에서는 절대 쓰이지 않으므로 전 세계적으로 고유할 필요는 없지만, confederation 안에서는 고유 해야 합니다. routing-domain identifier와 AS 번호는 상호 배타 입니다. confederation을 쓰면, RDI는 confederation 안의 peer(group-type confederation peer 및 각종 internal-type peer 포함)와 통신할 때 AS가 쓰일 자리마다 사용됩니다. confederation에서 라우터가 올바로 동작하려면 RDI와 confederation 둘 다 구성 해야 합니다. 범위 1-65535, 기본값 없음.
Number of loops permitted in AS_PATH(RDI용)RDI의 경우, 로컬 AS가 AS path에 나타날 수 있는 횟수. 초과하면 해당 경로는 폐기·거부됩니다. 범위 1-10, 기본값 1.

Miscellaneous Settings 구성

이 영역은 다음 순서로 다룹니다 — 좌측 트리 Advanced Routing > BGPMiscellaneous Settings 영역에서 해당 설정 구성 → Apply 클릭.

파라미터설명
Default MEDBGP로 경로를 광고할 때 쓰는 metric(MED)을 정합니다. 값을 지정하지 않으면 metric이 전파되지 않습니다. neighbor 구성이나 재분배 구성에서 지정한 metric이 이 값을 덮어쓸 수 있습니다. 범위 0-65535, 기본값 None.
Default GatewayBGP peer가 하나라도 up되면 default route가 생성 됩니다. 이 경로는 static routing 페이지에서 구성한 default보다 rank가 높 습니다. 특정 BGP peer가 default route 생성에 쓰이지 않게 하려면, peer별 구성에서 명시적으로 억제해야 합니다. 범위 dotted-quad, 기본값 None.
Enable IGP Synchronization켜면 internal·configured BGP peer가 경로를 설치하기 전에 IGP 프로토콜에서 일치하는 경로가 있는지 확인 합니다. 기본 해제.
Enable communitiescommunity 기반 정책 옵션을 켭니다. 기본 해제.
Enable ECMPECMP(Equal-Cost Multi-Path) 라우팅 전략(부하 분산)을 켭니다. BGP RFC는 경로 선택 기준을 명확히 정해 두기 때문에 ECMP 경로를 지원하지 않 는데, 이 문제를 우회해 BGP에서 ECMP 경로를 설치하려면 이 옵션을 켭니다.
Graceful Restart Time이 라우터가 재시작하는 동안, 이 라우터의 BGP peer들이 자신에게 광고된 경로를 얼마나(초) 유지할지 지정합니다. 이 시간 안에 BGP 세션이 다시 맺어지지 않으면 peer들은 경로를 삭제합니다. 만약 시간 만료 전에 세션이 다시 맺어지면, peer들은 stale-path-timer를 걸어 경로를 재검증합니다. sk100499 참고. 범위 1-4095, 기본값 360.
Graceful Restart Selection Deferral Time재시작 후 각 BGP peer로부터 End-of-RIB 알림을 기다리는 시간(초). 재시작이나 cluster failover 뒤, cluster master는 각 peer로부터 이전에 받았던 경로를 재검증해야 합니다. 모든 peer가 End-of-RIB를 보내거나 이 타이머가 만료될 때까지 옛 경로를 유지 하고, 재검증되지 못한 경로는 삭제합니다. sk100499 참고. 범위 60-4095, 기본값 360.
Enable Weighted Route Dampening켜면 아래 "Weighted Route Dampening Settings" 절을 보세요. 기본 해제.
Ping intervalping이 켜진 모든 BGP peer로 보내는 ping 사이의 간격. 범위 1-60, 기본값 2.
Ping Countping이 켜진 개별 BGP peer에 대해, BGP가 그 peer를 끊기 전까지 허용하는 실패한 ping 횟수. 이 값은 모든 BGP peer에 공통입니다. 범위 1-10, 기본값 3.

Weighted Route Dampening Settings

Weighted route dampeningflapping(요동치는) 경로가 인터넷 전반으로 전파되는 것을 최소화 합니다. 경로가 사용 가능↔불가능 사이를 반복적으로 오갈 때 flapping 이라고 부릅니다. BGP로 학습한 경로만 weighted route dampening의 대상이 됩니다.

파라미터설명
Reuse-below metric경로가 도달 가능하지만 현재 suppress(억제)된 상태일 때, instability metric이 이 값으로 내려오면 다시 unsuppress 됩니다. 이 값은 반드시 suppress-above 값보다 작아야 합니다. 범위 1-32, 기본값 2.
Suppress-above metricinstability metric이 이 값에 이르면 경로를 suppress 합니다. suppress된 동안에는, 비록 경로가 도달 가능해도 FIB에 설치되지도, 광고되지도 않습니다. 범위 2-32, 기본값 3.
Max-flap metricinstability의 상한값. suppress-above 값에 1을 더한 것보다 커야 합니다. suppress-above·reuse-below·max-flap에 부여되는 metric은 flap 단위의 부동소수점 수 이며, 경로가 도달 불가능해질 때마다 현재 instability metric에 1이 더해집니다. 범위 3-64, 기본값 16.
Reachable decay time경로가 도달 가능할 때 instability metric이 현재 값의 절반에 도달하는 데 걸리는 시간. 이 half-life 값이 metric이 감쇠하는 속도를 정합니다. half-life가 작을수록 suppress된 경로가 더 빨리 재사용 가능해집니다. 범위 1-900, 기본값 300.
Unreachable decay time경로가 도달 불가능할 때 instability metric이 감쇠하는 속도. 이 값은 reach-decay 값과 같거나 커야 합니다. 범위 1-2700, 기본값 900.
Keep history time주어진 경로에 대해 route flapping 이력을 유지하는 기간. 이 값은 내부 구성 배열의 크기에 직접 영향을 줍니다. 범위 2-5400, 기본값 1800.

AS Peer Group Settings 구성

peer group은 다음 순서로 만듭니다 — 좌측 트리 Advanced Routing > BGPPeer Groups 영역에서 설정 → Add 클릭 → 해당 설정 구성 → Save 클릭.

파라미터설명
Peer AS Number외부 peer group의 AS 번호. 1-65535 정수를 입력합니다.
Peer Group Typepeer group의 종류를 표시합니다.
Description(선택) peer group에 대한 자유 서술 설명.
Local Addresspeer와의 TCP 연결에서 로컬 끝단에 쓰는 주소. multihop이 켜지지 않은 외부 peer라면, 로컬 주소는 peer와(또는 gateway 파라미터를 쓸 때는 peer의 gateway와) 공유하는 인터페이스 위에 있어야 합니다. 외부 peer와의 세션은 peer나 gateway 주소에 직접 닿을 수 있는 로컬 주소를 가진 인터페이스가 동작할 때만 열립니다. 다른 종류의 peer라면, 지정한 로컬 주소를 가진 인터페이스가 동작할 때 세션이 열립니다. 두 경우 모두, 들어오는 연결은 구성된 로컬 주소로 향한 경우에만 그 peer와 매칭 된 것으로 인식됩니다.
Out Delay경로가 BGP로 재분배되기 전에 라우팅 데이터베이스에 존재해야 하는 시간(초). 이 값은 group 안의 모든 neighbor에 적용됩니다. 기본값 0은 이 기능을 끈 것이며, 이 기능은 route fluctuation(요동)을 완화합니다. 범위 0-65535, 기본값 0.
PeersBGP peer를 구성합니다. 각 peer는 group에 구성된 모든 파라미터를 기본값으로 상속 합니다. peer의 파라미터 값을 바꾸려면 그 peer를 선택해 Edit를 클릭합니다(아래 "Remote Peers" 참고).

Remote Peers 구성

원격 peer는 다음 순서로 추가합니다.

  1. 좌측 트리 Advanced Routing > BGP 클릭.
  2. Peer Groups 영역에서 설정 후 Add 클릭.
  3. 이 peer group의 설정 구성.
  4. Peers 영역에서 Add Peer 클릭 후 Add IPv4 Peer 또는 Add IPv6 Peer 선택. (Gaia는 IPv4·IPv6 주소를 모두 지원합니다.)
  5. 이 peer의 설정을 구성하고 Save 클릭.
  6. (peer group) Save 클릭.

아래는 Gaia Portal의 BGP Peer 파라미터 전체입니다.

파라미터설명
PeerBGP 원격 peer의 IP 주소.
Comment(선택) 원격 peer에 대한 자유 서술 설명.
Ping이 peer에 대해 ping을 켜거나 끕니다.
IP Reachability DetectionBFD(Bidirectional Forwarding Detection) 를 BFD 패킷을 주고받는 모든 Security Gateway·cluster member에 구성합니다. Singlehop BFD(한 hop 거리의 peer — 직접 연결된 네트워크에 있어야 하고, Firewall 정책이 양방향으로 UDP 3784 를 허용해야 함), Multihop BFD(한 hop 이상 떨어진 peer — Firewall 정책이 양방향으로 UDP 4784 를 허용해야 함), Off 중 하나를 고릅니다. 양쪽 BFD peer의 설정이 동일 해야 하고(둘 다 multihop 또는 둘 다 singlehop), SmartConsole topology가 정확해야 합니다(틀린 Firewall topology는 anti-spoofing이 BFD 트래픽을 방해하게 만들 수 있음).
Check Control Plane Failure원격 BFD peer가 보낸 control plane independent flag(C bit)를 해석 합니다. ① peer가 보낸 C bit가 0이고, ② BGP graceful restart가 켜진, 두 조건이 동시에 충족되면, gateway는 graceful restart를 위해 stale 경로를 유지하고 제거하지 않 습니다. 해제하면 peer가 다운될 때 stale 경로가 제거됩니다. 기본 해제.
Multiprotocol Capabilities이 peer와 어떤 unicast 경로를 주고받을지. IPv4 Unicast Only(기본 선택), IPv6 Unicast Only(기본 해제), Both IPv4 and IPv6(기본 해제) 중 선택.
Local Addresspeer와의 TCP 연결에서 로컬 끝단에 쓰는 IP 주소. (peer group의 Local Address와 같은 규칙 — multihop이 없는 외부 peer는 공유 인터페이스 위에 있어야 하고, 직접 도달 가능한 인터페이스가 동작할 때만 세션이 열립니다.) 기본값 None.
Peer Local AS원격 peer로의 연결을 peer별로 Peer Local ASN 으로 구성합니다. Peer Local ASN이 BGP 세션의 Local ASN을 대체합니다. eBGP peer만 지원 되며, Peer Local ASN을 로컬에 구성할 필요는 없습니다. 하위 옵션: Enable Peer Local AS(기능 활성화), Prepend Peer Local AS on inbound updates from peer(peer에게서 받은 경로의 AS path에 구성된 peer local ASN을 추가 — 설치된 경로는 AS Path 첫 항목에 peer local ASN을 가짐, 기본 선택), Prepend systemwide Local AS on outbound updates to peer(eBGP peer로 광고하는 경로의 AS Path에 local ASN을 추가 — 켜면 local ASN이 두 번째 ASN, peer local ASN은 이 옵션과 무관하게 항상 첫 번째, 기본 선택), Allow peering with the Local AS(local ASN 또는 peer local ASN으로의 연결 허용 — 활성 연결은 하나만 가능, 끄면 Peer Local ASN으로만 연결 가능).
MEDAccept MED from External Peer(이 외부 neighbor로부터 MED를 받음 — routing-type·confederation neighbor에서는 MED를 항상 받음, 외부 neighbor에 이 옵션이 없으면 업데이트가 라우팅 테이블에 추가되기 전에 MED가 제거됨, 기본 해제), MED Sent Out(지정 peer로 보내는 모든 경로의 주 metric — redistribute 정책의 default metric을 덮어씀, 범위 0-4294967294, 기본값 4294967294).
EGP Multihop(Next Hop and Time to Live)Multihop직접 연결되지 않은 peer와 eBGP peering 연결을 맺을 때 씁니다. IGP로 peer 경로를 찾는 이 옵션은 eBGP load balancing 설정에도 쓸 수 있습니다. Time to Live(TTL)로 multihop 세션을 다듬어 eBGP peer까지의 hop 수 를 제한하며, TTL은 multihop이 켜졌을 때만 구성 가능, 범위 1-255, 기본값 64, 기본 해제.
AggregatorNo Aggregator ID를 선택 하면 이 라우터가 aggregator 속성에 실제 Router ID 대신 0을 넣 도록 강제합니다. 이로써 AS 안의 서로 다른 라우터들이 서로 다른 AS path로 aggregate 경로를 만드는 것을 방지 합니다. 기본 해제.
ASPATHASPATH prepend count(eBGP external·CBGP confederation 세션에서 이 라우터가 AS path에 추가하는 횟수 — 하류 라우터의 선호도를 편향시키는 데 사용, iBGP peer에는 효과 없음, 범위 1-25, 기본값 1), AllowAS In Count(수신 측 라우터가 inbound AS path에서 peer의 AS 번호를 자기 AS 번호로 override — as-override가 outbound 속성인 데 반해 inbound 속성, 범위 0-10, 기본값 0), AS Override(outbound AS path에서 peer의 AS 번호를 자기 AS 번호로 override, 기본 해제).
Private ASRemove Private AS이 peer로 나가는 업데이트에서 private AS 번호를 제거 합니다. 단, ① AS path에 public과 private가 모두 있으면 제거 안 함, ② AS path에 목적지 peer의 AS 번호가 있으면 제거 안 함, ③ AS path가 confederation과 private AS 번호만 포함하면 private을 제거. 기본 해제.
TimersKeep Alive Timer(Hold Time 값을 지정하는 또 다른 방법 — keepalive 간격은 holdtime의 1/3, 둘 다 지정할 수 있으나 holdtime이 keepalive의 3배여야 함, 값은 0(keepalive 안 보냄) 또는 최소 2, 범위 0·2-21845, 기본값 60), Hold Time(BGP holdtime 값(초) — BGP Open 메시지의 holdtime 동안 keepalive·update·notification을 받지 못하면 연결을 닫음, 값은 0(keepalive 안 보냄) 또는 최소 6, 범위 0·6-65535, 기본값 180).
Needed when Peering with Route ServerIgnore First AS Hop 을 선택하면 해당 peer로부터 학습한 경로의 AS_PATH에서 첫 번째 AS 번호를 무시 하도록 강제합니다.
Keep AliveKeep Alive Always 를 선택하면 update로 대체 가능할 때조차 항상 keepalive를 보내 도록 강제합니다. 이 점에서 프로토콜 규격을 완전히 따르지 않는 라우터와의 상호운용성을 줍니다. 기본 해제.
RoutesAccept Routes Received From the Peer 는 인바운드 BGP route 정책이 있을 때 peer 경로를 받을지 제어합니다. accept하는 인바운드 정책이 없으면 All(invalid preference로 경로를 받아 설치 — 로컬 인바운드 정책에 따라 active/inactive) 또는 None(명시적 로컬 인바운드 정책이 없을 때 peer 경로를 삭제 — 많은 경로가 거부될 때 메모리 절약, 다시 학습하려면 세션 재시작 필요) 선택. 기본 All.
Allows Accept TCP Sessions from Your PeerPassive 를 선택하면 peer가 open을 보낼 때까지 기다리 도록 강제합니다. 기본적으로 명시 구성된 peer는 모두 active로, peer가 응답할 때까지 주기적으로 open 메시지를 보냅니다. 이 옵션을 바꾸면 peer 연결이 리셋됩니다. 기본 해제.
Authenticationpeer 사이에 쓸 인증 방식. 일반적으로 peer들은 인접 관계를 맺으려면 인증 구성에 합의해야 합니다. 이 기능은 신뢰된 peer로부터만 라우팅 정보를 받 도록 보장합니다. MD5 를 고르면 Password 필드가 나타나고, 암호를 넣으면 해당 peer와 MD5 인증을 씁니다. 옵션: None 또는 MD5, 기본 None.
Limit BGP Updates Send to a Peerpeer가 많을 때 네트워크 트래픽을 제어합니다. Throttle Count한 번에 보내는 BGP update 수 를 정합니다. 범위 0-65535, 기본값 없음.
Default OriginateSuppress Default Originate 를 선택하면 peer가 자신의 peer로부터 유효한 update를 받을 때 default route를 생성하지 않 습니다. 기본 해제.
Route RefreshBGP 세션을 끊지 않고 peer로부터 경로를 다시 학습하거나 peer의 라우팅 테이블을 refresh 합니다. 양쪽 peer가 route refresh capability를 지원하고 peering 시점에 이를 광고 했어야 합니다. BGP route refresh 메시지를 보내면 peer가 현재 라우팅 테이블로 응답하고, 반대도 같습니다. peer의 요청을 기다리지 않고 직접 route update를 trigger할 수도 있습니다. 양쪽이 같은 address·subsequent address family를 지원 해야 하며(예: 상대가 capability를 광고하지 않은 IPv6 unicast 요청은 무시됨).
Graceful RestartHelper(peer가 다운돼도, 세션이 다시 맺어질 때(peer 복귀 후 Open 수신)나 graceful restart 타이머가 만료될 때까지 peer로부터 받은 경로를 보존, 기본 해제), Stalepath Time(재시작 중인 라우터로부터 이전에 받은 경로를, 재검증되지 않으면 유지하는 최대 시간 — peer가 up되었다는 표시를 보낸 뒤 시작, 범위 60-65535, 기본값 360).
LoggingLog bgp peer transitions(BGP peer가 ESTABLISHED 상태로 들어가거나 나갈 때마다 메시지 로그, 기본 해제), Log warnings(codepath에서 warning 시나리오를 만날 때마다 메시지 로그, 기본 해제).
Trace OptionsBGP의 추적 옵션. BGP 구현은 global trace 옵션의 기본값을 상속 하며, group·neighbor 단위로 덮어쓸 수 있습니다. 로그 메시지는 /var/log/routed.log 파일에 저장됩니다(Trace Options 참고).

Gaia Portal에서 BGP Peer 재시작

이 기능은 Gaia RouteD 데몬을 재시작하지 않고 BGP peering을 재시작하게 해 줍니다.

  • 모든 group의 모든 peer 재시작Advanced Routing > BGPPeer Groups 영역에서 Restart All 클릭.
  • 지정한 group의 모든 peer 재시작 — peer group 선택 후 Restart 클릭.
  • 지정한 peer 재시작 — peer group 선택 → EditPeers 영역에서 peer 선택 → Restart.

Gaia Portal에서 BGP 모니터링

  1. 좌측 트리에서 Advanced Routing > BGP 클릭.
  2. 우측 상단의 Monitoring 클릭.
  3. BGP Monitor 영역에서 Information 카테고리를 클릭.

문제 해결은 Trace Options를 참고합니다.

Gaia Clish에서 BGP 구성하기

쓸 수 있는 명령을 둘러보려면 다음을 이용합니다.

set bgp[Esc][Esc]      # BGP의 "set" 명령 보기
show bgp[Esc][Esc]     # BGP의 "show" 명령 보기

External BGP 구성 (Gaia Clish)

이 명령들은 서로 다른 AS의 라우터 사이 의 external 세션을 구성합니다.

set bgp external remote-as <Number of Autonomous System>
{off | on}
      aspath-prepend-count <1-25 | default>
      description "Your Text"
      local-address <IP Address> {off | on}
      outdelay <0-65535>
      outdelay off
파라미터설명
<Number of Autonomous System>외부 peer group의 AS 번호. 1-65535 정수.
`{off \on}`BGP 자율 시스템을 켜거나 끕니다.
`aspath-prepend-count <1-25 \default>`external BGP 세션에서 이 라우터가 AS path에 추가하는 횟수. 하류 라우터의 선호도를 편향시키는 데 사용합니다. 기본 1.
description "Your Text"(선택) group에 대한 짧은 텍스트 설명.
`local-address <IP Address> {off \on}`peer와의 TCP 연결에서 로컬 끝단에 쓰는 주소. multihop이 없는 외부 peer는 peer/gateway와 공유하는 인터페이스 위에 있어야 하고, 직접 도달 가능한 인터페이스가 동작할 때만 세션이 열립니다. 들어오는 연결은 구성된 로컬 주소로 향한 경우에만 매칭됩니다. 기본 off.
outdelay <0-65535>경로가 BGP로 재분배되기 전에 라우팅 데이터베이스에 존재해야 하는 시간(초). group의 모든 peer에 적용되며 route fluctuation을 완화합니다. 0이면 끔. 기본 0.
outdelay offoutdelay를 끕니다.

Internal BGP 구성 (Gaia Clish)

이 명령들은 같은 AS 안의 라우터 사이 의 internal BGP 세션을 구성합니다.

set bgp internal
{off | on}
      description "Your Text"
      graceful-restart-helper {off | on}
      graceful-restart-helper-stalepath-time seconds
      interface {all | <Name of Interface>} {off | on}
      local-address <IP Address> {off | on}
      med {<0-4294967295> | default }
      nexthop-self {off | on}
      outdelay {<0-65535> | off}
      protocol {all | bgp_internal_protocol} {off | on}
      route-refresh {off | on}
set bgp internal peer <IP Address>
      holdtime {<6-65535> | default}
      ignore-first-ashop {off | on}
      ip-reachability-detection {check-control-plane-failure | multihop | off | on}
      keepalive {<2-21845> | default}
      no-aggregator id {off | on}
      peer_type {none | no-client-reflector | reflector-client} {off | on}
      send-keepalives <off | on>
      send-route-refresh {request | route-update} {all | ipv4 | ipv6} unicast
      weight {<0-65535> | off}

group 수준 파라미터

파라미터설명
`{off \on}`internal BGP group을 켜거나 끕니다.
description "Your Text"(선택) group에 대한 짧은 텍스트 설명.
`med {<0-4294967295> \default}`이 group의 모든 peer로 경로를 광고할 때 쓰는 MED(Multi-Exit Discriminator) metric. 값이 없으면 metric이 전파되지 않으며, 이 peer group의 재분배 정책에 구성된 metric이 이 값을 덮어 씁니다. 기본: MED 미광고.
`outdelay {<0-65535> \off}`경로가 BGP로 재분배되기 전 라우팅 데이터베이스에 존재해야 하는 시간(초). group의 모든 peer에 적용, route fluctuation 완화. 기본 0(끔).
`nexthop-self {off \on}`이 라우터가 자기 IP 주소 중 하나를 BGP next hop으로 보냅 니다. 기본 off.
`local-address <IP Address> {off \on}`TCP 연결의 로컬 끝단 주소(external/기타 peer 규칙은 위와 동일). 기본 off. cluster에서는 구성 금지.
`interface {all \<Name of Interface>} {off \on}`지정한 internal peer group을 모든 인터페이스 또는 특정 인터페이스에서 켜거나 끕니다.
`protocol {all \<BGP Internal Protocol>} {off \on}`지정 internal peer group에서 모든 internal 라우팅 프로토콜 또는 특정 프로토콜을 켜거나 끕니다. 입력 가능한 프로토콜: direct, rip, static, ospf, ospfase.

peer 수준 파라미터(`set bgp internal peer <IP Address>`)

파라미터설명
`peer_type {none \reflector-client \no-client-reflector} {off \on}`이 peer가 Route Reflector client인지 지정. no-client-reflector: peer가 'non-client' Route Reflector — reflection client의 경로를 다른 group의 internal BGP peer로만 reflect하며, group 안의 client들은 서로 직접 iBGP peer로 간주. none: peer가 Route Reflector가 아님(reflection 미지정). reflector-client: peer가 Route Reflector client — 로컬 라우터가 named peer들의 route reflector(=reflection server)로 동작, 보통 한 client에게서 받은 경로를 그 client group의 다른 peer 포함 모든 iBGP peer로 readvertise(reflect).
weight <0-65535>지정 peer에 연결된 weight. BGP는 거부된 경로를 route filter에서 언급하지 않는 식으로 암묵적으로 저장하고, 라우팅 테이블에서는 restrict 키워드와 음수 weight로 명시합니다. 음수 weight는 경로가 active 되는 것을 막 아 forwarding 테이블에 설치되거나 다른 프로토콜로 export되는 것을 막습니다. 이로써 import 정책이 바뀌어도 세션을 끊었다 다시 맺을 필요가 없습니다.
weight off지정 peer의 weight를 끕니다.
`aggregator id {off \on}`라우터의 aggregate 속성을 Router ID 값 대신 0 으로. AS 안 서로 다른 라우터가 서로 다른 AS path로 aggregate 경로를 만드는 것을 방지. 기본 off.
holdtime <6-65535>지정 peer와 연결 협상 시의 BGP holdtime 간격(초). open 메시지의 holdtime 동안 keepalive·update·notification을 못 받으면 연결을 닫습니다.
holdtime defaultholdtime 180초.
keepalive <2-21845>holdtime을 지정하는 또 다른 방법(초). keepalive를 holdtime 대신 쓰거나 둘 다 쓸 수 있으며, 후자라면 holdtime이 keepalive의 3배 여야 합니다.
keepalive defaultkeepalive 간격 60초.
`ignore-first-ashop {off \on}`해당 peer로부터 학습한 경로의 AS path에서 첫 AS 번호를 무시. transparent 모드의 route server와 peering할 때만 설정하세요.
`send-keepalives {off \on}`update 메시지로 충분할 때조차 항상 keepalive를 보냄. 규격을 엄격히 따르지 않는 라우터와의 상호운용성.
`send-route-refresh {request \route-update} {all \ipv4 \ipv6} unicast`라우터가 peer로부터 BGP route update를 동적으로 요청하거나 요청에 응답합니다.
accept-routes all인바운드 BGP 정책 경로가 없을 때 — all은 경로를 받아 invalid preference로 설치(로컬 인바운드 정책에 따라 active/inactive).
accept-routes nonenone은 peer로부터 학습한 경로를 삭제. 인바운드 정책이 없어 많은 경로가 거부될 때 메모리 절약.
`passive-tcp {off \on}`라우터가 지정 peer가 open을 낼 때까지 기다림. 라우터가 TCP 연결을 시작하지 않 음. 기본 off.
authtype nonepeer 사이에 인증 방식을 쓰지 않음.
authtype md5 secret <Secret>peer 사이에 MD5 인증 사용. peer들은 인증 구성에 합의해야 하며, 신뢰된 peer로부터만 라우팅 정보를 받음.
throttle-count <0-65535>한 번에 보낼 BGP update 수. peer가 많을 때 update 수를 제한.
throttle count offthrottle count를 끔.
`log-state-transitions {off \on}`peer가 established 상태에 들어가거나 나갈 때마다 로그 메시지 생성.
`log-warnings {off \on}`codepath에서 warning 시나리오를 만날 때마다 로그 메시지 생성.
`trace bgp_traceoption {off \on}`BGP 추적 옵션. 로그 메시지는 /var/log/routed.log.* 파일에 저장(Trace Options 참고).

group 수준 graceful-restart·route-refresh 파라미터

파라미터설명
`graceful-restart-helper {off \on}`Check Point 시스템이 peer 라우터가 재시작해도 그들이 광고한 forwarding 상태를 유지 할지 — peer 재시작의 부정적 영향을 최소화.
graceful-restart-helper-stalepath-time seconds재시작 중인 라우터로부터 이전에 받은 경로를 재검증할 수 있도록 유지하는 최대 시간. peer가 복구 표시를 보낸 뒤 타이머 시작.
`route-refresh {off \on}`peer가 이전에 보낸 경로를 다시 학습하거나 peer의 라우팅 테이블을 refresh. peer는 현재 라우팅 테이블로 응답하며, 반대도 같음. peer 요청을 기다리지 않고 route update를 trigger 가능.
`ip-reachability-detection {off \on \multihop \check-control-plane-failure}`BFD 구성. off(기본 — peer가 다운되면 stale 경로 제거), on(singlehop BFD — 한 hop 거리 peer, 직접 연결 네트워크, 양방향 UDP 3784 허용), multihop(한 hop 이상 — 양방향 UDP 4784 허용, 양쪽 설정 동일), check-control-plane-failure(원격 BFD peer의 C bit 해석 — C bit가 0이고 BGP graceful restart가 켜진 두 조건이 동시 충족되면 stale 경로 유지). SmartConsole topology가 정확해야 anti-spoofing이 BFD를 방해하지 않습니다.

Remote Peers 구성 (Gaia Clish)

Gaia는 BGP peer로 IPv4·IPv6 주소를 모두 지원합니다.

set bgp external remote-as <Number of Autonomous System> peer <IP Address>
{off | on}
      accept-med {off | on}
      accept-routes {all | none}
      allowas-in-count {<0-10> | default}
      as-override {off | on}
      authtype {none | md5 secret <Secret>}
      capability {default | ipv4-unicast | ipv6-unicast} {off | on}
      graceful-restart-helper {off | on}
      graceful-restart-helper-stalepath-time <Number of Seconds>
      holdtime {<6-65535> | default}
      ignore-first-ashop {off | on}
      ip-reachability-detection
            check-control-plane-failure {off | on}
            multihop {off | on}
            {off | on}
      keepalive {<2-21845> | default}
      log-state-transitions {off | on}
      log-warnings {off | on}
      med-out {<0-4294967294> | default}
      multihop {off | on}
      no-aggregator-id {off | on}
      outgoing-interface <Name of Interface> {off | on}
      passive-tcp {off | on}
      peer-local-as
            dual peering {off | on}
            inbound-peer-local {off | on}
            outbound-local {off | on}
      peer-local-as as {{<1-4294967295> | <0.1-65535.65535>} on | off}
      removeprivateas {off | on}
      route-refresh {off | on}
      send-keepalives {off | on}
      send-route-refresh {request | route-update} {ipv4 | ipv6 | all} [unicast]
      suppress-default-originate {off | on}
      throttle-count {<0-65535> | off}
      trace bgp_traceoption {off | on}
      ttl {<1-255> | default}
파라미터설명
`IP Address {off \on}`group의 지정 peer IP 주소.
`med-out {<0-4294967294> \default}`지정 peer로 보내는 모든 경로의 주 metric으로 쓰는 MED. redistribute 정책이 지정한 metric을 덮어씁니다. 외부 peer는 MED로 어떤 진입점이 선호되는지 판단 하며, 낮은 MED가 높은 MED보다 선호 됩니다. 범위 0-4294967294, 기본값 4294967294.
`outgoing-interface <Name of Interface> {off \on}`local address가 FE80:인 IPv6 peer에만 적용. 모든 peer 인터페이스는 local address(같은 FE80: 시작 주소일 수 있음)와 global address를 가지며, local address를 쓰려면 그 outgoing interface를 입력해야 합니다.
`accept-med {off \on}`지정 peer로부터 MED를 받음. 설정하지 않으면 라우팅 테이블 추가 전에 MED가 제거됩니다. 기본 off.
`multihop {off \on}`직접 연결되지 않은 eBGP peer와 multihop 연결을 켬. 기본적으로 eBGP peer는 직접 연결돼 있다고 가정합니다. TTL로 hop 수를 구성하며 eBGP load balancing에도 사용. 기본 off.
`peer-local-as as {{<1-4294967295> \<0.1-65535.65535>} on \off}`peer별로 Peer Local ASN 으로 연결 구성 — Peer Local ASN이 세션의 Local ASN을 대체. 범위 1-4294967295 또는 0.1-65535.65535, 기본 none.
`peer-local-as {inbound-peer-local \outbound-local \dual peering} {off \on}`시스템 전역 Local AS와 다른 peer별 Local AS 번호 구성. inbound-peer-local(peer로부터의 inbound update에 Peer Local AS prepend, 기본 on), outbound-local(peer로의 outbound update에 Local AS prepend, 기본 on), dual-peering(Local AS와 Peer Local AS로부터 peering 허용, 기본 off).
`as-override {off \on}`루프 방지를 위해 라우터는 AS Path에서 자기 AS 번호를 보면 패킷을 버립니다. 이 기능은 보내는 쪽이 outbound AS path에서 peer의 AS 번호를 자기 AS 번호로 override 해, 같은 AS의 여러 사이트가 경로를 받게 합니다. Peer Local AS가 켜졌으면 그것으로 override합니다. 기본 off.
`allow-as-in-count {0-10 \default}`받는 쪽이 inbound AS path에서 peer의 AS 번호를 자기 AS 번호로 override. as-override(outbound)와 대비되는 inbound 속성. 범위 0-10, 기본 0.
`ttl {<1-255> \default}`eBGP multihop 세션의 hop 수 제한. eBGP multihop이 켜졌을 때만 구성 가능, multihop이 꺼지면 기본 TTL은 1. 범위 1-255, 기본값 64.
`no-aggregator-id {off \on}`라우터의 aggregate 속성을 Router ID 대신 0으로. 서로 다른 AS path의 aggregate 경로 생성 방지. 기본 off.
`holdtime {<6-65535> \default}`지정 peer와 연결 협상 시의 BGP holdtime(초). open의 holdtime 동안 신호를 못 받으면 연결을 닫음. 범위 6-65535, 기본값 180.
`keepalive {<2-21945> \default}`holdtime을 입력하는 또 다른 방법(초). keepalive 대신 또는 함께(holdtime이 keepalive의 3배) 사용. 범위 2-21945, 기본값 60.
`ignore-first-ashop {off \on}`해당 peer로부터 학습한 경로의 AS path 첫 AS 번호를 무시. transparent 모드 route server와 peering할 때만. 기본 off.
`send-keepalives {off \on}`update로 충분할 때조차 항상 keepalive를 보냄 — 규격을 엄격히 안 따르는 라우터와 상호운용. 기본 none.
`send-route-refresh {request \route-update}{ipv4 \ipv6 \all} unicast`peer로부터 route update를 동적 요청하거나 응답. iBGP에서는 지원 안 됨. 기본 none.
`route-refresh {off \on}`peer가 이전에 보낸 경로 재학습 또는 peer 라우팅 테이블 refresh. peer가 현재 테이블로 응답, 반대도 같음. 기본 off.
`accept-routes {all \none}`인바운드 정책이 없을 때 — all(invalid preference로 받아 설치), none(peer 학습 경로 삭제, 메모리 절약). 기본 all.
`passive-tcp {off \on}`지정 peer가 open을 낼 때까지 기다림, 라우터가 TCP 연결을 시작하지 않 음. 기본 off.
`removeprivateas {off \on}`외부 peer로의 BGP update에서 private AS 번호 제거. 기본 off.
`authtype {none \md5 secret <Secret>}`이 peer의 인증 정책. none(인증 미사용), md5(MD5 인증 — 신뢰된 peer로부터만 라우팅 정보 수용). 기본 none.
`throttle-count {<0-65535> \off}`한 번에 보낼 BGP update 수, peer가 많을 때 제한. off로 끔. 범위 0-65535, 기본 none.
`suppress-default-originate {off \on}`peer가 자신의 peer로부터 유효한 update를 받을 때 default route를 생성하지 않 음. 기본 none.
`log-state-transitions {off \on}`peer가 established 상태에 들어가거나 나갈 때 로그. 기본 off.
`log-warnings {off \on}`codepath의 warning 시나리오 시 로그. 기본 off.
`trace bgp_traceoption {off \on}`BGP 추적 옵션, /var/log/routed.log.*에 저장. 기본 off.
`capability {default \ipv4-unicast \ipv6-unicast} {off \on}`peer마다 주고받을 경로 종류(Multiprotocol capability) 구성 — IPv4 Unicast Only(기본 on), IPv6 Unicast Only(기본 off), Both IPv4 and IPv6(기본 off). peering하려면 라우터들이 capability를 공유 해야 합니다.
`graceful-restart-helper {off \on}`peer 라우터가 재시작해도 그들이 광고한 forwarding 상태를 유지 — 재시작의 부정적 영향 최소화. 기본 off.
graceful-restart-helper-stalepath-time <Number of Seconds>재시작 중인 라우터의 이전 경로를 재검증 위해 유지하는 최대 초. peer가 복구 표시를 보낸 뒤 시작. 범위 60-65535, 기본값 360.
`ip-reachability-detection {off \on \multihop \check-control-plane-failure}`BFD 구성. off(기본, peer 다운 시 stale 제거), on(singlehop, 양방향 UDP 3784), multihop(양방향 UDP 4784, 양쪽 설정 동일), check-control-plane-failure(C bit 해석 — C bit가 0이고 graceful restart가 켜지면 stale 유지). 기본 off. SmartConsole topology 정확히.

BGP Confederation 구성 (Gaia Clish)

BGP confederation은 external BGP와 함께 구성할 수 있습니다.

set bgp
      confederation identifier <Number of Autonomous System>
      confederation identifier off
      confederation aspath-loops-permitted <1-10>
      confederation aspath-loops-permitted default
      routing-domain identifier <Number of Autonomous System>
      routing-domain identifier off
      routing-domain aspath-loops-permitted <1-10>
      routing-domain aspath-loops-permitted default
      synchronization {off | on}
파라미터설명
confederation identifier <Number of Autonomous System>전체 confederation의 식별자. external BGP 세션에서 AS 번호로 사용되며, 밖에서는 하나의 거대한 AS의 번호로 보입니다. 따라서 전 세계적으로 고유한, 보통 할당된 AS 번호 여야 합니다.
confederation identifier offconfederation identifier를 끕니다.
confederation aspath-loops-permitted <1-10>로컬 AS가 BGP 학습 경로의 AS path에 나타날 수 있는 횟수. 실제 출현이 이보다 많으면 경로를 폐기·거부.
confederation aspath-loops-permitted default값 1.
routing-domain identifier <Number of Autonomous System>이 라우터의 RDI. BGP confederation을 쓸 때 지정해야 하며, confederation 안에서만 쓰이므로 전 세계적 고유성은 불필요.
routing-domain identifier offrouting-domain identifier를 끕니다.
routing-domain aspath-loops-permitted <1-10>RDI의 AS path loop 허용 횟수. 초과 시 경로 폐기·거부.
routing-domain aspath-loops-permitted default값 1.
`synchronization {off \on}`IGP synchronization 활성화. on이면 internal·confederation BGP peer가 BGP 학습 경로를 설치하기 전에 IGP에서 일치 경로를 확인.

BGP Confederation Peer 구성

set bgp confederation member-as <ID of Autonomous System>
{off | on}
      description {off | "<Your Text>"}
      interface <Name of Interface> {off | on}
      local-address <IP Address> [{off | on}]
      med {default | <Value>}
      nexthop-self [{off | on}]
      outdelay {off | <Delay>}
      peer <IP Address>
[{off | on}]
            accept-routes {all | none}
            authtype {none | md5 secret <Password>}
            capability {ipv4-unicast | ipv6-unicast} {off | on}
            graceful-restart {off | on}
            graceful-restart-stalepath-time {default | <Time>}
            holdtime {default | <Time>}
            ignore-first-ashop {off | on}
            keepalive {default | <Time>}
            local-address <Local IP Address> [{off | on}]
            log-state-transitions {off | on}
            log-warnings {off | on}
            no-aggregator-id {off | on}
            outgoing-interface <Name of Interface> {off | on}
            passive-tcp {off | on}
            peer-type
[none] [{off | on}]
[reflector-client {off | on}]
[no-client-reflector {off | on}]
            ping {off | on}
            route-refresh {off | on}
            send-keepalives {off | on}
            send-route-refresh
                  request {all | ipv4 | ipv6} unicast
                  route-update {all | ipv4 | ipv6} unicast
            throttle-count {off | <Number>}
            trace {all | keepalive | open | packets | update | general | normal | policy | route | state | task | timer} {off | on}
            weight <Weight>
            comment "<Your Text>"
      protocol {all | bgp | direct | rip | static | ospf | ospfase}
파라미터설명
`{off \on}`AS ID로 peer group을 만들거나(on) 없앱(off)니다.
`description {off \"<Your Text>"}`(선택) peer group 설명을 설정하거나 끕니다.
`interface <Name of Interface> {off \on}`인터페이스(eth1, eth2 등)를 peer group 인터페이스로 설정·on/off.
`local-address <IP Address> [{off \on}]`로컬 gateway의 IP 주소로 peer group 설정.
`med {default \<Value>}`peer group의 로컬 MED. 기본 0.
`nexthop-self {off \on}`로컬 gateway를 peer group의 default exit gateway로 설정(on)·해제(off).
`outdelay {off \<Delay>}`out-delay 값(초) 설정·해제. rate limiting 강제에 사용.
`peer <IP Address> [{off \on}]`지정 gateway로 peer group 생성.
`protocol {all \bgp \direct \rip \static \ospf \ospfase}`internal peer group 프로토콜 설정.
`peer <IP Address> accept-routes {all \none}`인바운드 BGP route 정책이 있을 때만 peer 경로 수용. import 정책이 없으면 all(invalid preference로 받아 설치, 기본)·none(명시 정책 없을 때 삭제, 메모리 절약, 재학습은 세션 재시작 필요) 지정.
`peer <IP Address> authtype {none \md5 secret <Password>}`로컬 gateway와 지정 peer 사이 인증. MD5로 설정해 암호 지정하거나 none으로 끔.
`peer <IP Address> capability {ipv4-unicast \ipv6-unicast} [{off \on}]`지정 peer와의 multiprotocol capability(ipv4/ipv6 unicast) 구성, 필요 시 on/off.
`peer <IP Address> graceful-restart {off \on}`로컬 gateway와 지정 peer 사이 graceful restart on/off.
`peer <IP Address> graceful-restart-stalepath-time {default \<Time>}`지정 peer와의 graceful restart stalepath time(초) 설정.
`peer <IP Address> holdtime {default \<Time>}`지정 peer 메시지 사이 경과 가능한 최대 시간(초).
`peer <IP Address> ignore-first-ashop {off \on}`지정 peer 학습 경로의 AS_PATH 첫 AS 번호 무시. transparent 모드 route server peer에 사용.
`peer <IP Address> keepalive {default \<Time>}`지정 peer의 keepalive 타이머(초).
`peer <IP Address> local-address <Local IP Address> {off \on}`지정 peer에 로컬 IP 주소 설정.
`peer <IP Address> log-state-transitions {off \on}`지정 peer의 상태 전이 로깅 on/off.
`peer <IP Address> log-warnings {off \on}`지정 peer의 warning 로깅 on/off.
`peer <IP Address> no-aggregator-id {off \on}`지정 peer가 AS 경로를 aggregate하지 않도록(on). off면 aggregate 경로 생성.
`peer <IP Address> outgoing-interface <Name of Interface> {off \on}`지정 peer로의 특정 outgoing 인터페이스 설정.
`peer <IP Address> passive-tcp {off \on}`passive 동작. on이면 gateway가 지정 원격 peer로 연결을 시작하지 않음. 기본 off.
`peer <IP Address> peer-type {none \reflector-client \no-client-reflector} [{off \on}]`지정 peer에 대한 로컬 gateway의 peer type 설정.
`peer <IP Address> ping {off \on}`로컬 gateway와 지정 peer 사이 ping. 기본 off.
`peer <IP Address> route-refresh {off \on}`로컬 gateway와 지정 peer 사이 route refresh. 기본 off.
`peer <IP Address> send-keepalives {off \on}`gateway가 지정 peer로 항상 keepalive를 보냄. 기본 off.
`peer <IP Address> send-route-refresh request {all \ipv4 \ipv6} unicast`로컬 gateway가 지정 peer에 BGP route update 요청.
`peer <IP Address> send-route-refresh route-update {all \ipv4 \ipv6} unicast`로컬 gateway가 지정 peer의 route update 요청에 응답.
`peer <IP Address> throttle-count {off \<Number>}`지정 peer로 한 번에 보낼 최대 BGP update 수. 범위 0-65535, 기본 off.
`peer <IP Address> trace [{keepalive \open \packets \update \all \general \normal \policy \route \state \task \timer}] {off \on}`지정 peer로부터 추적할 패킷 종류 설정.
peer <IP Address> weight <Weight>지정 peer의 weight 설정. 범위 0-65535.
peer <IP Address> comment "<Your Text>"지정 peer에 연결된 코멘트 설정.

BGP Route Reflection 구성 (Gaia Clish)

route reflection은 BGP confederation의 대안 으로 구성할 수 있으며, internal·external BGP routing group을 모두 지원합니다.

set bgp
      internal peer <IP Address> peer-type
            none
            no-client-reflector
            reflector-client
      cluster-id {<IP Address> | off}
      default-med {<0-65535> | off}
      default-route-gateway {<IP Address> | off}
파라미터설명
internal peer <IP Address> peer-type nonepeer 라우터가 로컬 라우터의 reflector client가 아님(기본).
internal peer <IP Address> peer-type no-client-reflector고급 옵션.
internal peer <IP Address> peer-type reflector-clientpeer 라우터가 로컬 라우터의 reflector client.
cluster-id <IP Address>route reflection에 쓰는 cluster ID. 기본은 Router ID. cluster에 reflector가 둘 이상이면 기본값 덮어쓰기.
cluster-id offcluster ID 비활성화.
default-med <0-65535>BGP로 경로를 광고할 때 쓰는 MED metric.
default-med off지정 MED metric 비활성화.
default-route-gateway <IP Address>default route. 이 라우터에 구성된 어떤 static default route보다 rank가 높 음. 특정 BGP peer를 default route 생성에서 빼려면 peer <IP Address> suppress-default-originate on 사용.
default-route-gateway off구성된 default BGP route 비활성화.

BGP Route Dampening 구성 (Gaia Clish)

BGP route dampening은 flapping 경로의 이력을 유지하고 그 경로의 광고를 막 습니다. 경로가 사용 가능↔불가능을 반복 하면 flapping입니다.

set bgp dampening
{off | on}
      suppress-above {<2-32> | default}
      reuse-below {<1-32> | default}
      max-flat {<3-64> | default}
      reachable-decay {<1-900> | default}
      unreachable-decay [<1-2700> | default}
      keep-history {<2-5400> | default}
파라미터설명
`{off \on}`BGP route dampening을 켜거나 끕니다.
suppress-above <2-32>route suppression이 일어나는 instability metric 값. suppress된 동안에는 도달 가능해도 forwarding 테이블에 설치·광고되지 않음.
suppress-above defaultsuppress용 instability metric 값 3.
reuse-below metric <1-32>suppress된 경로가 도달 가능하면 다시 unsuppress되는 instability metric 값. suppress-above보다 작아야 함.
reuse-below metric default이전 suppress 경로를 다시 알리는 instability metric 값 2.
max-flap <3-64>instability metric의 상한. suppress-above + 1보다 커야 하며, 경로가 도달 불가능해질 때마다 현재 metric에 1 추가.
max-flat defaultinstability metric 상한 16.
reachable-decay <1-900>경로가 도달 가능할 때 instability metric이 절반에 도달하는 시간. 작을수록 suppress 경로가 더 빨리 재사용 가능.
reachable-decay default값 300.
unreachable-decay <1-2700>경로가 도달 불가능할 때 instability metric이 절반에 도달하는 시간. reachable-decay 값과 같거나 커야 함.
unreachable-decay default값 900.
keep-history <2-5400>주어진 경로에 대해 route flapping 이력을 유지하는 기간.
keep-history default값 1800.

BGP Community 구성 (Gaia Clish)

BGP community같은 속성을 공유하는 목적지의 그룹 입니다. community는 하나의 네트워크나 AS에 국한되지 않 으며, BGP 인바운드·route redistribution 정책을 단순화 하는 데 씁니다. community 명령은 인바운드 정책·route redistribution과 함께 사용합니다.

set bgp communities {off | on}
파라미터설명
oncommunity 기반 BGP 정책 옵션을 켭니다.
offcommunity 기반 BGP 정책 옵션을 끕니다.

Gaia Clish에서 BGP Peer 재시작

Gaia RouteD 데몬을 재시작하지 않고 BGP peering을 재시작할 수 있습니다.

restart bgp
      all
      as <Number of Autonomous System>
      peer <IP Address of Peer>
파라미터설명
all모든 group의 모든 peer와의 BGP peering 재시작.
as <Number of Autonomous System>지정 group의 모든 peer와의 BGP peering 재시작.
peer <IP Address of Peer>지정 peer와의 BGP peering 재시작.

Gaia Clish에서 BGP 모니터링

쓸 수 있는 모든 "show" 명령을 보려면 다음을 입력합니다.

show bgp[Esc][Esc]

문제 해결은 Trace Options를 참고합니다.

IPv6 BGP 지원 (BGP-4 Multiprotocol Extensions)

Gaia는 BGP-4를 multiprotocol extensions와 IPv6 주소 prefix 교환과 함께 구현하며, 이는 RFC 2545·2858·3392 에 기술됩니다.

Router ID(BGP identifier)에는 반드시 IPv4 주소를 써야 합니다. BGP 세션이 올라오면, 새 multiprotocol 속성인 MP_REACH_NLRI(경로 도달성 광고)와 MP_UNREACH_NLRI(경로 철회) 중 하나 또는 둘을 포함한 일반 "UPDATE" 메시지를 보내 prefix를 광고·철회할 수 있습니다.

이 새 속성들은 하위 호환 됩니다. 두 라우터가 BGP 세션을 맺고 한쪽만 multiprotocol 속성을 지원하면, IPv6 경로는 못 주고받아도 unicast IPv4 경로는 여전히 주고받 을 수 있습니다.

IPv6 BGP 구성

peer마다 주고받을 경로 종류(Multiprotocol capability)를 구성합니다 — IPv4 Unicast Only(기본), IPv6 Unicast Only, Both IPv4 and IPv6 중 하나. peering하려면 두 라우터가 capability를 공유 해야 합니다.

IPv4 경로를 IPv6 위로(또는 IPv6 경로를 IPv4 위로) 교환 한다면, Gaia Clish의 routemap 명령으로 nexthop을 교환되는 경로의 family에 맞게 설정 하세요. 맞지 않으면 경로가 active가 될 수 없습니다.

BGP 세션 (Internal과 External)

소개

BGP는 neighbor 사이에 두 종류의 세션을 지원합니다.

  • Internal(iBGP)같은 AS 안 의 라우터 사이에서 동작합니다.
  • External(eBGP)서로 다른 AS 의 라우터 사이에서 동작합니다.

external peer로 경로를 보낼 때는 로컬 AS 번호가 AS path 앞에 붙 습니다. internal neighbor로부터 받은 경로는 external peer로부터 받았을 때와 동일한 AS path 를 가집니다.

BGP 세션은 path attribute에 단일 metric인 MED(Multi-Exit Discriminator) 를 포함할 수 있습니다. 작은 값이 선호 되며, 같은 neighbor AS로부터 온 동일 preference 경로들의 tie(동점)를 깨는 데 씁니다.

internal BGP 세션은 path attribute에 BGP가 local preference 라 부르는 metric을 최소 하나 실어 나릅니다. 이 metric의 크기는 MED와 같고, 쓰임은 internal 프로토콜 처리 방식에 따라 달라집니다.

BGP 구현에서 external peer는 공유 서브넷에 직접 붙어 있고, 그 서브넷의 host 주소를 next hop으로 광고 합니다. 구성 중 BGP peer template에서 multihop 옵션을 켜면 이 제약이 완화 됩니다.

internal group은 경로의 immediate next hop을 결정 합니다. peer로부터 경로와 함께 받은 next hop은 forwarding 주소로 쓰이고, IGP 경로에서 immediate next hop을 조회하는 데 쓰입니다. internal group은 먼 거리의 peer도 지원 하지만, immediate next hop을 정하려면 어느 IGP의 경로를 쓰는지 알아야 합니다.

가능하면 internal BGP group에서는 공통 정책을 바탕으로 모든 group peer를 위한 하나의 outgoing 메시지를 만들 고, 각 peer에 맞게 next hop 필드만 조정한 복사본을 보냅니다. 이로써 많은 수의 peer를 운영하는 계산 부하를 최소화 합니다.

Private AS 번호 전파 방지

ISP는 전 세계적으로 고유한 AS 번호를 아끼려고 private AS 번호(64512~65535) 를 고객에게 할당할 수 있습니다. 이렇게 하면 고객 네트워크에서 ISP로 가는 BGP update의 AS_PATH 속성에 private AS 번호가 들어가고, ISP가 이를 다른 ISP로 전파할 때 이 번호가 그대로 포함됩니다. 이를 막으려면 외부 peer로의 BGP update에서 private AS 번호를 제거 하도록 Gaia를 구성합니다 — 외부 peer 구성 페이지에서 Remove Private AS 옵션을 켭니다.

이 옵션을 켜면 다음 규칙에 따라 private AS 번호가 제거됩니다.

  • AS_PATH에 public과 private가 모두 있으면 private을 제거하지 않 습니다.
  • AS_PATH에 목적지 peer의 AS 번호가 있으면 private을 제거하지 않 습니다.
  • AS_PATH에 confederation이 포함되고 모든 AS 번호가 private이면 모든 private을 제거 합니다.

BGP Route Refresh

Gaia는 peer로부터 BGP route update를 동적으로 요청하고, 요청에 응답하는 기능 을 지원합니다. 예를 들어 인바운드 라우팅 정책을 바꿨을 때, peer에게 이전에 광고한 경로를 다시 광고하도록 요청해 새 정책에 비추어 경로를 점검 할 수 있습니다. 이 기능은 맺어진 세션을 끊지 않고 peer로부터 받은 경로를 refresh 한다고 해서 종종 soft reset 이라 부릅니다.

이 옵션은 같은 capability를 지원하는 peer와만 동작합니다. 단, Gaia 시스템은 이 옵션을 지원하지 않는 시스템과도 peering할 수 있습니다.

Gaia Clish에서:

set bgp external remote-as <AS Number> peer <IP Address> send-route-refresh
set bgp internal peer <IP Address> send-route-refresh
save config

Gaia Portal에서:

  1. Advanced Routing > BGP 클릭.
  2. Peer Groups 에서 해당 group 선택 후 Edit.
  3. Peers 에서 해당 peer 선택 후 Edit.
  4. Shows Advanced Settings 클릭.
  5. Route Refresh 영역에서 Route Refresh 선택.
  6. Save 로 Edit Peer 창 닫기.
  7. Save 로 Edit Peer Group 창 닫기.

BGP Path Attribute

path attribute경로가 목적지에 닿기까지 거친 AS 번호의 목록 입니다. BGP는 path attribute로 각 경로에 더 많은 정보를 주고, 임의 topology에서 routing loop를 방지 하며, 관리상의 preference를 정하 는 데도 씁니다.

BGP는 path attribute가 비슷한 경로들을 하나의 update로 묶어 광고합니다. 하나의 update로 받은 경로는 하나의 update로 다시 광고하므로, neighbor 손실로 인한 churn(요동)을 최소화 하고, peer 수립 시 보내는 초기 광고를 최대한 압축합니다.

BGP는 kernel이 메시지 단위로 만든 정보를 읽지 않고, 입력 버퍼를 채운 뒤 버퍼 안의 완전한 메시지를 모두 처리한 다음 다시 읽 습니다. 또한 소켓에 대기 중인 들어온 데이터를 모두 비우려고 여러 번 읽 습니다.

속성설명
AS_PATHUPDATE 메시지가 실어 나르는 라우팅 정보가 거쳐 온 AS들을 식별. 이 목록의 구성요소는 AS_SET 또는 AS_SEQUENCE일 수 있습니다.
NEXT_HOPUPDATE 메시지에 나열된 목적지로 가는 next hop으로 써야 할 border 라우터의 IP 주소 를 정의.
MULTI_EXIT_DISC같은 이웃 AS로의 여러 exit/entry 지점을 구분. external link에서만 사용.
LOCAL_PREF어떤 external 경로를 택할지 결정 하며, 모든 iBGP UPDATE에 포함. 지정된 BGP speaker가 자기 AS 안의 BGP speaker에게는 보내지만 이웃 AS에는 보내지 않음. 값이 클수록 선호.
ATOMIC_AGGREGATE더 구체적인 경로 대신 덜 구체적인 경로가 선택 되었음을 BGP speaker에게 알림. 이 경로를 다른 speaker로 재생산할 때 속성을 붙이며, 받은 speaker는 이 속성을 제거하거나 NLRI를 더 구체적으로 만들 수 없음. 디버깅 용도로만 사용.

모든 unreachable 메시지는 하나의 메시지로 모아 flash update 동안 reachable 경로보다 먼저 보냅니다. 이 unreachable 알림에서는 next hop을 연결의 로컬 주소로 설정 하고, metric은 보내지 않으며, path origin은 incomplete로 설정합니다. external 연결에서는 unreachable 알림의 AS path가 로컬 AS 로 설정되고, internal 연결에서는 AS path 길이가 0 으로 설정됩니다.

BGP에서 peer 사이에 공유되는 라우팅 정보는 announcement(알림)와 withdrawal(철회) 두 형식입니다. route announcement 는 라우터가 새 네트워크 연결을 알게 되었거나, 어떤 목적지로 다른 경로를 선호하는 정책 결정을 내렸 음을 뜻합니다. route withdrawal 은 라우터가 어떤 네트워크가 더는 도달 불가능하다는 새 로컬 결정 을 내렸을 때 보냅니다.

BGP Multi-Exit Discriminator (MED)

MED(Multi-exit Discriminator) 값은 external neighbor가 AS로 들어가는 여러 진입점 중 어디가 선호되는지 판단 하도록 돕습니다. 낮은 MED가 높은 MED보다 선호 되며, 둘 이상의 선호 경로 사이의 tie를 깹니다.

BGP와 IGP의 상호작용

모든 transit AS는 자기 AS 밖에서 출발하거나, 밖으로 향하거나, 둘 다인 트래픽 을 실어 나를 수 있어야 합니다. 이를 위해 BGP와 그 AS가 쓰는 IGP 사이에 일정 수준의 상호작용·조율 이 필요합니다. 보통 어떤 AS 밖에서 출발한 트래픽은 interior gateway(IGP만 지원)와 border gateway(IGP·BGP 둘 다 지원) 를 모두 지납니다. 모든 interior gateway는 IGP를 쓰는 AS의 border gateway 하나 이상으로부터 external 경로 정보를 받습니다.

BGP 정보를 AS 안에 전파하는 메커니즘에 따라, BGP와 IGP 사이의 일관성에 특히 주의 해야 합니다 — 상태 변화가 AS 전반에 서로 다른 속도로 전파되기 쉽기 때문입니다. 어떤 border gateway "A"가 (같은 AS 안 다른 border gateway "B"에서 비롯된) 새 BGP 라우팅 정보를 받은 순간과, 이 AS의 IGP가 그 transit 트래픽을 "B"로 라우팅할 수 있게 된 순간 사이에 시간 차 가 생길 수 있고, 그동안 잘못된 라우팅이나 black hole 이 생길 수 있습니다.

이런 문제를 줄이려면, border gateway "A"는 AS 안 모든 interior gateway가 올바른 exit border gateway "B"로 트래픽을 라우팅할 준비가 될 때까지, 그 prefix의 external 목적지로 가는 경로를 어떤 external peer에게도 광고하지 말아야 합니다. 즉 interior routing이 올바른 exit gateway로 수렴한 뒤에 그 exit gateway를 쓰는 경로를 external peer에 광고 해야 합니다.

AS 안 모든 라우터가 BGP speaker라면 BGP와 IGP 사이의 상호작용이 필요 없 습니다. 이 경우 모든 라우터가 이미 모든 BGP 경로를 완전히 알고 있으므로, IGP는 AS 내부 라우팅에만 쓰이고 BGP 경로는 IGP로 import되지 않 습니다. 이때 사용자는 라우팅 테이블에서 recursive lookup(재귀 조회) 을 할 수 있습니다 — 첫 조회는 BGP 경로로 exit 라우터를 정하고, 두 번째 조회는 exit 라우터까지의 IGP 경로를 정합니다.

BGP Inbound Route Filter

BGP 경로는 AS 번호나 AS path 정규식(또는 둘 다)으로 필터링하거나 재분배 할 수 있습니다.

BGP는 거부된 경로를 음수 preference로 라우팅 테이블에 저장 합니다. 음수 preference는 경로가 active 되는 것을 막 아 forwarding 테이블에 설치되거나 다른 프로토콜로 재분배되는 것을 막습니다. 이 동작 덕분에 import 정책이 바뀌어도 세션을 끊었다 다시 맺을 필요가 없 습니다.

BGP에서 import할 때 local preference, rank, nexthop을 추가·수정 할 수 있습니다. local preference 파라미터는 import된 경로에 BGP local preference를 부여합니다. local preference는 32-bit unsigned 값으로 클수록 선호 되며, BGP 경로에 대한 라우팅 서브시스템의 preference를 편향시키는 선호되는 방법 입니다.

BGP로 경로 재분배

BGP로의 재분배는 AS 단위로 제어 됩니다. 같은 정책이 AS 안 모든 Firewall에 적용 됩니다. BGP metric은 16-bit unsigned 로 0~65535 범위이며, 0이 가장 매력적 입니다. BGP version 4는 32-bit unsigned를 지원하지만 routed는 지원하지 않 습니다.

BGP Community

BGP communityIP 주소 집합을 묶어, 그룹(community)의 정체성에 따라 라우팅 결정을 적용 하게 해 줍니다. 구현하려면 community 집합을 특정 BGP local preference 값에 매핑 한 다음, community 안 각 라우터마다가 아니라 community 전체에 균일한 BGP 구성을 적용 합니다. community 안의 라우터들은 자신의 community 값과 일치하는 경로를 잡아낼 수 있습니다.

community 속성으로 BGP speaker가 경로의 community를 설정·추가·수정 해, 어떤 라우팅 정보가 accept·preferred·distribute될지 제어 하도록 구성합니다. BGP speaker가 적용할 수 있는 특별한 community 속성은 다음과 같습니다.

Community 속성설명
NO_EXPORT (0xFFFFFF01)BGP confederation 경계 밖으로 광고하지 않 음. confederation에 속하지 않은 standalone AS는 그 자체로 confederation으로 간주.
NO_ADVERTISE (0xFFFFFF02)다른 BGP peer에게 광고하지 않 음.
NO_EXPORT_SUBCONFED (0xFFFFFF03)external BGP peer에게 광고하지 않 음. 여기에는 BGP confederation 안 다른 멤버 AS의 peer도 포함.

community에 대한 자세한 내용은 RFC 1997·RFC 1998 을 참고합니다.

BGP Route Reflection

기본적으로 AS 안 모든 BGP peer는 full mesh 입니다. 그러나 AS에 BGP peer가 많으면 BGP 구성과 하드웨어 배치가 쉽지 않습니다. 구성·배치를 단순화하고 peer를 full mesh로 연결할 필요를 없애려면 다음처럼 구성할 수 있습니다.

  • 한 BGP peer를 route reflector 로.
  • 다른 BGP peer의 전부 또는 일부를 그 route reflector의 client 로.

route reflector와 그 client를 합쳐 route reflection cluster 라 부릅니다. route reflector는 자신의 peer로부터 받은 경로를 client에게 보냅 니다.

아래 예시 네트워크에서는, AS1에 BGP가 켜진 Check Point 라우터가 5대 있고, 그중 한 대가 두 client의 route reflector입니다.

p.114
p.114
항목설명항목설명
1Non-clients5AS1
2iBGP6eBGP
3cluster 안의 Route Reflector7AS676
4cluster 안의 Clients

단일 장애점을 피하려고 AS 안에 route reflector를 둘 이상 정의 할 수도 있습니다.

route reflection의 자세한 내용은 RFC 2796 을 참고합니다.

BGP Confederation

route reflection의 대안은 BGP confederation 입니다. route reflector처럼 BGP speaker를 cluster(보통 topology상 가까운 라우터 집합)로 나누되, confederation에서는 AS를 더 작은 여러 AS로 세분해 그들끼리 통신 하게 함으로써 이를 이룹니다. 내부 topology는 바깥 세상에 숨겨지고, 바깥에서는 confederation을 하나의 큰 AS로 인식 합니다.

confederation 안의 각 하위 AS를 routing domain(RD) 이라 하고, RDI(Routing Domain Identifier) 로 식별합니다. RDI는 AS 번호와 같은 문법을 갖지만 confederation 밖에서는 보이지 않으므로 전 세계적 고유성은 불필요 하고, confederation 안에서는 고유 해야 합니다. 많은 confederation이 편의상 예약된 AS 공간(64512~65535, RFC 1930 참고) 에서 RDI를 고릅니다. RDI는 confederation 안 peer 사이 BGP 세션의 AS 로 쓰입니다.

confederation 전체는 confederation identifier 로 지칭합니다. 이 식별자는 external BGP 세션에서 AS로 쓰이며, 바깥 세상에서는 confederation ID가 하나의 거대한 AS의 번호 입니다. 그래서 confederation ID는 전 세계적으로 고유한, 보통 할당된 AS 번호 여야 합니다.

자세한 내용은 confederation 규격 문서 RFC 1965 를 참고합니다.

External BGP (eBGP) Multihop 지원

서로 다른 AS의 BGP speaker 사이의 연결을 eBGP 연결 이라 합니다. BGP는 eBGP 연결의 peer 라우터가 직접 붙은 네트워크에 있어야 한다는 규칙을 강제합니다. peer 라우터가 여러 hop 떨어져 있거나 둘 사이에 여러 link가 있다면, eBGP multihop 기능을 켜서 이 제약을 우회 할 수 있습니다. eBGP peer 사이의 TCP 연결은 outgoing 인터페이스의 주소에 묶여 있어서, 두 peer 사이에 유효한 경로가 있더라도 인터페이스 하나만 끊겨도 세션이 끊깁 니다.

eBGP multihop 지원은 인터페이스 장애가 나도 eBGP peer 세션이 유지되는 이중화 를 줄 수 있습니다. eBGP peering 세션에 loopback 인터페이스 주소를 쓰면, peer의 loopback 주소에 닿을 수만 있다면 둘 사이 link 하나가 다운돼도 TCP 연결이 유지 됩니다. 또한 eBGP multihop 지원으로 모든 link에 트래픽을 분산 할 수도 있습니다.

TTL(Time to Live) 파라미터로 eBGP multihop 세션이 맺어지는 hop 수를 제한 합니다. TTL은 eBGP multihop이 켜졌을 때만 구성 할 수 있습니다. 기본 TTL은 64이고, multihop이 꺼지면 기본 TTL은 1 입니다.

직접 연결되지 않은 라우터에서 트래픽이 오고 multihop이 켜져 있으면, BGP는 그 라우터가 광고한 경로와 무관하게 그 라우터를 next hop으로 씁니다.

BGP Route Dampening

route dampening은 flapping 경로의 전파를 줄 입니다. flapping 경로사용 가능↔불가능을 반복 하는 경로입니다. route dampening이 없으면, AS들은 그 경로가 가용·불가용해질 때마다 끊임없이 advertisement·withdrawal 메시지를 보냅 니다. 인터넷이 커지면서 초당 알림 수도 늘어 라우터 성능 문제 를 일으켰습니다.

route dampening은 라우터가 flapping 경로의 이력을 유지해 상당한 대역폭을 잡아먹지 못하게 합니다. 라우터는 주어진 경로가 얼마나 자주 가용·불가용해지는지 측정하고, 설정된 임계값에 이르면 그 경로를 더는 유효하지 않다고 보고 일정 기간(보통 약 30분) 전파하지 않 습니다. 임계값에 이른 뒤에도 경로가 계속 flap하면, 추가 flap에 비례해 그 경로의 timeout 기간이 늘어 납니다. 임계값에 이르면 경로는 dampening(=suppress)되고, penalty 값이 줄어 reuse 임계값 아래로 떨어지면 다시 라우팅 테이블에 추가 됩니다.

route dampening은 BGP 경로에만 적용 되므로, 바깥 세상에는 연결이 끊긴 듯 보여도 자기 네트워크 안에서는 유지 된 것처럼 보일 수 있습니다. 백본 라우터의 높은 부하 때문에 대부분의 NSP(MCI·Sprint·UUNet 등)는 route suppression을 설정해 두었습니다.

BGP용 TCP MD5 인증

인터넷은 라우팅 프로토콜을 통한 공격에 취약하고, BGP도 예외가 아닙니다. 외부 공격자는 spoofing한 RST 패킷으로 BGP peer 사이 TCP 연결을 끊 어 통신을 방해할 수 있습니다. 내부 출처(BGP speaker 등)는 다른 정당한 BGP speaker인 척 가짜 라우팅 정보를 주입 할 수 있습니다. 외부든 내부든 가짜 정보는 인터넷 넓은 영역의 라우팅 동작에 영향을 줄 수 있습니다.

TCP MD5 옵션연결 스트림에 spoofing한 TCP 세그먼트가 끼어드는 것으로부터 BGP를 보호 합니다. MD5로 서명된 세션을 spoof하려면, 공격자는 TCP sequence 번호뿐 아니라 MD5 digest에 포함된 password까지 추측 해야 하므로 훨씬 어렵습니다.