route命令

Windows使用route命令配置路由表,该命令只有在TCP/IP协议作为网络适配器的组建安装时可用(一版都默认安装了)。

PS C:\Windows\system32> route
操作网络路由表。
ROUTE [-f] [-p] [-4|-6] command [destination] [MASK netmask]  [gateway] [METRIC metric]  [IF interface]

  -f           清除所有网关项的路由表。如果与某个
               命令结合使用,在运行该命令前,
               应清除路由表。
  -p           与 ADD 命令结合使用时,将路由设置为
               在系统引导期间保持不变。默认情况下,重新启动系统时,不保存路由。忽略所有其他命令,这始终会影响相应的永久路由。
  -4           强制使用 IPv4。
  -6           强制使用 IPv6。
  command      其中之一:
                 PRINT     打印路由
                 ADD       添加路由
                 DELETE    删除路由
                 CHANGE    修改现有路由
  destination  指定主机。
  MASK         指定下一个参数为“netmask”值。
  netmask      指定此路由项的子网掩码值。
               如果未指定,其默认设置为 255.255.255.255。
  gateway      指定网关。
  interface    指定路由的接口号码。
  METRIC       指定跃点数,例如目标的成本。

用于目标的所有符号名都可以在网络数据库
文件 NETWORKS 中进行查找。用于网关的符号名称都可以在主机名称
数据库文件 HOSTS 中进行查找。

如果命令为 PRINT 或 DELETE。目标或网关可以为通配符,
(通配符指定为星号“*”),否则可能会忽略网关参数。

如果 Dest 包含一个 * 或 ?,则会将其视为 Shell 模式,并且只
打印匹配目标路由。“*”匹配任意字符串,
而“?”匹配任意一个字符。示例: 157.*.1、157.*、127.*、*224*。

只有在 PRINT 命令中才允许模式匹配。
诊断信息注释:
    无效的 MASK 产生错误,即当 (DEST & MASK) != DEST 时。
    示例: > route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1
           路由添加失败: 指定的掩码参数无效。
           (Destination & Mask) != Destination。

示例:

    > route PRINT
    > route PRINT -4
    > route PRINT -6
    > route PRINT 157*          .... 只打印那些匹配  157* 的项

    > route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2

      如果未给出 IF,它将尝试查找给定网关的最佳接口。
    > route ADD 3ffe::/32 3ffe::1

    > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2
      CHANGE 只用于修改网关和/或跃点数。

    > route DELETE 157.0.0.0
    > route DELETE 3ffe::/32

看一下route print

Screen-Shot-2020-05-26-at-14.42.44-1

  • 接口列表。两个是跟硬件相关的,一个系统虚拟出的loopback接口,一个系统根据无线网卡虚拟出的热点接口。
  • IPv4路由表。
    • 目标网络(Network Destination),就是目标网络。
    • 网络掩码(Netmask),查询路由表转发报文时,满足目的IP & 网络掩码 == 网络目标就会通过对应接口向对应网关转发报文,如果多条满足则优先METRIC(跳跃数)小的路由。因此添加路由时,必须网络目标 & 网络掩码 == 网络目标,否则失败。
    • 网关(Gateway),网络适配器上对应的网关。在链路上表示对应的网络链路有多个网关。TBD
    • 接口(Interface),接口竟然通过IP地址来表示,所以是逻辑接口,跟上面的接口列表不是一个维度。一个网卡可以绑定任意多IP。在route add时,接口可以不用指定,系统自己补充。
    • 跳跃数(Metric),理解为优先级,越小优先级越高。

双网卡的内外网

需求描述:有线网卡接内网,是个固定的IP,主要用作在区域内的远程登陆;无线网卡连接外网,房间内的局域网。

  1. 查阅了区域内的网段:A.B.0.0-A.B.255.255
  2. 针对内网网段的高优
    route -p add A.B.0.0 mask 255.255.0.0 内网网关 metric 1
    
  3. 加一条次优的全网
    route -p add 0.0.0.0 mask 255.255.255.255 外网网关 metric 2