답변:
TCP / IP 소켓은 특별히 주소가 지정된 두 끝점 사이에서 네트워크를 통해 종단 간 연결을 설정합니다. BGP는 TCP / IP를 사용하여 라우터 (라우팅 정보를 교환하는 모든 장치) 사이에서 통신합니다. 교환되는 정보는 BGP 피어가 사용하여 필요한 패킷 전송 위치 (다음 홉)를 더 잘 선택합니다. 부치다.
인터넷의 가장자리에서 일이 쉽습니다. 인터넷 제공 업체를 향한 "모든 것이이 방법"입니다. 중간에 라우터가 여러 가지를 선택할 수 있습니다. 따라서 TCP / IP를 사용하여 라우팅 이웃간에 BGP 트래픽을 이동합니다. 그런 다음 BGP 정보는 라우터가 패킷이가는 곳을 얻을 수있는 여러 가지 방법이있을 때 선호 할 경로를 알려줍니다.
엔드 포인트 (예 : 웹 브라우저)와 라우터된다 말하기 TCP / IP를. 그러나 라우터된다 사용하여 그들이 경로에 필요한 다른 TCP / IP 패킷으로 수행 할 작업에 대한 이야기에 TCP / IP (TCP / IP 패킷으로 구성 BGP 통신).
라우팅 프로토콜은 L3 연결을 "달성"하지 않습니다. 라우터의 라우팅 (전달) 테이블을 다른 라우터에서 배운 정보로 채 웁니다.
BGP는 TCP / IP를 통해 실행되는 "응용 프로그램"입니다. 즉, BGP 라우터는 TCP / IP를 사용하여 다른 BGP 라우터와 통신하여 라우팅 정보를 교환합니다.
BGP가 작동하려면 라우터간에 L3 연결이 이미 있어야합니다.
OSI 네트워크 모델 및 해당 계층은 호스트 간의 엔드-투-엔드 통신을 이해하는 데 유용하지만 실제로 네트워크 제어 평면의 기능을 설명하기위한 것은 아닙니다. 완전한 BGP 연결 설정에 내재 된 부트 스트랩 문제가 있지만이 부트 스트랩이 발생하는 방식은 잘 이해되어 있으며 순환 종속성이 없습니다.
BGP 측면에서 인접성이 형성되고 정보가 교환되는 방식은 세션 유형에 따라 다릅니다.
가장 간단한 방법은 eBGP입니다. 일반적으로 eBGP는 직접 연결된 두 라우터 사이의 TCP 세션에서 실행됩니다. 이 경우 각 피어는 서로 동일한 인터페이스에 인터페이스가 있기 때문에 서로 대화하는 방법을 알고 있으므로 인접성을 형성하기 위해 외부 라우팅 프로토콜을 사용할 필요가 없습니다.
iBGP를 사용하면 상황이 약간 복잡합니다. 가장 간단한 구성에서는 자율 시스템 내의 모든 라우터가 네트워크의 다른 모든 라우터와 iBGP 세션과 함께 풀 메시의 일부로 구성됩니다. 자율 시스템 내에서 내부 라우팅 토폴로지를 구축하기 위해 OSPF 또는 ISIS와 같은 내부 게이트웨이 프로토콜. IGP가 작업을 완료하면 모든 라우터에 라우팅 테이블이 모든 iBGP 이웃에 대한 경로로 채워져 순환 종속성없이 TCP 세션이 형성됩니다.
좀 더 흥미로운 부분은 자율 시스템 내의 모든 라우터가 전체 BGP 테이블로 실행되는 것은 아닙니다. iBGP 메시가 완료되지 않은 경우 네트워크 중간의 라우터가 직접 이웃과 다른 테이블보기를 갖는 상황을 얻을 수 있습니다. 이로 인해 최적이 아닌 라우팅이 발생하고 경우에 따라 라우팅 루프가 발생하여 TTL이 만료 될 때까지 장치간에 트래픽이 수신 거부 될 수 있습니다.
링크에는 고정 주소와 관련 라우팅 항목이 구성되어 있으며 BGP 세션을 설정하는 데 사용됩니다. BGP를 사용하여 라우팅 테이블은 다른 네트워크를 가리키는 항목으로 확장됩니다.
BGP는 직접 피어간에 만 사용되므로이 시점에서 다른 쪽 끝을 가리키는 경로 이외의 경로는 필요하지 않습니다.
예를 들어 피어를 원한다면 / 30 또는 / 31 서브넷에 동의하고 네트워크의 각 끝에 하나의 주소를 할당하고 해당 서브넷에 대한 네트워크 경로를이 링크에 만든 다음 다른 링크를 다음과 같이 구성합니다. BGP 피어.이 시점에서 라우터를 통해 전송한다고 발표 한 모든 네트워크에 대한 추가 라우팅 항목을 얻습니다 (이는 로컬로 정적으로 구성된 네트워크 경로의 일부 임).
--- --- --- ---
| D |------| A |--------| B |--------| C |
--- --- --- ---
A와 B가 라우터 (다른 또는 동일한 AS)이고 D와 C가 호스트라고 가정합니다. 이제 A와 B가 서로 연결되어 통신 할 수 있습니다. 그러나 D가 C와 통신 할 수 있도록 C의 위치를 어떻게 알 수 있을까요? D와 통신하고 싶을 때 C도 마찬가지입니다. 이제 A와 B간에 BGP 프로토콜을 실행하면 계층 3 연결 정보가 서로 교환됩니다. . 간단히 말해 A는 B에게 D가 연결되어 있음을 알려줍니다. 그런 다음 B는 이것을 C로 전달하거나 B가 C의 기본 게이트웨이 인 경우 C는 D의 위치를 알 수 있습니다.
따라서이 경우 계층 3 연결 정보는 A와 B가 BGP 프로토콜을 실행하면 A와 B간에 전달됩니다.
따라서 레이어 3 라우팅 정보를 교환하려면 두 시스템간에 사전 BGP 연결이 필요합니다. 귀하의 질문에 대답하는 간단한 예를 보았습니다. 실제 시나리오에서는 BGP 피어간에 더 많은 양의 라우팅 데이터가 교환됩니다.
BGP는 TCP 프로토콜을 통해 실행됩니다. 따라서 그들 사이에 TCP 소켓이 열려 있어야만 라우팅 데이터를 교환 할 수 있습니다.