본문 바로가기

Network

route table 사용하기

리눅스(우분투)에서 2개의 이더넷 네트워크를 사용중이다.

1개의 유선 인터페이스는 타겟 보드(허브 사용)와 다이렉트로 물리고, 1개의 무선 인터페이스는 사내 망을 사용중이다.

이때, 타겟 보드의 IP는 192.168.0.78이고, 이녀석과 다이렉트로 물린 유선 인터페이스의 IP는 192.168.0.76이다.
이 두녀석은 255.255.255.0 서브넷 마스크와 192.168.0.1 게이트웨이로 매핑하여서 직접 연결이 가능하다.
다만, 멀티캐스트 패킷을 전송할 때 문제가 생긴다.
이때는 다음과 같이 라우팅 테이블을 수정하여 보자.

########################### 사용법  ###########################
퍼옴 : http://target2u.blogspot.com/2007/01/route.html

1. 기 능

IP routing table 을 보여준다.

2. 문 법

route add [xnet|-host] target [netmask <Nm>] [gw Gw] dev <If>
route del [-net|-host] target [gw Gw] [netmask Nw] [[dev] If]
route add default gw <Gw> dev <If>
IP routing table 정보를 보거나, routing table을 처리한다. 옵션 add나 del을 사용해서 라우팅 테이블을 수정하거나 옵션 없이 사용하면 라우팅 테이블의 현재 내용을 볼 수 있다.

3. 옵션

del : route 삭제
add : route 추가
target : network 또는 host의 목적지
-e : netstat format으로 routing table을 출력한다.

4. 사용방법 및 정보
[root@sense ~]# route
Kernel IP routing table
Destination     Gateway         Genmask                   Flags   Metric            Ref      Use     Iface
192.168.1.0        *                255.255.255.0           U        0                    0         0         eth0
169.254.0.0        *                255.255.0.0              U        0                    0         0         eth0
Default        192.168.1.1     0.0.0.0               UG       0                    0         0         eth0



각 필드에 대한 설명이다.
Destination : network 또는 host의 목적지를 말한다.
Gateway : gateway주소나 ‘*’ 으로 표시된다.
Genmask : 목적지의 netmask가 지정된다.
Flags : U (route is up)
           H (target is a host)
           G (use gateway)
           R (reinstate route for dynamic routing)
           D (dynamically installed by daemon or redirect)
           M (modified from routing daemon or redirect)
           A (installed by addconf)
           C (cache entry)
            ! (reject route)

Metric : 경로 설정의 기준값, 최소 경로를 best path로 하여 경로를 설정한다.
Ref : 라우트에서 참조하는 값 (리눅스 커널에서는 사용하지 않음)
Use : 라우트를 검사한 수 xF or xC 옵션을 이용하여 miss or hits 를 나타낼 수 있다.
Iface : 라우트에서 패킷을 보낼 interface

사용예제
[root@sense ~]# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
192.168.1.x 네트워크의 라우트를 eth0에 추가한다.
[root@sense ~]# route add default gw 192.168.1.1
192.168.1.1 을 gateway로 추가한다.
[root@sense ~]# route add default gw 192.168.2.1 dev eth0 metric 1
192.168.2.1 을 gateway로 추가하되 metric을 다르게 준다.

########################### 사용법  ###########################


나의 문제는 멀티캐스트 송수신의 문제였으므로 다음과 같이 추가하였다.
# route add -net 231.31.31.31 netmask 255.255.255.255 dev eth0

192.168.3.0은 무선 네트워크이고 192.168.0.0은 유선 네트워크이다.
그리고 위에 멀티캐스트에 관련된 주소를 라우팅 테이블에 추가하였다.

이제 실제 패킷이 어떤 식으로 전송이 되는지 확인해보자(shark 사용)

실제 사용중인 사내망인 유선 인터페이스로는 멀티캐스트 패킷을 전송하지 않고, 내가 원하는 타겟 보드로만 멀티캐스트 패킷을 전송하고 있다.

이런식으로 타겟 보드 작업 및 테스트를 하도록 하자.