為了實現路由器功能,這裡需要使用NAT技術,詳細流程如下:
STEP 1
為機器裝好兩塊網卡。集成的或是獨立的無所謂。編輯/etc/network/interface,如下
auto eth0
iface eth0 inet static
address 192.168.X.XX
netmask 255.255.255.0
auto eth1
iface eth1 inet static
address 202.XX.XX.XXX
gateway 202.XX.XX.XXX
netmask 255.255.255.0
dns-nameservers XX.XX.XX.XX XXX.XX.XX.XX
其中我配置eth0為內網的網關,eth1為外網的接口。注意到內網不用設置gateway。還有外網的設定要由實際情況來設,如DHCP等,實際的DNS服務器等。我這裡的情況上靜態的IP,還要與MAC綁定,之前MAC沒有設好,卡了我很久。
STEP 2
讓機器實現簡單的轉發功能。
首先先讓它知道什麼包要給哪個網卡發出去,添加兩條路由表項:
#route add -net 192.168.X.0 netmask 255.255.255.0 eth0
#route add -net 202.XX.XX.0 netmask 255.255.255.0 eth1
意思是192.等等開頭的從eth0發出去,202.等等開頭的從eth1發出去。
其次要讓從一個網卡進來的包可以forward到另一個網卡上去,鍵入以下命令:
#echo 1 > /proc/sys/net/ipv4/ip_forward
同時修改/etc/sysctl.conf, 將net.ipv4.ip_forward=1的注釋去掉
這幾個命令可能寫成一個shell script開機運行,當然也可以手工操作。
STEP 3
到上面一步只是實現了路由器的功能,還沒有到NAT的實現。linux主機實現NAT是通過iptables命令實現的。
一般添加 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE即可;
當連接外網時,可以再添加 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Trouble Shooting
開始的時候,碰到好多問題。硬件搭好後就是上不了網,以下是我的排錯經驗:
網關上來回ping,看是否可以ping通內網與處網的IP地址,如果不通,檢查物理連接和基本設置,如MAC地址等,DNSserver是否寫對
如果可以,則問題出在網間轉發上,轉到上述STEP2檢查是否正確設置
Summary
1、雖然NAT路由功能實現,但是該路由的自適應性有待進一步研究;
2、為了更好地管理和配置該路由器,需要開發後台管理界面���目前的工作的基於eybuild實現。但是後期有
非常多的配置,所以仍需加油哦!