본문 바로가기
3. 개발 관련/정리 :: issue 와 resovle

iptables port fowarding in vmware

by kyuho.choi 2009. 7. 9.
728x90
반응형

재훈햇님을 끊임없는 질문으로 힘겹게 만들어드리며;;; iptable을 이용한 port fowarding을 사용해보았다.

실행 환경은 vmware 6.0

운영체제는 Fedora Core 6 * 3 (network setting is NAT)

테스트 내용은 vlc 스트리밍 / vlc 웹 스트리밍 / httpd

iptables는 스크립트로 작성하여 사용하였고 아래에 구성한 포트 포워딩 구조(귀찮아서 vlc만 올림;;;)와 함께 작성한다.

테스트 결과 

구동 : 만족
성능 : httpd 제외 캐구림(Vm 에서 3개를 동시에 돌려 스트리밍 서비스를 할래니 성능이라는 말을 쓰기 민망함)

딱히 더 쓸말이 없으니 아래에 스크립트와 구조를 추가.


vlc iptables 스크립트

#/bin/sh

iptables=/sbin/iptables

$iptables -F

service iptables stop

service iptables start


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


$iptables -P INPUT ACCEPT
echo "iptables -P INPUT ACCEPT"

$iptables -t nat -A PREROUTING -p udp -i eth1 -d 192.168.1.1 --dport 80 -j DNAT --to 192.168.20.93:80
$iptables -t nat -A PREROUTING -p tcp -i eth1 -d 192.168.1.1 --dport 80 -j DNAT --to 192.168.20.93:80
echo "iptables -t nat -A PREROUTING -p udp -i eth1 -d 192.168.1.1 --dport 80 -j DNAT --to 192.168.20.93:80"

$iptables -t nat -A PREROUTING -p udp -i rausb0 -d 192.168.20.94 --dport 80 -j DNAT --to 192.168.1.2:80
$iptables -t nat -A PREROUTING -p tcp -i rausb0 -d 192.168.20.94 --dport 80 -j DNAT --to 192.168.1.2:80
echo "iptables -t nat -A PREROUTING -p udp -i rausb0 -d 192.168.20.94 --dport 80 -j DNAT --to 192.168.1.2:80"

$iptables -A INPUT -i eth1 -j ACCEPT
$iptables -A OUTPUT -o eth1 -j ACCEPT
echo "iptables -A INPUT -i eth1 -j ACCEPT"
echo "iptables -A OUTPUT -o eth1 -j ACCEPT"

$iptables -A INPUT -i rausb0 -j ACCEPT
$iptables -A OUTPUT -o rausb0 -j ACCEPT
echo "iptables -A INPUT -i rausb0 -j ACCEPT"
echo "iptables -A OUTPUT -o rausb0 -j ACCEPT"

$iptables -t nat -A POSTROUTING -s 192.168.1.2 -j SNAT --to 192.168.20.94
echo "iptables -t nat -A POSTROUTING -s 192.168.1.2 -j SNAT --to 192.168.20.94"


httpd iptables 스크립트


#/bin/sh

iptables=/sbin/iptables


$iptables -F

service iptables stop

service iptables start

 

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

$iptables -P INPUT ACCEPT
echo "iptables -P INPUT ACCEPT"

$iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.168.17.131 --dport 80 -j DNAT --to 192.168.17.128:80
echo "iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.168.17.131 --dport 80 -j DNAT --to 192.168.17.128:80"

$iptables -A INPUT -i eth0 -j ACCEPT
$iptables -A OUTPUT -o eth0 -j ACCEPT
echo "iptables -A INPUT -i eth0 -j ACCEPT"
echo "iptables -A OUTPUT -o eth0 -j ACCEPT"


$iptables -A INPUT -i eth1 -j ACCEPT
$iptables -A OUTPUT -o eth1 -j ACCEPT
echo "iptables -A INPUT -i eth1 -j ACCEPT"
echo "iptables -A OUTPUT -o eth1 -j ACCEPT"

$iptables -t nat -A POSTROUTING -s 192.168.17.128 -p tcp --dport 80 -j MASQUERADE
echo "iptables -t nat -A POSTROUTING -s 192.168.17.128 -p tcp --dport 80 -j MASQUERADE"


아래는 포트 포워딩을 실행하고자 하는 환경에 대한 구조도이다.

728x90
반응형

댓글