route 显示和设置linux系统的路由表。
route 显示和设置linux系统的路由表。
查看路由信息 route -n
route命令输出的路由表字段含义如下:
Destination
目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关。
Gateway
网关地址,0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关。如果没有就显示星号(*)。
Genmask
Destination 字段的网络掩码,Destination 是主机时需要设为 255.255.255.255,是默认路由时会设置为 0.0.0.0
Flags
标记
● U 该路由可以使用。
● H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合。
● G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地 是直接相连的。
● R 恢复动态路由产生的表项。
● D 该路由是由改变路由(redirect)报文创建的。
● M 该路由已被改变路由报文修改。
● ! 这个路由将不会被接受。
Metric
路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的。
Ref
路由项引用次数 。
Use
此路由项被路由软件查找的次数。
Iface
网卡名字,例如 eth0。
添加和删除路由
增加 (add) 与删除 (del) 路由的相关参数:
(a) -net :表示后面接的路由为一个网域。
(b) -host :表示后面接的为连接到单部主机的路由。
© netmask :与网域有关,可以设定 netmask 决定网域的大小。
(d) gw :gateway 的简写,后续接的是 IP 的数值,与 dev 不同。
(e) dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等。
查询路由信息
route -nee
(a ) -n:不要使用通讯协定或主机名称,直接使用 IP 或 port number。
(b ) -ee:使用更详细的资讯来显示。
添加/删除默认网关路由
route {add | del } default gw {IP-ADDRESS} {INTERFACE-NAME}
(a) IP-ADDRESS:用于指定路由器(网关)的IP地址。
(b) INTERFACE-NAME:用于指定接口名称,如eth0。
例1:route add default gw 192.168.23.2 eno16777736
例2:route del default gw 192.168.23.2 eno16777736
添加/删除到指定网络的路由规则
route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
(a) NETWORK-ADDRESS:用于指定网络地址。
(b) NETMASK:用于指定子网掩码。
(c ) INTERFACE-NAME:用于指定接口名称,如eth0。
例1:route add -net 192.168.23.0 netmask 255.255.255.0 dev eno16777736
例2:route del -net 192.168.23.0 netmask 255.255.255.0 dev eno16777736
添加/删除路由到指定网络为不可达
设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。
route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} reject
(a) NETWORK-ADDRESS:用于指定网络地址。
(b) NETMASK:用于指定子网掩码。
例1:route add -net 10.0.0.0 netmask 255.0.0.0 reject
例2:route del -net 10.0.0.0 netmask 255.0.0.0 reject
路由选择分析
当TCP/IP需要向某个IP地址发起通信时,它会对路由表进行评估,以确定如何发送数据包。评估过程如下:
(1) TCP/IP使用需要通信的目的IP地址和路由表中每一个路由项的网络掩码进行相与计算,如果相与后的结果匹配对应路由项的网络地址,则记录下此路由项。
(2) 当计算完路由表中所有的路由项后,
(a) TCP/IP选择记录下的路由项中的最长匹配路由(网络掩码中具有最多“1”位的路由项)来和此目的IP地址进行通信。
(b) 如果存在多个最长匹配路由,那么选择具有最低跃点数的路由项。
© 如果存在多个具有最低跃点数的最长匹配路由,那么:均根据最长匹配路由所对应的网络接口在网络连接的高级设置中的绑定优先级来决定(一般有线(eth0) > 无线 (wlan0) > 移动信号(4G))。
(d) 如果优先级一致,则选择最开始找到的最长匹配路由。(排在前面的路由)。
**
服务器路由配置–Route实战实现跨主机通信
**
主机1 192.168.23.134 nat
主机2 192.168.23.142 nat
--------192.168.20.128 vmnet1
主机3 192.168.20.10 vmnet1
1.1 查看三台主机的路由表
主机1
主机2
主机3
服务器主机配置
主机1 上配置路由
route add -net 主机2的vmnet1的网段 gw 主机2的nat的IP
route add -net 192.168.20.0/24 gw 192.168.23.142
添加错误,删除路由。
主机3上配置网络路由条目
route add -net 主机2的nat的网段 gw 主机2的vmnet1的的IP
route add -net 192.168.23.0/24 gw 192.168.20.128
在主机2 上开启路由转发
主机2、主机在拓扑中负责进行路由转发,需要开启相关参数。
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
主机路由访问验证
在主机1 上验证
traceroute 192.168.20.10
提示无该命令
说明:通过 traceroute 路由路径追踪命令,已确认路由走向符合配置需求,即路由配置正确无误。
!X 表示已经完成路由追踪过程。
主机3上进行验证
主机1 可以 ssh 至 主机3
整体配置部署步骤已符合原有项目需求,生产环境中,已经可以满足 3 台服务器主机在正常访问外网的同时,可以利用服务器路由转发功能与服务器网路路由配置,实现内网环境跨网段进行通讯需求。
防火墙异常问题
服务器主机 02 起到路由转发功能,类似于路由器的角色,因此服务器上防火墙功能需要关闭,否则防火墙相应条目会阻止掉路由转发流量。
虚拟网卡异常问题
服务器主机网卡信息配置中,尽量选择 nat 模式或者仅主机模式网卡进行配置,不要选择LAN 区段网卡配置方式,否则根据虚拟软件网络工作原理,LAN 区段网卡配置模式无法进行路由的转发,会影响最终配置效果。