linux路由表设置之route指令详解
转载于:blog.csdn/chenlycly/article/details/52141854
使⽤下⾯的 route 命令可以查看内核路由表。
[cpp]
1. # route
2. Destination Gateway Genmask Flags Metric Ref Use Iface
3. 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
4. 169.254.0.0 * 25
5.255.0.0 U 0 0 0 eth0
5. 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 [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
add : 添加⼀条路由规则
del : 删除⼀条路由规则
-net : ⽬的地址是⼀个⽹络
-host : ⽬的地址是⼀个主机
target : ⽬的⽹络或主机
netmask : ⽬的地址的⽹络掩码
gw : 路由数据包通过的⽹关
dev : 为路由指定的⽹络接⼝
添加到主机的路由
[cpp]
1. # route add -host 19
2.168.1.2 dev eth0
2. # route add -host 10.20.30.148 gw 10.20.30.40 #添加到10.20.30.148的⽹管
# route add -host 192.168.1.2 dev eth0
# route add -host 10.20.30.148 gw 10.20.30.40 #添加到10.20.30.148的⽹管
添加到⽹络的路由
[cpp]
1. # route add -net 10.20.30.40 netmask 255.255.255.248 eth0 #添加10.20.30.40的⽹络
2. # route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #添加10.20.30.48的⽹络
3. # route add -net 192.168.1.0/24 eth1
# route add -net 10.20.30.40 netmask 255.255.255.248 eth0 #添加10.20.30.40的⽹络
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #添加10.20.30.48的⽹络
# route add -net 192.168.1.0/24 eth1
添加默认路由
[cpp]
1. # route add default gw 19
2.168.1.1
# route add default gw 192.168.1.1
删除路由
[cpp]
1. # route del -host 19
2.168.1.2 dev eth0:0
2. # route del -host 10.20.30.148 gw 10.20.30.40
3. # route del -net 10.20.30.40 netmask 255.255.255.248 eth0
4. # route del -net 10.20.30.48 netmask 25
5.255.255.248 gw 10.20.30.41
5. # route del -net 192.168.1.0/24 eth1
6. # route del 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 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启⽤此功能。开启的路由功能可以通过调整内核的⽹络参数来实现。要配置和调整内核参数可以使⽤ sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使⽤如下的命令。
[cpp]
1. # sysctl -w net.ipv4.ip_forward=1
# sysctl -w net.ipv4.ip_forward=1
这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下⾯的⾏写⼊配置⽂件/f。
[cpp]
1. # vi /f
2. net.ipv4.ip_forward = 1
# vi /f
net.ipv4.ip_forward = 1
⽤户还可以使⽤如下的命令查看当前系统是否⽀持包转发。
[cpp]
1. # sysctl net.ipv4.ip_forward
# sysctl net.ipv4.ip_forward
route 命令:
Linux系统的route命令⽤于显⽰和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的⼦⽹之间的通信,需要⼀台连接两个⽹络的路由器,或者同时位于两个⽹络的⽹关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在⼀个局域⽹中,局域⽹中有⼀个⽹关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令⾏下执⾏route命令来添加路由,不会永久保存,当⽹卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。
1.命令格式:
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
2.命令功能:
Route命令是⽤于操作基于内核ip路由表,它的主要作⽤是创建⼀个静态路由让指定⼀个主机或者⼀个⽹络通过⼀个⽹络接⼝,如eth0。当使⽤"add"或者"del"参数时,路由表被修改,如果没有参数,则显⽰路由表当前的内容。
3.命令参数:
-c 显⽰更多信息
-n 不解析名字
-v 显⽰详细的处理信息
-F 显⽰发送信息
-C 显⽰路由缓存
-f 清除所有⽹关⼊⼝的路由表。
-p 与 add 命令⼀起使⽤时使路由具有永久性。
add:添加⼀条新路由。
del:删除⼀条路由。
-net:⽬标地址是⼀个⽹络。
-host:⽬标地址是⼀个主机。
netmask:当添加⼀个⽹络路由时,需要使⽤⽹络掩码。
gw:路由数据包通过⽹关。注意,你指定的⽹关必须能够达到。
metric:设置路由跳数。
Command 指定您想运⾏的命令 (Add/Change/Delete/Print)。
Destination 指定该路由的⽹络⽬标。
mask Netmask 指定与⽹络⽬标相关的⽹络掩码(也被称作⼦⽹掩码)。
Gateway 指定⽹络⽬标定义的地址集和⼦⽹掩码可以到达的前进或下⼀跃点 IP 地址。
metric Metric 为路由指定⼀个整数成本值标(从 1 ⾄ 9999),当在路由表(与转发的数据包⽬标地址最匹配)的多个路由中进⾏选择时可以使⽤。
if Interface 为可以访问⽬标的接⼝指定接⼝索引。若要获得⼀个接⼝列表和它们相应的接⼝索引,使⽤ route print 命令的显⽰功能。可以使⽤⼗进制或⼗六进制值进⾏接⼝索引。
4.使⽤实例:
实例1:显⽰当前路由
命令:
route
route -n
输出:
[cpp]
1. [root@localhost ~]# route
2. Kernel IP routing table
3. Destination Gateway Genmask Flags Metric Ref Use Iface
4. 192.168.120.0 * 25
5.255.255.0 U 0 0 0 eth0
5. e192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
6. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
7. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
8. [root@localhost ~]# route -n
9. Kernel IP routing table
10. Destination Gateway Genmask Flags Metric Ref Use Iface
11. 192.168.120.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
12. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
13. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
14. 0.0.0.0 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
e192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.120.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
说明:
第⼀⾏表⽰主机所在⽹络的地址为192.168.120.0,若数据传送⽬标是在本局域⽹内通信,则可直接通过eth0转发数据包;
第四⾏表⽰数据传送⽬的是访问Internet,则由接⼝eth0,将数据包发送到⽹关192.168.120.240
其中Flags为路由标志,标记当前⽹络节点的状态。
Flags标志说明:
U Up表⽰此路由当前为启动状态
H Host,表⽰此⽹关为⼀主机
G Gateway,表⽰此⽹关为⼀路由器
R Reinstate Route,使⽤动态路由重新初始化的路由
D Dynamically,此路由是动态性地写⼊
M Modified,此路由是由路由守护程序或导向器动态修改
! 表⽰此路由当前为关闭状态
备注:
route -n (-n 表⽰不解析名字,列出速度会⽐route 快)
实例2:添加⽹关/设置⽹关
命令:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
输出:
[cpp]
1. [root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
2. [root@localhost ~]# route
3. Kernel IP routing table
4. Destination Gateway Genmask Flags Metric Ref Use Iface
5. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
6. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
7. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
8. 224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
9. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]#
说明:
增加⼀条到达244.0.0.0的路由
实例3:屏蔽⼀条路由
命令:
route add -net 224.0.0.0 netmask 240.0.0.0 reject
输出:
[cpp]
1. [root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
2. [root@localhost ~]# route
3. Kernel IP routing table
4. Destination Gateway Genmask Flags Metric Ref Use Iface
5. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
6. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
7. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
8. 224.0.0.0 - 240.0.0.0 ! 0 - 0 -
9. 224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
10. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
224.0.0.0 - 240.0.0.0 ! 0 - 0 -
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
说明:
增加⼀条屏蔽的路由,⽬的地址为 将被拒绝
实例4:删除路由记录
命令:
route del -net 224.0.0.0 netmask 240.0.0.0
route add命令实例
route del -net 224.0.0.0 netmask 240.0.0.0 reject
输出:
[cpp]
1. [root@localhost ~]# route
2. Kernel IP routing table
3. Destination Gateway Genmask Flags Metric Ref Use Iface
4. 192.168.120.0 * 25
5.255.255.0 U 0 0 0 eth0
5. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
6. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
7. 224.0.0.0 - 240.0.0.0 ! 0 - 0 -
8. 224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
9. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
10. [root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0
11. [root@localhost ~]# route
12. Kernel IP routing table
13. Destination Gateway Genmask Flags Metric Ref Use Iface
14. 192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
15. 192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
16. 10.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
17. 224.0.0.0 - 240.0.0.0 ! 0 - 0 -
18. default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
19. [root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject
20. [root@localhost ~]# route
21. Kernel IP routing table
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论