네트워크 계층의 주요 기능은 다음과 같습니다:
포워딩(Forwarding)
: 라우터의 입력에서 적절한 라우터 출력으로 패킷을 전달
합니다. 이는 데이터 평면(data plane)
에 해당합니다. 포워딩은 단일 교환소를 통과하는 과정으로 비유할 수 있습니다.라우팅(Routing)
: 소스에서 목적지까지 패킷이 이동하는 경로를 결정
합니다. 이는 여행 계획을 수립하는 것과 유사한 과정으로 비유할 수 있습니다. 라우팅은 제어 평면(control plane)
에 해당합니다.네트워크 계층의 데이터 평면(Data Plane)
데이터그램이 라우터 사이를 어떻게 라우팅하는지 결정
합니다.전통적인 라우팅 알고리즘
: 라우터에 구현되어 있는 전통적인 라우팅 알고리즘을 사용합니다. 이 알고리즘은 네트워크의 토폴로지 정보와 네트워크 상태를 기반으로 경로를 계산하고 라우터들에게 라우팅 테이블을 제공
합니다. 이러한 알고리즘은 네트워크의 동적 변화에 따라 경로를 업데이트하고 최적의 경로를 유지
합니다.소프트웨어 정의 네트워킹 (SDN)
: (원격) 서버에 구현되는 소프트웨어 정의 네트워킹은 컨트롤러가 라우터들에게 경로 정보를 제공
합니다. 이 방식에서는 네트워크의 전체적인 제어가 중앙 집중화
되어 관리됩니다. 컨트롤러는 네트워크 토폴로지를 파악하고 경로 결정을 수행하며, 라우터들은 컨트롤러의 지시에 따라 패킷을 전달
합니다.→ 제어 평면은 네트워크의 상태를 모니터링하고 경로 계산을 수행하여 데이터그램이 소스 호스트에서 목적지 호스트로 안정적으로 전달되도록 합니다. 이를 통해 네트워크의 효율성, 신뢰성 및 성능을 향상시킬 수 있습니다.
논리적으로 중앙 집중화된 제어 평면(Logically Centralized Control Plane)
원격지에 위치한 별도의 컨트롤러가 로컬 제어 에이전트(Control Agent, CA)들과 상호 작용
하는 방식입니다.중앙 집중화된 제어 평면에서는 네트워크의 제어 기능이 중앙 컨트롤러로 집중화되어 있습니다. 이 컨트롤러는 네트워크 전체의 상태를 모니터링하고, 경로 결정 및 라우팅 정보를 관리하며, 제어 에이전트들에게 명령을 내립니다.
로컬 제어 에이전트(Control Agent)는 각 라우터에 존재하며, 중앙 컨트롤러와의 통신을 담당합니다. 이들은 라우터의 동작을 감시하고 상태 정보를 수집하여 중앙 컨트롤러에 보고합니다. 중앙 컨트롤러는 수신한 정보를 기반으로 네트워크 상태를 분석하고 경로 계산을 수행하여 로컬 제어 에이전트에게 전달합니다.
논리적으로 중앙 집중화된 제어 평면은 네트워크 관리의 중앙 집중화와 유연성을 제공합니다. 중앙 컨트롤러를 통해 네트워크의 전반적인 상태를 관리하고 제어할 수 있으며, 빠른 대응과 네트워크 최적화를 위한 결정을 수행할 수 있습니다. 또한, 중앙 컨트롤러의 유연성은 네트워크 구조의 변경과 새로운 기능의 추가를 용이하게 합니다.
패킷이 전달되는 경로를 결정
하는 과정을 말합니다. 이는 라우터들이 전달 테이블을 구성하는 방법을 포함합니다.토폴로지 정보
와 라우팅 알고리즘
을 사용하여 가장 적합한 경로를 계산합니다. 각 라우터는 자신의 인접한 라우터들과 통신하여 네트워크 상태를 교환하고, 이 정보를 기반으로 경로 결정을 수행
합니다.라우터들이 전달 테이블을 구성하는 방법
도 포함합니다. 전달 테이블은 목적지 IP 주소를 기반으로 패킷을 어느 인터페이스로 전송할지 결정하는 정보를 포함하고 있습니다. 이 정보를 토대로 라우터는 패킷을 올바른 출력 포트로 전달하여 목적지에 도달시킵니다.라우팅은 네트워크의 효율성과 신뢰성에 영향을 미칩니다. 올바른 라우팅 알고리즘과 경로 선택은 네트워크의 혼잡을 방지하고 패킷 전송 지연을 최소화하여 최적의 성능을 제공합니다.
이렇게 세 개의 라우터를 거쳐 패킷은 A에서 F로 전달되게 됩니다. 각 라우터는 패킷을 적절한 출력 포트로 전송하여 최종적으로 목적지에 도달하도록 합니다.
Switch α는 패킷이 도착하면 목적지 주소를 확인하기 위해 패킷을 분석합니다. 이때, 스위치는 전달 테이블(forwarding table)을 참조합니다. 전달 테이블은 스위치에서 유지하는 데이터 구조로서, 목적지 주소를 해당하는 출력 포트로 매핑하는 정보를 포함하고 있습니다.
패킷이 스위치 α에 도착하면, 스위치는 패킷의 목적지 주소를 확인합니다. 그리고 전달 테이블을 조회하여 해당 목적지 주소에 대한 항목을 찾습니다. 이 경우, 목적지 F에 대한 전달 테이블 항목은 패킷을 출력 포트 1로 보내야 함을 지정합니다.
전달 테이블 항목을 기반으로, 스위치 α는 패킷을 출력 포트 1로 전송하여 올바른 경로를 따라 목적지 F에 도달
하도록 보장합니다. 전달 테이블은 일반적으로 네트워크 관리자에 의해 수동으로 설정되거나, 네트워크 내의 스위치 및 라우터 간에 라우팅 정보를 교환하는 동적 라우팅 프로토콜을 통해 자동으로 구성될 수 있습니다.
Intra-domain와 Inter-domain은 네트워크에서 라우팅 도메인 간의 관계를 설명하는 데 사용되는 용어입니다.
하나의 도메인(또는 자치 시스템) 내에서 라우팅이 이루어지는 것
을 의미합니다.동일한 관리 및 관리 정책을 공유하는 네트워크의 집합
으로 구성됩니다.여러 도메인 간의 라우팅
을 의미합니다.라우팅 프로토콜(예: BGP)
을 사용합니다. 인터넷은 여러 개의 도메인으로 구성되어 있으며, 각 도메인은 자체적인 관리와 정책을 갖고 있습니다.다른 도메인들과의 연결을 관리
하고, 경로 선택 및 교환을 수행
하여 효율적인 패킷 전달을 달성합니다.→ Intra-domain(내부 라우팅)
은 도메인 내에서 라우팅
이 이루어지는 것을 의미하며, Inter-domain(외부라우팅)
은 여러 도메인 간의 라우팅
을 의미합니다. Intra-domain은 도메인 내의 내부 라우팅을 다루고, Inter-domain은 다른 도메인 간의 외부 라우팅을 다룹니다.
AS는 자치 시스템을 나타내는 용어로, 대규모의 네트워크
나 네트워크 그룹을 의미합니다. AS는 독자적으로 라우팅 정책을 수립
하며, ISP나 조직에 의해 제어
됩니다. 각 AS는 고유한 AS 번호를 할당받아 식별됩니다. AS는 인터넷을 구성하는 다양한 네트워크의 집합이며, 각 AS는 자체적으로 라우팅 결정을 내리고 경로 교환을 수행합니다.
전 세계적으로는 100,424개의 AS가 있으며, 이 숫자는 지속적으로 변동될 수 있습니다. 한국에는 1,036개의 AS가 있으며, 이는 국내의 네트워크 구성과 인터넷 연결을 담당하는 다양한 ISP 및 조직을 의미합니다. AS는 인터넷의 기본 구성 요소로서 다양한 네트워크 간의 연결과 통신을 가능하게 합니다.
동일한 AS(자치 시스템) 내의 호스트와 라우터 간의 라우팅 ("네트워크" 내)
동일한 도메인 내 라우팅 프로토콜을 실행
해야 함gateway router
: 자체 AS의 가장자리
에 위치하며, 다른 AS의 라우터와의 링크
를 가지고 있음AS 간의 라우팅
Routing Algorithms & Protocols
이제 노드들은 직접 연결된 이웃과 테이블을 교환
합니다.
노드 D는 노드 E에게 자신의 테이블을 전송합니다.
전송하는 노드 자신
이어야 합니다.노드 E는 D로부터 테이블을 받으면 자신의 라우팅 테이블을 업데이트합니다.
노드 B는 노드 A에게 자신의 테이블을 전송합니다.
A는 자신의 라우팅 테이블을 업데이트합니다.
노드 E는 노드 A에게 자신의 테이블을 전송합니다.
노드 A는 자신의 테이블을 업데이트합니다.
현재 경로가 더 짧거나 동일한 경우에는 업데이트되지 않습니다
.모든 노드들은 테이블을 교환합니다.
노드들은 주기적으로 직접 이웃들과 라우팅 테이블을 교환합니다.
타이머
가 있습니다. 일정 기간 동안 경로가 업데이트되지 않으면 해당 경로는 무효화
됩니다.B는 A에 도달하는 경로를 알지 못합니다. C는 자신의 라우팅 테이블을 B에게 보냅니다.
C는 결국 A로의 직접 경로로 경로를 변경할 것입니다. 그러나 C가 경로를 변경하는 데에는 시간이 오래 걸릴 수 있습니다. 이러한 경로 수렴 지연은 카운트 투 인피니티(count-to-infinity) 문제로 알려져 있습니다.
이 기간 동안 네트워크 내에서는 경로 정보가 지나치게 교환됩니다. 각 라우터는 라우팅 테이블을 업데이트하고 이를 이웃에게 전송하여 경로 정보를 교환합니다. 이는 네트워크 자원의 낭비를 초래합니다.
카운트 투 인피니티 문제와 경로 정보의 지나친 교환은 거리 벡터 라우팅 알고리즘의 고유한 한계입니다. 이러한 문제를 완화하기 위해 링크 상태 라우팅이나 하이브리드 라우팅과 같은 다른 라우팅 프로토콜이 개발되었습니다. 이러한 프로토콜은 빠른 경로 수렴과 불필요한 경로 업데이트를 최소화하기 위한 효율적인 메커니즘을 사용하여 네트워크 자원에 미치는 영향을 줄입니다.
Split Horizon
: 이 방법은 라우터가 자신이 학습한 경로를 동일한 인터페이스를 통해 전달하지 않는 것
입니다. 즉, B는 A로 가는 경로 정보를 C에게 전송하지 않습니다. 이를 통해 라우팅 루프를 방지
할 수 있습니다.Split Horizon with Poison Reverse
: Split Horizon의 확장으로, B가 C에게 자신을 경유하는 경로 정보를 동일한 인터페이스를 통해 전송
하는 것입니다. 그러나 경로의 비용을 무한(infinite)
으로 설정하여 B가 자신을 통해 A로 가는 경로를 더 이상 사용하지 않도록
만듭니다.Path Vector Routing
: 이 방법은 거리 벡터 라우팅과 달리 경로에 대한 전체 정보를 유지
합니다. 각 노드는 경로에 대한 정보를 라우팅 테이블에 저장하여 루트 루프와 같은 문제를 방지합니다.이러한 솔루션들은 거리 벡터 라우팅의 한계를 극복하고 라우팅 루프를 예방하며, 불필요한 경로 정보 교환을 줄일 수 있습니다. 이러한 기법들은 안정적이고 효율적인 라우팅을 위해 다양한 네트워크 환경에서 사용됩니다.
C가 B를 통해 A로 가는 경로를 더 이상 사용하지 않도록
만듭니다. 다른 노드들은 이 무한 거리 정보를 받고 해당 경로를 사용하지 않도록
합니다.Splithorizon와 Splithorizon with Poison Reverse는 라우팅 루프를 방지하기 위한 기법으로 사용됩니다. 이러한 방법을 통해 라우터들은 잘못된 경로로 패킷을 전달하는 것을 방지하고, 효율적이고 안정적인 라우팅을 달성할 수 있습니다.
스플릿 호라이즌 with 포이즌 리버스는 3 홉 루프를 피하는 데 한계
가 있습니다. 3개의 라우터(A, B, C)를 포함한 루프가 있는 경우, 스플릿 호라이즌 with 포이즌 리버스만으로는 루프를 완전히 제거할 수 없습니다.
이 시점에서 라우팅 테이블은 업데이트되었고, A, B, C 간에 테이블이 교환되었습니다. 그러나 3개의 라우터(A, B, C)를 포함한 루프는 여전히 존재합니다. 이는 포이즌 리버스 방법만으로는 이 경우에 루프를 완전히 방지할 수 없기 때문입니다.
스플릿 호라이즌 with 포이즌 리버스의 3 홉 루프를 피하는 한계를 극복하기 위해서는 다른 라우팅 프로토콜과 기술, 예를 들어 패스 벡터 라우팅 등을 사용할 수 있습니다.
경로의 전체 경로(다음 노드뿐만 아니라)를 기록
하는 방식입니다.경로 테이블을 수신하는 즉시 루프를 감지
할 수 있습니다.패스 벡터 라우팅은 주로 경계 게이트웨이 프로토콜인 BGP(Border Gateway Protocol)에서 사용
됩니다. BGP는 인터넷의 경계 라우터 간에 경로 정보를 교환하고 인터넷의 AS(자치 시스템) 간의 라우팅을 관리하는 데 사용됩니다. 패스 벡터 라우팅은 각 AS에서 경로 정보를 전달하면서 경로에 대한 전체 정보를 유지하므로, 루프를 효과적으로 탐지하고 방지할 수 있습니다.
하나의 널리 사용되는 거리 벡터 라우팅 기반의 라우팅 프로토콜은 RIP(Routing Information Protocol)입니다.
라우터가 주기적으로 라우팅 정보를 광고하는 거리 벡터 프로토콜
로서 사용됩니다.30초마다
또는 라우팅 테이블이 업데이트되는 경우
에 광고 메시지가 전송
됩니다. 이를 통해 네트워크의 라우팅 정보를 주기적으로 갱신하고 이웃 라우터에 변경 사항을 알릴 수 있습니다. RIP는 작은 규모의 네트워크에서 사용되며, 라우팅 테이블의 크기와 관련된 몇 가지 제한이 있을 수 있습니다.링크 상태 정보를 네트워크의 모든 노드에게 전송
하는 방식을 사용합니다.각 노드는 Link state Packet(LSP) 이라고 불리는 정보를 생성
하여 네트워크의 모든 노드에게 전송
합니다. 링크 상태 패킷에는 발신자의 ID, 발신자의 직접 이웃에 대한 (ID, 거리) 정보, 그리고 시퀀스 번호(최신 정보인지 확인하기 위함)가 포함됩니다.한 노드가 다른 노드로부터 링크 상태 패킷을 받으면, 다익스트라 알고리즘
을 사용하여 최단 경로를 계산
합니다. 이를 통해 각 노드는 네트워크의 다른 노드까지의 최단 경로
를 파악할 수 있습니다.
링크 상태 라우팅은 매우 정확하고 최적화된 경로 선택을 제공합니다. 그러나 링크 상태 정보를 유지하기 위해 많은 양의 네트워크 리소스가 필요하며, 네트워크 규모가 큰 경우에는 처리 및 저장 공간의 부담이 있을 수 있습니다.
그래프의 간선 가중치(거리)
가 주어졌을 때 한 노드에서 다른 모든 노드까지의 최단 경로
를 찾는 알고리즘입니다.입력은 간선 가중치(거리)를 포함한 그래프
입니다. 출력은 한 노드에서 모든 다른 노드까지의 최단 경로
입니다.이렇게 수행하면 시작 노드로부터 다른 모든 노드까지의 최단 경로를 구할 수 있습니다. Dijkstra 알고리즘은 그리디 알고리즘으로 분류되며, 이해하기 쉽고 효율적인 최단 경로 탐색 방법 중 하나입니다.
N-1
번의 반복을 수행합니다.출발지 노드로부터 가장 가까운 노드
를 선택합니다.선택된 노드 M을 C에 포함
시킵니다.이렇게 반복을 진행하면 출발지 노드로부터 가장 가까운 노드를 하나씩 선택하여 C 집합에 포함시키는 과정이 N-1번 반복됩니다. 이를 통해 출발지 노드로부터 모든 노드까지의 최단 경로를 찾을 수 있습니다.
네트워크의 모든 노드에게 LSP를 전송
하는 것을 의미합니다. 이는 모든 노드에게 정보를 전달하기 위해 네트워크 전체에 패킷을 홍수시키는 것과 대조됩니다.Link-state 라우팅에서는 각 노드가 자신의 링크 상태 정보를 LSP로 패킷화하여 모든 노드에게 전송합니다. 이는 네트워크의 모든 노드에게 노드의 연결 상태, 거리 및 기타 라우팅 정보를 알려주는 것입니다. 각 노드는 이러한 LSP를 수신하고 이를 사용하여 그래프를 구성하고 최단 경로를 계산합니다. 그런 다음, 노드는 이 최단 경로를 사용하여 패킷을 전달하고 다른 노드에게 LSP를 전송합니다.
Link-state 패킷 전달
은 네트워크의 모든 노드에게 전체 정보를 공유
하므로 라우팅 테이블의 동기화와 일관성
을 보장합니다. 하지만 패킷의 홍수
로 인해 네트워크 대역폭을 낭비
할 수 있습니다. 따라서 효율적인 네트워크 동작을 위해 Link-state 라우팅에서는 패킷 전달을 제어하는 추가적인 메커니즘을 사용하기도 합니다.
특정 노드가 자신의 정보(LSP)를 네트워크의 모든 이웃에게 전파
하는 메커니즘입니다. 이는 노드가 자신의 상태나 라우팅 정보를 모든 이웃에게 전송함으로써 정보의 전파를 보장
합니다.예를 들어, 노드 A가 자신의 Link-state 패킷(LSP)을 모든 이웃에게 전송합니다. 그리고 이웃인 노드 B는 A의 LSP를 수신하게 됩니다. B는 A의 LSP의 시퀀스 번호를 확인하고, 이 정보가 가장 최신인 경우 B는 자신의 라우팅 테이블을 업데이트하고 A를 제외한 모든 이웃에게 LSP를 다시 전송합니다. 그러나 A의 LSP가 최신 정보가 아닌 경우 B는 해당 LSP를 폐기합니다.
홍수는 네트워크의 모든 노드에 대한 정보 전파를 보장
하지만, 이는 네트워크 대역폭을 낭비
할 수 있습니다. 따라서 라우팅 프로토콜에서는 홍수를 사용하기 전에 제어 메커니즘을 도입하여 효율적인 정보 전달을 보장합니다.
링크 상태 라우팅
을 기반으로 하는 라우팅 프로토콜
입니다.네트워크의 모든 라우터가 링크 상태 광고(LSA) 패킷을 주기적으로 또는 변경이 있을 때 전송함
으로써 라우팅 정보를 교환
합니다.OSPF는 네트워크의 라우터들이 링크의 가중치 또는 거리 정보를 포함한 LSA 패킷을 생성하여 전파합니다. 각 라우터는 이러한 LSA 패킷을 사용하여 Dijkstra 알고리즘을 실행하여 최단 경로를 계산합니다. 그리고 각 라우터는 자체의 라우팅 테이블을 업데이트하여 최적의 경로를 결정합니다.
OSPF는 네트워크의 상태 변경이나 링크 장애가 발생할 때마다 LSA 패킷을 업데이트하여 네트워크의 다른 라우터에게 즉시 전달합니다. 이를 통해 네트워크의 모든 라우터가 최신의 라우팅 정보를 유지하고, 장애 복구와 같은 변화에 신속하게 대응할 수 있습니다.
OSPF는 대규모 네트워크에서 널리 사용되며, 계층적인 디자인과 다양한 영역을 통해 효율적인 라우팅을 제공합니다. 또한, OSPF는 인터넷 프로토콜(IP) 기반의 네트워크에서 내부 경로 프로토콜로서 널리 채택되고 있습니다.
이웃 노드와의 거리 정보를 교환
하는 것을 중심으로 하는 라우팅 방식입니다.OSPF(Open Shortest Path First)
이 주로 사용됩니다.모든 노드에게 전송
됩니다. 이를 통해 각 노드는 다익스트라 알고리즘을 사용하여 최단 경로
를 계산하고, 자체의 라우팅 테이블을 업데이트
하여 최적의 경로를 결정
합니다. 이러한 정보 교환과 경로 계산은 OSPF 프로토콜
을 통해 이루어집니다.목적지까지의 거리 정보를 목적지와의 거리를 기록하는 형태로 교환
합니다.직접 연결된 이웃 노드에게 전송
됩니다.RIP(Routing Information Protocol) 프로토콜
이 일반적으로 사용됩니다.링크 상태 라우팅과 거리 벡터 라우팅은 정보 교환 방식, 전송 대상, 사용되는 프로토콜 등에서 차이가 있습니다. OSPF
는 복잡한 네트워크 환경
에서 사용되며, 링크 상태 정보를 전체 네트워크에 전파하여 최적의 경로를 계산
합니다. 반면에 RIP
는 작은 규모의 네트워크
에서 사용되며, 거리 벡터 정보를 직접 연결된 이웃 노드에게 전송하여 경로를 결정
합니다.
플랫 네트워크(Flat Networks)와 계층적 네트워크(Hierarchical Networks)는 네트워크 구조의 두 가지 주요 접근 방식입니다.
계층 구조를 갖지 않고
모든 노드가 동등한 수준으로 연결되어 있는 구조
작은 규모에서는 간단하고 직접적인 연결을 제공
할 수 있지만, 확장성이 부족
합니다. 네트워크 규모가 커질수록 노드 수가 증가하면서 관리와 라우팅 복잡성이 증가하게 됩니다.여러 개의 "영역"으로 나눈 구조
상위 계층은 하위 계층에 대한 연결과 서비스를 제
공합니다. 이러한 구조는 확장성과 관리 용이성
을 제공하여 대규모 네트워크
에서 효율적인 운영이 가능하게 합니다. 계층적 구조는 네트워크 트래픽을 분산시키고, 라우팅을 단순화하여 전체 네트워크의 성능을 향상시킵니다.인터넷
도 계층적 구조
를 가지고 있습니다. 인터넷은 다수의 인터넷 서비스 제공업체(ISP)와 라우터들이 계층적으로 구성되어 있으며, 트래픽은 계층적으로 전달되고 관리되고 있습니다. 이러한 구조는 전 세계적인 확장성과 효율성을 제공하여 인터넷의 성공적인 운영을 가능하게 합니다.동일한 라우팅 정책을 가진 네트워크의 집합
을 말합니다Single routing protocol
과 Single administrative control
를 갖습니다. 이는 하나의 조직이나 인터넷 서비스 제공 업체(ISP)가 자체적으로 관리하는 네트워크 영역을 의미합니다.자율 시스템은 라우팅 프로토콜을 사용하여 내부 네트워크 간의 라우팅을 수행하고, 외부 자율 시스템과의 인터넷 연결을 위해 외부 라우팅 프로토콜을 사용합니다. 자율 시스템은 일정한 관리 및 정책을 가지고 있으며, 자율 시스템 내에서 동일한 라우팅 결정 규칙을 적용합니다. 이를 통해 자율 시스템은 자체적인 라우팅 정책을 유지하고, 다른 자율 시스템과의 통신을 조율하여 인터넷 전체의 효율적인 동작을 보장합니다.
자율 시스템은 전 세계적으로 고유한 자율 시스템 번호(AS 번호)를 갖습니다. 이 번호는 자율 시스템을 고유하게 식별하고, 라우팅 프로토콜에서 사용되어 다른 자율 시스템과의 연결과 경로 선택에 활용됩니다. AS 번호는 인터넷 전체에서 관리되며, 인터넷 등록 기관에 의해 할당됩니다.
Tier 1 AS
(global reachability
): 글로벌 수준의 연결성을 갖는 자율 시스템
입니다. Tier 1 AS는 다른 모든 AS와 직접적으로 연결
되어 인터넷에서 글로벌한 경로를 제공
합니다.Tier 2 AS
(regional/country
): 지역 또는 국가적인 범위
를 갖는 자율 시스템입니다. Tier 2 AS는 Tier 1 AS와 연결되어 글로벌 라우팅에 참여
하며, 지역 또는 국가적인 인터넷 서비스를 제공
합니다.Tier 3 AS
(local
): 지역적인 범위
를 갖는 자율 시스템입니다. Tier 3 AS는 주로 로컬 또는 지역적인 연결성
을 제공하며, Tier 1 또는 Tier 2 AS와 연결되어 인터넷에 접근합니다.제공자/고객(provider/customer) 관계
: 한 AS가 다른 AS에 대해 인터넷 연결성을 제공
하는 경우, 이는 제공자/고객 관계로 정의됩니다. 제공자 AS는 네트워크 서비스를 제공하고 고객 AS는 해당 서비스를 받습니다.피어(peers) 관계
: 두 AS가 상호간에 서로의 트래픽을 교환하고 경로를 공유
하는 경우, 이는 피어 관계로 정의됩니다. 이러한 관계는 상호 협력적이며, 트래픽 교환 및 경로 선택에서 상호 이익을 고려합니다.계층적 구조와 AS 관계는 인터넷의 구조와 동작에 중요한 역할을 합니다. 이를 통해 효율적인 경로 선택과 네트워크의 확장성을 보장하며, 전 세계적인 인터넷 연결성을 지원합니다.
customer이 provider에게 서비스 비용을 지불
하는 방식으로 이루어집니다.서비스 제공자는 AS 고객에게 네트워크 서비스를 제공
하고, 이를 위해 고객은 비용을 지불
합니다.피어 간에는 상호 협력(mutual cooperation) 관계
가 형성됩니다. 이는 두 AS 간에 트래픽 교환과 경로 공유
를 의미합니다. 피어 간의 협력은 상호 이익을 고려하여 이루어지며, 서로간의 연결성을 향상시키고 트래픽을 효율적으로 전달하는 데 도움을 줍니다.다중 홈링(Multi-homing)
이라는 개념도 존재합니다. AS는 다중 제공자
를 가질 수 있으며, 이를 통해 여러 제공자와의 연결을 유지
함으로써 네트워크의 안정성과 가용성을 향상
시킬 수 있습니다. 다중 홈링은 단일 제공자에 의존하지 않고, 다양한 경로를 통해 트래픽을 전달하는 데 도움이 됩니다.이러한 비즈니스 모델과 다중 홈링은 AS가 경제적인 관점에서 네트워크 서비스를 제공하고 연결성을 유지하는 데 중요한 역할을 합니다.
RIP(Distance Vector)
OSPF(Link State)
단일 AS(자율 시스템) 내에서의 내부 도메인 라우팅은 RIP(거리 벡터)와 OSPF(링크 상태)를 사용할 수 있습니다. RIP는 목적지까지의 거리를 기반으로 라우팅 정보를 교환하는 거리 벡터 라우팅 프로토콜
입니다. 반면 OSPF는 AS 내의 라우터 간에 링크 상태 정보를 교환
합니다.
Count-to-infinity problem(RIP)
- 라우팅 루프Routing information flooded to all nodes(OSPF)
- 과도한 오버헤드그러나 RIP와 OSPF는 대규모 네트워크나 인터 도메인 라우팅 시나리오에서는 확장성이 좋지 않을 수 있습니다.
RIP는 count-to-infinity 문제로 인해 잘못된 라우팅 정보로 인해 라우팅 루프
가 발생할 수 있습니다. OSPF는 네트워크의 모든 노드에 라우팅 정보를 홍수시킴으로써 과도한 오버헤드
를 야기할 수 있습니다.
경계 게이트웨이 프로토콜(BGP, Border Gateway Protocol)
은 인터 도메인 라우팅을 위해 일반적으로 사용됩니다.AS간에 라우팅 정보를 교환하고 정책과 경로 속성을 기반으로 라우팅 결정
을 내릴 수 있도록 합니다. BGP는 다중 연결, 정책 기반 라우팅, 경로 선택 등 인터 도메인 라우팅의 복잡성을 처리하기 위해 설계되었습니다.요약하자면, RIP와 OSPF는 단일 AS 내에서의 내부 도메인 라우팅에 적합
하지만, 인터 도메인 라우팅에는 BGP가 선호되는 라우팅 프로토콜로서 필요한 확장성과 유연성을 제공
합니다.
RIP/OSPF → single AS
BGP → inter-domain
경계 라우터(border routers)간의 라우팅을 담당하는 프로토콜
입니다.AS(자율 시스템) 간의 라우팅 정보 교환
을 위해 사용됩니다. Border Routers는 다른 AS와의 연결
을 갖는 라우터입니다.eBGP(external BGP)
는 서로 다른 도메인의 경계 라우터 간의 라우팅
을 담당합니다. 이를 통해 서로 다른 AS 간의 경로 정보 교환
이 가능해집니다.iBGP(internal BGP)
는 동일한 도메인 내의 경계 라우터 간의 라우팅
을 담당합니다. iBGP는 도메인 내부의 라우터 간에 라우팅 정보를 공유하고 라우팅 루프를 방지
하기 위해 사용됩니다.BGP는 정책 기반 라우팅을 지원하여 AS의 관리자가 라우팅 결정에 영향을 줄 수 있습니다. AS 간에는 여러 경로가 있을 수 있으며, BGP는 경로 속성과 정책을 기반으로 최적의 경로를 선택합니다.
요약하면, BGP는 AS 간의 라우팅을 담당하는 프로토콜
로서 eBGP는 서로 다른 도메인 간의 라우팅
을, iBGP는 동일한 도메인 내의 라우터 간의 라우팅
을 처리합니다. BGP는 AS 간의 라우팅 결정에 유연성과 정책 기반 제어를 제공하여 인터넷의 전체적인 경로 선택과 라우팅 관리를 가능하게 합니다.
경로 벡터 라우팅(Path vector routing)
의 한 형태로, 경로 벡터를 사용하여 경로 정보를 교환
합니다.BGP routers(또는 BGP speakers)
다른 BGP 라우터에게 route advertisement를 전송
합니다. 이 과정은 거리 벡터 라우팅과 유사
합니다.자신이 가지고 있는 경로 정보를 다른 BGP 라우터에게 광고하여 AS 간의 경로 선택을 수행
합니다.BGP 라우터는 주기적으로 혹은 경로 변경이 있을 때마다 경로 광고를 수행합니다. 경로 광고는 BGP 메시지 형식으로 전송되며, 각 경로 광고에는 목적지 네트워크, AS 경로, 경로 속성
등의 정보가 포함될 수 있습니다.
경로 광고를 통해 BGP 라우터는 자신이 알고 있는 경로 정보를 인접한 BGP 라우터에게 전달하여 네트워크 간의 경로 선택을 동기화
합니다. 이를 통해 AS 간의 경로가 전파되고 최적 경로가 선택되며, 인터넷의 라우팅 테이블이 유지되고 업데이트
될 수 있습니다.
BGP 라우팅은 AS 간의 네트워크 경로를 관리하는 데 중요한 역할을 하며, 대규모 네트워크에서 사용되는 핵심 프로토콜입니다. 경로 광고를 통해 BGP 라우터는 다른 AS와의 연결을 설정하고 최적 경로를 선택하는 데에 필요한 정보를 교환합니다.
경로 정보를 사용하여 루프(Loop)를 감지
할 수 있습니다. BGP는 Path-Vector 라우팅 프로토콜이므로 경로 정보에는 AS 경로가 포함됩니다. AS 경로는 경로를 이루는 AS들의 시퀀스로 구성되어 있습니다.
BGP 라우터는 경로를 수신할 때, 이전에 수신한 경로와 비교하여 루프를 감지합니다. AS 경로 정보를 사용하여 경로가 자기 자신을 거치는 루프를 형성하는지 여부를 확인할 수 있습니다. 일반적으로, 경로에 자기 자신의 AS 번호가 포함되어 있는 경우 루프로 간주하고 해당 경로를 폐기합니다.
BGP는 루프를 감지하고 방지하기 위해 다양한 메커니즘을 사용합니다. 예를 들어, AS 경로에 이미 수신한 AS 번호가 포함된 경우, 루프로 간주하여 해당 경로를 폐기하거나 경로 선택에서 우선순위를 낮추는 등의 조치를 취할 수 있습니다.
이러한 루프 감지 기능을 통해 BGP는 안정적이고 루프 없는 경로 선택을 수행하며, 인터넷의 전체적인 라우팅 안정성을 유지합니다.
iBGP는 eBGP로부터 학습한 경로를 iBGP 이웃에게
알릴 수 있습니다. e→i (O)iBGP 이웃으로부터 학습한 경로는 다시 다른 iBGP 이웃에게 알릴 수 없습니다.
i→i (x)루프를 피하기 위한 조치
입니다. AS 경로 정보는 AS 내부에서 전달되지 않으므로, iBGP 이웃으로부터 학습한 경로를 다른 iBGP 이웃에게 전달하지 않는 것입니다.하나의 AS 내에 있는 모든 iBGP 라우터는 완전히 연결
되어 있어야 합니다. 이것은 iBGP 라우터 간에 모든 경로 정보를 공유하기 위해 필요한 조건입니다. 모든 iBGP 라우터가 연결되어 있으면, AS 내의 경로 선택과 배포에 관련된 정보를 적절하게 공유할 수 있습니다.이렇게 iBGP를 사용하면 AS 내부에서 라우팅 정보를 효율적으로 교환하고, 루프를 방지하며, AS 경로 정보의 전달을 관리할 수 있습니다.
iBGP (Internal BGP)는 다음과 같은 특징을 가지고 있습니다.
R3은 R1으로부터 R2의 경로를 알릴 수 없습니다.
(i→i (x))iBGP 라우터는 완전히 연결되어 있어야 합니다.
위의 예시에서 R3은 R1 및 R2로부터 경로를 받고, R4에게는 R1 및 R2의 경로를 알릴 수 있습니다. 그러나 R3은 R1에서 R2의 경로를 받아올 수 없습니다. 이는 iBGP 라우터들이 완전히 연결
되어 있어야 한다는 제약 때문입니다.
따라서 R2는 R1로부터 직접 경로를 받아야
하며, R3를 통한 경로 수신은 허용되지 않습니다
. iBGP 라우터들은 서로 모두 연결되어 있어야 경로 정보를 적절하게 교환하고 관리할 수 있습니다.
BGP에서는 최단 경로가 항상 최적의 경로가 되는 것은 아닙니다
. 이는 경로 선택에 정책(policy)이 개입
되기 때문입니다. 경로 선택은 주로 다음과 같은 정책을 기반으로 합니다:`
고객 우선 (Customer > Peer > Provider)
: 자신의 고객에 대한 트래픽을 우선으로 처리합니다. 즉, 고객과의 계약에 따라 트래픽을 우선적으로 전달합니다. 고객은 트랜지트 트래픽을 수락하지 않으며, 자신의 고객에게만 트래픽을 전달합니다.트랜지트 트래픽 정책 (Transit Traffic)
: 트랜지트 트래픽은 자신의 고객이 아닌 트래픽을 의미합니다. 프로바이더(Provider)는 트랜지트 트래픽을 수락하여 다른 AS로 전달
합니다. 그러나 고객 및 피어(Customers and Peers)는 트랜지트 트래픽을 수락하지 않습니다.
경로 선택에는 위와 같은 정책 외에도 다른 정책들이 적용될 수 있습니다. 각 AS는 자체적인 정책을 설정하여 트래픽을 제어하고, 이를 기반으로 경로 선택을 수행합니다.
경로 광고는 다음과 같은 링크 유형에 따라 다른 방식으로 이루어집니다:
고객 링크 (To customer link)
: 고객과의 연결에 대해 모든 경로를 광고
합니다. 즉, 자신의 고객에게 서비스하는 모든 경로를 다른 AS에게 광고합니다. 이는 고객이 자체적으로 선택할 수 있는 다양한 경로를 제공
하기 위한 것입니다.프로바이더 링크 (To provider link)
: 프로바이더와의 연결에 대해서는 고객 경로만을 광고
합니다. 다시 말해, 자신의 고객들에게 서비스하는 경로들만 다른 AS에게 알려줍니다. 이는 프로바이더에 대한 비용을 최소화
하기 위한 것입니다.피어 링크 (To peer link)
: 피어와의 연결에 대해서도 고객 경로만을 광고
합니다. 피어에게는 자신의 고객들에게 서비스하는 경로
들만 알려주게 됩니다. 이는 피어 간의 상호 운영에 중점을 두기 위한 것입니다.이와 같은 광고 정책은 AS의 비즈니스 요구사항과 운영 정책에 따라 결정되며, 경로 선택과 트래픽 제어를 위한 중요한 요소입니다.
→ Customer link : all routes
→ Provider link : customers only
→ Peer link : customers only
다중 연결된 AS(Multi-homed AS)
에서 여러 프로바이더를 가지고 있는 경우
사용되는 개념입니다.어떤 프로바이더를 사용할지에 대한 우선순위를 설정
할 수 있습니다.로컬 우선순위 값이 높을수록 해당 프로바이더를 선호
하게 됩니다.→ MED가 작은게 선택됨
AS201이 AS200으로부터 오는 트래픽을 A 대신 B로 유도하고자 할 때 사용되는 개념입니다.
AS201은 B를 통한 경로를 선호하기 때문에 MED 값을 작게 설정하여 A보다 우선시
하려고 합니다.MED 값이 작을수록 우선순위가 높아지며
, 경로 선택 과정에서 작은 MED 값을 가진 경로가 선택
됩니다.MED는 주로 다중 연결된 AS에서 경로 선택에 영향을 미치는 데 사용됩니다. 다중 연결된 AS에서는 트래픽을 어떤 경로를 통해 전달할지 결정해야 합니다. AS201은 AS200으로부터 오는 트래픽을 B로 유도하기 위해 B와의 연결에 대해 작은 MED 값을 설정하여 B를 선호하는 경로를 선택하도록 합니다. 이렇게 함으로써 AS201은 트래픽을 원하는 방향으로 유도하고 효과적으로 네트워크 트래픽을 관리할 수 있습니다.
MED 값은 AS에서 설정되며, 경로 선택에서 사용됩니다. 작은 MED 값을 가진 경로가 더 높은 우선순위를 갖게 됩니다. 그러나 MED 값은 다른 AS에 의해 해석되므로, AS간에 동일한 의미로 해석되지 않을 수 있습니다. 따라서 MED는 AS 간의 협의에 따라 적절하게 사용되어야 합니다.