라우팅 프로토콜
1) 라우터의 원리
라우터는 LAN테이블, Network테이블, Routing테이블 등 3가지 테이블을 관리함으로써 다른 네트워크를 비롯하여 네트워크의 모든 장치의 주소를 인식하고, 이를 바탕으로 패킷의 전송경로를 결정한다.
LAN테이블은 라우터가 속해있는 랜 세그먼트내 장치의 주소를 관리하고 있으며, 필터링 작업에 사용된다. 네트워크 테이블은 네트워크상의 모든 라우터의 주소를 보관하며 패킷의 수신지 라우터를 식별하는데 사용된다. 라우팅 테이블 역시 개개의 라우터에 구축되어 있으며, 각 경로에 대한 정보를 유지하고 있어서 다른 세그먼트로 전송되는 패킷의 경로를 결정하는데 사용된다. 3개의 테이블은 패킷의 전송에 있어서 최선의 경로선택, 회선이나 라우터 장애시 우회경로의 선택, 패킷의 순환현상을 방지하기 위해 활용하는 것으로 라우터의 모든 동작을 위한 핵심 요소이다. 이 테이블은 기본적으로 네트워크 관리자에 의해서 만들어지지만 네트워크 내에 존재하는 개개의 라우터에서 주기적으로 전달되는 라우팅 정보를 근거로 수시로 갱신된다.
라우터가 속해있는 네트워크내의 장치로부터 패킷을 수신하면 랜테이블을 검사하여 수신지 주소가 송신지 주소와 다른 네트워크에 속해 있다는 것을 확인하고 네트워크 테이블을 검사하여 패킷을 전달할 네트워크 주소(즉 네트워크에 연결되어있는 라우터의 주소)를 찾아낸다. 마지막으로 이 주소를 라우팅 테이블에서 검색하여 수신지로 가는 가장 적합한 경로를 알아낸다.
일단 경로가 결정되면 라우터는 수신한 원래의 패킷에 송신지 주소 및 네트워크 관리를 위해 필요한 제어정보(control information)을 추가한 새로운 패킷을 생성하여 해당 회선으로 전송한다. 상대편 라우터에서는 패킷을 수신하면 수신한 패킷에서 제어정보를 뽑아서 라우팅 테이블의 내용을 갱신하는데 사용하고 패킷내의 수신지 네트워크 주소와 테이블에 있는 정보를 근거로 어느 네트워크로 전송할 것인가 결정하며, 이러한 경로배정 과정은 모든 라우터에서 차례로 수행된다.
위에서 설명한 일련의 경로설정 과정을 라우팅이라 부른다. 이런식으로 패킷이 전송되므로 네트워크간에 폐쇄로가 형성되어 있더라도 문제가 없다. 패킷이 최종 수신지 라우터에 도착하면 라우터는 패킷의 이상유무를 검사하고 제어정보를 제거한 후, 원래의 데이터패킷을 랜쪽으로 전달함으로써 수신지에 도착하게 된다.
2) 라우팅 프로토콜
(1) RIP(Routing Information Protocol)
RIP는 최초에 Xerox Network System(XNS) 프로토콜에 사용하기 위하여 설계된 프로토콜로, 1982년 버클리(Berkeley Standard Distribution) 버전의 UNIX에 탑재되기 시작하면서 UNIX와 TCP/IP에 결합되기 시작하였으며, 오늘날에도 가장 일반적으로 사용되는 라우팅 프로토콜의 하나이다. RIP의 주요 특징은 다음과 같다.
라우팅 테이블은 데이터그램 패킷을 통하여 모든 라우터에 브로드캐스트된다.
송신지와 수신지 간의 거리는 패킷이 경유하는 라우터의 갯수에 해당하는 hop 수로 표시하는데, 하나의 라우터를 경유한다면 이를 '1 hop 거리', 두개의 라우터를 경유한다면 '2 hop 거리' 등으로 표시한다. RIP에서는 최대 hop을 16으로 제한하므로 16 이상의 경우는 도달할 수 없는 네트워크를 의미한다.
매 30초 이내에 새로운 라우팅 정보를 브로드캐스트하며, 만약 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상상태로 간주한다.
RIP에서는 액티브와 패시브 두가지 유형의 사용자를 정의하고 있다. 액티브 사용자(라우터가 대표적)는 자신이 속해있는 네트워크 내에서 데이터그램 패킷을 통하여 매 30초마다 라우팅 정보를 브로드캐스트한다. 반면에, 패시브 사용자(호스트 컴퓨터가 대표적)는 RIP 정보를 수신하여 경로를 갱신하지만 스스로 라우팅 정보를 송신하지는 않는다. RIP 패킷내에는 송신지에서 바라본 각 수신지 주소와 hop 수 등이 포함되어 있다.
한편, RIP에서는 성능과 신뢰성을 높이기 위하여 몇가지 규칙이 있다.
첫째는, RIP로 수신한 라우팅 정보는 단지 180초 동안만 유효하다. 이렇게 함으로써 180초 이내에 라우팅 정보가 수신되지 않으면 라우터가 고장났다는 사실을 알 수 있게 된다.
둘째로, 현재의 hop 수보다 낮은 hop 수의 라윙 정보를 수신하면, 새로 수신한 라우팅 정보로 대체하여 효율적인 경로를 선택할 수 있게 한다.
그러나 RIP에는 여러가지 결함이 있다. 첫째는, hop 수가 최대 16으로 제한되어 있으며, 16은 라우터에서 특별한 용도로 사용하므로 실제 패킷이 전달될 수 있는 네트워크의 hop 수는 15로 제한된다. 이로 인하여 전체 네트워크의 규모가 제한되어 대규모 인터네트워킹에서는 RIP를 적용할 수 없게 된다.
또한 RIP에서 사용하는 벡터 디스턴스 알고리즘은 네트워크의 고장 또는 변화가 일어난 이후에 이 사실이 전체 네트워크에 전달되어 안정화하는데까지 많은 시간이 소요된다. 따라서 RIP에서는 잘못된 라우팅 정보가 전달될 가능성이 있다. 이같은 문제는 다음과 같은 방법으로 해결된다.
Split Horizon : 라우팅 정보를 수신한 라우터는 이를 전달해준 인터페이스 포트를 기록해 두고 해당포트에 관한 정보는 이 포트를 통하여 재전달하지 않는다.
hold down : 회선이 고장난 이후에 라우팅 테이블을 갱신하지 않고 전체 네트워크의 경로가 새로 갱신될 때까지 기다린다.
poison reverse : 회선이 고장나는 경우 라우터는 즉시 해당 경로의 hop 수를 16으로 정정하여 전체 네트워크에 여러차례 전송한다.
RIP는 두 네트워크간의 hop 수만을 기준으로 하여 라우팅 방식을 결정하므로 이 방식을 사용하면 데이터 패킷은 가장 짧은 경로를 통하여 전달된다. 그러나 두 네트워크 세그먼트간에서 가장 짧은 경로를 택하는 것이 바람직하지 않을 때가 있다. 즉, 하나의 경우는 두 개의 라우터간에 T1 회선이 연결되어 있고(2 hopt), 다른 경로는 3개의 라우터간에 FDDI가 구성되어 있는 경우(3 hop)에 FDDI를 경유하는 빠른 경로가 있음에도 불구하고 성능이 떨어지는 T1 회선을 선택하게 된다.
(2) IGRP(Interior Gateway Routing Protocol)
시스코사에서 독자적으로 개발한 프로토콜로, 독립적 네트워크 내에서만 사용하기 위해 개발된 것이다. RIP와 유사하게 IGRP는 hop수를 기준으로한 정보를 전송한다. 라우팅 경로의 결정은 회선의 전송능력, 전송지연시간, 회선의 사용률, 신뢰성을 바탕으로 결정한다. IGRP는 또한 복수의 경로상에서의 로드밸런싱 기능을 지원한다.
IGRP의 패킷 포맷은 다음과 같이 구성되어 있다.
IGRP 패킷의 첫째 필드는 버전 번호를 포함한다. 이 버전 번호는 사용중인 IGRP의 버전을 명시하여, 신호차이와 비호환성에 대비한 필드이다. 버전필드 다음은 Opcode 필드이다. 이 필드는 패킷의 Type을 명시한다. 1은 Update 패킷을, 2는 Request 패킷을 표시한다. Request 패킷은 다른 라우터로부터 라우터 테이블을 요청할 때 사용되며, 이 패킷은 version, opcode, as number 필드를 담고 있는 헤더로만 구성된다. update 패킷은 routing table entry를 포함한다. routing Table Entry에 대한 제한은 없으며, 단지 IP 헤더를 포함하여 패킷은 단지 1,500byte보다 커서는 안된다.
opcode 필드 다음은 Edition 필드이다. 이 필드는 Routing Table이 바뀔 때마다 증가하는 Serial Number를 담고 있다. 이 Edition 값은 라우터들이 이미 바뀐 정보를 update하지 않도록 하는데 사용된다.
다음 필드는 AS Number이다. 이 필드는 라우터들이 다수의 AS들을 연결할 수 있기 때문에 요구된다. 한 라우터 내에서 다수의 AS는 다른 AS Routing 정보를 유지한다.
다음 세 필드들은 update 패킷에 Subnet의 Number와 Major Network의 Number, External Network의 Number를 명시한다. 이 필드는 IGRP Update Message가 세 영역을 가지기 때문에 필요한데 세 영역은 Subnet의 안쪽, 현재 AS의 안쪽, 현 AS의 외부이다. IGRP 헤더의 마지막 필드는 Checksum 필드이다. 이 필드는 받은 패킷의 이상유무를 계산한다.
Update Message들은 각각의 Routing Table Entry에 대한 일련의 7개의 Data 필드를 담고 있다. 첫째 필드는 Address 부분 3byte이고, 다음은 Metric 값을 나타내는 5byte인데, 5byte 중 첫번째는 Delay(10ms 167sec), 다음은 Bandwidth 필드(1,200bps 10Gbps), MTU(Maximum Transmission Unit;Maximum Packet Size) 크기를 나타내는 MTU 필드, 다음 필드는 Reliability 필드(송,수신 패킷 전송성공률), Load 필드(사용중인 Channel의 비율), Hop Count 필드로 구성된다.
(3) OSPF(Open Shortest Path First)
인터넷 엔지니어링 태스크 포스에서 개발한 프로토콜인 OSPF 프로토콜은 Shortest Path First라는 알고리즘을 사용한다. SPF 알고리즘에서는 모든 라우터가 토폴로지에 관한 모든 정보를 완벽히 갖고 있다. OSPF의 중요한 특징을 살펴보면 다음과 같다.
사용자에 의한 경로의 지정, 가장 경제적인 경로의 지정, 복수경로의 선정 등의 기능을 제공하며, 변화의 발생에 관한 정보가 RIP에 비하여 빨리 전파된다.
라우팅정보를 인접한 라우터에 모두 전송하는 플러딩 방식을 사용하므로 토폴로지에 관한 정보가 전체 네트워크상의 라우터에서 동일하게 유지된다.
각 라웉터는 자신을 네트워크의 중심점으로 간주하여 최단 경로의 트리를 구성한다. IP 주소와 IP에서 제공하는 서비스만ㅇ르 사용한다.
여러 종류의 서비스를 제공하기 위하여 분산된 트리를 사용한다.
동일한 비용을 갖는 모든 경로에 트래픽을 분산시켜 전송한다.
□ OSPF 경로 선정
효율적으로 경로를 선정할 수 있는 OSPF 인터네트워크를 설계하려면 OSPF 메트릭스값 조정(Tuning), 지역 간 트래픽 제어(Control), OSPF 인터네트워크에서의 로드밸런싱 등과 같은 사항을 주지해야 한다.
OSPF 메트릭스 값 조정(Tuning) : OSPF 메트릭스의 기본 값은 대역폭을 근거로 산출된다.
지역간 트래픽 제어(Control) : 단 한대의 지역 경계 라우터만이 존재하는 경우, 그 지역에 속하지 않는 모든 트래픽은 지역 경계 라우터로 송신된다.
여러 대의 지역 경계 라우터가 있는 경우에는 1) 트래픽을 생성한 노드에서 가장 가까이 있는 지역 경계 라우터를 이용해 송신(트래픽은 가능한 빨리 지역을 벗어남) 2) 트래픽의 목적지에서 가장 가까이 있는 지역 경계 라우터를 이용해 송신(트래픽은 가능한 늦게 지역을 벗어남) 등 2가지 중 한가지 방식으로 트래픽이 송신된다.
□ OSPF 경로 축약
경로축약기법을 사용하면 2가지 라우팅 정보가 네트워크를 통해 전달된다. 즉 백본이 각 지역에 대한 정보를 얻는 Area-to-Backbone Advertisement, 각 지역에서 백본과 다른 지역에 대한 정보를 얻는 Backbone-to-Area Advertisement다.
Area-to-Backbone Advertisement : 적절한 축약을 위해서는 OSPF 지역 설계시 다음과 같은 사항을 고려해야 한다. 1) OSPF 경로 축약은 지역 경계 라우터에서 수행된다. 2) OSPF는 VLSM을 지원하므로 네트워크/서브넷 어드레스에 대한 임의의 Bit Boundary 축약이 가능하다. 3) OSPF 사용시에는 수작업으로 축약해야 한다.
Back-to-Area Advertisement : 각 지역에는 4가지 형태의 라우팅 정보가 존재한다.
ⓐ 기본 경로 : 지정된 IP 네트워크/서브 네트워크를 찾을 수 없는 경우에는 라우터가 기본 경로에 지정된 목적지로 패킷을 넘긴다.
ⓑ 지역내 경로(Intra-areaRoutes) : 명확히 지정된 네트워크나 서브넷 경로는 지역내의 모든 네트워크나 서브넷에 전송한다.
ⓒ 지역간 경로(Interarea Routes) : 각 지역은 동일한 AS의 네트워크에 대한 명확히 지정된 네트워크나 서브넷 경로를 전송한다.
ⓓ 외부 경로(External Routes) : 서로 다른 AS끼리 라우팅 정보를 교환할 때 교환되는 경로를 외부 경로라 부른다.
한편 지역은 해당 지역에서 사용하는 라우팅 정보에 따라 크게 3가지로 구분한다.
Nonstub 지역 : 4가지 형태의 경로를 모두 전송하는 지역. RIP와 OSPF를 둘다 이용하는 ASBR(Autonomous Sustem BorderRouter)가 설치된 지역이나 지역간ㅇ르 연결하는 가상 링크(Virtual Link)가 설정된 지역은 반드시 Nonstub 지역이어야 한다. 이 지역은 가장 많은 자원이 집중된 지역이다.
Stubarea : 외부 경로를 제외한 나머지 3가지 형태의 경로를 전송하는 지역. 단 한대의 지역경계 라우터가 있는 경우 바람직한 형태의 지역이나 여러대가 있는 경우에도 채택할 수 있다.
축약을 하지 않은 Stubarea : 이 지역에서는 기본 경로 지역 내 경로만이 전송된다.
이러한 지역은 백본에 지역을 연결할 때 한 대의 라우터만 사용하는 단순한 구성인 경우 바람직하다.
□ OSPF 컨버전스
OSPF의 특징 중 가장 매력있는 점은 형상 변화가 발생하면 매우 신속하게 그 변화에 적응하는 능력이다. 라우팅 컨버전스는 장애 발생 감지와 새로운 경로 모색으로 구성된다.
OSPF 네트워크는 시리얼 라인장애(Carrier Loss), 토큰링 장애, FDDI 장애 등과 같은 장애를 발생 즉시 감지해낼 수 있다. 장애가 발생하면 그것을 감지한 라우터는 변경된 정보를 포함하는 Link State 패킷을 해당 지역의 모든 라우터에 송신한다. 이 패킷을 수신한 모든 라우터는 SPF(Shortest Path First) 알고리즘을 이용해 전 경로를 재계산한다.
OSPF 컨버전스에 영향을 주는 요소는 장애 감지와 경로 재계산이다. OSPF는 2가지 방식으로 장애를 감지한다. 첫째는 인터페이스의 상태변화이고, 두번째는 Dead Timer라 부르는 시간내에 이웃 라우터로부터 hello 패킷이 수신되지 않은 경우 장애로 판단한다. Dead Timer의 기본값은 브로드캐스트 네트워크의 경우 40초, 비브로드캐스트 네트워크의 경우에는 2분이다. 경로 계산에 걸리는 시간은 지역의 크기 데이터베이스내의 경로 개수에 따라 달라진다.
□ OSPF 네트워크 확장성
확장성은 전체 네트워크의 구조와 어드레싱 방식에 의해 좌우된다. 계층 구조의 어드레싱 환경과 정형화된(체계적인) 어드레스 부여가 OSPF 네트워크 확장성을 결정한다.
□ OSPF 보안성
라우팅 프로토콜에 대해서는 OSPF 네트워크에 접속된 라우터 제어와 라우터끼리 교환하는 라우팅 정보 제어 등 2가지의 보안 기법을 적용할 수 있다. OSPF 패킷에서는 허가(Authentication) 필드를 사용할 수 있으므로, 이 필드를 이용하면 현재 제어하고 있지 않은 호스트나 라우터에서 과실로 이한 OSPF의 실행을 막아 네트워크 전체의 불안정 가능성을 줄일 수 있다. 그러나 동일한 OSPF 지역에 속해 있는 라우터 간의 라우팅 정보는 같으므로 OSPF 네트워크에서는 보안 기능을 제공하기 위해 라우트 필터(Route Filter)를 사용할 수 없다.
이올린에 북마크하기


