리눅스의 라우팅 테이블을 확인하기 위해서는 route 명령어 또는 netstat이라는 명령어를 사용한다 "route"라고 하거나 또는 "netstat -nr"을 실행해 현재 리눅스에 세팅되어 있는 라우팅 테이블을 확인할 수 있다
1. netstat 명령어
[root@dupont ~]# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 211.214.178.201 0.0.0.0 255.255.255.224 U 40 0 0 eth0 127.0.0.1 0.0.0.0 255.0.0.0 U 40 0 0 lo 0.0.0.0 211.214.178.254 0.0.0.0 UG 40 0 0 eth0 |
위의 명령어를 통해 다음의 정보들을 알 수 있다
- 기본 게이트웨이: 211.214.178.201
- 서브넷 마스크 : 255.255.255.224
- 인터페이스 : eth0
2. route 명령어
[root@dupont ~]# route Kerenl IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 168.254.0.0 * 255.255.0.0 U 0 0 0 eth0 127.0.0.1 * 255.0.0.0 U 0 0 0 lo default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 |
위의 라우팅테이블을 이해하기 위한 일반적인 규칙
규칙1 : 위의 첫번째행부터 다음행으로 차례대로 한 행씩 읽어 들여서 처리할 패킷을 보낼 수 있는지를 확인
규칙2 : default라는 것이 이 리눅스의 기본 게이트웨어 설정행을 의미하며 그 행의 Gateway 항목값이 기본게이트웨이의 IP주소이다. default는 0.0.0.0을 의미
규칙3 : 보낼 데이터의 목적지 IP주소와 Genmask값(SubnetMask)과의 AND연산을 해서 그 결과가 해당행의 Destination항목과 동일 할 경우에 해당행의 Iface에 잇는 인터페이스로 해당 패킷을 전송하게 된다
규칙4 : Iface항목의 값이 lo인 행(Destination값이 127.0.0.1인 행)은 이 서버의 루프백(loopback) 데이터를 처리하기 위한 설정이다 즉, 자기자신에게로 데이터를 보낼 때에 처리를 담당하는 인터페이스이다
위의 라우팅테이블을 바탕으로 한 패킷이 전송되는 과정(목적지 주소: 192.168.11.201)
1. 첫번째 행을 읽어들인다. 보낼 대상패킷의 목적지 주소(192.168.11.201)와 첫번째 행의 Genmask값(255.255.255.0)과 AND 연산을 수행. 그 결과가 첫번째 행의 Destination항목값(192.168.1.0)과 다르므로 다음행으로 넘어간다
2. 두번째 행을 읽어들인다. 보낼 대상패킷의 목적지 주소(192.168.11.201)와 두번째 행의 Genmask값(255.255.0.0)과 AND연산을 수행. 그 결과가 첫번째 행의 Destination항목값(168.254.0.0)과 다르므로 다음 세번째 행으로 넘어간다
3. 세번째 행을 읽어들인다. 보낼 대상패킷의 목적지 주소(192.168.11.201)와 세번째 행의 Genmask값(255.0.0.0)과 AND연산을 수행. 그 결과가 첫번째 행의 Destination항목값(127.0.0.1)과 다르므로 다음 네번째 행으로 넘어간다
4. 네번재 행을 읽어들인다. 보낼 대상패킷의 목적지 주소(192.168.11.201)와 네번째 행의Genmask값(0.0.0.0)과 AND연산을 수행. 그 결과가 첫번째 행의 Destination항목값(0.0.0.0)과 같으므로 네번재 행의 Iface항목값인 eth0으로 해당 패킷을 보내게 된다.
이와 같은 것을 라우팅이라고하며 모든 패킷들은 이와같은 라우팅 과정을 거쳐서 외부와 통신하게 된다
'IT > Linux' 카테고리의 다른 글
netstat 명령어 (0) | 2014.12.03 |
---|---|
리눅스 hostname 변경하기 (0) | 2014.11.30 |
리눅스 IP주소 할당 (0) | 2014.11.30 |
리눅스 네트워크 설정파일 (0) | 2014.11.30 |
리눅스 인터페이스 확인 (ifconfig) (0) | 2014.11.30 |