Preface
因為測試需要, Client 需要透過 Route 到達 Server:
Build-up VM OS
這邊使用 VMWare Workstation 建立 VM OS, 而 OS 選擇 CentOS 6.4 64bits 版本. 各個部份設定參考如下.
Route VM
Route 共需要三張網卡, UI 設定如下:
因為 eth0 是 NAT, 故只剩下 eth1 與 eth2 需要設定. 請新增下面檔案:
- /etc/sysconfig/network-scripts/ifcfg-eth1
- DEVICE=eth1
- HWADDR=00:0C:29:21:FC:4D
- BOOTPROTO=static
- NM_CONTROLLED=yes
- ONBOOT=yes
- IPADDR=10.5.0.6
- NETMASK=255.255.255.0
- DEVICE=eth2
- HWADDR=00:0C:29:21:FC:57
- BOOTPROTO=static
- NM_CONTROLLED=yes
- ONBOOT=yes
- IPADDR=172.16.0.2
- NETMASK=255.255.0.0
接下來為了方便測試, 增加 Client 與 Server 的 ip 到 /etc/hosts 檔案中:
Client VM
Client 的 eth0 連接到 Vmnet2, 接著設定如下:
Server VM
Server 的 eth0 連接到 Vmnet3, 接著設定如下:
Setup iptables as Router
接著請在 Route machine 上進行如下設定:
接著進行如下測試, 首先開啟一個 terminal 並登入 Client 後執行 tcpdump -i eth0. 接著再開啟另一個 terminal 登入 Server:
此時回到剛剛 Client 開啟的 terminal 應該可以看到:
你會發現雖然是由 Server 在 ping Client, 但是 Client 看到的卻是 Route 的 IP, 這是因為 NAT (Network Address Translation) 造成的結果.
Supplement
* AskUbuntu - Forwarding traffic between 2 interfaces
* Introduction to Linux Traffic Control
* Changing IP Addresses and Routes
* Red Hat Enterprise Linux 4 - FORWARD 與 NAT 規則