Skip to content

路由表 route

说明

  • 路由表是网络设备用来决定数据包如何从一个网络传输到另一个网络的数据库
  • 包含了网络路径的信息,帮助设备找到最佳的路径数据包从而能够正确到达目标地址

安装

shell
yum -y install net-tools

查看路由表

shell
route
shell
route print

警告

  1. 为了避免 MACIPv6 地址等信息泄露,部分内容被 x 替换
shell
[root@anolis-os-23 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    100    0        0 ens18
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-31a18b1e0d7f
172.19.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-6a73b987725e
172.25.25.0     0.0.0.0         255.255.255.0   U     100    0        0 ens18
[root@anolis-os-23 ~]#
shell
C:\Users\xuxiaowei>route print
===========================================================================
接口列表
  2...02 50 f2 xx xx 02 ......iNode VPN Virtual NIC
 12...22 33 5c xx xx 53 ......Realtek PCIe GbE Family Controller #2
  3...22 33 5c xx xx 54 ......Realtek PCIe GbE Family Controller
 17...00 ff b1 xx xx 01 ......Sangfor SSL VPN CS Support System VNIC
 16...00 50 56 xx xx 08 ......VMware Virtual Ethernet Adapter for VMnet1
  6...00 50 56 xx xx a2 ......VMware Virtual Ethernet Adapter for VMnet8
  1...........................Software Loopback Interface 1
 28...00 15 5d xx xx c7 ......Hyper-V Virtual Ethernet Adapter
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0      172.25.25.1      172.25.25.4     25
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
      172.25.25.0    255.255.255.0            在链路上       172.25.25.4    281
      172.25.25.4  255.255.255.255            在链路上       172.25.25.4    281
    172.25.25.255  255.255.255.255            在链路上       172.25.25.4    281
      172.26.32.0    255.255.240.0            在链路上       172.26.32.1   5256
      172.26.32.1  255.255.255.255            在链路上       172.26.32.1   5256
    172.26.47.255  255.255.255.255            在链路上       172.26.32.1   5256
     192.168.11.0    255.255.255.0            在链路上      192.168.11.1    291
     192.168.11.1  255.255.255.255            在链路上      192.168.11.1    291
   192.168.11.255  255.255.255.255            在链路上      192.168.11.1    291
     192.168.80.0    255.255.255.0            在链路上      192.168.80.1    291
     192.168.80.1  255.255.255.255            在链路上      192.168.80.1    291
   192.168.80.255  255.255.255.255            在链路上      192.168.80.1    291
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331
        224.0.0.0        240.0.0.0            在链路上      192.168.11.1    291
        224.0.0.0        240.0.0.0            在链路上      192.168.80.1    291
        224.0.0.0        240.0.0.0            在链路上       172.25.25.4    281
        224.0.0.0        240.0.0.0            在链路上       172.26.32.1   5256
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
  255.255.255.255  255.255.255.255            在链路上      192.168.11.1    291
  255.255.255.255  255.255.255.255            在链路上      192.168.80.1    291
  255.255.255.255  255.255.255.255            在链路上       172.25.25.4    281
  255.255.255.255  255.255.255.255            在链路上       172.26.32.1   5256
===========================================================================
永久路由:


IPv6 路由表
===========================================================================
活动路由:
 接口跃点数网络目标                网关
  3   4121 ::/0                     fe80::1
  1    331 ::1/128                  在链路上
  3   4121 2408:8215:e20:xxxx::/64  在链路上
  3    281 2408:8215:e20:xxxx:293c:e91d:7321:6c59/128
                                    在链路上
  3    281 2408:8215:e20:xxxx:8560:ec29:7cef:bfb1/128
                                    在链路上
 16    291 fe80::/64                在链路上
  6    291 fe80::/64                在链路上
  3    281 fe80::/64                在链路上
 28   5256 fe80::/64                在链路上
 28   5256 fe80::4d6b:xxxx:70a9:f7f9/128
                                    在链路上
  3    281 fe80::7d63:xxxx:615c:a5a4/128
                                    在链路上
 16    291 fe80::c381:xxxx:8c7c:3ee4/128
                                    在链路上
  6    291 fe80::df3b:xxxx:e833:61d4/128
                                    在链路上
  1    331 ff00::/8                 在链路上
 16    291 ff00::/8                 在链路上
  6    291 ff00::/8                 在链路上
  3    281 ff00::/8                 在链路上
 28   5256 ff00::/8                 在链路上
===========================================================================
永久路由:


C:\Users\xuxiaowei>
markdown

| Destination | Gateway  | Genmask       | Flags | Metric | Ref | Use | Iface           | CIDR           | 地址范围                      | 说明                                           |
|-------------|----------|---------------|-------|--------|-----|-----|-----------------|----------------|---------------------------|----------------------------------------------|
| default     | _gateway | 0.0.0.0       | UG    | 100    | 0   | 0   | ens18           | 0.0.0.0/0      |                           | 默认网络                                         |
| 172.17.0.0  | 0.0.0.0  | 255.255.0.0   | U     | 0      | 0   | 0   | docker0         | 172.17.0.0/16  | 172.17.0.0~172.17.0.255   | Docker 默认网络                                  |
| 172.18.0.0  | 0.0.0.0  | 255.255.0.0   | U     | 0      | 0   | 0   | br-31a18b1e0d7f | 172.18.0.0/16  | 172.18.0.0~172.18.0.255   | 本人在 Docker 中创建的网络,可使用 `docker network ls` 查看 |
| 172.19.0.0  | 0.0.0.0  | 255.255.0.0   | U     | 0      | 0   | 0   | br-6a73b987725e | 172.19.0.0/16  | 172.19.0.0~172.19.0.255   | 本人在 Docker 中创建的网络,可使用 `docker network ls` 查看 |
| 172.25.25.0 | 0.0.0.0  | 255.255.255.0 | U     | 100    | 0   | 0   | ens18           | 172.25.25.0/24 | 172.25.25.0~172.25.25.255 | 连接的路由器网络                                     |

- `Destination`:目标网络地址
- `Gateway`:网关地址
- `Genmask`:子网掩码
- `Flags`:路由标志
    1. `U``Up`):活动的,正在工作
    2. `G``Gateway`):通过网关进行工作
- `Metric`:路由的优先级
- `Ref`:路由的引用次数
- `Use`:路由的使用次数
- `Iface`:网络接口
    - `ens18`:当前系统的网卡,名称可能为:`ens*``enp*``wlp*` 等等
    - `docker0`:Docker 网络
    - `br-*`:Docker 网络
- `CIDR``Classless Inter-Domain Routing`):无类别域间路由语法
markdown

| 网卡名称                                       | MAC               | 说明                    |
|--------------------------------------------|-------------------|-----------------------|
| iNode VPN Virtual NIC                      | 02 50 f2 xx xx 02 | VPN 网卡                |
| Realtek PCIe GbE Family Controller #2      | 22 33 5c xx xx 53 | 电脑有线网卡 2              |
| Realtek PCIe GbE Family Controller         | 22 33 5c xx xx 54 | 电脑有线网卡 1              |
| Sangfor SSL VPN CS Support System VNIC     | 00 ff b1 xx xx 01 | VPN 网卡                |
| VMware Virtual Ethernet Adapter for VMnet1 | 00 50 56 xx xx 08 | VMware 虚拟机网卡 1,主机模式   |
| VMware Virtual Ethernet Adapter for VMnet8 | 00 50 56 xx xx a2 | VMware 虚拟机网卡 8,NAT 模式 |
| Software Loopback Interface 1              |                   | 本地网络通信网卡              |
| Hyper-V Virtual Ethernet Adapter           | 00 15 5d xx xx c7 | Hyper-V 虚拟机网卡         |

- 演示的 Windows 存在两个物理有线网卡
- 只有安装了对应软件才存在对应的网卡,比如:VPN、VMware、Hyper-V 等等

# IPv4 路由表(部分)

| 网络目标           | 网络掩码            | 网关          | 接口           | 跃点数 | 说明                          |
|----------------|-----------------|-------------|--------------|-----|-----------------------------|
| 0.0.0.0        | 0.0.0.0         | 172.25.25.1 | 172.25.25.4  | 25  | 默认路由                        |
| 127.0.0.0      | 255.0.0.0       | 在链路上        | 127.0.0.1    | 331 | 本地回环地址,用于计算机内部的网络通信,不涉及外部网络 |
| 172.25.25.0    | 255.255.255.0   | 在链路上        | 172.25.25.4  | 281 | 路由器网络                       |
| 172.25.25.4    | 255.255.255.255 | 在链路上        | 172.25.25.4  | 281 | 特定主机地址,当前电脑的 IP             |
| 172.25.25.255  | 255.255.255.255 | 在链路上        | 172.25.25.4  | 281 | 广播地址                        |
| 192.168.11.0   | 255.255.255.0   | 在链路上        | 192.168.11.1 | 291 | VMware 虚拟机网卡 1              |
| 192.168.11.255 | 255.255.255.255 | 在链路上        | 192.168.11.1 | 291 | VMware 虚拟机网卡 1,广播地址         |
| 192.168.80.0   | 255.255.255.0   | 在链路上        | 192.168.80.1 | 291 | VMware 虚拟机网卡 8              |
| 192.168.80.255 | 255.255.255.255 | 在链路上        | 192.168.80.1 | 291 | VMware 虚拟机网卡 8,广播地址         |

- 演示的 Windows 存在两个物理有线网卡,仅连接了一根网线,IP 地址:`172.25.25.4`
- VMware 虚拟机网卡的 地址范围是在安装时自动生成的,可以在安装完成后进行手动修改

操作路由

添加路由

警告

  1. 添加路由需要使用管理员身份运行命令
shell
ip route add destination via gateway dev interface

# add:添加路由
# destination:指定主机(网段)
# via:指定下一个参数为网关
# gateway:指定网关
# dev:指定下一个参数为网卡
# interface:网卡名称

# dev、interface 可缺省(同时)

# 示例:ip route add 172.26.12.0/24 via 172.25.25.14
# 示例(指定网卡):ip route add 172.26.12.0/24 via 172.25.25.14 dev ens18
shell
# 查看所有网卡
nmcli connection show
# 查看某个网卡的配置,网卡名称:ens18
nmcli connection show ens18
# 修改 ens18 网卡,添加一个 IPv4 路由:访问 172.26.12.0/24 时要通过 172.25.25.14 跳转
# 删除命令:将 +ipv4.routes 修改为 -ipv4.routes
nmcli connection modify ens18 +ipv4.routes "172.26.12.0/24 172.25.25.14"
# 重启上线 ens18 网卡,使配置生效:
# 注意:此操作可能导致网络中断。并且下线和上线要同时执行,否则可能导致远程连接中断且无法再次连接。
# 注意:这里使用 nmcli connection reload 无效
nmcli connection down ens18; nmcli connection up ens18
# 搜索 ens18 网卡 自定义的路由表
nmcli connection show ens18 | grep ipv4.routes
nmcli connection show ens18 | grep IP4.ROUTE
shell
# 以下以网卡 enp6s0 为例:

# 查看 /etc/sysconfig/network-scripts 存在的文件,其中:
# ifcfg-enp6s0:文件代表网卡的配置,enp6s0 代表网卡名称
# route-enp6s0:文件代表网卡的路由永久配置,enp6s0 代表网卡名称
ls -lh /etc/sysconfig/network-scripts

# 修改 /etc/sysconfig/network-scripts/route-enp6s0 文件(如果没有则新建一个此文件)
# 添加内容如下:
172.26.12.0/24 via 172.25.25.14

# 重启网卡
systemctl restart NetworkManager
shell
route -p ADD destination MASK mask  gateway METRIC metric IF Interface

# 如果未给出 IF,它将尝试查找给定网关的最佳接口
# -p:可缺省,缺省时为临时添加。与 ADD 命令结合使用时,将路由设置为在系统引导期间保持不变。默认情况下,重新启动系统时,不保存路由。忽略所有其他命令,这始终会影响相应的永久路由。
# ADD:添加路由
# destination:指定主机(网段)
# MASK:指定下一个参数为“netmask”值。
# netmask:指定此路由项的子网掩码值。如果未指定,其默认设置为 255.255.255.255。
# gateway:指定网关。
# interface:指定路由的接口号码。
# METRIC:指定跃点数,例如目标的成本。

# 示例:route add 172.26.12.0 mask 255.255.255.0 172.25.25.14

Windows 添加路由示例

  1. 172.25.25.14 是一台 Linux 系统,安装了 Docker
  2. 172.26.12.0 子网掩码 255.255.255.0,是 172.25.25.14 所在系统的 Docker 其中一个网络
  3. 需求:要在 Windows 电脑上直接访问 172.25.25.14 所在系统中的 Docker 网络 172.26.12.0
shell
route add 172.26.12.0 mask 255.255.255.0 172.25.25.14
shell
C:\Users\xuxiaowei>route print
===========================================================================
接口列表
  2...02 50 f2 xx xx 02 ......iNode VPN Virtual NIC
 12...22 33 5c xx xx 53 ......Realtek PCIe GbE Family Controller #2
  3...22 33 5c xx xx 54 ......Realtek PCIe GbE Family Controller
 17...00 ff b1 xx xx 01 ......Sangfor SSL VPN CS Support System VNIC
 16...00 50 56 xx xx 08 ......VMware Virtual Ethernet Adapter for VMnet1
  6...00 50 56 xx xx a2 ......VMware Virtual Ethernet Adapter for VMnet8
  1...........................Software Loopback Interface 1
 28...00 15 5d xx xx c7 ......Hyper-V Virtual Ethernet Adapter
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0      172.25.25.1      172.25.25.4     25
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
      172.25.25.0    255.255.255.0            在链路上       172.25.25.4    281
      172.25.25.4  255.255.255.255            在链路上       172.25.25.4    281
    172.25.25.255  255.255.255.255            在链路上       172.25.25.4    281
      172.26.12.0    255.255.255.0     172.25.25.14      172.25.25.4     26
      
      ......
      
===========================================================================
永久路由:


IPv6 路由表
===========================================================================
活动路由:
 接口跃点数网络目标                网关

......

===========================================================================
永久路由:


C:\Users\xuxiaowei>
shell
route -p add 172.26.12.0 mask 255.255.255.0 172.25.25.14
shell
C:\Users\xuxiaowei>route print
===========================================================================
接口列表
  2...02 50 f2 xx xx 02 ......iNode VPN Virtual NIC
 12...22 33 5c xx xx 53 ......Realtek PCIe GbE Family Controller #2
  3...22 33 5c xx xx 54 ......Realtek PCIe GbE Family Controller
 17...00 ff b1 xx xx 01 ......Sangfor SSL VPN CS Support System VNIC
 16...00 50 56 xx xx 08 ......VMware Virtual Ethernet Adapter for VMnet1
  6...00 50 56 xx xx a2 ......VMware Virtual Ethernet Adapter for VMnet8
  1...........................Software Loopback Interface 1
 28...00 15 5d xx xx c7 ......Hyper-V Virtual Ethernet Adapter
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0      172.25.25.1      172.25.25.4     25
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
      172.25.25.0    255.255.255.0            在链路上       172.25.25.4    281
      172.25.25.4  255.255.255.255            在链路上       172.25.25.4    281
    172.25.25.255  255.255.255.255            在链路上       172.25.25.4    281
      172.26.12.0    255.255.255.0     172.25.25.14      172.25.25.4     26
      
      ......
      
===========================================================================
永久路由:
  网络地址          网络掩码  网关地址  跃点数
      172.26.12.0    255.255.255.0     172.25.25.14       1
===========================================================================

IPv6 路由表
===========================================================================
活动路由:
 接口跃点数网络目标                网关

......

===========================================================================
永久路由:


C:\Users\xuxiaowei>

Linux 添加路由示例

删除路由

警告

  1. 删除路由需要使用管理员身份运行命令
shell
ip route delete destination via gateway

# route del -net destination netmask mask
shell
route delete destination MASK mask  gateway METRIC metric IF Interface

删除路由示例

shell
ip route delete 172.26.12.0/24 via 172.25.25.14

# route del -net 172.26.12.0 netmask 255.255.255.0
shell
route delete 172.26.12.0 mask 255.255.255.0 172.25.25.14