본문으로 바로가기

3계층 라우터(3L 스위치)

category 🌐 Network/🌐 Network 2021. 3. 22. 19:43

라우터, 3계층 스위치는 3계층의 대표적인 장치입니다.

 

라우터는 도착지 ip와 라우팅 테이블을 비교하여 최선의 경로로 패킷을 포워딩합니다. 이 외에도 프로토콜 변환 작업 등의 역할도 수행합니다. 프로토콜 변환 작업은 과거 LAN과 WAN의 프로토콜이 완전히 달라 변환 작업이 필요했을 경우에 자주 사용되었지만, 이제는 이더넷으로 수렴되어가면서 이 기능의 사용 빈도가 줄어드는 추세입니다.

 

패킷을 이동시키는 점에서는 2L 스위치와 같지만 스위치는 도착지 MAC 주소를 참고한 뒤 없으면 브로드캐스트하는 반면 라우터는 일치하는 ip가 없으면 패킷을 그냥 버립니다. 즉, 분명한 도착지 장소가 있는 경우에만 통신을 하는 겁니다.

 

라우터는

(1) 경로 정보를 얻는 역할 = 라우팅

(2) 패킷을 포워딩하는 역할 = 스위칭

두 가지로 구분해 동작합니다.

 

Hop by Hop, Next Hop, TTL

 

라우터는 패킷이 도착하는 과정 전부를 책임지는게 아니라 다음 라우터까지 경로를 전달하는 역할을 합니다. 이를 넘겨 받은 라우터는 다시 최적의 경로를 찾아 다른 라우터로 포워딩합니다. 이런 패킷의 포워딩 동작을 'Hop by Hop' 라우팅이라고 합니다. 그리고 다음 라우터를 Next Hop이라고 부릅니다. 라우터는 최적의 Next Hop을 찾아 패킷을 포워딩합니다.

 

Next Hop을 지정하는 방법으로는 다음 방법들이 있습니다.

 

  • Next Hop의 ip 주소를 명시하는 방법 (가장 일반적인 방법)
  • 라우터의 나가는 인터페이스를 지정하는 방법 (특수한 경우)
  • 둘 다 하는 방법

TTL(time to live)

엘리스틱 캐시를 사용할 때 처음 접한 이름인데, 캐시에만 한정된 개념이 아니라 광범위한 개념입니다.

 

여기서는 3계층의 IP 헤더에 TTL 필드를 설정하여 패킷이 네트워크에서 살아 남을 수 있는 시간 제한합니다.

정확히 말하자면, '시간'이 아니라 다음 라우터로 이동할 수 있는 Hop의 갯수를 제한하는 겁니다. TTL이 0이 되면 패킷은 소멸합니다. 죽지도 않고 네트워크를 계속 돌아다니며 대역폭을 낭비하게 할 수는 없으니까요.

2계층에서는 TTL이 없어서 네트워크 루프 문제도 생기고 그러는 겁니다.

 

 

라우터는 어떻게 라우팅을 하는가?

 

라우터가 경로 정보를 얻는 방법은 세가지가 있습니다.

 

  • 다이렉트 커넥티드
  • 스태틱 라우팅
  • 다이나믹 라우팅 (대부분의 경우임)

 

다이렉트 커넥티드

ip 주소와 서브넷 마스크를 알면 해당 ip가 속한 네트워크 주소 정보를 알 수 있고, ip 유효 범위도 알 수 있습니다.

이렇게 계산을 통해 자동으로 라우팅 테이블을 만들게 되며 형성되는 경로를 'Direct Connected'라고 합니다.

계산에 의해 자동생성된 것이므로 임의로 수정하거나 삭제할 수 없습니다. 

다만, 지목한 네트워크 인터페이스 자체가 비활성화, 삭제되면 자동으로 사라집니다.

 

스태틱 라우팅

관리자가 Next Hop을 직접 지정하는 방식입니다. Direct Connected와 마찬가지로 지목한 네트워크 인터페이스 자체가 비활성화, 삭제되면 자동으로 사라집니다. 간혹, 사라지지 않는 경우도 있는데 이는 지목한 네트워크 인터페이스의 물리 인터페이스가 아닌 논리 인터페이스가 남아 있는 경우입니다. 

 

다이나믹 라우팅

네트워크의 양이 방대해질 경우, 관리자가 스태틱 라우팅, 즉 수작업으로 라우팅 테이블을 관리하는 것을 무리한 일입니다. 라우터끼리 경로 정보와 상태를 교환하여 자동으로 라우팅 테이블을 형성합니다. 현재는 대부분 다이나믹 라우팅을 사용 중입니다.

 

어쨌거나, 위와 같은 3가지 방법으로 경로 정보를 얻고 최적의 경로로 생각되는 경로를 라우팅 테이블에서 관리하고, 이러한 일련의 과정을 '라우팅'이라고 합니다. 라우팅 테이블을 참고하여 실제로 패킷을 보내는 것을 '스위칭'이라고 합니다. 오해하지 마세요 장치 이름인 스위치가 아니라 '스위칭'입니다.

 

 

패킷을 포워딩하는 역할 (스위칭)

 

라우팅 테이블을 참고하여 패킷을 포워딩하는 작업을 스위칭이라고 합니다.

한번 스위칭 작업을 하면, 해당 내역을 캐싱되어서 다음에는 라우팅 테이블을 참고 및 연산하는 과정을 거치지 않고 빠르게 스위칭이 가능해집니다.

 

** tip 라우팅 테이블에서 가장 좋은 항목을 찾는 방법(알고리즘)인데 Longest Prefix Match라고 합니다. Exact Match가 아닌 경우 이 알고리즘에 기반한 연산을 하는데, 이 비용을 아끼려고 캐싱을 하는 겁니다.

 

 

 

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체