다음 이전 차례

7. 라우팅

만일 여러분이 두개의 네트워크 인터페이스를 가진 리눅스 PC를 두개(혹은 그 이상) 의 서브넷을 라우트하기 위해 사용한다면 커널에서 IP 포워딩(IP Forwarding)이 가능하도록 해야한다.


          cat /proc/ksyms | grep ip_forward

이런 내용을 보게 될 것이다.
  00141364 ip_forward_Rf71ac834

만일 이런 메시지가 나타나지 않는다면 여러분의 커널은 IP 포워딩이 되도록 설정 되지 않은 것이므로 커널을 재컴파일 한 후 새로운 커널을 설치해야 한다. 이 예제를 위해 클래스 C IP 네트워크 번호 192.168.1.0을 4개의 서브넷으로 나누는 것으로 가정한다.(각각은 62개의 사용가능한 인터페이스/호스트 IP 번호를 갖게 된다). 그러나 이들 서브넷중 두개는 좀 더 큰 하나의 네트워크 를 구성하도록 결합될 것이므로 결과적으로 세개의 실제적인 네트워크가 존재하게 된다. 즉
  네트워크        브로드캐스트    네트마스크              호스트 갯수
  192.168.1.0     192.168.1.63    255.255.255.192         62
  192.168.1.64    192.168.1.127   255.255.255.192         62
  192.168.1.128   192.168.1.255   255.255.255.128         124 (see note)

참고: 마지막 네트워크가 124개의 사용가능한 네트워크 주소만을 가지는 이유는(네트워크 마스크로부터 예상할 수 있는 126개가 아닌) 이것이 두개의 서브넷에 대한 '수퍼 넷'이기 때문이다. 다른 두개의 네트워크에 있는 호스트들은 192.168.1.192를 '존재하지 않는' 서브넷의 네트워크 주소로 해석할 것이다. 이와 유사하게 192.168.1.191 역시 '존재하지 않는' 서브넷의 브로드캐스트 주소로 해석할 것이다.

그러므로 만일 여러분이 192.168.1.191나 192를 네트워크의 호스트 주소로 사용한다면 이 더 작은 두개의 네트워크에 존재하는 머신들은 이들과 통신할 수 없을 것이다. 이것은 서브넷의 중요한 한가지 사실을 설명해 준다. 즉 사용가능한 주소는 그 주소 공간의 가장 작은 서브넷에 의해 결정된다는 것이다.

7.1 라우팅 테이블

이제 리눅스가 동작하는 컴퓨터가 이 네트워크의 라우터로 동작한다고 가정 해보자. 이 컴퓨터는 로컬 랜에 대해 3개의 네트워크 인터페이스를 가지고 있고 아마도 네번째 인터페이스를 통해 인터넷에 연결되어 있을 것이다. (이 인터페이스가 '기본 라우트'일 것이다.) 이제 리눅스 컴퓨터가 각각의 서브넷에서 가장 낮은 IP 주소를 인터페이스에 사용한다고 가정한다. 이제 네트워크 인터페이스는 다음과 같이 설정되었을 것이다.


  인터페이스      IP 주소         넷마스크
  eth0            192.168.1.1     255.255.255.192
  eth1            192.168.1.65    255.255.255.192
  eth2            192.168.1.129   255.255.255.128

이것에 대한 라우팅은 다음과 같을 것이다.
  목적지 주소     게이트웨이      Genmask         인터페이스
  192.168.1.0     0.0.0.0         255.255.255.192 eth0
  192.168.1.64    0.0.0.0         255.255.255.192 eth1
  192.168.1.128   0.0.0.0         255.255.255.128 eth2

각각의 서브넷에 대해 호스트는 자신의 IP 번호와 네트워크 마스크로 설정 되어 있을 것이다.(특별한 네트워크에 적합하도록) 각각의 호스트는 네트워크 의 인터페이스에 리눅스 PC의 IP 주소를 지정함으로써, 리눅스 컴퓨터를 자신의 게이트웨이/라우터로 선언한다. Robert Hart Melbourne, Australia March 1997.
다음 이전 차례