IGP & EGP
IGP (Interior Gateway Protocol) - 내부
- RIPv1/v2, EIGRP, ISIS, OSPF
- 하나의 조직이 IGP 전체를 관리한다.
- 라우팅 정책이 다른 조직에 영향을 받지 않는다.
- 최적의 경로를 선택한다.
EGP (Exterior Gateway Protocol) - 외부
- BGP
- 수많은 AS 로 구성되어 있다. (Path Vector)
- 조직간 계약된 정책에 따라 최적의 경로를 선택한다.
- 장애 시 국가 또는 전 세계적으로 영향
AS는 자율 시스템(Autonomous System)의 약자 AS의 구성과 관리는 각 네트워크 관리자나 ISP의 정책에 따른다.
RIP, OSPF, EIGRP 는 모두 다르지만 목적지로 가는 최단 경로를 찾고자 하는 공통점이 있다.
- OSPF: Cost
- EIGRP : Bandwidth, Delay, K-Values
- RIP : Hop Count
BGP는 AS간 연결에 사용한다.
인터넷은 최단 경로를 찾는 것에 신경쓰지 않고, 교통 경로를 조작할 수 있는 것을 훨씬 더 중요시 한다.
현재 인터넷에서 사용하는 라우팅 프로토콜은 BGP가 유일하다.
BGP : eBGP & iBGP
iBGP (Internal Border Gateway Protocol)
- 외부 AS로 부터 받은 경로를 다른 AS 로 전달하기 위해 AS 내부에서 사용한다.
- IGP(내부 게이트웨이 프로토콜)와 같이 동작한다.
- Full-Mesh 권장 (완전한 망 → 모든 장비들끼리 서로 연결 되어있는 망)
- Loopback interface 통해 Neighbor 성립 권장
- AD 200
eBGP
- AS 와 AS 사이에서 경로 전달 용도로 사용한다.
- AS-Path 확인하여 Loop 방지한다.
- AD 20
BGP Neighbor
BGP Neighbor Adjacency States
OSPF나 EIGRP처럼, BGP는 라우팅 정보를 교환하기 전에 다른 BGP 라우터와의 Neighbor 설정을 한다.
- 하지만 다른 프로토콜과 달리 BGP는 브로드캐스트나 멀티캐스트를 사용 X
Neighbor는 수동으로 구성!! TCP 포트 179를 사용!!
BGP Neighbor 과정
-
Idle (유휴): 자신의 이웃을 찾기 시작 / 대기
-
Connect (연결): BGP가 지정된 이웃에 대한 TCP 연결을 시도합니다. 3WAY-heandshake 완료 기다림.
-
Active (활성): TCP 연결을 설정하는 중에 이웃이 응답하지 않으면 BGP는 활성 상태로 들어가게 됩니다. BGP는 다른 경로로 연결을 시도하거나 이웃이 연결을 거부한 경우를 의미
-
OpenSent (오픈전송): TCP 연결이 성공적으로 설정. BGP는 이웃에게 자신의 BGP 메시지를 보내거나 대기. IBGP, EBGP 결정되는 순간 (AS 번호 확인), Keepalive 타이머 재설정 / 송신 (낮은값으로)
-
OpenConfirm (오픈확인): 원격 BGP keepalive 메시지를 기다리다 수신하면 Neighhbor 관계 완성
-
Established (확립): BGP 라우팅 엔트리를 교환하고 최신 라우팅 정보를 공유할 수 있습니다.
BGP (Border Gateway Protocol) 요약
- 수많은 경로를 관리하기 위해 장비 지원 소모가 적은 Distance Vector 방식(or Path_Vector)을 사용한다.
- AS라는 논리적 영역을 이용
- BGP 는 AS ↔ AS 간의 경로 사용
- BGP 는 라우터와 라우터 간 정보 교환이 아닌 AS 와 AS 간의 정보 교환을 한다.
BGP Table & Network Advertise
BGP Table
BGP가 학습하는 모든 경로는 BGP 테이블에 저장된다.
BGP 테이블에 네트워크 4.4.4.4/32 가 있으며 *> 기호가 있다.
-
- : 유효한 경로이며 BGP 에서 사용 가능
-
: 이 항목이 최상의 경로
Next-Hop 은 0.0.0.0 이다.
- 이 네트워크가 이 라우터에서 시작되었음을 의미한다.
- R4는 네트워크 명령을 사용하여 이 네트워크를 BGP 로 광고했다!!
Metric, LcoPrf, Weight 등의 표시는 최상의 경로를 선택하는데 사용되는 특성이다.
Path에 AS 경로가 표시된다.
- 이 라우터에서 BGP가 광고 되었기 때문에 경로 없다.
‘i’ 는 오리진 코드이며 이 경로가 네트워크 명령을 사용하여 BGP에 보급되었음을 의미한다.
- BGP로 재분배하면 해당 항목이 ? 기호와 함께 표시된다.
R2는 NEXT-hOP으로 192.16.24.4 에서 이 네트워크에 대해 학습했다.
Path 에 AS 4 가 나와있다.
R1은 R2와 R3로부터 4.4.4.4/32 네트워크에 대해 학습했다.
- 두 항목 모두 유호 *
BGP는 R2를 통과하는 경로를 최적의 경로로 선택하였으며, > 가 있다.
Path는 학습한 네트워크에 연결하는 AS 경로도 볼 수 있다.
최적의 경로는 라우팅 테이블에서 찾을 수 있다.
BGP 테이블의 항목 중 하나를 자세히 살펴보려는 경우 네트워크가 많은 경우에 유용하다!!
BGP Network Advertise
IGP와 마찬가지로 네트워크 명령을 사용해 경로를 광고하거나, 네트워크를 BGP로 재분배 그리고 축약을 이용한 광고 방법이 있다.
- BGP의 Network 명령은 다르게 동작한다.
IGP(RIP, OSPF 또는 EIGRP) 중 하나를 사용하면 네트워크 명령이 네트워크 명령 범위 내에 있는 모든 인터페이스에서 IGP를 활성화하는데 사용된다.
BGP는 인터페이스 신경도 안쓴다
BGP에서 네트워크 명령을 사용할 때 BGP는 라우팅 테이블만 확인한다. 네트워크 명령과 일치하는 네트워크가 라우팅 테이블에 존재해야 BGP 테이블에 등륵된다.
iBGP Next-Hop Self & Split-Horizon
BGP Next Hop Self
iBGP의 잠재적 문제 중 하나는 iBGP가 Next-Hop IP 주소를 변경하지 않는다!!.
때때로 이로 인해 도달 가능성 문제가 발행할 수 있다.
R3 와 R2 는 eBGP를 사용한다.
R1이 3.3.3.0/24 에 대해 알게되면 Next-Hop IP 주소는 192.168.23.3 으로 유지된다.
R1이 이 IP 주소에 도달하는 방법을 모르면 라우팅 테이블에 3.3.3.0/24를 Install 하지 못한다.
1. Advertise Network
첫 번째 솔루션은 네트워크를 iBGP(또는 IGP를 사용하는 경우)로 보급하여 R1 이 다음홉에 도달할 수 있도록 할 수 있다.
192.168.23.0 / 24 를 BGP로 광고.
R2(config)#router bgp 12
R2(config-router)# network 192.168.23.0 mask 255.255.255.0
2. Next Hop Self
두번째는 R2와 R3 사이의 네트워크를 보급하는 대신 Next-Hop IP 주소를 자신의 주소로 변경할 수 있도록 R2를 구성 할 수 있다.
그러면 R2가 R1에 무언갈 광고할 때, 그것은 Next-Hop으로 자신의 IP 주소를 포함하게 된다.
R2(config)#router bgp 12
R2(config-router)# neighbor 192.168.12.1 next-hop-self
BGP Split-horizon
BGP도 라우팅 루프를 방지하기 위한 스플릿 호라이즌 룰이 적용된다.
BGP는 IGP와는 약간 다르게 동작한다.
iBGP로 광고받은 네트워크는 iBGP로 광고하지 못한다.
- 즉, iBGP 이웃에게서 광고 받은 네트워크에 관한 라우팅 정보는 다른 iBGP 이웃에게 전달 X
R3 라우팅 테이블에는 1.1.1.0/24가 나타나지 않는다.
엄밀히 말하면 해당 구성에는 문제가 없다!!
하지만 3개의 라우터의 BGP 구성을 자세히 보면, 오직 R1과 R2 그리고 R2와 R3 사이에 BGP Neighbor가 맺어진 것을 알 수 있다.
BGP Split-horizon 룰에 의해 R2는 네트워크 1.1.1.0/24를 R3로 전달 하지 않는다.!!
R1과 R3의 Neighbor의 구성이 필요하다.
R1(config)#ip route 192.168.23.3 255.255.255.255 192.168.12.2
R3(config)#ip route 192.168.12.1 255.255.255.255 192.168.23.2
R1(config)#router bgp 1
R1(config-router)# neighbor 192.168.23.3 remote-as 1
R3(config)#router bgp 1
R3(config-router)# neighbor 192.168.12.1 remote-as 1
또 다른 방법으로는 BGP Route Reflector 가 있다.
BGP Route Reflector (경로 반사.. RR)
RR(Route Reflector)은 네트워크에서 IBGP 피어의 Full mesh를 제거하는 한가지 방법이다
아래 6개의 iBGP 라우터가 있는 네트워크의 Peering 수는 15 이다.
RR을 사용하면 5개의 Peering 으로 Full mesh 효과를 얻을 수 있다.
iBGP Peering 에 대한 한 단일 장애 지점이라는 단점도 있다.
- 네트워크에 여러 RR을 두어 해결이 가능하다.
경로를 전달 할 때 몇 가지 규칙이 있다.
- non RR 클라이언트에서 학습된 경로는 RR 클라이언트에는 보급되지만 non RR 클라이언트에는 보급되지 않는다.
- RR 클라이언트에서 학습된 경로는 RR 클라이언트와 비 RR 클라이언트 모두에 보급된다.
- EBGP 인접 네트워크에서 학습된 경로는 RR 클라이언트와 non RR 클라이언트 모두에 보급된다.