2015-06-09 昔日自由
注意:
- 使用route命令 主要操作 linux內核 路由表,從而操縱路由邏輯
- 以下操作均在三層交換機上(linux內核)
- 嚴格的講,該linux shell下的 route命令肯定對應交換機配置視圖下的某個命令,如 (config)#ip route …….
- 同時,若要使用 交換芯片的 硬件三層轉發
- 則在上述 操作 linux 路由表的命令下內核中,則需在內核添加路由表的函數中 添加該路由表項下交換芯片的操作;
- 否則就會出現 第一次在交換芯片中 沒有表項命中,然後上送cpu,走linux內核,軟路由,,從而在內核命中軟路由後,把相應命中的linux內核表項下發交換芯片。
如下,先上圖,看一下路由表的形式
一、route 命令的簡單 使用
1. 路由表項的添加
1. 網段路由
route add -net 111.111.111.0/24 dev vlan2
route add -net 111.111.111.0 netmask 255.255.255.0 dev vlan2
route add -net 10.1.100.0/24 gw 172.168.10.254
2. 主機路由
route add -host 177.177.177.177 dev vlan4
route add -host 177.177.177.177 gw 192.168.4.4
3. 默認路由
route add default dev vlan4
route add default gw 192.168.4.4
注意:其他詳細的 操作見附錄
二、表項及路由的分析
1. vlan的路由 1. 如上圖前四條表項 是配置完 四個vlan後 產生的四個直連路由表項,相當於配置vlan的時候下了一條 網段路由 目的網段: 該vlan所屬網段 出接口 : 該vlan id 2. 其作用只是產生一條路由,隨後,有報文過來了,匹配到了該條路由,然後報文就從對應的出接口出去了,所以纔有了vlan間的直接通信。 3. 相當於創建vlan時 附加下了一條 route add -net 192.168.4.0/24 dev vlan4 2. 非常規測試的例子
注:關鍵是pc2 ip與vlan3 ip不是同一網段,但只要L3上的路由配的合適,就能使pc1 ping同pc2。
附錄:
感覺不錯的相關文章,原文鏈接http://blog.csdn.net/wuruixn/article/details/8515330
使用下面的 route 命令可以查看 Linux 內核路由表。
# route
Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
route 命令的輸出項說明
輸出項 | 說明 |
---|---|
Destination | 目標網段或者主機 |
Gateway | 網關地址,”*” 表示目標是本主機所屬的網絡,不需要路由 |
Genmask | 網絡掩碼 |
Flags | 標記。一些可能的標記如下: |
U — 路由是活動的 | |
H — 目標是一個主機 | |
G — 路由指向網關 | |
R — 恢復動態路由產生的表項 | |
D — 由路由的後臺程序動態地安裝 | |
M — 由路由的後臺程序修改 | |
! — 拒絕路由 | |
Metric | 路由距離,到達指定網絡所需的中轉數(linux 內核中沒有使用) |
Ref | 路由項引用次數(linux 內核中沒有使用) |
Use | 此路由項被路由軟件查找的次數 |
Iface | 該路由表項對應的輸出接口 |
主機路由
主機路由是路由選擇表中指向單個IP地址或主機名的路由記錄。主機路由的Flags字段爲H。例如,在下面的示例中,本地主機通過IP地址192.168.1.1的路由器到達IP地址爲10.0.0.10的主機。
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ------ --- --- ----- 10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0
網絡路由
網絡路由是代表主機可以到達的網絡。網絡路由的Flags字段爲N。例如,在下面的示例中,本地主機將發送到網絡192.19.12的數據包轉發到IP地址爲192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ----- --- --- ----- 192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0
默認路由
當主機不能在路由表中查找到目標主機的IP地址或網絡路由時,數據包就被髮送到默認路由(默認網關)上。默認路由的Flags字段爲G。例如,在下面的示例中,默認路由是IP地址爲192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ------ --- --- ----- default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
配置靜態路由
route 命令
設置和查看路由表都可以用 route 命令,設置內核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
- add : 添加一條路由規則
- del : 刪除一條路由規則
- -net : 目的地址是一個網絡
- -host : 目的地址是一個主機
- target : 目的網絡或主機
- netmask : 目的地址的網絡掩碼
- gw : 路由數據包通過的網關
- dev : 爲路由指定的網絡接口
route 命令使用舉例
添加到主機的路由
# route add -host 192.168.1.2 dev eth0:0 # route add -host 10.20.30.148 gw 10.20.30.40
添加到網絡的路由
# route add -net 10.20.30.40 netmask 255.255.255.248 eth0 # route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 # route add -net 192.168.1.0/24 eth1
添加默認路由
# route add default gw 192.168.1.1
刪除路由
# route del -host 192.168.1.2 dev eth0:0 # route del -host 10.20.30.148 gw 10.20.30.40 # route del -net 10.20.30.40 netmask 255.255.255.248 eth0 # route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 # route del -net 192.168.1.0/24 eth1 # route del default gw 192.168.1.1
設置包轉發
在 CentOS 中默認的內核配置已經包含了路由功能,但默認並沒有在系統啓動時啓用此功能。開啓 Linux的路由功能可以通過調整內核的網絡參數來實現。要配置和調整內核參數可以使用 sysctl 命令。例如:要開啓 Linux內核的數據包轉發功能可以使用如下的命令。
# sysctl -w net.ipv4.ip_forward=1
這樣設置之後,當前系統就能實現包轉發,但下次啓動計算機時將失效。爲了使在下次啓動計算機時仍然有效,需要將下面的行寫入配置文件/etc/sysctl.conf。
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
用戶還可以使用如下的命令查看當前系統是否支持包轉發。
# sysctl net.ipv4.ip_forward