IP 라우팅의 이해와 활용

일반입력 :2002/07/12 00:00

임보혁

슈마 : 우리가 인터넷을 사용하기 위해서는 각 PC마다 IP 어드레스를 설정해 인터넷 프로토콜로 통신을 한다는 사실은 알고 있을꺼야. 인터넷 내부를 보면 네트워크 장비들로 서로 연결돼 있는데, 이 중에서도 특히 라우터가 중요한 역할을 하고 있어. 라우터는 IP를 이용해 데이터를 목적지까지 빠르고 안전하게 전달하기 위해 라우팅을 하는데, 오늘은 이 IP 라우팅에 대해 배우도록 하지. 우선 프로토콜이 뭐라고 생각하나.

허접군 : 프로토콜이 프로토콜이죠 뭐.

슈마 : 헉, 물어본 내가 잘못이지. 프로토콜의 사전적인 의미는 ‘외교에 관한 의례나 국가간에 약속을 정한 의정서’라고 할 수 있지. 네트워크에서는 일반적으로 통신규약이라고 번역하기도 해. 좀 더 쉽게 풀어보면 ‘서로 다른 시스템 간에 통신을 하기 위한 약속’이라고 할 수 있지. 프로토콜은 우리가 일상 생활에서 많이 사용하는데, 전화통화가 대표적인 예라고 할 수 있지.

미돌양 : 아하. ‘안녕하세요, 허접군 있습니까’ ‘잠깐만 기다리세요’ 등이 따지고 보면 전화통화를 할 때 미리 약속된 절차이니까 프로토콜이라고 할 수 있겠군요.

슈마 : 역시 미돌양은 이해가 빠르군. 프로토콜에 대해 이해했다면 이번에는 라우터의 동작 순서를 알아야 하는데, 그에 앞서 먼저 슈마 가이드를 통해 MAC(Media Access Control) 어드레스와 IP 어드레스의 차이점부터 익히는 것이 좋지.

허접군 : IP 어드레스로 모든 통신을 해도 될 것 같은데 왜 굳이 MAC 어드레스가 필요한가요?

슈마 : OSI 7계층을 보면 각 계층별로 고유한 자기 일이 있어. 2계층 데이터 링크 계층에서는 MAC 어드레스(물리적인 어드레스)로 상대방을 찾아 작동하며, 3계층인 네트워크 계층에서는 IP 어드레스를 갖고 작동하게 돼. 예를 들어 PC1에서 PC2로 통신을 한다면 7계층에서 1계층으로 내려오면서 계층별로 헤더 정보를 덧붙여서, 보내고 받는 쪽인 PC2에서는 계층을 올라가면서 헤더 정보를 벗기게 되고, 이때 상대방에서 보낸 계층의 정보만 보게 되지. 즉, 3계층에서는 MAC 어드레스에 대해서는 관심도 없으며 2계층에서 캡슐화된 내용을 볼 수도 없지. 오로지 자기 계층에서는 IP 헤더 정보를 갖고 통신을 하게 돼. 그러니 MAC 어드레스는 3계층에서는 무용지물이지.

허접군 : 머리가 빙빙 도는군요. 잘 모르겠어요.

슈마 : 이해가 잘 안되는 모양인데 그렇다면 슈마 가이드를 다시 한번 참고하도록.

미돌양 : 그러니까 다시 정리하면 PC1과 서버 간 통신이 이뤄질 때 OSI 7계층은 각 계층별로 각기 다른 통신 규칙을 사용해 통신을 하게 된다는 것이죠? 2계층인 데이터 링크에서는 MAC 어드레스로 통신을 하고, 3계층인 트랜스포트 계층에서는 IP 어드레스로 통신을 한다는 것이네요. 그럼 오늘 배우고 있는 라우팅 프로토콜은 언제 사용하나요?

슈마 : 라우터가 한 대라면 라우팅 프로토콜이 필요없지만 인터넷에는 수백만 대의 라우터가 거미줄처럼 엮어 있어. 이런 이유로 라우팅 프로토콜이 필요한 거지. 라우팅 프로토콜을 통해 여러 대의 라우터가 경로 설정과 전달을 하게 되지.

허접군 : 개념은 대충 알겠는데 좀 더 구체적으로 라우팅 프로토콜이 하는 일을 알고 싶어요.

슈마 : 라우팅 프로토콜은 라우팅 알고리즘을 수행하는 프로토콜로, 서울 본사와 부산 지점이 서로 라우터로 연결된 작은 규모의 기업 환경에서부터, 크게는 ISP의 수만 대 라우터를 연결하는 환경까지, 필요한 라우티드(Routed) 프로토콜을 목적지까지 전달하는 역할을 하지. 라우티드 프로토콜은 실제 패킷을 전달하는 프로토콜로, 대표적인 것으로는 IP, IPX, AppleTalk, DECnet 등이 있지.

미돌양 : 라우터의 이더넷 포트쪽인 LAN 구간에는 라우티드인 IP, IPX를 사용하고 라우터의 시리얼 포트쪽인 WAN 구간에서는 라우팅 간의 정보를 위해 라우팅 프로토콜을 사용한다고 볼 수 있겠군요. 라우티드 프로토콜에서 IP는 많이 들어 봤는데, IPX는 처음 듣는 말인데 어디에 사용하는 건가요?

슈마 : 최근에는 인터넷이나 온라인 게임을 하기 위해서 대부분 TCP/IP로 설정을 하지만, 일부 온라인 게임의 경우 IPX 프로토콜로 설정을 하는 경우도 있었지. IPX(Internetwork Packet Exchange)는 노벨 네트웨어에서 사용하는 프로토콜인데 LAN 환경에서 스타크래프트나 FIFA 축구게임을 하고 싶다면 먼저 각 PC마다 네트워크 환경에서 ‘IPX 호환 프로토콜’을 설치해야 해.

허접군 : 라우티드와 라우팅 프로토콜이 혼동되는데 좀더 쉽게 설명해 주세요.

슈마 : 지난번 라우터 강좌에서도 이에 대해 한번 설명했는데 다시 할테니 잘 들어두라고. 라우터를 콜택시 정류소라고 생각하고, 라우팅은 택시 기사, 라우티드는 승객, 가방을 데이터에 비유할 수 있어. 즉, 정류소(라우터)에서 승객(라우티드)이 가방(데이터)을 들고 택시를 타고, 목적지 정류소를 이야기하면, 택시기사(라우팅 정보)는 무전기로 빠른 길(경로) 즉, 어디가 막혀있는지, 어디가 빠른지 물어본 후 머리속에 경로를 설정하겠지? 그리고 그 경로대로 빠르고 안전하게 손님을 목적지까지 태워다 놓을 수 있는거지. 이 정도면 라우티드와 라우팅 프로토콜을 구분할 수 있겠지?

미돌양 : 퇴근시간에 차가 많이 막힐 때 약속시간 때문에 택시를 탔는데, 무전기로 사고난 곳이나 도로체증이 심한 곳을 알아내서 피해가니 정말 빨리 도착하더군요. 라우터도 라우팅 정보가 신속하고 정확하게 이뤄질수록 더 빨리 데이터를 전달할 수 있겠군요.

슈마 : 그렇지. 라우팅 알고리즘은 PC1에서 서버를 찾아서 접속할 때 PC1의 IP 어드레스가 소스 어드레스가 되고 서버의 IP 어드레스가 목적 어드레스가 돼 우편배달부처럼 가방에 데이터를 넣어가지고 최적의 경로를 찾아서 전달하는 역할을 해. 물론 가방내의 데이터 내용은 알 필요가 없으며, 어떻게 하면 더 빠르고 안전하게 전달할 수 있는지에만 관심이 있지.

미돌양 : 라우팅 프로토콜도 여러 종류로 나뉜다고 들은 것 같은데.

슈마 : 동작하는 방식에 따라 스태틱(Static) 라우팅과 다이내믹(Dynamic) 라우팅 프로토콜로 나눠지지. 스태틱은 한글로 풀이하자면 ‘정적인’이라고 할 수 있는데, 이는 네트워크 관리자가 판단을 하고 라우팅 경로를 수동으로 설정하는 방식이야. 다이내믹은 ‘동적인’이란 뜻으로 상황의 정보에 따라 라우팅 경로를 자동으로 설정하는 것을 말해. 일반적인 라우팅 프로토콜인 RIP, IGRP, EIGRP, OSPF 등은 모두 다이내믹 프로토콜의 한 종류지.

미돌양 : 스태틱은 관리자가 직접 라우팅 테이블을 수작업으로 입력해야 하니 귀찮고 실수도 많을 것 같아요. 소규모 네트워크가 아니라면 사용이 힘들 것 같은데. 제가 관리자라면 다이내믹 라우팅을 사용하고 싶을 것 같아요.

슈마 : 경우에 따라 각각의 방식은 좋을 수도 나쁠 수도 있지. 먼저 스태틱은 어떤 경우에 사용하는지부터 살펴보도록 하지. (그림 1)에서 소프트웨어 방식의 파이어월인 Firewall-1을 썬의 울트라 서버에 설치했다고 가정하자. 이 파이어월에 여러 개의 NIC를 연결해 DMZ 구간에 웹 서버를 설치했어. 그러기 위해서는 몇 개의 NIC가 필요할까?

허접군 : 최소 3개는 필요할 것 같군요. 라우터, 2계층 스위치, 3계층 스위치를 연결해야 하니까.

슈마 : 그렇지. 이때 파이어월은 3개의 NIC가 있으니 라우팅 경로 설정을 하기 위해 네트워크 어드레스를 통해 어느 쪽으로 보낼지를 결정해야 해. 이때 파이어월 소프트웨어의 역할은 외부인이 인터넷으로 들어와서 웹 서버나 메일 서버까지만 접속이 가능하도록 하는 것이야. 내부 네트워크인 3계층 스위치쪽에 접속을 해서는 안되므로 인터넷 길목에 설치해 외부에서 내부로 들어오는 것을 막는 역할을 해(보안 룰에 의해 판단). 이런 환경이라면 구성이 간단하므로 보통 스태틱 라우팅을 사용하지. 물론 이 경우 RIP도 사용할 수 있지.

슈마 : 이해를 돕기 위해 실제 예를 들어보도록 하지. (그림 2)는 A사의 본사와 지방 지점 간의 네트워크 구성이야. 지방 지점에서 인터넷을 사용하거나, 본사에 있는 급여 서버에 접속하기 위해서는 A사는 지사들이 서울 본사의 라우터를 경유하게 했어. 라우터가 여러 대 설치돼 있다고 하더라도 이처럼 구성 방식이 서울 본사의 지점으로 연결되도록 한 일방 통행식 데이터 전송인 경우는 스태틱 라우팅을 사용해. 스태틱 라우터 명령어는 다음과 같아.

(config)#ip route [목적지 IP] [Subnet mask] [목적지 시리얼 IP/출발지 시리얼 번호] [distance]

슈마 : 이번에는 여러 다양한 방식으로 A사 네트워크에 스태틱 라우팅을 적용해 볼까.

Router2(config)#ip route 203.201.62.0 255.255.255.0 203.201.63.1

슈마 : 위의 명령어는 패킷의 목적지가 서울 급여 서버(203.201.62.0)인 경우에만 광주 라우터와 시리얼로 직접 연결된 서울 라우터의 s4(203.201.63.1)로 경로를 설정하도록 한 것이야.

Router2(config)#ip route 0.0.0.0 0.0.0.0 S0

슈마 : 위의 명령은 디폴트 게이트웨이를 적용한 것으로, 패킷의 목적지가 인터넷, 급여 서버인 경우 광주 라우터의 s0 인터페이스를 통해 경로를 설정하게 되지. 이번에는 본사 라우터에 스태틱 라우팅을 적용해 볼께.

Router1(config)#ip route 203.201.64.0 255.255.255.0 203.201.63.2

Router1(config)#ip route 203.201.64.0 255.255.255.0 S4

슈마 : 이렇게 설정하게 되면 목적지가 광주 클라이언트 PC인 경우 광주 라우터의 s0 IP 어드레스(혹은 서울 라우터의 s4)를 통해 경로를 설정하게 돼. 광주 라우터 스태틱 환경설정은 다음과 같아.

Router2#sh run

Current configuration:

version 12.0

hostname Router2

enable secret 5 $1$z1Ii$A7aFXF7lBNDOK4Zya004Q0

interface Ethernet 0

ip address 203.201.64.1 255.255.255.0

!

interface Serial 0

ip address 203.201.63.2 255.255.255.0

!

ip route 203.201.62.0 255.255.255.0 203.201.63.1

end

슈마 : 광주 라우터의 라우팅 테이블은 다음과 같아.

Router2#sh ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default

U - per-user static route, o - ODR

Gateway of last resort is 203.201.63.1 to network 0.0.0.0

S 203.201.62.0/24 [1/0] via 203.201.63.1

슈마 : S는 Static으로 연결됐다는 표시이며, 203.201.62.0(목적지 네트워크)으로 가려면 203.201.63.1를 통해서 간다는 뜻이지.

C 203.201.63.0/24 is directly connected, Serial 0

슈마 : C는 Connect로 직접 연결돼 있다는 표시이며, 203.201.63.0 네트워크는 광주 라우터와 직접 연결돼 있다는 뜻이야.

미돌양 : 라우터가 지능적으로 자동 라우팅을 한다고 모두 좋은 것은 아니군요. 스태틱도 여러 좋은점이 많고, 실제로 많이 사용을 하고 있군요.

슈마 : 스태틱도 여러가지 장점이 있는데 첫째, 라우터 간의 라우팅 정보를 주고 받지 않으니 그만큼 라우터 CPU에 부하를 적게 주며, 전용회선 대역폭에도 부담을 주지 않지. 그러나 관리자가 실수로 잘못 환경설정을 하게 되면 엉뚱하게 경로가 설정돼 네트워크 속도가 늦어지거나 서버 접속이 안되는 등 다소 위험한 점도 있지. 또한 (그림 2)의 사례에서 서울 본사의 네트워크 환경이 변경되거나 새로운 라우터가 추가될 경우 경로를 추가해야 하는 불편함이 있어.

허접군 : 질문있습니다. 다이내믹 프로토콜은 라우터가 자동으로 경로 정보를 공유해서 최적의 경로를 설정한다고 했는데, 한 개만 표준을 정해서 사용하면 PC 설정도 편하고 좋을텐데 왜 수많은 프로토콜이 생겼을까요?

슈마 : 여러가지 이유가 있는데 슈마 가이드 ④를 참고하면 궁금증을 해결할 수 있을꺼야. 오늘은 여기까지. 다음 시간에는 여러 가지 라우팅 알고리즘에 대해 알아보고, 시간이 되면 가상 LAN도 살펴볼꺼야. @