다음 이전 차례

2. 배경 지식

2.1 IP 마스커레이드란 무엇인가?

IP 마스커레이드는 리눅스의 네트워킹 기능으로, 상용 방화벽(firewall)이나 네트웍 라우터(network router)에서 흔히 볼 수 있는 1 대 다(one-to-many) 방식의 NAT(Network Address Translation: 네트웍 주소 해석)와 유사하다. 예을 들어서, 어떤 리눅스 호스트가 PPP(역자주: 윈도우즈의 전화접속 네트워킹에 해당함), 이더넷(Ethernet), 기타등등의 방법으로 인터넷에 연결되어 있다면, 이 리눅스 박스에 연결된(PPP, Ethernet, 기타등등) 내부의 컴퓨터들도 IP 마스커레이드를 통해서 인터넷에 연결할 수 있다. 리눅스 IP 마스커레이드를 통하면, 내부의 컴퓨터들이 공식적으로 할당된 IP 주소가 없더라도 가능하다.

MASQ를 사용하면, MASQ 게이트웨이(gateway: 통로가 되는 컴퓨터)를 통해서 몇대의 컴퓨터들이 숨어서 인터넷을 사용할 수 있다. 즉, 인터넷에 있는 다른 컴퓨터들에게는, IP MASQ를 통해서 바깥으로 나오는 정보들은 IP MASQ Linux 서버 자체가 보내는 것처럼 보인다. 이러한 기능에 덧붙여서, IP 마스커레이드는 대단히 안전한 네트웍 환경을 제공한다. 잘 구성된 마스커레이딩 시스템과 내부 LAN의 보안을 깨는 것은, 잘 구성된 방화벽의 보안을 깨는 것 만큼이나 어렵다.

2.2 현재 상황

IP 마스커레이드는 처음 개발된지 수년이 지났고, 리눅스 커널이 2.2.x 로 들어서면서 매우 성숙해졌다. 리눅스 커널은 1.3.x 버젼부터 MASQ 기능을 자체 지원했다. 현재는 수많은 개인, 또는 상업 기관들이 훌륭하게 사용하고 있다.

웹 페이지 보기, TELNET 접속, FTP, PING, TRACEROUTE, 기타등등의 통상적인 네트웍 기능은 IP 마스커레이드를 통해서 잘 작동한다. FTP, IRC와 Real Audio와 같은 것도, 적절한 IP MASQ 모듈을 적재하면 잘 작동한다. MP3나 트루 스피치(True Speech)등의 스트리밍 오디오(streaming audio)와 같은 네트웍 관련 프로그램들도 역시 작동한다. 메일링 리스트의 어떤 동료 사용자들은 화상회의 소프트웨어에서까지 좋은 결과를 얻은 바 있다.

지원되는 전체 소프트 웨어 목록은 Supported Client Software section에서 확인하기 바란다.

IP 마스커레이드는 여러가지 다른 OS와 하드웨어 플랫폼을 사용하는 사용자 컴퓨터들(client machines)에게도 서버로서 잘 동작한다. MASQ 내부에서 성공적으로 동작한 시스템들은 다음과 같다 :

리스트는 더 계속될 수 있지만 요점은 다음과 같다. TCP/IP로 통신할 수 있는 OS를 사용한다면 반드시 IP 마스커레이드와 함께 동작할 수 있어야 한다!

2.3 누가 IP 마스커레이드를 사용해서 이득을 얻는가?

2.4 누구에게 IP 마스커레이드가 필요 없는가?

2.5 IP 마스커레이드는 어떻게 동작하는가?

>Ken Eves의 IP 마스커레이드 FAQ로부터 :

  가장 간단한 설치의 예는 다음 그림과 같다:

   SLIP/PPP         +------------+                         +-------------+
   ISP 제공자로     |  Linux     |         SLIP/PPP        | 다른 컴퓨터 |
  <---------- modem1|    #1      |modem2 ----------- modem3|             |
    111.222.333.444 |            |           192.168.0.100 |             |
                    +------------+                         +-------------+

    위의 그림에서, IP_MASQUERADING이 설치된 리눅스 box가 Linux #1으로 설정되어
  있고 modem1을 통한 SLIP 혹은 PPP로 인터넷에 연결되어 있다. Linux #1은  
  111.222.333.444라는 IP 주소가 할당되어 있다. Linux #1은 modom2를 통해서 다른 
  컴퓨터가 SLIP 혹은 PPP로 접속할 수 있도록 되어 있다.

    두번째 시스템(다른 컴퓨터: 반드시 리눅스를 사용할 필요는 없다) Linux #1으로
  SLIP 혹은 PPP 접속을 한다. 다른 컴퓨터는 공식적으로 할당된 IP 주소를 가지고
  있지 않다. 그래서 내부 주소인 192.168.0.100이라는 주소가 할당되어 있다.
  (아래 참조)

    라우팅 정보가 제대로 설정되어 있으면 IP 마스커레이드를 통해서 "다른 컴퓨터"는
  마치 인터넷에 직접 연결되어 있는 것처럼(몇가지를 제외하고) 인터넷을 사용
  할 수 있다.

Pauline Middelink에 의하면:

  "다른 컴퓨터"는 Linux #1을 게이트웨이(gateway)로 설정해야 한다는 사실을 잊지
  말아야 한다(기본 라우터(default route)인가 단지 서브넷(subnet)인가는 상관없다.)
  만약 "다른 컴퓨터"가 Linux #1을 게이트웨이로 설정하지 않는다면, Linux #1은 
  proxy arp를 지원하도록 설정되어야 하는데, proxy arp에 관한 것은 이 문서의
  범주를 벗어나는 내용이다.

다음은 comp.os.linux.networking에 포스팅된 글에서 발췌한 것으로 위의 예에서의
이름에 맞도록 수정된 것이다:

   o 나는 "다른 컴퓨터"가 PPP혹은 SLIP으로 연결된 나의 Linux #1을 gateway로 인식
     하도록 하였다.
   o "다른 컴퓨터"로부터 Linux #1으로 패킷이 전달될 때, Linux #1은 그 패킷에
     새로운 발신포트번호(source port number)를 할당하고 원래의 주소는 따로 
     저장해 둔다. MASQ서버는 수정된 패킷을 SLIP/PPP를 통해서 인터넷으로 
     전송한다.
   o 인터넷으로부터 Linux #1으로 패킷이 되돌아올 때, Linux #1은 포트번호(port
     number)를 검사해서 "다른 컴퓨터"로부터 요청되었던 것인지 확인한다. 맞다면,
     MASQ 서버는 저장해뒀던 원래의 포트번호와 IP 주소를 인터넷으로부터 온
     패킷에 다시 할당하고 "다른 컴퓨터"로 보내준다.
   o 인터넷에서 패킷을 보낸 호스트는 이런 일이 일어나는 것을 전혀 알 수 없다.

IP Masquerading의 또다른 예:

아래 그림에 전형적인 예가 있다:


    +----------+
    |          |  Ethernet
    | A-box    |::::::
    |          |.2   : 192.168.0.x
    +----------+     :
                     :      +----------+   
    +----------+     :   .1 |  Linux   |   PPP 접속
    |          |     :::::::| Masq-Gate|:::::::::::::::::::// Internet
    | B-box    |::::::      |          |  111.222.333.444
    |          |.3   :      +----------+
    +----------+     :
                     :
    +----------+     :
    |          |     :
    | C-box    |::::::
    |          |.4
    +----------+

    |                       |          |
    | <----내부 네트웍----> |          | <------외부 네트웍------>
    |                       |          |

이 예에서는 모두 네개의 컴퓨터가 있다. 이 경우에도 마찬가지로 오른쪽 끝에는 PPP접속을 할 수 있는 서버가 있고, 더 오른족에는 정보를 교환하고자 하는 인터넷상의 호스트들이 있다고 가정한다. 리눅스 시스템인 Masq-Gate가 내부 네트웍의 A-box, B-box, C-box를 외부의 인터넷으로 연결하도록 해주는 IP Masquerading 게이트웨이이다. 내부 네트웍은 RFC-1918에 정해진 몇가지 내부 네트웍 주소중 한가지를 사용는데, 이 경우에는 C 클래스 네트웍인 192.168.0.0이다. 리눅스 박스가 192.168.0.1의 IP 주소를 사용하며, 다른 시스템들은 다음과 같은 주소를 갖는다:

세 개의 컴퓨터, A-box, B-box and C-box는 TCP/IP를 사용할 수 있다면 어떤 OS를 사용하고 있더라도 상관 없다. 윈도우즈 95, 매킨토시 MacTCP 또는 OpenTransport나 다른 리눅스 박스라도 IP MASQ를 통해서 인터넷에 연결될 수 있다. 연결되는 동안, 마스커레이딩을 하는 시스템, 혹은 MASQ-gate는 내부로부터의 연결을 모두 MASQ-gate 자체에서 보내는 것처럼 전환하게 된다. MASQ는 외부로부터 신호(또는 정보)가 오면, 내부에 있는 원래의 컴퓨터로 가도록 재정렬한다. 그래서 내부 네트웍에게는 마치 인터넷에 직접 연결되어 있는 것처럼 보여지고, 마스커레이딩을 사용하고 있는지 아닌지를 구별할 수 없게 된다. 이것을 "투명한" 연결이라 한다.

NOTE: 다음 사항에 대한 자세한 것은 FAQ 를 참조하기 바람:

2.6 리눅스 2.0.x 버젼에서 IP Masqeurade를 사용하기 위한 요구사항들

** 가장 최근의 정보는 IP Masquerade Resource를 참조하기 바란다. **

2.7 리눅스 2.2.x 버젼에서 IP Masqeurade를 사용하기 위한 요구사항들

** 가장 최근의 정보는 IP Masquerade Resource 를 참고하기 바란다. **

위의 패치들에 대한 더 많은 정보와 그외의 다른 정보들을 IP Masquerade Resource 에서 확인할 수 있다.


다음 이전 차례