공부용 블로그 | seokmin100
혼공네트 - 3차시_네트워크 계층 본문
LAN을 넘어서는 네트워크 계층
데이터 링크 계층의 한계
물리 계층과 데이터 링크 계층만으로는 LAN을 넘어서 통신하기 어렵다. 대표적으로 두 가지의 이유가 있다.
1. 물리 계층과 데이터 링크 계층만으로는 다른 네트워크까지의 도달 경로를 파악하기 어렵다
물리 계층과 데이터 링크 계층은 기본적으로 LAN을 다루는 계층이다. 하지만 LAN에 속한 호스트끼지만 통신하지는 않는다. 패킷을 서로에게 도달하기까지 수많은 네트워크 장비를 거치며 다양한 경로를 통해 이동하는데, 이렇게 패킷이 이동할 최적의 경로를 결정하는 것을 라우팅(Routing)이라고 한다.
물리 계층과 데이터 링크 계층의 장비로는 라우팅을 수행할 수 없지만, 네트워크 계층의 대표적인 장비인 라우터(Router)로는 가능하다.
2. MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치를 특정하기 어렵다
현실적으로 모든 호스트가 모든 네트워크에 속한 모든 호스트의 MAC 주소를 서로 알고 있기란 어렵다. 그래서 MAC 주소만으로는 모든 호스트를 특정하기 어렵다. 네트워크를 통해 정보를 주고 받는 과정은 택배를 송수신하는 과정과 같고, MAC 주소는 네트워크 인터페이스(NIC)마다 할당된 일종의 개인 정보와도 같다. 택배의 수신인 역할을 하는 정보가 MAC 주소라면, 수신지 역할을 하는 정보는 네트워크 계층의 IP 주소이다. 네트워크에서는 MAC 주소와 IP 주소를 함께 사용하고, 기본적으로 IP 주소를 우선으로 활용한다.
MAC 주소를 물리 주소라고도 부르는 것처럼 IP 주소는 논리 주소라고 부른다. MAC 주소는 일반적으로 NIC마다 할당되는 고정된 주소이지만, IP 주소는 호스트에 직접 할당이 가능하다. DHCP(Dynamic Host Configuration Protocol)라는 특정 프로토콜을 통해 자동으로 할당받거나 사용자가 직접 할당할 수 있고, 한 호스트가 복수의 IP 주소를 가질 수도 있다.
정리하면, 물리 계층과 데이터 링크 계층만으로는 네트워크 간의 통신이 어렵고, 네트워크 계층이 다른 네트워크 와의 통신을 가능하게 한다. 이는 IP 주소를 이용해 수신지 주소를 설정하거나, 해당 수신지까지의 최적의 경로를 결정하는 라우팅이 네트워크 계층에서 이루어지기 때문이다.
인터넷 프로토콜
네트워크 계층의 가장 핵심적인 프로토콜 하나를 꼽자면 인터넷 프로토콜(IP: Internet Protocol)이다. IP에는 IPv4와 IPv6라는 두 가지 버전이 있다. 일반적으로 IP 혹은 IP 주소를 말할 떄는 주로 IPv4를 의미하는 경우가 많다.
- IP 주소 형태
IP 주소는 4바이트(32비트)로 주소를 표현할 수 있고, 숫자당 8비트로 표현되기에 0~255 범위 안에 있는 네 개의 10진수로 표기된다. 각 10진수는 점(.)으로 구분되며, 점으로 구분된 8비트(0~255 범위의 10진수)를 옥텟(Octet)이라고 한다.
ex) 192.168.1.1
- IP의 기능
IP의 기능은 다양하지만 대표적인 기능으로는 IP 주소 지정과 IP 단편화가 있다. IP(IPv4)를 정의한 인터넷 표준 문서(RFC 791)에서도 이를 명확히 명시하고 있다.
IP 주소 지정(IP Addressing)은 IP 주소를 바탕으로 송수신 대상을 지정하는 것을 의미한다. IP 단편화(IP Fragmentation)는 전송하고자 하는 패킷의 크기가 MTU라는 최대 전송 단위보다 클 경우, 이를 MTU 크기 이하의 복수의 패킷으로 나누는 것을 의미한다.
MTU(Maximum Transmission Unit)란 한 번에 전송 가능한 IP 패킷의 최대 크기를 의미한다. IP 패킷의 헤더도 MTU 크기에 포함된다. 일반적인 MTU의 크기는 1500바이트이며, MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조합된다.
- IPv4
IPv4 패킷은 프레임의 페이로드로 데이터 필드에 명시된다. 모든 필드 중에서도 가장 핵심이 되는 부분인 필드는 1.식별자, 2.플래그, 3.단편화 오프셋, 4.TTL, 5.프로토콜, 6.송신지 IP 주소, 7.수신지 IP 주소 입니다. 이 중에서 식별자, 플래그, 단편화 오프셋 필드는 IP 단편화 기능에 관여하고, 송신지 IP 주소, 수신지 IP 주소는 IP 주소 지정 기능에 관여한다.
1. 식별자
식별자(Identifier)는 패킷에 할당된 번호이다. 만일 메시지 전송 과정에서 IPv4 패킷이 여러 조각으로 쪼개져서 전송되었다면, 수신지에서는 이들을 재조합해야 한다. 이때 잘게 쪼개져서 수신지에 도착한 IPv4 패킷들이 어떤 메시지에서부터 쪼개졌는지를 인식하기 위해서 식별자를 사용한다.
2. 플래그
플래그(Flag)는 총 세 개의 비트로 구성된 필드이다. 이 중에서 첫 번째 비트는 항상 0으로 예약된 비트로 현재 사용되지 않는다.
사용되는 나머지 두 개의 비트 중에서 하나는 DF라는 이름이 붙은 비트이다. 이는 Don't Fragment의 약어로, IP 단편화를 수행하지 말라는 표시이다. 만일 이 비트가 1로 설정되어 있다면 IP 단편화를 수행하지 않고, 0으로 설정되어 있다면 IP 단편화가 가능하다.
또 하나의 비트는 MF라는 비트이다. 이는 More Fragment의 약어로, 단편화된 패킷이 더 있는지를 나타낸다. 0이라면 이 패킷이 마지막 패킷임을 의미하고, 1이라면 쪼개진 패킷이 아직 더 있다는 것을 의미한다.
3. 단편화 오프셋
단편화 오프셋(Fragment Offset)은 패킷이 단편화되기 전에 패킷의 초기 데이터에서 몇 번째로 떨어진 패킷인지를 나타낸다. 단편화되어 전송되는 패킷들은 수신지에 순서대로 도착하지 않을 수 있다. 따라서 수신지가 패킷을 순서대로 재조합하려면 단편화된 패킷이 초기 데이터에서 몇 번째 데이터에 해단하는 패킷인지 알아야 한다. 이를 판단하기 위해 단편화 오프셋이 활용된다.
4. TTL
TTL(Time To Live)은 패킷의 수명을 의미한다. 멀리 떨어진 호스트끼리 통신할 때 패킷은 여러 라우터를 거쳐 이동할 수 있는데 패킷이 하나의 라우터를 거칠 때마다 TTL이 1씩 감소하며, TTL 값이 0으로 떨어진 패킷을 폐기된다.
패킷이 호스트 또는 라우터에 한 번 전달되는 것을 홉(Hop)이라고 한다. 즉, TTL 필드의 값은 홉마다 1씩 감소한다. TTL 필드의 존재 이유는 무의미한 패킷이 네트워크상에 지속적으로 남아 있는 것을 방지하기 위함이다.
5. 프로토콜
IP 패킷의 프로토콜은 상위 계층의 프로토콜이 무엇인지 를 나타내는 필드이다. ex) TCP : 6번, UDP : 17번
6. 송신지 IP 주소와 7. 수신지 IP 주소
송신지 IP 주소(Source IP Address)와 수신지 IP 주소(Destination IP Address)에서는 이름 그대로 송 수신지의 IPv4 주소를 알 수 있다.
- IPv6
IPv6 주소는 16바이트(128비트)로 주소를 표현할 수 있고, 콜론(:)으로 구분된 8개 그룹의 16진수로 표기된다. 이론적으로 2¹²⁸개 로 사실상 무한에 가까운 개수를 할당할 수 있다.
IPv4 주소 ex) 192.169.1.1
IPv6 주소 ex) 2001:0230:abcd:ffff:oooo:oooo:ffff:1111
IPv6 패킷의 기본 헤더는 IPv4에 비해 간소화되어 있다.
1. 다음 헤더
다음 헤더(Next Header) 필드는 상위 계층의 프로토콜을 가리키거나 확장 헤더를 가리킨다. IPv6의 헤더는 기본 헤더이다. IPv6는 추가적인 헤더 정보가 필요할 경우에 기본 헤더와 더불어 확장 헤더(Extension Header)라는 추가 헤더를 가질 수 있다.
확장 헤더는 기본 헤더와 페이로드 데이터 사이에 위치한다. 또한 마치 꼬리에 꼬리를 물듯 또 다른 확장 헤더를 가질 수도 있다.
2. 홉 제한
홉 제한(Hop Limit) 필드는 IPv4 패킷의 TTL 필드와 비슷하게 패킷의 수명을 나타내는 필드이다.
3. 송신지 IP 주소와 4. 수신지 IP 주소
송신지 주소(Sourece Address)와 수신지 주소(Destination Address)를 통해 IPv6 주소 지정이 가능하다. IPv4 헤더 길이는 가변적이지만, 반면 IPv6 기본 헤더는 40바이트로 고정적이다.
ARP
ARP(Address Resolution Protocol)는 IP 주소를 통해 MAC 주소를 알아내는 프로토콜이다. 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아낼 수 있다. 네트워크에서 기본적으로 사용되는 주소는 IP 주소이지만, 패킷을 올바르게 송신하려면 상대 호스트의 MAC 주소까지 알아야 한다. 하지만 MAC 주소를 알지 못할 때 ARP가 사용됩니다.
ARP의 동작 과정은 1. ARP 요청, 2. ARP 응답, 3. ARP 테이블 갱신 과 같습니다.
1. ARP 요청
만약 A와 B라는 컴퓨터가 있을 때 우선 A는 네트워크 내의 모든 호스트에게 브로드캐스트 메시지를 보낸다. 이 메시지는 ARP 요청(ARP Request)이라는 ARP 패킷이다.
2. ARP 응답
네트워크 내의 모든 호스트가 ARP 요청 메시지를 수신하지만, B를 제외한 나머지 호스트는 자신의 IP 주소가 아니므로 이를 무시한다. B는 자신의 MAC 주소를 담은 메시지를 A에게 전송한다. 이 유니캐스트 메시지는 ARP 응답(ARP Reply)이라는 ARP 패킷이다.
3. ARP 테이블 갱신
ARP를 활용할 수 있는 모든 호스트는 ARP 테이블(ARP Table)이라는 정보를 유지한다. ARP 테이블은 IP 주소와 그에 맞는 MAC 주소 테이블을 대응하는 표이다. A는 1, 2 단계를 통해 B의 MAC 주소를 알게 되면 IP 주소와 MAC 주소의 연관 관계를 ARP 테이블에 추가한다. 일정 시간이 지나면 삭제되고, 임의로 삭제할 수도 있다.
IP주소
네트워크 주소와 호스트 주소
네트워크 주소는 네트워크 ID, 네트워크 식별자(Network Identifier) 등으로 부르기도 하며, 호스트 주소는 호스트 ID, 호스트 식별자(Host Identifier) 등으로 부른다. IP 주소에서 호스트 주고 공간을 크게 할당하면 호스트가 할당되지 않은 다수의 IP 주소가 낭비될 수 있다. 반대로 무조건 호스트 주소 공간을 작게 할당하면 호스트가 사용할 IP 주소가 부족해질 수 있다. 이런 문제를 해결하기 위해 생겨난 개념이 바로 IP 주소의 클래스(Class)이다.
클래스풀 주소 체계
클래스는 네트워크 크기에 따라 IP 주소를 분류하는 기준이다. 클래스를 이용하면 필요한 호스트 IP 개수에 따라 네트워크 크기를 가변적으로 조정해 네트워크 주소와 호스트 주소를 구획할 수 있다. 클래스를 기반으로 IP 주소를 관리하는 주소 체계를 클래스풀 주소 체계(Classful Addressing)라고 한다. 클래스는 총 다섯 개가 있다.
A 클래스 : 네트워크 주소는 비트 '0'으로 시작하고 1옥텟으로 구성되며, 호스트 주소는 3옥텟으로 구성된다.
0.0.0.0 ~ 127.255.255.255
B 클래스 : 네트워크 주소는 비트 '10'으로 시작하고 2옥텟으로 구성되며, 호스트 주소도 2옥텟으로 구성된다.
128.0.0.0 ~ 191.255.255.255
C 클래스 : 네트워크 주소는 비트 '110'으로 시작하고 3옥텟으로 구성되며, 호스트 주소는 1옥텟으로 구성된다.
다만 호스트의 주소 공간을 모두 사용할 수 있는 것은 아니다. 호스트 주소가 전부 0인 IP 주소와 호스트 주소가 전부 1인 IP 주소는 특정 호스트를 지칭하는 IP 주소로 활용할 수 없다. 전자는 해당 네트워크 자체를 의미하는 네트워크 주소로 사용되고, 후자는 브로드캐스트를 위한 주소로 사용되기 때문이다.
클래스리스 주소 체계
클래스풀 주소 체계는 클래스별 네트워크의 크기가 고정되어 있기에 여전히 다수의 IP 주소가 낭비될 가능성이 크다는 문제가 있다. 그래서 클래스풀 주소 체계보다 더 유동적이고 정교하게 네트워크를 구획할 수 있는 클래스리스 주소 체계(Classless Addressing)가 등장했다. 이름처럼 클래스 개념 없이 클래스에 구애받지 않고 네트워크의 영역을 나누어서 호스트에게 IP 주소 공간을 할당하는 방식이다.
- 서브넷 마스크
클래스풀 주소 체계는 클래스를 이용해 네트워크 주소와 호스트 주소를 구분하지만, 클래스리스 주소 체계는 클래스를 이용하지 않으므로 IP 주소상에서 네트워크 주소와 호스트 주소를 구분 짓는 지점은 임의의 지점이 될 수 있다. 클래스리스 주소 체계에서는 네트워크와 호스트를 구분 짓는 수단으로 서브넷 마스크를 이용한다.
서브넷 마스크(Subnet Mask)는 IP 주소상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열을 의미한다. 네트워크 내의 부분적인 네트워크(서브네트워크(Subnetwork))를 구분 짓는(마스크(Mask)) 비트열인 셈이다. 서브넷 마스크를 이용해 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것을 서브네팅(Subnetting)이라고 한다.
A 클래스 : 255.0.0.0(11111111.00000000.00000000.00000000)
B 클래스 : 255.255.0.0(11111111.11111111.00000000.00000000)
C 클래스 : 255.255.255.0(11111111.11111111.11111111.00000000)
- 서브네팅: 비트 AND 연산
서브넷 마스크를 이용해 네트워크 주소와 호스트 주소를 구분 짓는 방법은 IP 주소와 서브넷 마스크를 비트 AND 연산을 하면 된다.
비트 AND 연산(Bitwise AND Operation)이란 피연산자가 모두 1인 경우에는 1, 아닌 경우에는 0이 되는 연산이다.
- 서브넷 마스크 표기: CIDR 표기법
서브넷 마스크를 표기하는 방법은 크게 두 가지가 있다.
- 서브넷 마스크를 '255.255.255.0', '255.255.255.252'처럼 10진수로 직접 표기하는 방법
- 'IP 주소/서브넷 마스크상의 1의 개수' 형식으로 표기하는 방법
여기서 두 번째 방식처럼 표기하는 형식을 CIDR 표기법(CIDR; Classless Inter-Domain Routing notation)이라고 부른다.
공인 IP 주소와 사설 IP 주소
- 공인 IP 주소
공인 IP 주소(Public IP Address)는 전 세계에서 고유한 IP 주소이다. 네트워크 간의 통신, 이를테면 인터넷을 이용할 때 사용하는 IP 주소가 공인 IP 주소이다. 공인 IP 주소는 'ISP'나 '공인 IP 주소 할당 기관'을 통해 할당 받을 수 있다.
- 사설 IP 주소와 NAT
사설 IP 주소(Private IP Address)란 사설 네트워크에서 사용하기 위한 IP 주소이다. 사설 네트워크란 인터넷, 외부 네트워크에 공개되지 않은 네트워크를 의미한다. 사설 IP 주소으 할당 주체는 일반적으로 라우터이다.
NAT(Network Address Translation)는 IP 주소를 변환하는 기술이다. 주로 네트워크 내부에서 사용되는 사설 IP 주소와 네트워크 외부에서 사용되는 공인 IP 주소를 변환하는데 사용된다. NAT를 통해 사설 IP 주소를 사용하는 여러 호스트는 적은 수의 공인 IP 주소를 공유할 수 있다.
정적 IP 주소와 동적 IP 주소
- 정적 할당
정적 할당은 호스트에 직접 수작업으로 IP 주소를 부여하는 방식이다. 이렇게 할당된 IP 주소를 정적 IP 주소(Static Ip Address)라고 부른다. 일반적으로 부여하고자 하는 IP 주소, 서브넷 마스크, 게이트웨이(라우터) 주소, DNS 주소를 입력한다. 그러면 해당 호스트는 입력한 IP 주소에 해당하는 고정된 주소를 가지게 된다.
- 동적 할장과 DHCP
동적 할당은 정적 할당과는 달리 IP 주소를 직접 일일이 입력하지 않아도 호스테 IP 주소가 동적으로 할당되는 방식이다. 이렇게 할당된 IP 주소를 동적 IP 주소(Dynamic IP Address)라고 부른다. 동적 IP 주소는 사용되지 않을 경우 회수되고, 할당받을 때마다 다른 주소를 받을 수 있다.
IP 동적 할당에 사용되는 대표적인 프로토콜이 바로 DHCP(Dynamic Host Configuration Protocol)이다. DHCP를 통한 IP 주소 할당은 IP 주소를 할당받고자 하는 호스트(이하 클라이언트)와 해당 호스트에게 IP 주소를 제공하는 DHCP 서버(DHCP Server) 간에 메시지를 주고받음으로써 이루어진다. 여기서 DHCP 서버의 역할은 일반적으로 라우터(공유기)가 수행하지만, 특정 호스트에 DHCP 서버 기능을 추가할 수도 있다.
유의할 점은 DHCP로 할당받은 IP 주소는 사용할 기간(임대 기간)이 정해져 있다는 점이다. 임대 기간은 DHCP 서버에서 설정하기 나름이지만, 일반적으로 수 시간에서 수일로 설정한다. 임대 기간이 끝난 IP 주소는 다시 DHCP 서버로 반납된다.
IP 주소를 할당받는 과정에서 클라이언트와 DHCP 서버 간에 주고받는 메시지의 종류는 크게 네가지가 있다.
1. DHCP Discover(클라이언트 -> DHCP 서버)
클라이언트는 DHCp Discover 메시지를 통해 DHCP 서버를 찾는다. 이는 브로드캐스트로 전송되지만 클라이언트는 IP 주소를 할당받지 못했으므로 송신지 IP 주소는 0.0.0.0으로 설정된다.
2. DHCP Offer(DHCP 서버 -> 클라이언트)
1에서 메시지를 받은 뒤 클라이언트에게 DHCP Offer 메시지를 보낸다. 이 메시지는 클라이언트에게 할당해 줄 IP 주소를 제한하는 메시지이다. 클라이언트에게 제안할 IP 주소뿐만 아니라 서브넷 마스크, 임대 기간 등의 정보도 포함되어 있다.
3. DHCP Request(클라이언트 -> DHCP 서버)
DHCP Request는 2에서 받은 메시지의 응답이다. 이 또한 브로드캐스트로 전송된다.
4. DHCP ACK(DHCP 서버 -> 클라이언트)
이 메시지는 마치 최종 승인과도 같은 메시지이다. DHCP ACK 메시지까지 받은 클라이언트는 이제 할당받은 IP 주소를 자신의 IP 주소로 설정한 뒤 임대 기간 동안 IP 주소를 사용한다.
IP 주소의 사용 기간이 모두 끝나면 DHCP 서버에 반납해야 하지만 IP 주소 임대 기간이 끝나기 전에 임대 갱신(Lease Renewal)을 통해 임대 기간을 연장할수도 있다.
임대 갱신은 IP 주소의 임대 기간이 끝나기 전에 기본적으로 두 차례 자동으로 수행되는데 만일 모두 실패하면 그때 IP 주소는 DHCP 서버로 반납된다.
라우팅
라우터
라우터는 네트워크 계층의 핵심 기능을 담당한다. L3 스위치(L3 Switch)라고 부르는 장치도 넽으워크 계층의 대표 장치이지만 라우터와 기능상 상당 부분 유사하므로 엄밀히 구분하지 않는 경우가 많다.
멀리 떨어져 있는 호스트 간의 통신 과정에서 패킷은 서로에게 도달하기까지 여러 라우터를 거쳐서 다양한 경로로 이동할 수 있다. 이처럼 라우팅 도중 패킷이 호스트와 라우터 간에, 혹은 라우터와 라우터 간에 이동하는 하나의 고정을 홉(Hop)이라고 부븐다. 즉, 패킷은 '여러 홉을 거쳐' 라우팅될 수 있는 것이다.
라우팅 테이블
라우팅 테이블(Routing Table)은 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표와 같은 정보이다. 라우터는 라우팅 테이블을 참고하여 수신지까지 도달 경로를 판단한다.
라우팅 테이블에 포함된 정보는 라우팅 방식에 따라, 호스트의 환경에 따라 달라질 수 있다. 하지만 공통적인 정보이자 핵심적인 정보로는 수신지 IP 주소와 서브넷 마스크, 다음 홉이 있고, 이외에도 라우팅 테이블에 명시되는 대표적인 정보로 네트워크 인터페이스와 메트릭이 있다.
- 수신지 IP 주소와 서브넷 마스크 : 최종적으로 패킷을 전달할 대상을 의미한다.
- 다음 홉(Next Hop) : 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스를 의미한다. 게이트웨이라고 명시되기도 한다.
- 네트워크 인터페이스 : 패킷을 내보낼 통로이다. 인터페이스(NIC) 이름이 직접적으로 명시되거나 인터페이스에 대응하는 IP 주소가 명시되기도 한다.
- 메트릭(Metric) : 해당 경로로 이동하는 데에 드는 비용을 의미한다.
패킷 내의 수신지 IP 주소가 라우팅 테이블에 있는 수신지 IP 주소, 서브넷 마스크 항목과 완벽하게 합치되는 경우도 있지만, 라우팅 테이블에 없는 경로로 패킷을 전송해야 할 때가 있다. 이 경우 기본적으로 패킷을 내보낼 경로를 설정하여 해당 경로로 패킷을 내보낼 수 있다. 이 기본 경로를 디폴트 라우트(Default Route)라고 한다. 디폴트 라우트는 모든 IP 주소를 의미하는 0.0.0.0/0 으로 명시한다.
정적 라우팅과 동적 라우팅
- 정적 라우팅
정적 라우팅(Static Routing)은 사용자가 수동으로 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅 되는 방식이다.
- 동적 라우팅
동적 라우팅(Dynamic Routing)은 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하는 라우팅 방식이다. 이러한 이유로 동적 라우팅을 하명 라우팅 테이블 항목이 수시로 변할 수 있다. 네트워크 경로상에 문제가 방생했을 때 이를 우회할 수 있게 경로가 자동으로 갱신되기도 한다.
모든 라우터는 특정 수신지까지 도달하기 위한 최적의 경로를 찾아 라우팅 테이블에 추가하려 노력한다. 이를 위해 라우터끼리 서로 자신의 정보를 교환하게 되는데, 이 과정에서 사용되는 프로토콜이 바로 (동적) 라우팅 프로토콜이다.
라우팅 프로토콜
라우팅 프로토콜(Routing Protocol)은 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜이다.
라우팅 프로토콜은 크게 AS 내부에서 수행되느냐, AS 외부에서 수행되느냐에 따라 종류를 나눌 수 있다. 전자를 IGP(Interior Gateway Protocol), 후자를 EGP(Exterior Gateway Protocol)라고 한다. 대표적인 IGP로는 RIP, OSPF가 있고, 대표적인 EGP로는 BGP가 있다.
- IGP: RIP와 OSPF
대표적인 IGP로는 RIP(Routing Information Protocol)와 OSPF(Open Shortest Path First)가 있다. 이 프로토콜들은 최적의 경로를 선정하는 과정에서 거리 벡터가 사용되느냐, 링크 상태가 사용되느냐로 구분할 수 있다. RIP는 거리 벡터를, OSPF는 링크 상태를 사용하는 라우팅 프로토콜이다.
RIP는 거리 벡터 기반의 라우팅 프로토콜이다. 거리 백터(Distance Vector) 라우팅 프로토콜이란 이름 그대로 거리를 기반으로 최적의 경로를 찾는 라우팅 프로토콜을 의미한다. 거리는 홉의 수를 의미한다.
RIP는 인접한 라우터끼리 경로 정보를 주기적으로 교환하며 라우팅 테이블을 생신한다. 이를 통해 라우터는 특정 수신지에 도달하기까지의 홉 수를 알 수 있다. 그리고 특정 수신지까지 도달하기 위해 '홉 수가 가장 적은 경로'를 최적의 경로라고 판단한다. 그렇기에 홉 수가 적을 수록 라우팅 테이블상의 메트릭 값도 작아진다.
OSPF는 링크 상태(Link State) 라우팅 프로토콜이다. OSPF는 이러한 링크 정보를 비롯한 현재 네트워크의 상태를 그래프의 형태로 링크 상태 데이터베이스(LSDB; Link State DataBase)에 저장한다. 링크 상태 데이터베이스에는 라우터들의 연결 관계, 연결 비용 등 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터가 저장되어 있다. 라우터는 링크 상태 데이터베이스를 기반으로 현재 네트워크 구성을 마치 지도처럼 그린 뒤에 최적의 경로를 선택한다.
OSPF에서는 최적의 경로를 경정하기 위해 대역폭을 기반으로 메트릭을 계산한다. 대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식한다. 네트워크의 구성이 변경되었을 때 라우팅 테이블이 갱신된다.
OSPF에서는 AS를 에어리어(Area)라는 단위로 나누고, 구분된 에어리어 내에서만 링크 상태를 공유한다. 에어리어에는 번호가 부여되어 있으며, 에어리어 경계에 있는 ABR(Area Border Router)이라는 라우터가 에어리어 간의 연결을 담당한다.
- EGP: BGP
대표적인 EGP로는 BGP(Border Gateway Protocol)가 있다. AS 간의 통신에서 사용되는 대표적인 프로토콜로, AS 간의 통신이 '가능한' 프로토콜이다. 따라서 BGP로 AS 내 라우터 간 통신도 가능하다. AS 간의 통신을 위한 BGP는 eBGP(external BGP), AS 내의 통신을 위한 BGP는 iBGP(internal BGP)라고도 한다.
AS 간에 정보를 주고 받기 위해서는 AS 내에서 eBGP를 사용하는 라우터(이하 BGP 라우터)가 하나 이상 있어야 하고, 또 다른 AS의 BGP 라우터와 연결되어야 한다. 이 연결을 BGP 라우터 간에 BGP 메시지를 주고 받음으로써 이루어지는데, BGP 메시지를 주고받을 수 있도록 연결된 BGP 라우터를 피어(Peer)라고 정의한다. 즉, 다른 AS와의 BGP 연결을 유지하기 위해서는 BGP 라우터끼리 연결되어 피어가 되어야 한다. 이렇게 피어 관계가 되도록 연결하는 과정을 피어링(Peering)이라고 한다.
BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복합하고, 일정하지 않은 경우가 많다. 경로 결정 과정에서 수신지 주소와 더불어 다양한 '속성'과 '정책'이 고려되기 때문이다. BGP의 속성(Attribute)이란 경로에 대한 일종의 부가 정보이다. 종류는 다양하지만, 대표적인 속성으로는 AS-PATH와 NEXT-HOP 그리고 LOCAL-PREF가 있다.
1. AS-PATH 속성
AS-PATH 속성은 메시지가 수신지에 이르는 과정에서 통과하는 AS들의 목록을 의미한다. 메시지가 AS를 거칠때 마다 AS-PATH에는 거쳐 간 AS가 추가된다. 이 속성을 통해 알 수 있는 BGP(eBGP)의 특징이 크게 두 가지가 있다.
첫째, BGP는 AS 간의 라우팅을 할 때 거치게 될 '라우터'의 수가 아닌 'AS'의 수를 고려한다.
AS-PATH 길이가 더 짧은 경로라 할지도 거치게 될 라우터의 홉 수가 더 많을 수 있다.
둘째, BGP는 RIP처럼 단순히 수신지에 이르는 '거리'가 아닌, 메시지가 어디를 거쳐 어디로 이동하는지를 나타내는 '경로'를 고려한다.
이런 점에서 BGP는 경로 벡터(Path Vector) 라우팅 프로토콜의 일종이라 부르기도 한다.
2. NEXT-HOP 속성
NEXT-HOP 속성은 이름 그대로 다음 홉, 다음으로 거칠 라우터의 IP 주소를 나타낸다.
3. LOCAL-PREF 속성
LOCAL-PREF는 지역 선호도, LCOAL PREFerence의 약자이다. 이는 AS 외부 경로에 있어 AS 내부에서(local) 어떤 경로를 선호할지(preference)에 대한 척도를 나타내는 속성이다. 경로를 선택하는 과정에서 LOCAL-PREF 값은 일반적으로 AS-PATH나 NEXT-HOP 속성보다 우선시되며, LOCAL-PREF 값이 클수록 우선으로 선택된다.
'Network > 혼자 공부하는 네트워크' 카테고리의 다른 글
혼공네트 - 5차시_응용 계층 (4) | 2024.09.07 |
---|---|
혼공네트 - 4차시_전송 계층 (12) | 2024.09.01 |
혼공네트 - 2차시_물리 계층과 데이터 링크 계층 (1) | 2024.08.27 |
혼공네트 - 1차시_컴퓨터 네트워크 시작하기 (0) | 2024.08.25 |