라우터란?
라우터는 3계층에서 동작하는 여러 네트워크 장비의 대표격으로 그 이름처럼 경로를 지정해주는 장비이다.
라우터에 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 경로 정보를 이용해 패킷을 최적의 경로로 포워딩한다.
쉽게 설명하자면 원격지 통신이 매우 중요한 시대에서 라우터는 필수 네트워크 장비이고 네트워크를 구성하는 핵심 장비이기 때문에 네트워크를 공부한다면 무조건 알아야 한다.
https://pinokio0702.tistory.com/35
[네트워크] OSI 계층 구조
이 글은 아래의 블로그를 통해서 가져온 글입니다. 블로그를 참고하면서 공부해나가는 방식이 재미있습니다. https://blog.lael.be/post/107 OSI 7계층 중 홉 단위로 수행되는 계층과 종단간 수행되는 계
pinokio0702.tistory.com
사진 출처
라우터는 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장한 후 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷을 보낸다.
스위치와 반대로 라우터는 들어온 패킷의 목적지 주소가 라우팅 테이블에 없으면 패킷을 버린다.
왜??
목적지에 패킷이 도달할 수 없기 때문이다.
경로 지정
예를 들자면 라우터는 우편물을 배달하는 우체부와 같다.
우체부는 우편물의 주소를 확인하고, 해당 주소가 자신이 알고 있는 주소인지 확인한다.
만약 모르는 주소라면 우편물을 버리거나, 다른 우체부에게 전달한다.
여기서 중요한 핵심은 경로 지정이다.
경로 정보를 모아 라우팅 테이블을 만들고 패킷이 라우터로 들어오면 패킷의 도착지 IP 주소를 확인해 경로를 지정하고 패킷을 포워딩 한다.
라우터는 자신이 얻은 경로 정보에 포함되는 패킷만 포워딩하므로 정확한 목적지 경로를 얻는 것이 매우 중요하다.
경로를 지정해 패킷을 포워딩하는 역할을 두 가지로 구분해 수행한다.
1. 경로 정보를 얻는 역할
2. 얻은 경로 정보를 확인하고 패킷을 포워딩하는 역할
다양한 방법으로 경로 정보를 얻을 수 있다.
IP 주소를 입력하면서 자연스럽게 인접 네트워크 정보를 얻는 방법과 관리자가 직접 경로 정보를 입력하는 방법, 라우터끼리 서로 경로 정보를 자동으로 교환하는 방법이 있다.
브로드캐스트 컨트롤
스위치는 패킷의 도착지 주소를 모르면 어딘가에 존재할지 모를 장비와의 통신을 위해 모든 포트에 패킷을 전송한다.
모든 포트에 전송한다는 것은 쓸모 없는 패킷이 전송되어 전체 네트워크의 성능에 무리가 갈 수 있지 않나?
정답은 [ 아니다 ]
LAN은 크기가 작아 플러딩에 대한 영향이 작고 도착지 NIC(네트워크 인터페이스 카드)의 주소가 다르면 패킷을 버리기 때문에 이런 플러딩 작업은 큰 무리를 주진 않는다.
라우터는 패킷을 원격지로 보내는 것을 목표로 개발되어 3계층에서 동작하고 분명한 도착지 정보가 있을 때만 통신을 허락한다.
인터넷 연결은 대부분 지정된 대역폭만 빌려 사용하므로 쓸모없는 통신이 네트워크를 차지하는 것을 최대한 막으려고 노력한다.
만약 LAN에서 스위치가 동작하는 것처럼 목적지가 없거나 명확하지 않은 패킷이 플러딩한다면 인터넷에 쓸모 없는 패킷이 가득 차 통신불능 상태가 될 수 있다.
라우터는 바로 연결되어 있는 네트워크를 정보를 제외하고 경로 습득 설정을 하지 않으면 패킷을 포워딩할 수 없다.
라우터의 기본 동작은 멀티캐스트 정보를 습득하지 않고 브로드캐스트 패킷을 전달하지 않는다.
라우터의 이 기능을 이용해 브로드캐스트가 다른 네트워크로 전파되는 것을 막을 수 있다.
이 기능을 브로드캐스트 컨트롤/멀티캐스트 컨트롤 이라고 한다.
네트워크에 브로드캐스트가 많이 발생하는 경우, 라우터로 네트워크를 분리하면 브로드캐스트 네트워크를 분할해 네트워크 성능을 높일 수 있다.
프로토콜 변환
라우터의 또 다른 역할은 서로 다른 프로토콜로 구성된 네트워크를 연결하는 것이다.
현대 네트워크는 이더넷으로 수렴되므로 이 역할이 많이 줄긴 했다.
그러나 과거엔(현재도 일부) LAN과 WAN의 프로토콜이 전혀 다른, 구분된 공간이었다.
LAN의 기술이 WAN 기술로 변환되어야만 인터넷과 같이 원격지 네트워크와의 통신이 가능했고 이 역할을 라우터가 담당했다.
라우터는 3계층에서 동작하는 장비이므로 3계층 주소 정보를 확인하고 그 정보를 기반으로 동작한다.
라우터에 패킷이 들어오면 2계층 헤더 정보를 벗겨내고 3계층 주소를 확인한 후 2계층 헤더 정보를 새로 만들어 외부로 내보낸다.
이 기능을 이용하면 전혀 다른 기술 간 변환이 가능한 것이다.
라우팅 동작과 라우팅 테이블
현대 인터넷에서는 단말부터 목적지까지의 경로를 모두 책임지지 않는다.
인접한 라우터까지만 경로 지정을 하면 인접 라우터에서 최적의 경로를 다시 파악한 후 라우터로 패킷을 포워딩한다.
이 기법을 홉-바이-홉 라우팅이라 한다. 그리고 인접한 라우터를 넥스트 홉이라 부른다.
라우터는 목적지 주소를 라우팅 테이블에 있는 정보와 비교하여 어느 경로로 포워딩할 지 결정한다.
이때, 출발지 주소는 경로를 선택할 때 고려하지 않는다. 출발지 주소는 데이터를 전송하는 출발점을 나타내는 것일 뿐, 경로 선택에는 영향을 미치지 않는다.
라우터는 목적지 주소를 확인하고, 해당 주소에 대한 정보를 라우팅 테이블에서 찾는다.
라우팅 테이블은 라우터가 알고 있는 네트워크 정보와 경로 정보를 담고 있는 데이터베이스 이다.
라우팅 테이블에 저장하는 데이터엔
1. 목적지 주소
2. 넥스트 홉 IP 주소, 나가는 로컬 인터페이스
가 있다.
라우터는 라우팅 테이블에서 찾은 정보를 바탕으로 다음에 전송할 네트워크를 결정한다.
이것이 넥스트 홉(Next Hop)인 것이다. 위에서 이해가 안가더라도 다시 이해할 수 있게 설명했다.
넥스트 홉은 패킷을 전달할 다음 라우터나 최종 목적지 네트워크가 될 수 있다.
라우팅 테이블에는 목적지 주소와 넥스트 홉 IP 주소, 나가는 로컬 인터페이스(선택 가능) 등의 정보가 저장된다.
라우터는 패킷을 포워딩할 때는 목적지 정보만 확인하여 넥스트 홉으로 포워딩한다.
이렇게 라우터는 목적지 주소를 중심으로 경로를 선택하고, 패킷을 포워딩하여 데이터를 효율적으로 전송한다.
루프가 없는 3계층: TTL
3계층 IP 헤더에는 TTL(Time To Live)이라는 필드가 있다.
이 필드는 패킷이 네트워크에 살아 있을 수 있는 시간을 제한한다.
인터넷은 수많은 네트워크가 연결되어 있는 거대한 네트워크이다. 이 네트워크에서는 수많은 데이터가 이동하고 있다.
라우터는 이러한 인터넷에서 데이터를 전송하는 데 중요한 역할을 한다. 라우터는 데이터의 목적지 주소를 확인하고, 최적의 경로를 선택하여 데이터를 전송한다.
하지만 인터넷에서는 가끔 문제가 발생하기도 한다.
예를 들어, 운영되던 사이트가 갑자기 없어지거나, 네트워크 장애가 발생하는 경우가 있다.
이러한 경우에는 데이터가 목적지에 도달하지 못하고, 쓸모없는 패킷이 돌아다니게 된다.
이렇게 되면 대역폭이 낭비되고, 네트워크의 성능이 저하된다.
이를 막기 위해 라우터는 주소가 불분명한 패킷을 버리거나, 네트워크 장애가 발생한 경우에는 대안 경로를 찾아서 데이터를 전송한다.
또 순간적으로 마주보는 두 대의 라우터의 넥스트 홉이 각각 상대방으로 구성되어 패킷이 두 라우터 사이에서 계속 오가는 경우도 생길 수 있다. 이를 루프 현상이라고 한다.
루프 현상이 발생하면 네트워크에 과부하가 걸리고, 데이터가 제대로 전송되지 않을 수 있다.
라우터는 이러한 문제를 해결하기 위해 다양한 기술을 사용한다. 예를 들어, 경로 설정 알고리즘을 통해 최적의 경로를 선택하고, 네트워크 상태를 모니터링하여 장애를 감지하고 대처한다.
또 플러딩 방지 기술을 통해 불필요한 패킷의 전송을 막고, 루프 현상을 방지한다.
ex) 목적지가 30.30.30.30인 패킷이 R1, R2에 들어오면 R1은 라우팅 테이블을 참조해 (ip route 30.30.30.30/24 1.1.1.2) 1.1.1.2로 내보내고 이 패킷을 받은 R2는 자신의 라우팅 테이블을 참조해 (ip route 30.30.30.30/24 1.1.1.1) 1.1.1.1로 패킷을 포워딩한다.
R1에서 R2로, R2에서 다시 R1으로 패킷을 보내는 이 현상을 라우팅 루프라고 하는 것.
여기서 패킷이 영구적으로 사라지지 않는다면 장비 간에 동일한 패킷이 아주 난리를 일으킬 것이다. 유령 패킷이 넘쳐날 수도 있다. 그래서 이 모든 패킷을 TTL이라는 수명 값을 주어 이 값이 0이 되면 네트워크 장비에서 버리게 만드는 것이다.
TTL은 일반적인 실제 초와 같은 시간이 아니라 홉을 지칭한다. 하나의 홉을 지날 때마다 TTL 값이 1씩 줄어든다.
다음으로 라우터가 경로 정보를 얻는 방법에 대해 알아보자.
라우팅
라우터가 경로 정보를 얻어 저장하는 것을 라우팅이라 한다. 크게 세 가지 방법으로 정보 얻는 방법을 알아보자.
다이렉트 커넥티드
인터페이스에 설정된 IP 주소를 통해서 라우팅 테이블에 정보를 자동으로 생성한다. 이를 다이렉트 커넥티드라 부른다.
빠른 속도, 안정성, 보안성 등의 장점이 있으며, 전용선이나 광케이블 등을 이용하여 연결한다. 라우터 간의 프로토콜을 설정하여 경로 정보를 교환한다.
이 정보는 강제로 지우는 것은 불가능하고 해당 네트워크 설정을 삭제하거나 해당 인터페이스가 비활성화 되어야만 자동으로 사라진다.
대규모 네트워크에서 많이 사용되며 인터넷 서비스 제공 업체(ISP) 간의 연결이나 기업 내부의 네트워크 간의 연결에 많이 사용된다.
스태틱 라우팅
정적 경로(Static Route)라고도 불리는 스태틱 라우팅은 네트워크 관리자가 직접 경로를 지정하는 방식이다.
장점은 라우팅 프로토콜을 사용하지 않아 부하가 거의 없다.
또 관리자가 직접 경로를 설정하기 때문에 경로가 변경될 가능성이 적다.
하지만 관리자가 직접 경로를 설정해야 하기 때문에 불편하고, 경로가 변경될 때마다 다시 설정해야 한다.
또, 네트워크의 변화에 자동으로 대처하지 못하기 때문에 안정성이 떨어질 수 있다.
주로 작은 규모의 네트워크나, 고정된 경로를 사용하는 네트워크에서 사용된다.
다이나믹 라우팅
동적 경로(Dynamic Route)라고도 불리는 다이나믹 라우팅은 라우팅 프로토콜을 사용하여 자동으로 경로를 설정하는 방식이다.
라우터끼리 자신이 알고 있는 경로 정보나 링크 상태 정보를 교환해 전체 네트워크 정보를 학습한다.
장점은 네트워크의 변화에 자동으로 대처할 수 있어서 안정성이 높다는 점이다.
또, 경로 설정이 자동으로 이루어지기 때문에 관리자가 편리하게 네트워크를 관리할 수 있다.
단점은 라우팅 프로토콜을 사용하기 때문에 부하가 발생할 수 있고, 경로가 자주 변경될 경우에는 라우팅 테이블이 복잡해질 수 있다.
네트워크의 규모가 크고 복잡할 경우에는 경로 설정이 어려울 수 있다.
대규모 네트워크에서 많이 사용되며, 대표적인 라우팅 프로토콜로는 RIP, OSPF, EIGRP 등이 있다.
그림처럼 다이나믹 라우팅에서는 자신이 광고할 네트워크를 선언해주어야 한다.
각 다이나믹 라우팅 프로토콜에 따라 설정 방법만 다를 뿐 광고에 필요한 자신의 네트워크를 선언해야 하는 것은 똑같다.
스위칭 개념부턴 다음 시간에!!
'Network' 카테고리의 다른 글
프록시의 구조와 작동원리 (37) | 2024.07.28 |
---|---|
라우터/L3 스위치: 3계층 장비 -2 (36) | 2024.07.27 |
HTTP와 HTTPS는 무슨 차이? (1) | 2024.05.12 |
스위치: 2계층 장비 (0) | 2024.04.29 |
네트워크 연결과 구성요소 (0) | 2024.04.24 |