· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
데비안에서 SNAT 구현하기


저 자: 이종혁(Internet Management Technology Lab, Sungkyunkwan University. webmaster at hurryon.org)

목 차

1. 서 론

리눅스의 커널이 버전 2.4대로 올라오면서 기존에 사용되던 ipchains은 iptables로 대체되었다. iptables는 크게 3가지의 기능을 제공한다. 그 첫번째는 IP MASQUERADE(SNAT)이다. IP MASQUERADE(SNAT)을 이용하면 하나의 아이피을 이용하여 여러대의 컴퓨터가 네트워크에 접속할수 있다. 두번째 기능은 서버 부하을 분산하기 위한 PORT FORWARDING기능이며 투명 프락시 기능인 REDIRECTION이 있다.

본인이 사용하고자할 iptables의 기능은 첫번째 기능인 IP MASQUERADE(SNAT)이다. 리눅스(데비안 우디)에 랜카드을 2개을 설치하고 노트북(윈도그XP)에 연결하여 하나의 아이피을 가지고 리눅스와 노트북 모두 네트워크에 접속하기 위해서이다. 본인은 이러한 열악한 환경을 무지 싫어하지만 어쩔수없다. T.T

iptables을 이용하기 위해서는 커널 컴파일을 통한 셋팅이 필요하다.

2. 준비 사항

3. NAT 구현

3.1. NAT을 위한 커널 컴파일

menuconfig의 Networking options에서 다음의 항목은 필히 체크하고 컴파일하도록 한다. 기타 필요한 컴파일은 알아서 하도록. ㅡㅡ;
[*]Network packet filtering
[*]Socket Filtering
[*]Unix domain sockets
[*]Unix domain sockets
[*]TCP/IP networking

IP: Netfilter Configuration  --->

<*> Connection tracking (required for masq/NAT)
<*> FTP protocol support
<*> IP tables support (required for filtering/masq/NAT)
참고로 Fast switching (read help!) 을 체크하면 NAT기능을 이용할수 없다.

3.2. SNAT을 위한 서버(리눅스)측 작업

리눅스(데비안)가 부팅될때 자동으로 iptables가 작동되도록 /etc/rc.boot 에 간단한 스크립트을 만들어서 넣어 둔다.
#!/bin/bash

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 10.51.12.176
노트북과 연결될 랜카드(이더넷 카드)의 ip설정 작업을 한다.
 [root@zecca network]# cat interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0 eth1 
iface eth0 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
iface eth1 inet static
        address 10.51.12.176
        netmask 255.255.255.0
        network 10.51.12.0
        broadcast 10.51.12.255
        gateway 10.51.12.1
[root@zecca network]# cat options   
ip_forward=yes
spoofprotect=yes
syncookies=no
[root@zecca network]# 

참고로 본인의 eth1 에 고정 아이피가 들어오며 노트북과 연결될 랜카드는 eth0 이다. 으흠. eth1 이 100MB짜리 랜카드라서 이런 불상사가 생겼다. 어케 바꿀수 있는 방법이 존재할거 같기도 한데...찾기가 귀찮다.

3.3. SNAT을 위한 클라이언트(윈도그)측 작업

노트북(윈도그XP)에서 작업할 내용은 간단하다. 네트워크 설정 부분에 가서 다음과 같이 기재하도록 한다.
IP 주소: 192.168.1.2
서브넷 마스크: 255.255.255.0
기본 게이트웨이: 192.168.1.1

기본 DNS 서버: 203.252.57.2

3.4. 최종 테스트

테스트고 나발이고 없다. 노트북(윈도그XP)에서 메신져가 되는지 확인해 본다. 인터넷이 되는지 확인해 본다. 아마도...될것이다. :-)

5. 기 타

5.1. 추가해야 할 사항

  • MSN에서의 파일 전송이나 넷미팅과 같은 기능을 위한 모듈을 이용한 방법은 기제하지 않았다. 조만한 기제해야 겠다. 넘 작업거리가 많다. T.T

5.2. 잡 담

  • SNAT을 구현해서 써야만 하는 종혁의 처지가 불쌍하다. 하지만 덕분에 데비안에서 SNAT을 구현하고 이러한 문서을 만들게 되었으니 이걸로 위안이라도 삼아야 겠다.
  • SNAT을 구현하기 위해 필요한 크로스 케이블을 만들어 주신 김학주 선배님께 감사의 말을 전한다. ㅡㅡ;

5.3. 원본 문서

  • 원본 문서는 본인의 위키에서 구할수 있을것이다. 냠냠...주로 본인의 위키에서 작업을 하는지라 이곳의 문서가 조금 늦게 업데이트 되거나 업데이트 되지 않을수도 있다.
  • http://hurryon.org/wiki/index.php/snat 구현하기





sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-03-02 11:52:38
Processing time 0.0064 sec