1、前言
NAT 伺服器主要是用來簡化及保有 IP 位址,它可讓原本無法上網且使用內部IP位址的主機可以成功的連接 Internet。如此將大大減少 IP 位址的需求,因為基本上整個內部網路都可藉 NAT 上的一個外部 IP 來連至 Internet。NAT 伺服器的原理與運作流程文章目錄
1、前言2、實作環境
3、安裝及設定
步驟1.設定網卡
步驟2.開機自動啟動 iptables
步驟3.啟用 IP Forwarding 功能
步驟4.載入設定值
步驟5.執行 iptables
4、參考
2、實作環境
- Fedora Core 1
3、安裝及設定
步驟1.設定網卡
設定網卡 (eth0、eth1) 路徑為 /etc/sysconfig/network-scripts/ifcfg-eth (0~1)。eth0 內容如下(Private IP)
DEVICE=eth0 //連接內部網路、伺服器的網卡
BOOTPROTO=static //BOOTP 協定
BROADCAST=192.168.1.255 //廣播
IPADDR=192.168.1.254 //此網卡IP位址
NETMASK=255.255.255.0 //遮罩
NETWORK=192.168.1.0 //網路位址
ONBOOT=yes //開機便啟動
eth1 內容如下(Public IP)
DEVICE=eth1 //連接Internet的網卡
BOOTPROTO=static //BOOTP協定
BROADCAST=61.60.59.255 //廣播
IPADDR=61.60.59.58 //此網卡IP位址
NETMASK=255.255.255.0 //遮罩
NETWORK=61.60.59.0 //網路位址
ONBOOT=yes //開機便啟動
步驟2.開機自動啟動 iptables
為了開機便能自動執行 iptables,輸入 ntsysv 後出現請選取 iptables 後確定,則下次開機時便會自動執行。步驟3.啟用 IP Forwarding 功能
修改的 sysctl.conf 檔案內容以代替內部網路的主機傳送封包。# vi /etc/sysctl.conf
net.ipv4.ip_forward=0->1
修改 /proc/sys/net/ipv4/ip_forward 的檔案內容將 0 -> 1。
# echo 1 > /proc/sys/net/ipv4/ip_forward
或修改 /etc/sysconfig/network 開啟 IPV4 的 Forward 功能。
# vi /etc/sysconfig/network
FORWARD_IPV4=yes //加入此行
步驟4.載入設定值
將之前所設定的設定值重新載入。# /etc/rc.d/init.d/xinetd reload //重新載入xinetd服務
Reloading configuration: [ OK ]
步驟5.執行 iptables
允許內部網路、伺服器及 DMZ 的主機可連接至 Internet,即 IP 偽裝。# iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j MASQUERADE
但此允許規則,無法再下次開機後繼續執行,因此必須寫入 /etc/rc.d/rc.local 讓允許規則,一開機便自動執行允許規則,其允許規則如下:
開啟 SNAT 功能讓內部 PC 能夠連外即所謂的 IP 偽裝。
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
開啟 DNAT 功能外部連結合法 IP 時重新導向到私人 IP 即所謂的平衡負載,下列為開啟 61.60.59.58:80對應到192.168.1.10:80 (Web)-TCP。
iptables -t nat -A PREROUTING -p tcp -d 61.60.59.58/255.255.255.255 --dport 80 -j DNAT --to 192.168.1.10:80
4、參考
- /etc/sysconfig/network-scripts/ifcfg-eth0、1: 網卡。
- /etc/sysctl.conf: 啟用 IP Forwarding 功能。
- /proc/sys/net/ipv4/ip_forward: 啟用 IP Forwarding 功能。
- /etc/rc.d/rc.local: 執行 iptables。