[네트워크] 라우팅

windowook·2024년 6월 25일
post-thumbnail

🌱 라우터

네트워크 계층의 핵심 기능을 담당합니다. L3 스위치라고 부르는 장치도 네트워크 계층의 대표 장치이기는 하지만 오늘날 라우터와 L3 스위치는 기능상 상당 부분 유사하므로 엄밀히 구분하지 않습니다.

멀리 떨어져 있는 호스트 간의 통신 과정에서 패킷은 서로에게 도달하기까지 여러 라우터를 거쳐서 다양한 경로로 이동합니다.


라우팅 도중 패킷이 호스트와 라우터 간, 라우터와 라우터 간에 이동하는 하나의 과정입니다.

🌱 라우팅 테이블

라우터의 핵심은 라우터가 저장하고 관리하는 라우팅 테이블입니다. 라우팅 테이블은 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표와 같은 정보입니다. 라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단할 수 있습니다.

  • 수신지 IP 주소, 서브넷 마스크: 최종적으로 패킷을 전달할 대상을 의미합니다.
  • 다음 홉: 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스를 의미합니다.
  • 네트워크 인터페이스: 패킷을 내보낼 통로. 인터페이스 이름이 직접적으로 명시되거나 인터페이스에 대응하는 IP 주소가 명시합니다.
  • 메트릭: 해당 경로로 이동하는 데에 드는 비용을 의미합니다.

패킷 내의 수신지 IP 주소가 라우팅 테이블에 있는 수신지 IP 주소, 서브넷 마스크 항목과 완벽하게 합치되는 경우가 있지만 그렇지 않은 경우도 존재합니다. 이 경우에는 기본적으로 패킷을 내보낼 경로를 설정하여 해당 경로로 패킷을 내보낼 수 있습니다. 이러한 기본 경로를 디폴트 라우트라고 부릅니다. 디폴트 라우트는 모든 IP 주소를 의미하는 0.0.0.0/0으로 표기합니다.

🌱 정적 라우팅과 동적 라우팅

정적 라우팅

사용자가 수동으로 직접 채워넣은 라우팅 테이블의 항목을 토대로 라우팅되는 방식입니다.

동적 라우팅

자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅하는 방식을 의미합니다. 이러한 이유로 동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변동합니다.

모든 라우터는 특정 수신지까지 도달하기 위한 최적의 경로를 찾아 라우팅 테이블에 추가하려 노력합니다. 이를 위해 라우터끼리 서로 자신의 정보를 교환하게 되는데 이 과정에서 사용되는 프로토콜이 라우팅 프로토콜입니다.

🌱 라우팅 프로토콜

자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜입니다.

IGP

RIPOSPF.
RIP는 거리 벡터를 사용하고, OSPF는 링크 상태를 사용합니다.

RIP
거리 벡터 라우팅은 거리를 기반으로 최적의 경로를 찾는 라우팅을 의미합니다.
거리는 패킷이 경유한 라우터의 수 = 홉의 수를 의미합니다.
RIP는 인접한 라우터끼리 경로 정보를 즉각적으로 교환하며 라우팅 테이블을 갱신합니다.

이를 통해 라우터는 특정 수신지에 도달하기까지의 홉 수 파악 가능합니다.
그리고 특정 수신지까지 도달하기 위해 '홉 수가 가장 적은 경로'를 최적의 경로라고 판단합니다.
홉 수가 적을 수록 라우팅 테이블 상의 메트릭(비용) 값도 감소합니다.

OSPF
링크 정보를 비롯한 현재 네트워크의 상태를 그래프의 형태로 링크 상태 데이터베이스에 저장합니다.
링크 상태 데이터베이스에는 라우터들의 연결 관계, 연결 비용 등 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터가 저장됩니다. 라우터는 링크 상태 데이터베이스를 기반으로 현재 네트워크 구성을 마치 지도처럼 그린 뒤에 최적의 경로를 선택합니다.

OSPF에서는 최적의 경로를 결정하기 위해 대역폭을 기반으로 메트릭을 계산합니다. 대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식합니다. 또한 라우터 간에 경로 정보를 주기적으로 교환하며 라우팅 테이블을 갱신하는 RIP와 달리 네트워크 구성이 변경되었을 때 라우팅 테이블 갱신합니다.

그리고 AS를 에어리어라는 단위로 나누고 구분된 에어리어 내에서만 링크 상태를 공유합니다.
에어리어에는 번호가 부여되어 있고, 에어리어 경계에 있는 ABR이라는 라우터가 에어리어 간의 연결을 담당합니다.

AS = 회사나 단체에서 관리하는 라우터 집단

BGP(EGP에 해당)

AS 간의 통신에서 사용되는 대표적인 프로토콜로, 엄밀하게는 AS 간의 통신이 가능한 프로토콜입니다.
따라서 BGP로 AS 내 라우터 간 통신도 가능합니다. AS 간의 통신을 위한 BGP는 eBGP, AS 내의 통신을 위한 BGP는 iBGP라고도 부릅니다.

AS 간에 정보를 주고받기 위해서는 AS 내에서 eBGP를 사용하는 라우터가 하나 이상 있어야 하고, 또 다른 AS의 BGP 라우터와 연결되어야 가능합니다. 이 연결은 BGP 라우터 간에 BGP 메세지를 주고받음으로써 이루어지는데, BGP 메세지를 주고받을 수 있도록 연결된 BGP 라우터를 피어라고 정의합니다.
다른 AS와의 BGP 연결을 유지하기 위해서는 BGP 라우터끼리 연결되어 피어가 되어야 합니다. 이렇게 피어 관계가 되도록 연결되는 과정을 피어링이라 부릅니다.

BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복잡하고, 일정하지 않은 경우가 다반사입니다. 경로 결정 과정에서 수신지 주소와 더불어 다양한 '속성'과 '정책'이 고려되기 때문입니다.

BGP 속성이란 경로에 대한 일종의 부가 정보입니다. 종류는 다양하지만, 대표적인 속성으로는 AS-PATH, NEXT-HOP, LOCAL-PREF가 존재합니다.

AS-PATH
메세지가 수신지에 이르는 과정에서 통과하는 AS들의 목록을 의미합니다.
메세지가 AS를 거칠 때마다 AS-PATH에는 거쳐 간 AS가 추가합니다.
AS 1에서 AS 2 내의 특정 네트워크에 도달하는 경로는 크게 두 개의 경로가 존재합니다.
하나는 AS 1에서 곧장 AS 2로 가는 경로, 또 하나는 AS 1에서 AS 3을 거쳐서 AS 2에 도달하는 경로입니다.

BGP는 AS 간 라우팅을 할 때 거치게 될 라우터의 수가 아닌 AS의 수를 고려합니다.
그렇기에 AS-PATH 길이가 더 짧은 경로라 할지라도 거치게 될 라우터의 홉 수가 더 많을 수 있습니다.

BGP는 RIP처럼 단순히 수신지에 이르는 거리가 아닌 메세지가 어디를 거쳐 어디로 이동하는지를 나타내는 경로도 고려합니다.

NEXT-HOP
다음으로 거칠 라우터의 IP 주소입니다.
AS 1에서 AS 2로 곧장 가는 경로의 NEXT-HOP은 AS 1과 연결된 라우터 a의 IP 주소, AS 2에서 AS 3을 거쳐 AS 2에 도달하는 경로의 NEXT-HOP은 AS 1과 연결된 라우터 b의 주소입니다.

LOCAL-PREF
지역 선호도를 의미합니다.
AS 외부 경로에 있어서 AS 내부에서 어떤 경로를 선호할 지에 대한 척도를 나타내는 속성입니다. 경로를 선택하는 과정에서 LOCAL-PREF 값은 일반적으로 AS-PATH나 NEXT-HOP 속성보다 우선시 되고, LOCAL-PREF 값이 클 수록 우선으로 선택합니다.

LOCAL-PREF 값은 AS 관리 주체가 설정하는 정책의 영향을 받습니다. 기본으로 설정되는 LOCAL-PREF 값이 있기는 하지만 LOCAL-PREF 값을 설정하여 AS 내 라우터끼리 특정 경로에 대한 선호도를 합의한다는 것은 '정책적인 이유로 이 경로를 우선시하겠다','설령 이 경로가 다른 경로에 비해 비효율적일지라도 이 경로를 우선시하겠다'는 의미입니다.

profile
안녕하세요

0개의 댓글