上圖為我們的環境架構。
我們主要的設定皆在NAT Server(CentOS 5.5)上,對外IP使用10.237.0.1 (eth0),對內IP使用192.168.191.254(eth2)
情境: 今天我們架設一台Web Server(IP: 192.168.191.10)在內部網路,而我們希望這台Web Server可以被外部網路(10.237.0.0/24)的PC看到網頁(http://10.237.0.1:8080/),並且此Web Server也可以與外部網路有所聯繫。
考慮:
1. Web Server連到外部網路(10.237.0.1): 必須把經由NAT Server的封包Source由192.168.191.10轉成10.237.0.1
2. 外部網路(10.237.0.1)連到Web Server網頁: 必須把進到NAT Server的封包Destination由10.237.0.1且port 8080轉成192.168.191.10且port 80
# vim /etc/sysconfig/network
---------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=Nat.localdomain
GATEWAY=10.237.0.254
---------------------------------------------------
設定連結到外部網路的interface
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
---------------------------------------------------
......
IPADDR=10.237.0.1
NETMASK=255.255.255.0
---------------------------------------------------
設定連結到內部網路的interface
# vim /etc/sysconfig/network-scripts/ifcfg-eth2
---------------------------------------------------
......
IPADDR=192.168.191.254
NETMASK=255.255.255.0
---------------------------------------------------
開啟NAT功能, Session連線數量與Session timeout時間
# vim /etc/sysctl.conf
---------------------------------------------------
......
net.ipv4.ip_forward = 1
......
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 86400 #單位: 秒
net.ipv4.tcp_keepalive_time = 86400 #單位: 秒
---------------------------------------------------
觀看sysctl.conf的設定, 以及 對sysctl.conf檔案生效
# sysctl -p
# service network restart
# iptables -F
設定如何處理經由NAT Server出去到外部網路的封包(更改由NAT Server出去的封包Source IP位址)
# iptables -t nat -A POSTROUTING -s 192.168.191.0/24 -o eth0 -j SNAT --to 10.237.0.1
設定如何處理經由NAT Server進入到內部網路的封包(更改由NAT Server進入的封包Destination IP位址與Port)
# iptables -t nat -A PREROUTING -d 10.237.0.1 -i eth0 -p tcp --dport 8080 -j DNAT --to 192.168.191.10:80
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P INPUT ACCEPT
儲存iptables裡nat table的設定
# /etc/init.d/iptables save
# service iptables restart
如何看NAT設定:
1. # iptables -t nat -L -n
或
2. # vim /etc/sysconfig/iptables
以上資料參考自: http://goo.gl/uj6ca
留言列表