600 likes | 973 Views
Chapter 6. IP 패킷 전달과 포워딩. 학습목표 (OBJECTIVES):. 네트워크 계층에서 패킷 전달 (delivery), 그리고 직접 전달과 간접 전달 차이점 구분 네트워크 계층에서 패킷 포워딩 (forwarding), 그리고 목적지 - 주소 - 기반 포워딩과 레이블 - 기반 포워딩 다음 - 홉 (next-hop), 네트워크 - 지정 (network-specific), 호스트 - 지정 (host-specific), 디폴트 (default) 를 포함한 서로 다른 포워딩 기술
E N D
Chapter 6 IP 패킷 전달과 포워딩
학습목표(OBJECTIVES): • 네트워크 계층에서 패킷 전달(delivery), 그리고 직접 전달과 간접 전달 차이점 구분 • 네트워크 계층에서 패킷 포워딩(forwarding), 그리고 목적지-주소-기반 포워딩과 레이블-기반 포워딩 • 다음-홉(next-hop), 네트워크-지정(network-specific), 호스트-지정(host-specific), 디폴트(default)를 포함한 서로 다른 포워딩 기술 • 클래스 기반 주소지정과 클래스 기반이 아닌 주소지정에서의 라우팅 테이블과 테이블을 검색하기 위한 알고리즘 • MPLS 기술 소개 레이블 기반 포워딩이 수행되는 방법 • 라우터 구성요소, 각 구성요소들의 목적과 관계
Chapter Outline 6.1 Delivery 6.2 Forwarding 6.3 Structure of a Router
6-1 전달(DELIVERY) 네트워크 계층은 기반 물리 네트워크에 의해 패킷을 처리하는 과정을 감독한다. 이 처리과정을 패킷 전달(packet delivery)이라 한다. 최종 목적지까지 패킷 전달은 두 가지 방법(직접과 간접)에 의해 이루어진다.
직접 전달(direct delivery) • 최종 목적지가 전달자(deliverer)와 같은 네트워크에 연결되어 있는 호스트 • 패킷의 발신지와 목적지가 같은 네트워크에 위치 • 최종 라우터와 목적지 호스트 사이에 수행 • 목적지 주소에서 netid를 추출한 후 네트워크 주소와 비교 • 같으면 직접 전달 수행 • 송신자는 목적지 IP 주소를 이용하여 목적지 물리 주소를 찾아서(ARP이용, 8장) 데이터 링크 계층으로 보내어 패킷을 전달
간접 전달(indirect delivery) • 최종 목적지가 같은 네트워크에 있지 않은 호스트 • 최종 목적지와 같은 네트워크에 연결된 라우터에 • 도달 할 때 까지 여러 라우터를 경유해서 전달 • 목적지 IP 주소와 라우팅 테이블을 이용하여 패킷이 전달되어야 하는 다음 라우터의 IP 주소를 찾는다
6-2 포워딩(FORWARDING) 포워딩이란 패킷을 목적지로 가는 경로상에 놓는 것을 의미한다. 오늘날의 인터넷은 링크(네트워크)의 조합으로 되어 있으므로, 포워딩은 패킷을 다음 홉(최종 목적지또는 중간 연결 장치)으로 배달하는 것을 의미한다. IP 프로토콜이 원래 비연결형 프로토콜로 설계되었지만, 오늘날의 경향은 IP 를연결-중심 프로토콜로 사용하고 있다.
포워딩(Forwording) • 목적지 주소 기반 포워딩 • 다음-홉 • 네트워크-지정 • 호스트 지정 • 디폴트 • 레이블 기반 포워딩
다음-홉(Next-hop method) • 라우팅 테이블을 가장 작게 만드는 기술 • 전체 경로 정보대신 다음 홉 주소만 저장
네트워크-지정(Network-specific) 방법 • 라우팅 테이블 작게, 검색과정 간단하게 • 같은 네트워크에 연결된 모든 호스트 별 엔트리 대신 네트워크 주소지정
호스트-지정-라우팅(Host-specific routing) • 라우팅 테이블에 목적지 주소 저장 • 네트워크-지정 라우팅 반대 • 관리자가 네트워크 제어 시 효과적
디폴트 라우팅(Default routing) • 인터넷상의 모든 네트워크 나열대신 디폴트 엔트리만 지정
서브넷팅 없는 클래스기반 주조지정에서 단순화된 포워딩 모듈
Example 6.1 다음 쪽 그림은인터넷의 일부분에서 가상의 네트워크이다. 라우터 R1의 라우팅 테이블을 보이시오. Solution 다음 쪽 그림은 라우터 R1에서 사용하는 3개의 테이블을 보여준다. 일부 엔트리에는 다음 홉 주소가 비어있는 경우가 있는데, 목적지가 라우터가 연결된 네트워크와 같은 네트워크에 있기 때문이다(직접 전달). 이 경우에, ARP가 사용하는 다음 홉 주소는 패킷의 목적지 주소이다(8장 참조).
Example 6.2 그림에서 Router R1은 목적지 주소 192.16.7.14를 갖는 패킷을 받았다. 패킷이 어떻게 포워딩 되는지 보여라. Solution 목적지 주소는 11000000 00010000 000001110 0001110 이다. 주소를 오른쪽으로 28 비트 이동하면, 결과는 00000000 00000000 00000000 00001100 또는12이다. 목적지 네트워크는 클래스 C 이다. 네트워크 주소는 목적지 주소의 왼쪽에서 24 비트를 뽑아내면 192.16.7.0 이다. 클래스 C의 테이블은 검색한다. 네트워크 주소는 첫 번째 향에서 찾아낸다. 다음-홉 주소 111.15.17.32. 와인터페이스 m0 를 ARP에 보내진다(8장 참조).
Example 6.3 그림에 있는 Router R1은 목적지 주소 167.24.160.5를 가진 패킷을 받았다. 패킷이 포워딩 되는 과정을 보이시오. Solution 2진수로 목적지 주소는 10100111 00011000 10100000 00000101 이다. 주소를 오른쪽으로 24비트 이동한다. 결과는 00000000 00000000 00000000 00001010 또는10이다. 클래스 B 이다. 네트워크 주소는 목적지 주소에서 왼쪽 16 비트를 뽑아내면 결과는 167.24.0.0이다. 클래스 B에 대한 테이블을 검색한다. 매칭되는 네트워크 주소가 없다. 패킷은 디폴트 라우터로 포워딩하면 된다(네트워크는 인터넷 어딘가에 있다). 다음-홉 주소 111.30.31.18 와인터페이스 번호 m0이 ARP에 전해진다.
서브넷팅이 있는 클래스기반 주소에서 단순화된 포워딩 모듈
Example 6.4 다음 쪽 그림은 4개의 서브넷이 연결된 라우터를 보여주고 있다. 몇 가지 점을 주목하라. 첫 째, 사이트 주소는 145.14.0.0/16 (클래스 B 주소). 목적지 주소가 범위 145.14.0.0 에서 145.14.255.255를 가진 모든 패킷은인터페이스 m4로 전달되어 라우터에 의해 최종 목적지 서브넷에 전해진다. 둘 째, we have used the address for the 인터페이스 m4에 대해 주소 x.y.z.t/n를 사용하는 이유는 이 라우터가 연결된 라우터를 모르기 때문이다. 세 째, 테이블은 외부로 나가는 패킷에 대한 디폴트 엔트리를 가지고 있다. 라우터는 모든 목적지 주소에 대해 서브넷 마스크 /18 를 적용하도록 구성되어 있다.
Example 6.5 Example 6.5 다음 쪽 그림의 router는 목적지 주소 145.14.32.78 를 가진 패킷을 수신하였다. 패킷이 포워딩되는 과정을 보이시오. Solution 마스크는 /18이다. 마스크를 적용하면 서브넷 주소는 145.14.0.0 이다. 패킷은 next-hop 주소 145.14.32.78와 outgoing interface m0와 함께 ARP(8장 참조)로 전달된다.
Example 6.6 앞쪽 그림에 145.14.0.0 네트워크 내의 호스트가 주소 7.22.67.91 인 호스트로 보내는 패킷을 가지고 있다. 패킷이 어떻게 전달되는지 보여라. Solution 라우터는 패킷을 받아서 마스크 (/18)를 적용한다. 네트워크 주소는 7.22.64.0 이다. 테이블을 검색하면 부합하는 주소를 찾지 못하게된다. 라우터는 디폴트 라우터의 주소(그림에는 없음)를 사용하여 패킷을 라우터에 보낸다.
Note In classful addressing we can have a routing table with three columns; in classless addressing, we need at least four columns.
클래스 기반이 아닌 주소체계에서 간단화된 포워딩 모듈
Example 6.7 다음 쪽 그림의 네트워크 구성에서 router R 의 라우팅 테이블을 작성하시오. Solution Table 6.1 은 라우팅 테이블이다
Example 6.8 앞 쪽 그림의 R1에 목적지 주소 180.70.65.140 를 가진 패킷이 도착했다면 포워딩 과정을 보이시오. Solution 라우터는 다음 단계를 수행한다: 첫 째 목적지 주소에 마스크 (/26)를 적용한다. 결과는 180.70.65.128인데, 부합되는 네트워크 주소가 없다. 둘 째 목적지 주소에 마스크(/25) 를 적용한다. 결과는 180.70.65.128가 네트워크 주소와 부합된디. 다음-홉 주소(이 경우에 패킷의 목적지 주소와 interface number m0 이 계속되는 처리 과정을 위해 ARP (8장 참조)에 보내진다.
Example 6.9 라우터 R1에 목적지 주소 201.4.22.35 를 가진 패킷이 도착했다면 포워딩 처리 과정을 보이시오. Solution 라우터는 다음 단계를 수행한다: 첫째 목적지 주소에 마스크(/26)를 적용한다. 결과는 201.4.22.0인데, 해당하는 네트워크 주소(row 1)와 부합되지 않는다. 둘째 목적지 주소에 마스크(/25)를 적용한다. 결과는 201.4.22.0인데, 해당하는 네트워크 주소(row 2)와 부합되지 않는다. 세째목적지 주소에 마스크(/24)를 적용한다. 결과는 201.4.22.0인데, 해당하는 네트워크 주소와 부합된다.
Example 6.10 R1에 목적지주소 18.24.32.78 를 가진 패킷이 도착했다면 포워딩 처리과정을 보이시오. Solution 이번에는 목적지 주소에 모든 마스크를 적용하지만 부합되는 네트워크 주소를 찾지 못한다. 테이블의 맨 끝에 다다르면 모듈은 next-hop address 180.70.65.200 와 interface number m2를 ARP(8장 참조)에게 보낸다. 이 패킷은 디폴트 라우터를 사용하여 외부 인터넷으로 보내는 패킷 일 것이다.
Example 6.11 이제 다른 유형의 예를 살펴보자. 만약 라우팅 테이블 내용을 알고 있다면 라우터의 네트워크 구성을 알아낼 수 있는가? router R1의 라우팅 테이블은 Table 6.2 에 있다. 접속형태(topology)를 그릴 수 있는가? Solution 라우팅 테이블 정보를 알고 있다 해도 정확한 접속형태를 모두 알 수는 없다. 분명한 것은 router R1에 3개의 인터페이스 m0, m1, 와m2이 있다. 이는 3개의 네트워크가 router R1에 직접 연결되어 있다. 또, 2개의 네트워크가 R1에 간접적으로 연결되어 있다. Next-hop 열을 보면 적어도 R1외에 3개의 라우터가 있는 것이 분명하다. 네트워크 140.6.12.64은 router R3에 직접 또는 point-to-point network(WAN) 아니면 다른 라우터에 연결되어있는지 정확하게 알 수 없다. 다음 쪽 그림은 추축한 접속형태이다.
주소 집단화(Address aggregation) • 테이블 크기가 증가하고 탐색시간 증가를 완화 TCP/IP Protocol Suite
가장 긴 마스크 부합(Longest mask matching) 마스크 길이가 긴 것부터 부합 적용 TCP/IP Protocol Suite
라우팅 • 계층적 라우팅(Hierarchical Routing) • 라우팅 테이블의 크기가 커지는 문제를 해결하기 위해 도입 • 인터넷을 백본, 지역, 로컬로 나누는 것처럼 계층구조 개념 도입 • 지리적 라우팅(Geographical Routing) • 국가간 라우팅을 위한 라우팅 테이블에 한 개의 엔트리 사용 • 라우팅 테이블 탐색 알고리즘개선
Example 6.12 계층적 라우팅의 예로서 다음 쪽 그림을 생각해 보자. 지역(regional) ISP는 주소 120.14.64.0로 시작하는 16,384개의 주소를 할당받았다. 지역 ISP는 이 블록을 각각 4096개의 주소를 갖는 4개의 서브블록으로 나누었다. 이 중 3개는 local ISP에 할당하고s, 두 번째 블록은 나중에 사용하기 위해 예비용으로 두기로 했다. 각 블록의 마스크는 원래의 블록 마스크 /18을 4개로 나누었기 때문에 /20 이 되었다.
레이블 기반 포워딩 • 라우팅을 교환(Switching)으로 대치하여 IP를 연결-지향 프로토콜처럼 동작
Example 6.13 다음 쪽 그림은 가장 긴 부합(longest match) 알고리즘을 이용한 간단한 라우팅 테이블 탐색 예를 보여준다. 오늘날, 보다 더 효율적인 알고리즘이 많이 있지만, 원리는 같다. 포워딩 알고리즘이 패킷의 목적지 주소를 받으면, 마스크 열을 찾아보게 된다. 각 엔트리에 대해, 목적지 네트워크 주소를 찾기 위해 마스크를 적용한다. 부합되는 엔트리를 찾을 때까지 테이블내의 네트워크 주소를 검사한다. 그런 다음 패킷을 다음 홉으로 전달하기 위해 다음 홉 주소와 인터페이스 번호를 추출하여 ARP 프로토콜에 보내진다.
Example 6.14 다음 쪽 그림은 교환 테이블(switching table)에 접근하기 위해 레이블(label)을 이용한 간단한 예를 보여준다. 레이블은 테이블에 있는 정보를 즉시 찾기 위해 테이블에 대한 인덱스로 사용된다.
MPLS(Multi-Protocol Label Switching) • 1980년대 교환기술을 구현한 MPLS 라우터 개발 • 라우터는 목적지 기반, 교환은 레이블 기반으로 패킷 포워딩 • 이를 위해 새로운 헤더 추가 • IP 패킷에 추가된 MPLS 헤더
레이블의 스택으로 이루어진 MPLS header • 레이블 : 20 비트, 라우팅 테이블 인덱스에 사용 • Exp : 3 비트, 실험 목적 예약 • S : 1 비트, 스텍내의 서브헤더 상황 정의(1:마지막) • TTL : 8 비트 필드, IP 데이그램의 TTL과 유사 • 계층적 교환 • 전통적인 계층적 라우팅과 유사 • 패킷이 두 개의 레이블을 가진 경우, 상위는 조직 외부 교환기를 통하여 패킷 포워딩 • 하위 레이블은 조직 내에서 패킷을 서브넷까지 전달 사용
6-3 라우터 구조 포워딩과 라우팅에 대한 설명에서, 러우터를 일력 포트(인터페이스) 중 하나로 들어오는 패킷을 받아서 라우팅 테이블을 사용하여 패킷이 나갈 출력 포트를 찾은 후에 이 출력 포트를 통하여 패킷을 내보내는 블랙박스로 표현하였다. 이 절에서, 블랙박스의 내부를 살펴보고자 한다. 그렇지만, 라우터에 관한 책들이 여러 권 출간되었으므로 자세한 설명은 피하고 대략적인 설명만 한다.