route命令

route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。

在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。

1、route帮助文档

man route
============================================
NAME
  route - show / manipulate the IP routing table

SYNOPSIS
  route [-CFvnNee] [-A family |-4|-6]
  route  [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
  route  [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric M] [[dev] If]
  route  [-V] [--version] [-h] [--help]
============================================
route (选项) (参数)
  选项
		-A:设置地址类型;
		-C:打印将Linux核心的路由缓存;
		-v:详细信息模式;
		-n:不执行DNS反向查找,直接显示数字形式的IP地址;
		-e:netstat格式显示路由表;
		-net:到一个网络的路由表;
		-host:到一个主机的路由表。
  参数
	    Add:增加指定的路由记录;
	    Del:删除指定的路由记录;
	    Target:目的网络或目的主机;
	    gw:设置默认网关;
	    mss:设置TCP的最大区块长度(MSS),单位MB;
	    window:指定通过路由表的TCP连接的TCP窗口大小;
	    dev:路由记录所表示的网络接口。
  • route addroute del 是主体命令。

  • -net | -host 表示是 号段 | 单个ip,必选,二选一。
    host类型时,单个地址,掩码 固定位255.255.255.255,也可以不填,自动补为255.255.255.255(ipv4时)。
    net时,掩码必填。

  • netmask 掩码,非必选。

  • -4 | -6 ,表示是 ip4 | ipv6,可以为空,默认是ipv4。

  • -n 把专用字符 替换为数字形式的。

2、查看路由表:route 或 route -n

Linux路由表是一个内核数据结构,用来描述Linux主机与其它网络设备之间的路径,以及如何将数据包从源地址路由到目标地址。Linux路由表的主要组成部分包括目的网络、下一跳、子网掩码和接口等信息。

Destination:表示可以到达的目标ID,0.0.0.0/0表示所有未知网络,又称默认路由,优先级最低。
Gateway:到达非直连的网络,将数据发送到临近路由器的临近本机的接口的IP地址,如果是直连网络,Gateway是0.0.0.0。
Genmask:目标网络对应的netmask。
Metric:开销cost;值越小,路由记录的优先级越高。
Iface:到达对应网络,应该从当前主机哪个网卡发送出去。

route -n 或 route -n -4
=================================================
    Kernel IP routing table
    目标主机			网关(下一跳)		子网掩码									接口
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.168.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
    0.0.0.0         192.168.168.1   0.0.0.0         UG    0      0        0 eth0

其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明:
U : Up表示此路由当前为启动状态。
H : Host,表示此网关为一主机。
G :Gateway,表示此网关为一路由器。
R : Reinstate Route,使用动态路由重新初始化的路由。
D :Dynamically,此路由是动态性地写入。
M :Modified,此路由是由路由守护程序或导向器动态修改。
! :表示此路由当前为关闭状态。

默认是查看ipv4路由,如果想查看ipv6的
route -n -6

3、添加路由记录:临时添加,重启network服务失效

添加到达单个目标主机的路由,[] 表示可选: 给eth0网卡添加一条到达10.10.10.111的路由记录,网关是10.10.11.111。

route add -host 目标主机 gw 网关 [ dev 接口 ]
route add -host 10.10.10.111 gw 10.10.11.111 dev eth0
如果是IPv6则使用 route -6 add ......

添加到达目标网络的路由:给eth0网卡添加一条到达网络10.1.0.0/16的路由,网关是10.2.111.111。

格式1:
route add -net 目标网络  netmask 子网掩码      gw 网关         dev 接口
route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.2.111.111 dev eth0

格式2:
route add -net 目标网络/子网掩码  gw 网关         dev  接口
route add -net 10.1.0.0/16     gw 10.2.111.111 dev  eth0

4、添加默认路由

route add default gw 网关         [dev ethxxx]
route add default gw 10.2.111.111
等价于
route add default gw 10.2.111.111 dev eth0
等价于
route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.2.111.111 dev eth0

5、删除路由记录

删除路由记录只需要把添加路由记录命令中的add改成del就可以了,不过删除路由记录可以省略接口。

1)删除到达目标主机的路由记录
route del -host 主机名

2)删除到达目标网络的路由记录
route del -net 目标网络/子网掩码

3)删除默认路由
route del default
route del -net 0.0.0.0

6、其他测试

添加网关/设置网关:(增加一条到达244.0.0.0的路由)
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

屏蔽一条路由:(增加一条屏蔽路由,目的地址为224.x.x.x将被拒绝)
route add -net 224.0.0.0 netmask 240.0.0.0 reject

删除路由记录:
route del -net 224.0.0.0 netmask 240.0.0.0`
route del -net 224.0.0.0 netmask 240.0.0.0 reject

删除和添加设置默认网关:
route del default gw 192.168.120.240
route add default gw 192.168.120.240

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值