一.網絡整體框架
網絡結構如圖,
Linux路由器這臺計算機標識為A,它與三個網段相連,192.168.1.0/24,10.0.0.0/8,172.16.0.0/16.
A計算機必須擁有三塊網卡,分別與三個網段相連。
假設:
eth0與172.16.0.0相連,
eth1與10.0.0.0相連,
eth2與192.168.1.0相連。
二.具體網絡設置
2.1配置eth0
首先來配置eth0.給這個網絡接口分配地址172.16.1.1,運行下列命令:
# ifconfig eth0 172.16.1.1 netmask 255.255.0.0
為了使這個地址不再計算機重新啟動后消失,編輯/etc/sysconfig/network-scripts/ifcfg-eth0文件,修改為如下格式:
DEVICE = eth0 ONBOOT = yes BROADCAST = 172.16.255.255 NETWORK = 172.16.0.0 NETMASK = 255.255.0.0 IPADDR = 172.16.1.1 |
增加一條靜態(tài)路由:
# route add -net 172.16.0.0 netmask 255.255.0.0
這樣系統(tǒng)中就增加了一條靜態(tài)路由:
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
2.2配置eth1
接下來,配置eth1,eth1與10.0.0.0網段相連,分配給它的地址是10.254.254.254,使用ifconfig命令為它配置參數:
# ifconfig eth1 10.254.254.254 netmask 255.0.0.0
同樣編輯/etc/sysconfig/network-scripts目錄下的ifcfg-eth1文件,內容如下:
DEVICE = eth1 ONBOOT = yes BROADCAST = 10.255.255.255 NETWORK = 10.0.0.0 NETMASK = 255.0.0.0 IPADDR = 10.254.254.254 |
再增加一條靜態(tài)路由:
# route add -net 10.0.0.0 netmask 255.0.0.0
網絡中當前的路由表為
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.0.0 * 255.255.0.0 U 0 0 0 et |
2.3配置eth3
最后配置eth3,它連接192.168.1.0網段,分配的IP地址是192.168.1.254,執(zhí)行下列命令:
# ifconfig eth2 192.168.1.254 netmask 255.255.255.0
編輯/etc/sysconfig/network-scripts目錄下的ifcfg-eth2文件,內容如下:
DEVICE = eth2 ONBOOT = yes BROADCAST = 192.168.1.255 NETWORK = 192.168.1.0 NETMASK = 255.255.255.0 IPADDR = 192.168.1.254 |
再增加一條靜態(tài)路由:
# route add -net 192.168.1.0 netmask 255.255.255.0
這樣網絡中就有三條靜態(tài)路由記錄了:
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0 10.0.0.0 * 255.0.0.0 U 0 0 0 eth1 192.168.1.0 * 255.255.255.0 U 0 0 0 eth2 |
2.4配置缺省路由和系統(tǒng)轉發(fā)
2.4.1建立缺省路由
還要為系統(tǒng)增加一條缺省路由,因為缺省的路由是把所有的數據包都發(fā)往它的上一級網關(假設地址是172.16.1.100,這個地址依賴于使用的網絡而定,由網絡管理員分配),因此增加如下的缺省路由記錄:
# route add default gw 172.16.1.100
或者
#ip route add default via 172.16.1.100 dev eth0
這樣系統(tǒng)的靜態(tài)路由表建立完成,它的內容是
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0 10.0.0.0 * 255.0.0.0 U 0 0 0 eth1 192.168.1.0 * 255.255.255.0 U 0 0 0 eth2 default 172.16.1.100 0.0.0.0 UG 0 0 0 eth0 |
2.4.2建立路由轉發(fā)
最后一步,要增加系統(tǒng)的IP轉發(fā)功能。這個功能由/proc/sys/net/ipv4目錄下的ip_forward文件控制,執(zhí)行如下命令打開ip轉發(fā)功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
或者
/etc/sysctl.conf文件,讓包轉發(fā)功能在系統(tǒng)啟動時自動生效:
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
#iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE
參數說明:
-t nat:調用NAT表,調用這個說明遇到了產生新的連接的包。
-A POSTROUTIN:指定信息包打算離開防火墻時改變它們的規(guī)則,意即使用NAT。
-s 192.168.1.0/255.255.255.0:要進行NAT轉換的源地址,也就是內網地址。
-o eht0:輸出接口為eth0。
-j MASQUERADE:指定進行地址偽裝,意即將內網地址偽裝成外接口eth0的地址進行傳輸。
整條語句的意思就是將內網向外連接的數據包的地址轉換為外網接口的地址并從外接口轉發(fā),同時外
網訪問內網的連接將被映射到相應的內網地址。
Iptables上的設置可用命令iptables -t nat –nvL查看。
保存iptables配置。
/etc/rc.d/init.d/iptables save
使用這條命令就可以將iptables配置寫入到文件/etc/sysconfig/iptables中去了。
重啟iptables使配置生效。
service iptables restart
2.4.3 常用命令
ip route del default iptables -t filter –nvL iptables -t nat -nvL ip route ls ip route delete 169.254.0.0/16 service iptables save watch iptables -nvL |
三.測試路由器的工作情況。
在linux路由器上測試:
第一步,測試自身網絡是否工作正常,執(zhí)行如下命令
ping 172.16.1.1
ping 192.168.1.254
ping 10.254.254.254
如果這些地址都能ping通,則第一步通過,否則查找原因,排除錯誤。
第二步,測試與上一級網關之間是否連通
ping 172.16.1.100
如果通暢,則正常;否則查找錯誤原因。
在192.168.1.0網絡內測試,假設它的地址是192.168.1.1,
第一步,測試自身是否工作正常, ping 192.168.1.1
第二步,測試與網關是否連通, ping 192.168.1.254
第三步,測試與10.254.254.99是否連通,這是10.0.0.0網段內的一臺計算機 ping 10.254.254.99
第四步,測試與外網地址是否連通 ping 172.16.1.100 如果連通了,表示路由器配置正確,否則,查找原因,并排除之。