Internet Routing Protocols
소개
- 인터넷 프로토콜은 인터넷을 운용하기 위해 필수적이다.
- 라우터들은 IP 데이터그램을 출발지에서 목적지까지 한 라우터에서 다른 라우터로 방향에 따라 보낸다. (위상기하학적 지식과 인터넷의 상태에 따라, 최저비용 기준)
- 라우터는 인터넷의 위상기하학적 개념을 가지고 있다. 인터넷 프로토콜은 이 정보는 공급한다.
자율 시스템(Autonomous System) = 라우팅 도메인(Routing Domain)
- 하나의, 명확히 정의된 외부 라우팅 정책을 가진 IP 네트워크들의 그룹.
- 관리적 측면에서 한 단체에 속하여 관리되고 제어됨으로써, 동일한 라우팅 정책을 사용하는 네트웍 또는 네트웍 그룹을 일컫는다. 한 자율시스템 내에서의 IP 네트웍은 라우팅 정보를 교환하기 위해 IGP를 사용하며, 타 자율시스템과의 라우팅 정보 교환을 위해서는 BGP를 사용한다. 과거에는 BGP 대신 EGP가 사용되었으며, 향후 BGP는 OSI 인터도메인 라우팅 프로토콜(Inter-Domain Routing Protocol)로 대체될 예정이다. (참조 : 텀즈 컴퓨터 용어사전)
라우팅과 포워딩
- 라우팅은 형성된 포워딩 테이블에 의한 처리과정이다. (정적 라우팅, 동적 라우팅)
- 라우팅은 네트워킹 역사를 통해 계속 발전되어온 복잡한 분산 알고리즘에 의존한다.
- 포워딩은 노드에서 지역적으로 수행되는 비교적 명확한 과정이다.
- 포워딩은 패킷을 이동시키고; 그 목적지 주소를 살피고; 테이블을 찾아보고; 그 테이블에 의해 결정된 경로로 패킷을 전송하는 것으로 이루어진다.
동적 라우팅 프로토콜
- 기능들 : 라우터들 간의 동적인 공유; 위상(topology)이 변화했을 때 자동적으로 라우팅 테이블을 업데이트; 목적지로의 최상의 경로를 결정
- 정적 라우팅과 비교해서, 관리상의 부담(overhead)이 적다.
- 동적 라우팅의 경비는 프로토콜 운용을 위한 라우터의 자원 부분에 들이고 있다.
동적 라우팅 프로토콜의 구성요소
- 데이터 구조 : 운용을 위한 테이블 and/or 데이터베이스 (RAM에 보관)
- 알고리즘 : 완료된 작업에 사용된 유한한 리스트; 용이한 라우팅 정보와 최적 경로 결정
- 라우팅 프로토콜 메시지 : 이웃을 발견하고 라우팅 정보를 교환하기 위해; 네트워크에 대한 정확한 정보를 습득하고 유지함
동적 라우팅 프로토콜 운용
- 모든 라우팅 프로토콜은 동일한 목적을 갖는다 : 원격 네트워크들을 습득하고 토폴로지가 변경되었을 때 빠르게 적응
- 일반적으로 동적 라우팅 프로토콜의 운용
* 인터페이스에서 라우팅 메시지를 주고받음
* 다른 라우터들과 라우팅 메시지와 라우팅 정보를 공유함
* 원격 네트워크를 습득하기 위해 라우팅 정보를 교환함
* 라우팅 프로토콜은 토폴로지 변화를 다른 라우터들에 알릴 수 있다. (다 거의 같은 말 아닌가?)
클래스화 라우팅 프로토콜
- 라우팅 프로토콜은 다른 것들과 연관되어 운용되도록 설계되지 않았다.
- 각각의 프로토콜은 다른 종류의 정보를 수집하고, 토폴로지 변화에 그 나름의 방법으로 반응한다.
- 라우팅 업데이트 통신은 각각의 프로토콜이 독립적으로 다른 방법으로 처리되어야 한다.
- 동적 라우팅 프로토콜은 특징에 따라 그룹화되어 있다.
- 라우팅 프로토콜의 타입
* IGP(Interior Gateway Protocol) : 내부 게이트웨이 프로토콜; 자율시스템내(內) 라우팅(intra-AS routing)
* EGP(Exterior Gateway Protocol) : 외부 게이트웨이 프로토콜; 자율시스템간(間) 라우팅(inter-AS routing)
| IGP | EGP |
거리 벡터 라우팅 | 경로 상태 라우팅 | 경로 벡터 라우팅 |
Classful | RIP | IGRP | | | EGP |
Classless | RIPv2 | EIGRP | OSPFv2 | IS-IS | BGPv4 IDRP |
IPv6 | RIPng | EIGRP for IPv6 | OSPFv3 | IS-IS for IPv6 | BGPv4 for IPv6 |
(obsoleted in 2005 라는데 BGPv4가 폐기된건지 IDRP가 폐기된건지? 질문해볼 것)
결국 중요한건 [거리 벡터] [경로 상태] 라우팅의 차이와 [경로 벡터] 라우팅을 아는 것인 듯.
경로 벡터 라우팅은 AS 외부에서 유용하다는 것이 증명되었다고 한다. (참조)
라우팅 프로토콜 측정기준(Metrics)
대역폭 : 가장 높은 대역폭의 경로를 선호
비용 : 라우팅 선호도; IOS(Internetwork Operating System)이나 네트워크 관리자에 의해 결정됨.
딜레이 : 패킷이 경로를 가로지르는데 걸리는 시간
홉 카운트 : 패킷이 가로질러야하는 라우터 수
로드 : 어떤 연결의 통신량
신뢰도 : 연결 실패의 확률
프로토콜 | Metric |
RIP | 홉 카운트 |
IGRP, EIGRP | 대역폭(default), 딜레이(default), 로드, 신뢰도 |
IS-IS, OSPF | 비용, 대역폭 |
* RIP는 홉 카운트가 적은 R2 -> R1 경로를 선택하고 OSPF는 빠른 T1 선을 경유해 R2 -> R3 -> R1 경로를 선택한다.
IRP(Interior Routing Protocol)
- AS 내에서 라우터들 간에 라우팅 정보를 전달한다.
- AS 외부에서 시행될 필요가 없다.
- 다른 연결된 AS 들과 다른 알고리즘과 라우팅 정보를 가지고 있을 수도 있다.
- 여타 연결된 AS들에게서 최소의 정보를 필요로 한다 : 대화해야할 최소 하나의 라우터; ERP를 사용한다.
- ex) Distance Vector Routing(거리 벡터 라우팅), Link State Routing(경로 상태 라우팅)
거리 벡터 라우팅
- 각 노드는 세가지 벡터를 유지한다 : 연결 비용, 거리 벡터, 다음 홉 벡터
- 각 노드는 이웃들과 정보를 교환한다. 같은 네트워크에 의해 직접적으로 연결되어 거리와 다음 홉 벡터를 업데이트함.
- RIP, IGRP, EIGRP
RIP의 역사
- Xerox PARC Universal Protocol(PUP)에 라우팅 프로토콜이 필요했다. (1980s)
* Xerox에서 GWINFO(Gateway Information Protocol)을 만듬.
* 나중에 RIP로 이름을 바꾸고 Xerox Network System(XNS) 프로토콜 스위트의 일부가 됨
- UC 버클리에서 RIP를 개조해 유닉스 운영체제의 BSD에 포함시킴
* RIP가 IRP의 산업 표준이 됨
* IETF(Internet Engineering Task Force)에서 RFC1058 인터넷 표준으로 명시함 (1988)
RIP 개요
- RIP 패킷은 UDP를 사용한다. (포트 넘버 520)
- RIP 요청 메시지는 특별한 상황에 보내진다.
- RIP 라우터는 타이머를 가지고 있다. (30초) : 타이머가 만료되면 자발적인 RIP 응답 메시지가 보내진다.
- 개별적 거리 벡터가 수신된 이후 테이블이 업데이트 된다.
* 새로운 목적지 네트워크를 추가한다.
* 존재하는 경로를 딜레이가 적은 것으로 덮어쓴다.
* 라우터 R이 업데이트 되면 모든 경로가 다음 홉으로 R을 사용하도록 업데이트 된다.
- 만약 한 라우터로부터 180초간 업데이트가 수신되지 않으면 유효하지 않는 라우터로 표시한다.
* 네트워크 연결이 불안정하거나 라우터가 고장난 것으로 본다.
* 거리값을 무한대로 설정한다. (실제값은 16)
RIP 테이블 프로세스
- RIP 라우팅 테이블은 어플리케이션 레벨 프로세스 routed (daemon)에 의해 운영된다.
- 주기적으로 반복해서 광고(advetisement)가 UDP 패킷으로 전송된다.
RIP 패킷
명령어 타입
- 1은 요청, 2는 응답
- 업데이트는 물어봤건 아니건 응답된다
- 초기화하는 노드는 요청을 브로드캐스트한다
- 요청은 즉시 응답된다
주소 체계(Address Family) : IP는 2
IP 주소 : 특정 네트워크의 식별자
측정기준(Metric)
- 이 라우터에서 네트워크까지 경로 거리
- 일반적으로 1이므로 metric이 곧 홉 카운트이다.
RIPv2
- 1993에 첫 개발, 1998에 마지막 표준화
- 비클래스형 주소지정을 지원, 서브넷 마스크 규격
- 다음 홉 규격
* 다음 홉 라우터로서 명시적 IP 주소 사용
* 네트워크를 향한 최적의 경로가 RIP를 실행하고있지 않은채 연결되어 있을 떄 유용하다. (이것도 질문해볼 것 : p26)
- 인증(authentification) : RIP 메시지를 수락하기 전에 라우터의 정체를 확인한다.
- 경로 태그(route tag) : 그 경로가 어떻게 얻어졌는지(내부적 혹은 외부적) AS를 확인한다.
- 멀티캐스팅 사용 : 자발적인 RIP 응답 메시지를 보내기 위해 브로드캐스트 대신 멀티캐스트를 사용한다.
RIPv2 다음 홉 규격 예제
다음 홉과 경로 태그를 어떤 식으로 사용하는가?
RIPv2 패킷 포맷
차이점 : 경로 태그, 서브넷 마스크, 다음 홉.
만약 인증이 사용되면 RTE들 중의 하나가 인증 정보를 포함한다.
RIPng (RIPv6)
- 비클래스형 주소지정을 지원, 서브넷 마스크 규격
- 다음 홉 규격 : 개별 라우팅 엔트리가 명시됨 (IPv6 주소의 큰 사이즈에 기인함)
- 인증 : 자체적 인증 매커니즘은 포함하고 있지 않음 (IPsec을 사용)
- 경로 태그 : RIPv2와 동일한 방식
- 멀티캐스트 사용 : 예약된 IPv6 멀티캐스트 주소 FF02:9
- RIPng는 RIPv1이나 RIPv2와 다른 포트 넘버를 사용한다 : 520 대신 521
RIPng 패킷 포맷
새로운 프로토콜 RIPng의 첫번째 버전이다.
RIP의 한계
- 측정기준 15를 초과하는 목적지는 닿을 수 없다 : 만약 더 큰 측정기준이 허용되면 수렴이 너무 길어진다.
- 단순한 측정기준은 차선의 라우팅 테이블로 이끈다 : 패킷이 느린 연결을 통해 전송된다.
- RIP 업데이트를 어떤 장비에서건 수락한다 : 잘못 구성된 장비가 전체 구성을 방해할 수 있다.