2014년 6월 29일 일요일

[이론] 라우터가 패킷을 받으면 무슨 일이 발생할까요?




라우터가 패킷을 수신하면 패킷에 있는 L2 헤더 정보를 제거하고 IP 목적지 주소를 확인합니다. 목적지 Prefix를 발견하면 자신의 나가는 인터페이스의 mac address를 추가하고 연결된 디바이스로 송부합니다. 라우팅 테이블에서 라우팅 경로가 발견되지 않을 경우 패킷을 드랍합니다.

패킷을 받으면, 라우터는 아래 세가지의 전형적인 스텝으로 처리합니다.
1. Routing
2. Forwarding(Switching)
3. Encapsulation

Routing Process: 라우터는 데이터 패킷을 포워딩하기 위한 라우팅 테이블 리스트 및 물리적인 인터페이스 연결 정보를 저장하고 있습니다. 라우터는 Static configuration 또는 IGP(OSPF, EIGRP, RIP, IS-IS)와 같은 동적인 정보로 라우팅 경로를 파악합니다.

라우터가 패킷을 받으면, Layer 2 헤더 정보를 삭제합니다. 라우터는 패킷을 내보낼 인터페이스를 찾기 위해 IP 라우팅 테이블에서 longest-prefix를 매칭합니다.

가령, 서로 다른 3개의 subnet mask가 존재한다고 가정해 보겠습니다.

sh ip route 1.1.1
ip route 1.1.1.0 255.255.255.0 fa0/2
ip route 1.1.0.0 255.255.0.0 fa0/1
ip route 1.0.0.0 255.0.0.0 fa0/0

위의 예제에서 라우터가 목적지 주소인 1.1.1.1에 대한 경로를 살펴보기 위해(route lookup) 3개의 subnet 중 longest-prefix를 매칭시켜 봅니다. 1.1.1.0/24의 경우가 logest-prefix 관점에서 가장 베스트 경로를 제공하므로 fa0/2로 패킷을 포워딩합니다.



그리고,

ip route 1.1.1.1 255.255.255.255 2.2.2.2
ip route 1.1.1.1 255.255.255.255 FastEthernet0/0

이 둘의 차이는 목적지 주소를 바로 지정한 경우(2.2.2.2) 더이상의 절차는 필요 없으나, 인터페이스(FastEthernet0/0)으로 지정한 경우 Recursive lookup을 통해 next hop ip를 살펴봐야 합니다.

Routing Process: 스위칭 프로세스로 알려져 있으며, 라우터가 출구 인터페이스(Outgoing interface)을 발견하면, 스위칭 프로세스에 의하여 패킷을 이동시킵니다. 이러한 과정은 프로세스 스위칭(Process Switching), Fast Switching 또는 CEF Switching을 이용합니다. 포워딩은 스위칭을 지원하는 라우팅 프로세스나 인터페이스 카드에 있는 인접 테이블을 이용하여 진행합니다.

- Process Switching은 모든 포워딩 결정을 위해 CPU가 필요합니다.
- Fast Switching 역시 CPU를 소모하나 초기 패킷이 포워딩되고 나면, 캐싱을 이용하여 바로 포워딩 처리합니다.
- CEF Switching은 CEF FIB와 인접 테이블을 이용하며, 라우터는 초고속으로 패킷을 포워딩합니다.

Encapsulation Process: L3 헤더는 있는 그대로 유지되나 L2 헤더는 홉이 변경될 때마다 변경되어 전송합니다.

By Unknown with No comments

0 개의 댓글:

댓글 쓰기