文章目录
- 3. route语法
- 3.1 查看路由表
- 3.1 参数解释
- 3.2 添加路由记录
- 3.2.1 添加到达单个目标主机的路由
- 3.2.2 添加到达目标网络的路由
- 3.2.3 添加默认路由
- 3.3 删除路由记录
- 4. ip route
- 4.1 查看路由
- 4.1.1 不带条件
- 4.1.2 带条件
- 4.2 添加路由
- 4.3 删除路由
- 4.4 清空路由表:
路由的基础概念:
【计算机网络】Linux下路由配置总结
3. route语法
通过man route查看详细语法
NAMEroute - show / manipulate the IP routing tableSYNOPSISroute [-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 N] [[dev] If]route [-V] [--version] [-h] [--help]
-
route add 和 route del 是主体命令
-
-net | -host 表示是 号段 | 单个ip,必选,二选一
host类型时,单个地址,掩码 固定位255.255.255.255,也可以不填,自动补为255.255.255.255(ipv4时)
net时,掩码必填 -
netmask 掩码,非必选
-
-4|-6 ,表示是 ip4 | ipv6,可以为空,默认是ipv4
-
-n 把专用字符 替换为数字形式的
例如 default会自动替换为0.0.0.0
# route Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 0 0 0 eth0# route -n Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.238.88.254 0.0.0.0 UG 0 0 0 eth0
-
target 表示想到达的目标网络或单个地址
-
gw 网关地址 ,即下一跳地址
注意:这个网关不是随便填的,必须是一个真实存在的能通的,例如你的网卡必须有一个连接到某个3层路由的网线,否则会报 Network is unreachable
网关地址概念参见 【计算机网络】集线器、网桥、交换机、路由器、网关(网关地址)大解析 -
dev ethxxx 目标网卡,非必选。若不指定所用的网卡设备,则会自动选择电脑上的
第一个网卡
(不包括 loopback)。也就是说当你环境上就一个非lo的网卡时,可以不指定,否则最好指定。
3.1 查看路由表
route 或route -n ,多用后者
这里的网关是指下一跳地址
默认是查看ipv4
路由,如果想查看ipv6
的:
route -n -6
3.1 参数解释
Flags标志说明:
-
U Up表示此路由当前为启动状态
-
H Host,表示此网关为
单一主机地址
, 由 route add -host 命令创建的, 无需指掩码,自动为255.255.255.255(ipv4时)也就是说不带H参数时,表示是一个网段地址,即多个地址,此时route add -net 命令需指定掩码参数。有的文章说网段为对应的- Flags为N,可能是不同的linux版本。
-
G Gateway,表示此网关为一路由器
-
R Reinstate Route,使用动态路由重新初始化的路由
-
D Dynamically,此路由是动态性地写入
-
M Modified,此路由是由路由守护程序或导向器动态修改
3.2 添加路由记录
是临时添加的记录,重启network服务就失效
3.2.1 添加到达单个目标主机的路由
如果你想添加一个目标地址的话,可以采用这个方法,[]表示可选
route add -host 目标主机 gw 网关 [ dev 接口 ]
比如 给eth0网卡添加一条到达10.1.111.111的路由记录,网关是10.2.111.111
route add -host 10.1.111.111 gw 10.2.111.111 dev eth0
3.2.2 添加到达目标网络的路由
如果你想把某个网络的全部地址都加入路由的话,可以采用这个方法
route add -net 目标网络 netmask 子网掩码 gw 网关 dev 接口
或者 CIDR格式:
route add -net 目标网络/子网掩码 gw 网关 dev 接口
比如 给eth0网卡添加一条到达网络10.1.0.0/16的路由,网关是10.2.111.111
route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.2.111.111 dev eth0
或者 CIDR格式:
route add -net 10.1.0.0/16 gw 10.2.111.111 dev eth0
3.2.3 添加默认路由
默认路由作用参见 【计算机网络】0.0.0.0与127.0.0.1的区别、默认路由原理
语法:
route add default gw 网关 [dev ethxxx]
比如给eth0添加一条默认路由,网关是10.2.111.111
route add default gw 10.2.111.111 dev eth0
等价于 :
#可以 default是一个网段 ,要以-net开头
route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.2.111.111 dev eth0
3.3 删除路由记录
删除路由记录只需要把添加路由记录命令中的add改成del就可以了,不过删除路由记录可以省略接口
1)删除到达目标主机的路由记录
route del -host 主机名
2)删除到达目标网络的路由记录
route del -net 目标网络/子网掩码
3)删除默认路由
route del default 或 route del -net 0.0.0.0
4. ip route
ip route 的用法与route大同小异
ip route { list | flush } SELECTOR //查看路由ip route save SELECTORip route restoreip route showdumpip route get ADDRESS [ from ADDRESS iif STRING ][ oif STRING ] [ tos TOS ][ mark NUMBER ] [ vrf NAME ][ uid NUMBER ]ip route { add | del | change | append | replace } ROUTE //添加路由、删除路由SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ][ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ][ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ][ table TABLE_ID ] [ proto RTPROTO ][ scope SCOPE ] [ metric METRIC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ][ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | ipx | dnet | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ][ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ][ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ][ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ][ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ][ features FEATURES ] [ quickack BOOL ] [ congctl NAME ][ pref PREF ] [ expires TIME ]
TYPE := { unicast | local | broadcast | multicast | throw |unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 ]
ENCAPHDR := [ MPLSLABEL ]
4.1 查看路由
ip route { list | flush } SELECTOR ,查看路由
SELECTOR 是过滤的条件,可选参数,具体的条件参见SELECTOR ;当SELECTOR 为空时,可以简写 简写 ip r
4.1.1 不带条件
简写 ip r
ip route显示的路由记录与route显示的格式不一样
4.1.2 带条件
例如过滤出 unicast类型的路由:
ip route list type unicast
4.2 添加路由
1)添加到达目标主机的路由记录
ip route add 目标主机 via 网关
2)添加到达网络的路由记录
ip route add 目标网络/掩码 via 网关
3)添加默认路由
ip route add default via 网关
下面只举一个例子说明一下。
比如增加一条到达主机10.2.111.112的路由,网关是10.1.111.112
ip route add 10.2.111.112 via 10.1.111.112
4.3 删除路由
ip route del 目标网络/掩码
ip route del default [via 网关]
4.4 清空路由表:
ip route flush