路由表和策略路由的區別
通常我們維護靜態路由表會手工填寫所有IP地址段的路由規則,使用命令或者寫入組態檔永久生效,以常見的作業系統Windows/Linux/AIX為例
#Windows靜態路由
--鍵入 route -p add [目標] [mask <網路掩碼>] [網關] [metric <度量值>] [if <介面>]
route print
route delete
route -p add 172.16.19.0 mask 255.255.255.0 198.15.0.1
#RHEL靜態路由
vi /etc/sysconfig/network
default via 192.168.3.1 dev eth0
10.211.6.0/24 via 192.168.3.1 dev eth0
10.0.0.0/8 via 10.212.52.1 dev eth1
#SuSE靜態路由
vi /etc/sysconfig/network/routes
default 192.168.3.1 - -
10.211.6.0 192.168.3.1 255.255.255.0 eth0
10.0.0.0 10.212.52.1 255.0.0.0 eth1
#AIX靜態路由
smitty mkroute
172.20.14.0/24 gw 172.23.14.254
這種辦法針對少量的規則還可以輕松應對,但規則一旦增加麻煩也就接踵而至,網段地址不斷變化就必須及時更新路由表,否則其他用戶就無法訪問,如果可以根據用戶訪問進來的路徑設定策略路由就會方便很多,而rt_tables就是為此而生
rt_tables
rt_tables簡單來說就是通過給表的命名使得管理簡單化
大部分人習慣直接將路由表優先級號碼直接作為表的名稱來使用,這樣做的好處是非常直觀和簡明的表達了表所在優先級的位置,但是當表的優先級結構出現變動時,我們對巨大的路由表的修改就顯得很煩瑣和費事了,
在/etc/iproute2/目錄下,有這么一個檔案rt_tables,只要對它進行改動,我們將很容易的完成路由表優先級結構的變動,(數值越小優先級別越高)
當路由表的優先級發生變化的時候,我們只需要編輯/etc/iproute2/rt_tables這個檔案就可以直接改變路由表的優先級次序,
[root@peter-host ~]# vim /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
Linux最多可以支持255張路由表,其中有3張表是內置的:
表255 本地路由表(Local table) 本地介面地址,廣播地址,已及NAT地址都放在這個表,該路由表由系統自動維護,管理員不能直接修改,
表254 主路由表(Main table) 如果沒有指明路由所屬的表,所有的路由都默認都放在這個表里,一般來說,舊的路由工具(如route)所添加的路由都會加到這個表,一般是普通的路由,
表253 默認路由表 (Default table) 一般來說默認的路由都放在這張表,但是如果特別指明放的也可以是所有的網關路由,
表 0 保留
因為VPC網路沒有其他網段,所以此處就以同網段的示例:
原有網卡eth0
[root@peter-host network-scripts]# cat ifcfg-eth0 BOOTPROTO=dhcp DEVICE=eth0 ONBOOT=yes TYPE=Ethernet USERCTL=no IPV6INIT=yes DHCPV6C=yes
新增網卡eth1,ip為自動獲取的

從其他機器ping這兩個ip,只有eth0網卡可以通信,eth1不可以

1、編輯路由策略
#編輯rt_tables
echo "251 net_251" >> /etc/iproute2/rt_tables
echo "252 net_252" >> /etc/iproute2/rt_tables
# 查看
[root@peter-host ~]# vim /etc/iproute2/rt_tables
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
#################添加下面兩行(數值越小優先級別越高)
251 net_251
252 net_252
2、添加路由規則
#清空net_251的路由表
ip route flush table net_251
# 添加一個路由規則到 net_251 表,這條規則是 net_251 這個路由表中資料包默認使用源 IP 192.168.0.33 通過 eth0 走網關 192.168.0.1
ip route add default via 192.168.0.1 dev eth0 src 192.168.0.33 table net_251
#來自 192.168.0.33 的資料包,使用 net_251 路由表的路由規則
ip rule add from 192.168.0.1 table net_251
#清空net_252的路由表
ip route flush table net_252
# 添加一個路由規則到 net_252 表,這條規則是 net_252 這個路由表中資料包默認使用源 IP 192.168.0.207 通過 eth1 走網關 192.168.0.1
ip route add default via 192.168.0.1 dev eth0 src 192.168.0.207 table net_252
#來自 192.168.0.207 的資料包,使用 net_252 路由表的路由規則
ip rule add from 192.168.0.1 table net_252
#添加默認網關
route add default gw 192.168.0.1
3、如果需要自啟動生效可以寫進組態檔也可以加入rc.local
vim /etc/rc.local
ip route flush table net_251
ip route add default via 192.168.0.1 dev eth0 src 192.168.0.33 table net_251
ip rule add from 192.168.0.33 table net_251
ip route flush table net_252
ip route add default via 192.168.0.1 dev eth1 src 192.168.0.207 table net_252
ip rule add from 192.168.0.207 table net_252
route add default gw 192.168.0.1
4、給檔案添加 執行權限使其開機執行
chmod u+x /etc/rc.d/rc.local
5、重啟系統
6、在其他主機上測驗ping這兩個ip是否可以通信,此時就可以正常使用了

查看路由表:

網關

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/137094.html
標籤:Linux
下一篇:Linux下目錄概覽
