nat_dnat_snat  

上圖為我們的環境架構。

 

我們主要的設定皆在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

arrow
arrow
    全站熱搜

    dreamtails 發表在 痞客邦 留言(1) 人氣()