2008年9月2日 星期二

如何在Ubuntu上設定兩個DHCP然後透過一張網卡上網

延續上一篇的文章(如何設定兩個DHCP在Ubuntu ),現在的情形是這樣的:

目前的機器裡,一共有三張網路卡,而它們的預定的分配情形如下:



eth0 (對外網路),使用一個由ADSL分配給你的IP,為了方便起見,我們將它設為:192.168.1.68
eth1 (對內網路,DHCP-1), 使用192.168.5.0/24網段, gateway:192.168.5.1
eth2 (對內網路,DHCP-2), 使用192.168.6.0/24網段, gateway:192.168.6.1


當你把eth0及eth1分別Assign兩個DHCP Server後,請依照下列的步驟


Step 1: 編輯網路(Interfaces)文件

輸入指令:
sudo gedit /etc/networking/interfaces

編輯檔案:

auto lo
iface lo inet loopback


auto eth0 eth1 eth2
iface eth0 inet static
address 192.168.1.86
netmask 255.255.255.0
network 192.168.1.0
broadcase 192.168.1.255
gateway 192.168.1.1
dns-nameservers 168.95.1.1


iface eth1 inet static
address 192.168.5.1
netmask 255.255.255.0
network 192.168.5.0
broadcase 192.168.5.255
dns-nameservers 168.95.1.1

iface eth2 inet static
address 192.168.6.1
netmask 255.255.255.0
network 192.168.6.0
broadcase 192.168.6.255
dns-nameservers 168.95.1.1

Step2: 讓Ubuntu的Router可以Forward封包的功能
輸入指令
sudo /etc/sysctl.conf

編輯檔案:
net.ipv4.ip_forward=1 這行功能打開,若沒有這行時請自己加入

Step3:設定iptables
輸入指令
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Step4:將上述步驟三auto load 到自動執行檔
1. 新增一個file, 命名為:myiptables
2. 在myiptables這個文件中輸入
#! /bin/bash
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
(有人說要加這行,可以做一些安全性設定,就是打開nat的filter功能,事實上不加也可以)

3. 儲存上述檔案到/root資料夾中,或自行定義的檔案
4. 更改此檔案為可執行檔:
輸入指令:
chmod 700 myiptables


5. 編輯自動執行檔的檔案
輸入指令:
sudo gedit /etc/rc.local

編輯此檔案:在此檔案中加入此兩行程式
/root/myiptables 
exit 0

6. 重新開機

沒有留言: