2012년 6월 26일 화요일

Adding a TCP/IP Route to the Routing Table



2개 이상의 Ethernet Card나 노트북의 유선과 무선 등을 이용해 2개 이상의 Network을 사용할 경우가 있는데
이때 보통은 OS 또는 사용자가 정한 우선순위에 따라 Routing된 Network을 사용하게 된다.
그러나 경우에 따라서는 반드시 지정된 Network으로 Routing이 되어야할 필요가 있는데,
예를 들어, 사용하고 있는 노트북의 유선과 무선을 통해 두 개의 서로 다른 Network을 사용하는 경우를 생각해 보자.


아래 그림은 서로다른 두 개의 Network A, B를 표현한 것으로,
A Network은 VPN망을 사용하며 Printer가 연결되어 있고, B Network은 광캐이블이 연결된 Modem으로 구성된 일반적인 인터넷 구성 Network으로
이 곳에 할당된 Public IP는 방화벽을 갖는 제 3의 Network에 있는 서버로 접근할 수 있도록 Inbound가 열려있는 Network이라고 가정하자.


그림의 Host#1과 같이 유선으로는 B Network에 연결되어 있고 무선으로는 A Network에 연결되어있고 유선의 Ethernet Card가 높은 우선순위를 같는다고 하자.
이때 Host#1은 특별한 설정이 없다면 10.10.10.2로 Print 요청을 보내면 우선순위가 높은 B Network에서 10.10.10.2를 찾으려 할 것이고, B Network은 이 IP에 대한 Routing정보를 어떠한 Routing Table에도 가지고 있지 않으므로, 이 요청은 B Network에 Broadcasting되었다가 어떠한 응답도 받지 못한채 Time-out이 될 때까지 대기하다 결국 요청은 실패하게 된다.
이럴때 특정 IP 대역에 대해 Routing되어야할 적절한 Network을 지정해 줌으로써
필요한 요청을 처리할 수 있다.






그럼 위의 예에서 처럼 A Network에 있는 Printer#1으로 요청이 전달될 수 있도록 설정하는 방법을 Unix-like Machine과 Windows Machine으로 구분해 알아보도록 하자.
  • Unix-like
Syntax:
route add [xnet|-host] target [netmask ] [gw Gw] dev
route del [-net|-host] target [gw Gw] [netmask Nw] [[dev] If]
route add default gw dev

  • Windows
Syntax:
route add xxx.xxx.xxx.xxx mask xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx metric xx if xx
route add "network" mask "subnet mask" "gateway ip" matric "metric number" if "ethernet number"
route add 157.0.0.0 mask 255.0.0.0  157.55.80.1 metric 3 if 2
              ^destination    ^mask      ^gateway    metric^   ^Interface
예를 들어 Network A, B를 모두 갖는 Host#1에서 Network A에 있는 Printer#1을 이용해 어떤 문서를 출력하고자 한다고 가정하자. 그러면 Subnet Mask가 255.255.255.0이고 10.10.10.0에 해당하는 IP를 갖는 Network A로 Routing될 수 있도록 설정해 주어야 하는데 그 방법은 아래와 같다.  이때 Network A에 연결된 무선 Ethernet Card의 번호는 15번(eth1)이고 Printer#1의 IP는 그림에서와 같이 10.10.10.2이고 Network A로의 Default Gateway는 192.168.0.1이라고 가정한다.

Example:
  • Unix-like
route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth1
  • Windows
route -p add 10.10.10.0 mask 255.255.255.0 192.168.0.1 if 15
  • -p : 영구적으로 설정해 이 Option을 사용하지 않을 때와 달리 Rebooting 후에도 유지된다.
  • 참고로, 본 명령을 실행하려면 Command창을 관리자 권한으로 실행해야한다.