首先建立兩張路由表,只須要添加到相應的文件中便可,Linux一共支持255個路由表,rt_tables文件中默認已經存在了三張路由表,分別是:
255 local
254 main
253
default
[root@localhost /]# echo "10 cnc" >>
/etc/iproute2/rt_tables
[root@localhost /]# echo
"20 cernet"
>>/etc/iproute2/rt_tables
注意:路由表前面的數字只是編號並不表明優先級,路由表沒有優先級,只有策略規則纔有優先級。
如下配置內容每次重啓系統後都會消失,因此要把腳本設置爲隨系統一塊啓動。
######################配置腳本###############################
#!/bin/bash
#加載iptables的nat和filter模塊,iptables服務最好設置成在開機時自動運行
modprobe iptable_nat
modprobe iptable_filter
#打開Linux內核包轉發功能
echo
"1"
> /proc/sys/net/ipv4/ip_forward
#配置接口的IP地址,並激活接口
#eth0鏈接聯通線路,eth1鏈接教育網線路,eth2下連三層交換機
#這裏使用iproute2的新命令來配置IP,不在使用舊的命令如:ifconfig
ip address add 115.158.113.164/25 dev eth0
ip link set dev eth0 up
ip address add 10.212.46.100/24 dev eth1
ip link set dev eth1 up
ip address add 10.10.10.1/30 dev eth2
ip link set dev eth2 up
#向路由表中添加路由
#向cnc路由表中添加一條默認路由
ip route add
default
via 115.158.113.129 table cnc
#向cernet路由表中添加一條默認路由
ip route add
default
via 10.212.46.1 table cernet
#向主路由表中添加指向內部網段的路由,否則數據包反回時找不到路由信息
ip route add 192.168.100.0/24 via 10.10.10.2 table main
ip route add 192.168.200.0/24 via 10.10.10.2 table main
#設置路由規則rule,注意規則是按優先級來執行的。
#全部目的地訪問115.158.119.0/25網段的用戶都走cernet線路出去。
ip rule add from 0.0.0.0/0 to 115.158.119.0/25 table cernet pref 99
#網段192.168.100.0/24的用戶都走聯通線路出去,優先級設置爲100
ip rule add from 192.168.100.0/24 table cnc pref 100
#網段192.168.200.0/24的用戶都走教育網線路出去,優先級設置爲101
ip rule add from 192.168.200.0/24 table cernet pref 101
#刷新路由表,使新配置的路由生效
ip route flush cache
#按求對數據包進行NAT轉換
#把192.168.100.0/24網段的用戶的源IP轉換成聯通線路接口的IP
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to 115.158.113.164
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j SNAT --to 10.212.46.100
######################結束##################################
bash