傳統路由器在網絡和需求變得復雜時將無法滿足需要,而一種基於策略的路由給了我們更好的選擇。本文給出一個Linux下的配置實例,它在2.4G奔騰4處理器、256M內存的計算機上運行通過,並在160多台電腦的網絡環境下運轉正常。
基於策略的路由比傳統路由更強大,使用更靈活,它使網絡管理者不僅能夠根據目的地址而且能夠根據報文大小、應用或IP源地址來選擇轉發路徑。在現實的網絡應用中,這種選擇的自由性還是很需要的。而Linux從2.1版本的內核開始就實現了對策略路由的支持,下面就介紹一個配置實例,以期對讀者有所幫助。
實例背景
如圖所示,兩個內部網通過遠端路由器1與因特網相聯,通過遠端路由器2與上級網相聯, Linux服務器做策略路由器,內有4塊網卡。IP地址的分配情況如表所示。
在應用需求方面,內網1允許通過遠端路由器1(172.22.254.254)連接因特網,但只允許Http協議、Ftp協議經常性通過,其他協議分時間段開放(這樣做是為了避免員工在上班時間打網絡游戲和聊天),例如在上班時間(7:30~16:30)封閉,在下班時間(16:30~7:30)和周六、日全天開放。而且,內網1無權訪問內網2及上級網,但可以訪問內網2上的服務器。而允許內網2訪問外網,上級網則只能訪問內網2上的192.168.1.2服務器。而防火牆主要用來阻止外網主動訪問內網,防止網絡攻擊。
實現過程
這裡我們選擇Red Hat Enterprise Linux WS 3操作系統,其內核版本是2.4.21,對策略路由已經有了很好的支持,下面的配置也以此為基礎。
1.設置IP地址
首先,執行如下命令:
ifconfig eth0 10.89.9.1 netmask 255.255.255.0
ifconfig eth1 192.168.1.1 netmask 255.255.255.0
ifconfig eth2 172.22.254.14 netmask 255.255.255.0
ifconfig eth3 10.140.133.14 netmask 255.255.255.0
為了讓計算機啟動時自動設置IP地址,還需要分別修改/etc/sysconfig/network-scripts/下的四個文件:ifcfg-eth0、ifcfg-eth1、ifcfg-eth2、ifcfg-eth3,將ONBOOT屬性設為yes,即“ONBOOT=yes”,文件格式如下:
# Intel Corp. 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0c:76:20:54:71
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=no
NETMASK=255.255.255.0
IPADDR=10.89.9.1
如果你不喜歡命令行模式,也可以在圖形模式下進行以上操作:主菜單→系統設置→網絡,設好IP地址並激活,並且選中“當計算機啟動時激活設備”選項。
2.打開轉發功能
執行命令“echo ”1“ > /proc/sys/net/ipv4/ip_forward”,或者在/etc/sysconfig/network文件中添加“FORWARD_IPV4=yes”。
3.創建路由表
編輯 /etc/iproute2/rt_tables 文件,執行如下命令。在這裡新添加了4個路由表,分別為int1 、int2、int3、int4.
# reserved values
#255 local
#254 main
#253 default
#0 unspec
# local
#1 inr.ruhep
1 int1
2 int2
3 int3
4 int4