使用下面的 route 命令能夠查看 Linux 內核路由表。php
# 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 命令的輸出項說明linux
輸出項 | 說明 |
---|---|
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的路由器。ide
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的路由器。ui
Destination Gateway Genmask Flags Metric Ref Use Iface
----------- ------- ------- ----- ------ --- --- -----
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
設置和查看路由表均可以用 route 命令,設置內核路由表的命令格式是:spa
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:.net
添加到主機的路由unix
# route add -host 192.168.1.2 dev eth0:0 # route add -host 10.20.30.148 gw 10.20.30.40
添加到網絡的路由blog
# 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
轉載於:http://blog.chinaunix.net/space.php?uid=22006903&do=blog&cuid=2159791
菜鳥階梯blog