라우터
라우터의 핵심 기능은 패킷이 이동할 최적의 경로를 설정하고 패킷을 이동시키는 것이다. 이를 라우팅이라고 한다.
라우터는 네트워크 계층의 핵심 기능을 담당한다. 일반적으로 가정 환경에서는 공유기가 라우터의 역할을 대신한다. 이런 점에서 공유기를 홈 라우터라고 부르기도 한다.
멀리 떨어진 호스트 간의 통신 과정에서 패킷은 여러 라우터를 거쳐서 이동하는데, 이렇게 호스트와 라우터 혹은 라우터와 라우터간의 이동을 홉이라고 부른다. 패킷은 여러 홉을 거쳐 라우팅될 수 있다.
라우팅 테이블
라우팅의 핵심은 라우터가 저장하고 관리하는 라우팅 테이블이다. 라우팅 테이블은 특정 수신지까지 도달하기 위한 정보가 담겨있다.
라우팅 테이블에 포함된 정보는 라우팅 방식과 호스트 환경에 따라 달라질 수 있으므로, 공통적 정보이자 핵심적인 정보를 알아보자.
- 수신지 IP 주소와 서브넷 마스크
- 최종적으로 패킷을 전달할 대상을 의미
- 다음 홉
- 최종 수신지까지 가기 위해 다음 거쳐야 할 호스트의 IP 주소나 인터페이스를 의미. 게이트웨이라고 명시되기도 함.
- 네트워크 인터페이스
- 패킷을 내보낼 통로. 인터페이스 이름이 직접 명시되거나, 인터페이스에 대응하는 IP 주소가 명시되기도 한다.
- 메트릭
- 해당 경로로 이동하는 비용으로, 낮을수록 좋다.
패킷 내 수신지 IP 주소가 라우팅 테이블에 있는 수신지 IP 주소, 서브넷 마스크 항목과 완벽하게 합치되는 경우도 있지만, 그렇지 않은 경우도 있다. 이 경우 기본적으로 패킷을 내보낼 경로를 설정하며 내보낸다. 이 기본 경로를 디폴트 라우트라고 한다. 디폴트 라우트는 0.0.0.0/0로 명시한다.
기본 게이트웨이는 호스트가 속한 네트워크 외부로 나가는 첫 번째 경로이고, 일반적으로 라우터 주소를 의미하는 경우가 많다. 여기서 기본 게이트웨이로 나가기 위한 경로가 디폴트 라우트인 셈이다.
즉 호스트가 어느 라우터로 전달해야 할지 모른다면 기본 게이트웨이를 디폴트 라우트로 삼고 패킷을 전달한다.
정적 라우팅과 동적 라우팅
라우팅 테이블이 만들어지는 방법은 크게 두 가지가 있다. 이 두 방식은 IP 주소가 정적, 동적으로 할당되는 것과 비슷하다.
정적 라우팅
정적 라우팅은 사용자가 수동으로 직접 채워넣은 라우팅 테이블의 항목을 토대로 라우팅 되는 방식이다.
동적 라우팅
네트워크의 규모가 커지면 정적 라우팅만으로는 관리가 어렵다. 잘못된 경로를 넣거나, 경로에 문제가 생길수도 있따. 이때 사용하는 방법이 동적 라우팅이다.
동적 라우팅은 자동을 라우팅 데이터 항목을 만든다. 또 네트워크 경로상에 문제가 발생했을때 우회 경로를 자동으로 갱신한다. 이 때문에 동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변할 수 있다.
라우터는 최적의 경로를 찾아 라우팅하기 위해 노력한다. 이를 위해 라우터끼리 서로 자신의 정보를 교환하는데, 이 과정에서 사용되는 프로토콜이 바로 (동적)라우팅 프로토콜이다.
라우터들의 집단 네트워크, AS
동일한 라우팅 정책으로 운용되는 라우터의 집단을 AS(Autonomous System)이라고 한다.
AS마다 인터넷상에서 고유한 AS 번호(ASN; Autonomous System Number)가 할다된다. 이는 사설 IP 주소처럼 사설 AS 번호도 있지만, 일반적으로 AS 번호는 고유한 번호를 일컫는다.
한 AS 내에는 다수의 라우터가 있다. 라우터들은 AS 내부/외부로 통신할 수 있다. AS 외부와 통신할 경우 AS 경계에서 AS 내외로 통신을 주고받을 수 있는 AS 경계 라우터(ASBR; Autonomous System Boundary Router)라는 특별한 라우터를 사용한다.
라우팅 프로토콜
라우팅 프로토콜은 라우터끼리 정보를 교환하며 최적의 경로를 찾기 위한 프로토콜이다. 크게 AS 내부에서 수행되느냐, 외부에서 수행되느냐를 두고 종류를 나눌 수 있다.
IGP : RIP와 OSPF
IGP(Interior Gateway Protocol)는 AS 내부에서 수행되는 프로토콜이다.
대표적인 IGP는 RIP(Routing Information Protocol)와 OSPF(Open Shortest PathFirst)가 있다. 이들은 최적의 경로를 찾는 과정에서 거리 벡터가 사용되느냐, 링크 상태가 사용되느냐로 구분할 수 있다.
- RIP
- 거리 벡터 기반의 라우팅 프로토콜이다. 거리 벡터 라우팅 프로토콜은 패킷이 경유한 홉의 수를 의미한다.
- 인접한 라우터끼리 정보를 주기적으로 교환하며 라우팅 테이블을 갱신한다. 이 때 홉 수가 가장 적은 경로를 최적의 경로로 판단하며, 홉 수가 적을수록 메트릭 값이 작아진다.
- OSPF
- ‘네트워크는 그래프의 형태를 띄고 있다’라고 설명한 적이 있는데, 이런 정보를 비롯한 현재 네트워크의 상태를 그래프의 형태로 링크 상태 데이터베이스(LSDB ; Link State DataBase)에 저장한다. 여기엔 라우터들의 연결 관계, 연결 비용 등 현재 네트워크 상태를 그래프로 표현하기 위한 데이터가 저장된다.
- OSPF는 대역폭을 기반으로 메트릭을 계산한다. 대역폭이 높을수록 메트릭이 낮다고 인식한다. 또 RIP와 달리 네트워크의 구성이 변경되었을 때 라우팅 테이블이 갱신된다.
- OSPF는 네트워크의 규모가 커질수록 불리한 구조이므로, AS를 에어리어(Area)라는 단위로 나눈다. 에어리어는 번호가 부여되어 있으며, 에어리어 경계에 있는 ABR(Area Border Router)이라는 라우터가 에어리어간의 연결을 담당한다.
EGP : BGF
EGP(Exterior Gateway Protocol)는 AS 외부에서 수행되는 프로토콜이다.
대표적인 프로토콜로는 BGP(Border Gateway Protocol)이 있다. BGP는 엄밀히 AS간의 통신이 ‘가능한’프로토콜로, AS간의 통신을 위한 BGP는 eBGP(external BGP, AS 내의 통신을 위한 BGP는 iBGP(internal BGP)라고 한다.
AS 간의 정보를 주고받기 위해선 AS 내에서 eBGP를 사용하는 라우터가 하나 이상 있어야하고, 또 다른 AS의 BGP라우터와 연결되어야 한다. 이 연결은 BGP 라우터간에 메시지를 주고받으면서 생기며, 이렇게 연결된 BGP 라우터를 피어(peer)라고 한다.
즉, 다른 AS 와의 BGP 연결을 유지하기 위해선 라우터끼리 연결되어 피어가 되어야 하며, 이렇게 연결되는 과정을 피어링(peering)이라고 한다.
BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복잡하고, 일정하지 않은 경우가 많다. 이는 다양한 속성과 정책이 고려되기 때문이다.
BGP의 속성이란 경로에 대한 부가적인 정보로, 종류가 다양하지만 대표적인 속성만 알아보자. 이 내용은 외우기보다는 가볍게 개념을 훑어보는 마음으로 보자.
- AS-PATH
- 메시지가 수신지에 이르는 과정에서 통과하는 AS들의 목록을 의미한다.
- 이 속성을 통해 두 가지를 알 수 있다. BGP는 AS간 라우팅을 거치게될 AS의 수를 고려한다. 또 BGP는 RIP처럼 단순히 거리가 아닌 경로를 고려한다. 이때 경로를 고려한느 이유는 무한히 반복하여 이동하는 순환을 막기 위함이다. 자신이 AS-PATH에 있으면 메시지를 폐기한다.
- NEXT-HOP
- 다음으로 거칠 라우터의 IP 주소를 나타낸다.
- LOCAL-PREF
- 지역 선호도의 약자로, 일반적으로 AS-PATH나 NEXT-HOP속성보다 우선시된다. 이 값은 AS 관리 주체가 설정하는 정책의 영향을 받는다. 기본값이 있지만, 이 값을 설정하여 AS 라우터끼리 특정 경로에 대한 선호도를 합의한다는 것은 ‘정책정인 이유로 이 경로를 우선시하겠다’, ‘설령 이 경로가 다른 경로에 비해 비교적 비효율적일지라도 이 경로를 우선시하겠다’라는 말과도 같다.
💡 BGP의 정책 BGP의 정책은 AS 간 라우팅에 있어 경로를 선택하는 중요 판단기준이다. AS 관리 주체가 상업적, 정치적 목적으로 상이한 정책을 사용할 수 있기에 최적의 경로를 선택하는 기준은 AS마다 다를 수 있다.
'도서 정리 > 혼자 공부하는 네트워크' 카테고리의 다른 글
[혼자 공부하는 네트워크] Chapter 4 - 2 TCP와 UDP (0) | 2024.07.28 |
---|---|
[혼자 공부하는 네트워크]Chapter 4 - 1 전송 계층 개요 : IP의 한계와 포트 (0) | 2024.07.28 |
[혼자 공부하는 네트워크] Chapter 3 - 2 IP 주소 (0) | 2024.07.21 |
[혼자 공부하는 네트워크] Chapter 3 - 1 LAN을 넘어서는 네트워크 계층 (0) | 2024.07.21 |
[혼자 공부하는 네트워크] Chapter 2 - 4 스위치 (0) | 2024.07.14 |