-
BGP(Border Gateway Protocol)란 서로 다른 AS(Autonomous Systems)간에 사용되는 라우팅 프로토콜을 말하고, 서로 다른 인터넷을 연결하거나 서로 다른 ISP(Inernet Service Provider)와 동시에 접속할 때 사용하는 Protocol이다.
*AS(Autonomous Systems) : 동일한 라우팅 정책으로 하나의 관리자에 의하여 운영되는 네트워크, 즉 한 회사나 단체에서 관리하는 라우터 집단을 자율 시스템(AS, Autonomous System)이라 하며, 각각의 자율 시스템을 식별하기 위한 인터넷 상의 고유한 숫자를 망식별번호(AS번호)라 합니다.
AS : 16bit로 구성, 번호부여범위 : 1 ~ 65535
공인 AS : 1 ~ 65535 ,1~64511
사설 AS : 64512 ~ 65534
*ISP(Inernet Service Provider) : 인터넷 서비스를 제공하는 업체들을 말함(SKT, KT, U+ 등)
BGP의 특성
• Reliable Update : TCP를 사용한다. (TCP Port 179)
• 증가된 부분만을 즉시 전달한다. (Incremental, Triggered Update)
• 주기적으로 Keepalive를 교환하여 이웃한 라우터와의 TCP 연결상태를 점검한다.
• 다양한 메트릭(Path Attribute)를 갖고 있다.
• 아주 많은 라우팅 정보를 교환하 데는 적합하다. (10여 개만 이상)
BGP를 사용하는 경우
• 서로 다른 AS 간의 트래픽을 전달할 수 있도록 할 경우 (Service Provider)
• 두개 이상의 AS와 연결된 경우
• AS로 들어오고 나가는 트래픽의 정책을 조정할 필요가 있는 경우
EBGP, IBGP EBGP(External BGP)
• AS와 AS간에서 라우팅을 업데이트를 하는데 사용되는 BGP
• 기본적으로 EBGP 는 직접 연결되어 있어야 한다.
IBGP(Internal BGP)
• 동일한 AS내의 BGP 라우터들의 연결
• EBGP(다른 AS)로 학습한 경로를 또 다른 AS BGP라우터에게 전파할 용도로 사용
•직접 연결되어 있지 않아도 된다.
BGP Neighbor ˙
BGP Peer = BGP Neighbor• BGP Peer(BGP Neighbor)는 네이버관계를 갖고 있는 BGP 라우터를 말한다
• TCP 연결이 되어 BGP 메시지를 주고 받는 라우터를 피어(Peer) 또는 네이버(Neighbor)라고 한다.
• Neighbor를 자동으로 찾아내지 않기 때문에 반드시 neighbor 명령어로 BGP 라우터를 지정해야 한다.
BGP Message
종류 특징 Open message TCP 커넥션이 맺어진 후 BGP 라우터 간에 처음으로 교환되는 메세지 • BGP 버전 정보
• AS 번호
• Hold Timer : keepalive와 update메세지 도착 후 다음 메세지가 성공적으로 도달할 때 까지 기다릴 수 있는 최대값(초)
• Router ID
• Optional : optional parameter (authentication) 정보를 담고 있다.update message BGP peer 관계를 확립한 후에 보내는 메세지이다. 광고할 네트워크 정보를 상호 교환하는 용도로 사용 처음 : Full routing update
이후 : 변경된 정보만 incremental updatekeepalive message BGP peer간에 BGP connection이 살아았는지 확인하기 위한 메세지
즉, Peer 상호 간에 자신의 상태가 정상이라는 것을 주기적으로 알려주는 용도로 사용keepalive : 60초 마다 한번씩 보내준다
Hold Time : 180초 까지 기다려준다
3번의 keepalive에 응답이 없으면 BGP Connection을 끊는다.notification message BGP 가 동작 중 에러가 발생할 때 BGP Peer 에 에러의 원인을 통보하는 메세지 에러가 발생하면 복구하지 않고 BGP 라우터는 notification message를 보낸 후 BGP연결을 종료한다.(message로 에러내용 확인가능) Split horizon예시 IBGP Split horizon : 같은 AS내에 있는 IBGP 라우터로 부터 네트워크 정보를 전달 받으면 그 정보를 자신과 IBGP Session을 맺은 다른 IBGP 라우터에게 전달하지 않는다.
즉, R2에서 IBGP로 전달 받은 데이터를 R3는 R4로 전달하지않는다.
이러한 Split horizon 문제를 해결하는 방법은 3가지가 있다.
① Full Mesh
같은 AS내부의 IBGP peer를 Full Mesh로 설정하는 것이다. Full Mesh란, 같은 AS내의 Router들이 전부 1:1 통신을 하여 정보를 중계하지 않아도 데이터가 오고 갈 수 있는 네트워크 구성을 말한다.
Full Mesh 예시 위 그림처럼 R2가 R3,R4와 모두 IBGP peer를 구성하여 사용하는 방식을 말한다.
단, 라우터가 많아지면 모든 라우터를 Full Mesh로 사용하는것은 불가능하기에 라우터의 개수가 적을때 사용하는 방식이다.
② Router Reflector
Router에 reflector를 설정하여 Split horizon을 피해가는 방식으로 router reflector로 지정된 라우터는 IBGP로 받은 정보를 IBGP로 전송 할 수 있다.
Router Reflector 예시 위 그림과 같이 R3에 router reflector를 설정하게 되면 R2에서 받은 IBGP로 부터 받은 데이터를 R4로 전달할 수 있다.
③ Confederation (사용하지 X)
AS내부에 사설AS번호를 부여하고 EGBP처럼 데이터를 주고받게 하여 통신하는 방식이다.
Confederation예시 위 그림처럼 AS 200 내부의 라우터에 사설AS를 설정하여 EBGP처럼 동작하게 하여 Split horizon 문제를 피해 데이터가 이동할 수 있다.
실습 Topology 명령어 설명 router bgp [as-number] 해당 라우터의 BGP AS를 입력하여 BGP를 설정하는 명령어입니다. bgp router-id [ip-address] AS 내부에서 BGP 라우터를 구분하기 위한 ID를 설정하는 명령어입니다.
Router ID를 수동으로 설정할 경우, 해당 라우터 ID가 등록되지만 수동으로 설정되지 않는 경우, loopback ID를 사용하며, Loopback ID가 없을 경우, 등록된 네트워크 주소를 Router ID로 사용합니다.neighbor [ip-address] remote-as [as-number] BGP neighbor를 설정하는 명령어입니다. 상대방 neighbor의 포트 번호를 입력한 뒤, 해당 BGP의 AS 번호를 입력합니다. network [network-address] mask [subnet-mask] neighbor에 전송할 자신의 router에 등록된 network 정보를 입력합니다. neighbor [ip-address] update-source [port-number] neighbor의 주소(ip-address)로 가는 BGP의 출발지 주소를 변경하는 명령어입니다. (update-source)
출발지 주소를 변경하기 위해서는 목적지 주소(ip-address)가 remote-as로 미리 neighbor 설정이 되어 있어야 합니다.상단 Topology 설정법
R1
router bgp 65103
bgp router-id 1.1.1.1
bgp log-neighbor-changes
network 1.1.1.1 mask 255.255.255.255
network 10.10.10.0 mask 255.255.255.0
neighbor 10.10.20.2 remote-as 65104
R2
router bgp 65104
bgp router-id 2.2.2.2
bgp log-neighbor-changes
network 2.2.2.0 mask 255.255.255.0
neighbor 3.3.3.3 remote-as 65104
neighbor 3.3.3.3 update-source Loopback0
neighbor 4.4.4.4 remote-as 65104
neighbor 4.4.4.4 update-source Loopback0
neighbor 5.5.5.5 remote-as 65104
neighbor 5.5.5.5 update-source Loopback0
neighbor 10.10.20.1 remote-as 65103
R3
router bgp 65104
bgp router-id 3.3.3.3
bgp log-neighbor-changes
network 3.3.3.0 mask 255.255.255.0
neighbor 2.2.2.2 remote-as 65104
neighbor 2.2.2.2 update-source Loopback0
neighbor 4.4.4.4 remote-as 65104
neighbor 4.4.4.4 update-source Loopback0
neighbor 5.5.5.5 remote-as 65104
neighbor 5.5.5.5 update-source Loopback0
R4
router bgp 65104
bgp router-id 5.5.5.5
bgp log-neighbor-changes
network 5.5.5.0 mask 255.255.255.0
neighbor 2.2.2.2 remote-as 65104
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 65104
neighbor 3.3.3.3 update-source Loopback0
neighbor 4.4.4.4 remote-as 65104
neighbor 4.4.4.4 update-source Loopback0
R5
router bgp 65104
bgp router-id 4.4.4.4
bgp log-neighbor-changes
network 4.4.4.0 mask 255.255.255.0
neighbor 2.2.2.2 remote-as 65104
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 65104
neighbor 3.3.3.3 update-source Loopback0
neighbor 5.5.5.5 remote-as 65104
neighbor 5.5.5.5 update-source Loopback0
neighbor 30.30.10.2 remote-as 65105
R6
router bgp 65105
bgp router-id 6.6.6.6
bgp log-neighbor-changes
network 6.6.6.0 mask 255.255.255.0
network 30.30.30.0 mask 255.255.255.0
neighbor 30.30.10.1 remote-as 65104
Neighbor 설정확인 (show ip bgp summary)
R1 Neighbor R2 Neighbor R3 Neighbor R4 Neighbor R5 Neighbor R6 Neighbor '고병재' 카테고리의 다른 글
네트워크 구성 실습 Part1 (0) 2021.10.02 iSCSI와 vCenter연결 (0) 2021.10.02 vCenter 설치 (0) 2021.09.28 Esxi-01, Esxi-02, Esxi-03 설치 (0) 2021.09.28 AD-Master 설정(AD, DNS, DHCP, NTP) (0) 2021.09.27