实战:动态网络中的路由管理──优化连接的策略与实践之双网卡打通内外网

实战:动态网络中的路由管理──优化连接的策略与实践之双网卡打通内外网

背景

在现代网络环境中,组织往往经历频繁的网络拓扑变更,如子网重组、网关变更或设备迁移。这些变化要求 IT 管理团队迅速调整网络配置,以确保网络效率和安全性。静态的永久路由虽然在稳定网络中能很好地引导流量,但在动态变化的环境中可能导致网络性能下降,甚至引发连接问题。因此,当网络环境变化时,需要有效地管理这些路由配置以维持最佳连接性能。

环境

  • 操作系统:Windows,要求执行网络命令时具备管理员权限。
  • 网络设备:包括连接到内网和外网的多个接口,例如有线和无线网卡,支持动态和静态路由配置。
  • 目标网络配置:需考虑组织内部的 IP 地址规划、子网掩码及网关分配,同时支持动态 DHCP 和静态 IP 环境。
  • 工具需求 :需使用 Windows 内置工具例如命令提示符、ipconfigroute 命令来查看和管理路由表。
  • 关键关注点:确保路由调整过程中的网络连通性可用,避免因路由错误而导致业务中断。

操作

要在 Windows 系统中通过增加路由的方式实现内网和外网的联通,你需要使用静态路由来指导网络流量的去向。假设你的电脑有两张网卡:一张无线网卡连接外网(Internet),另一张有线网卡连接内网。以下是实现内网与外网连通的步骤:

  1. 连接设备

    • 确保你的无线网卡已经连接到外网(Internet)。
    • 确保你的有线网卡已经连接到内网。
  2. 查看网络配置

    • 打开命令提示符:按下 Win + R,输入 cmd,然后按 Enter。
    • 输入 ipconfig /all,记录下无线网卡和有线网卡的 IP 地址、子网掩码和网关。
cmd 复制代码
以太网适配器 以太网 3: 连接特定的 DNS 后缀 . . . . . . . : 
描述. . . . . . . . . . . . . . . : Realtek USB FE Family Controller 
物理地址. . . . . . . . . . . . . : 00-E0-4C-36-0C-7A DHCP 
已启用 . . . . . . . . . . . : 否 
自动配置已启用. . . . . . . . . . : 是 
IPv4 地址 . . . . . . . . . . . . : 137.64.245.34(首选) 
子网掩码 . . . . . . . . . . . . : 255.255.255.0 
默认网关. . . . . . . . . . . . . : 137.64.245.1 
TCPIP 上的 NetBIOS . . . . . . . : 已启用
无线局域网适配器 WLAN: 连接特定的 DNS 后缀 . . . . . . . : 
描述. . . . . . . . . . . . . . . : Intel(R) Wi-Fi 6 AX201 160MHz 
物理地址. . . . . . . . . . . . . : 58-6C-25-EC-B5-17 DHCP 
已启用 . . . . . . . . . . . : 是 
自动配置已启用. . . . . . . . . . : 是 
IPv4 地址 . . . . . . . . . . . . : 110.179.67.109(首选) 
子网掩码 . . . . . . . . . . . . : 255.255.248.0 
获得租约的时间 . . . . . . . . . : 2024年12月10日 9:53:25 
租约过期的时间 . . . . . . . . . : 2024年12月13日 10:38:45 
默认网关. . . . . . . . . . . . . : 110.179.64.1 
DHCP 服务器 . . . . . . . . . . . : 110.179.64.1 
DNS 服务器 . . . . . . . . . . . : 59.49.49.49 219.149.135.188 
TCPIP 上的 NetBIOS . . . . . . . : 已启用
  1. 添加静态路由

    • 在命令提示符中,使用 route add 命令添加静态路由。命令格式如下:

      xml 复制代码
      route add <目的网络> mask <子网掩码> <网关> metric <跃点数> if <接口索引>
    • 例子:假设内网的网络地址是 192.168.1.0,子网掩码是 255.255.255.0,默认网关是 192.168.1.1,接口索引(可以在 route print 中查看)是 2,你可以运行:

      csharp 复制代码
      route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 metric 1 if 2
    • 这个命令表示将通往 192.168.1.0/24 网络的流量通过有线接口发送。

  2. 验证路由

    • 通过命令 route print 确认静态路由已被正确添加。
cmd 复制代码
IPv4 路由表 
=========================================================================== 
活动路由: 网络目标 网络掩码 网关 接口 跃点数 
0.0.0.0 0.0.0.0 137.64.245.1 137.64.245.34 291
0.0.0.0 0.0.0.0 110.179.64.1 110.179.67.109 30
110.179.64.0 255.255.248.0 在链路上 110.179.67.109 286 
110.179.67.109 255.255.255.255 在链路上 110.179.67.109 286 
110.179.71.255 255.255.255.255 在链路上 110.179.67.109 286 
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
137.64.245.0 255.255.255.0 在链路上 137.64.245.34 291 
137.64.245.34 255.255.255.255 在链路上 137.64.245.34 291 
137.64.245.255 255.255.255.255 在链路上 137.64.245.34 291 
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331 
224.0.0.0 240.0.0.0 在链路上 110.179.67.109 286 
224.0.0.0 240.0.0.0 在链路上 137.64.245.34 291 
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331 
255.255.255.255 255.255.255.255 在链路上 110.179.67.109 286 
255.255.255.255 255.255.255.255 在链路上 137.64.245.34 291
=========================================================================== 
永久路由: 网络地址 网络掩码 网关地址 跃点数 
10.0.0.0 255.0.0.0 10.144.211.1 1 0.0.0.0 0.0.0.0 137.64.245.1 0 
=========================================================================== 
IPv6 路由表 
=========================================================================== 
活动路由: 接口跃点数网络目标 网关 
1 331 ::1/128 在链路上 
1 331 ff00::/8 在链路上
markdown 复制代码
-   测试连通性,使用 `ping` 命令测试内网和外网是否都能通。
  1. 使路由永久化(可选)

    • 添加的静态路由默认情况下在重启后会丢失。若希望永久化,可以在 route add 命令后添加 -p 参数:

      css 复制代码
      route -p add 192.168.1.0 mask 255.255.255.0 192.168.1.1 metric 1 if 2

要注意的是,具体的网络参数如 IP 地址、子网掩码、网关和接口索引请根据你自己的网络环境进行调整。确保不要添加错误的路由,否则可能导致网络不可用。

注意事项

  • 防火墙配置:确保你的 Windows 防火墙或任何第三方防火墙设置未阻止网络流量,特别是对于新的连接或路由。
  • 对全局生效route add-p 设置需要使用管理员权限的命令提示符。
  • 路由冲突:确保没有与现有路由冲突,特别是在更复杂的网络环境中。

如果你的网络需求更为复杂,可能需要更多进阶的网络配置与设备(如路由器、交换机)来实现更复杂的路由功能。

实际

从你的路由表中可以看出,当前系统设置中包含两条默认路由(0.0.0.0/0):

  1. 跳跃数为 291 的默认路由,通过网关 137.64.245.1,接口 IP 是 137.64.245.34
  2. 跳跃数为 30 的默认路由,通过网关 110.179.64.1,接口 IP 是 110.179.67.109

显然,较低的跳跃数表示路由优先级更高,因此 110.179.64.1 作为网关的默认路由优先于 137.64.245.1 使用。

如何解决和调整

如果希望保持现有设置,并找出内网或外网的具体使用需求,可以根据以下提议来调整您希望的路由优先级:

1. 指定内网流量走特定接口

如果当前内网访问需要通过 137.64.245.1,确保有对应内网段的路由(已经存在)通过这条路线。你可以通过 route add 确保某些特定内网段(如 137.64.245.0/24)明确通过此网关进行:

csharp 复制代码
bash
route add 137.64.245.0 mask 255.255.255.0 137.64.245.1 metric 1 if <以太网3接口索引>
2. 修改外网默认路由优先级

如果需要外网使用通过其他线路,则考虑将无线接口作为主要外网接口,让它拥有更低的跃点数:

css 复制代码
bash
route change 0.0.0.0 mask 0.0.0.0 110.179.64.1 metric 5
3. 删除特定默认路由

简化你的路由表来避免冲突,可以删除一个不必要的默认路由:

arduino 复制代码
bash
route delete 0.0.0.0 mask 0.0.0.0 137.64.245.1

此操作告诉系统通过另一条线路访问,所以请根据实际的网络需求考虑这个选项。

注意事项

  • 管理员权限:这些操作需要在具有管理员权限的命令提示符下执行。
  • 动态变化注意 :如果通过 DHCP 设置,该配置在网卡或系统重启后可能会变化,永久需要加 -p 标记。
  • 网络服务限制:一些公司在内网和外网的路由设置上做了额外限制,需要与网络管理员核对。

接口索引 怎么填?

在Windows中,每个网络接口都有对应的接口索引,用来在路由命令中指定具体的网络接口。要找到接口索引号码,你可以通过以下步骤来获取:

如何查看接口索引

  1. 打开命令提示符

    • Win + R,输入 cmd,然后按 Enter
  2. 运行命令查看接口索引

    • 输入以下命令并按 Enter
    kotlin 复制代码
    bash
    netsh interface ipv4 show interfaces

    这将显示一个列表,包含所有网络接口及其接口索引(Idx)信息。例如,输出可能看起来如下:

    diff 复制代码
    Idx     状态         名称
    ---  -----------  --------------------
     1    已连接        Loopback Pseudo-Interface 1
     6    已连接        以太网
    14    已连接        WLAN
  3. 查找相关接口

    • 在输出中寻找与具体网卡匹配的名称。你需要根据之前 ipconfig 中描述的网卡名称匹配相应的接口。例如,WLAN 可能是你的无线适配器,如果你想修改它的路由,那么就使用它对应的接口索引。

使用接口索引

一旦知道接口索引号,你可以在 route 命令中使用 if 参数来指定接口索引。比如:

csharp 复制代码
bash
route add 137.64.245.0 mask 255.255.255.0 137.64.245.1 metric 1 if 6

在这个例子中,6 就是指定的接口索引,用于配置默认路由或者特定路由信息。

注意事项

  • 确确保使用正确的接口索引,以免误配置不相关的网络接口。
  • 在执行命令行操作时,确保命令提示符是在管理员权限下运行,以免遇到权限问题。

我需要让访问内网137.64.108.0网段的走网线以太网3 137.64.245.1 实际的路由应该是

csharp 复制代码
route add 137.64.108.0 mask 255.255.255.0 137.64.245.1 metric 1 if 62

解释

在执行 route add 命令时,确保以下几点,以便配置正确无误:

  1. 接口索引正确性

    • 确认 if 62 确实是对应于以太网适配器 137.64.245.34 的接口索引。可以使用 netsh interface ipv4 show interfaces 确认索引。如果不正确,请替换为对应的正确值。
  2. 路由配置解释:

    • 这条命令的设置是为IP段 137.64.108.0/24 添加一个静态路由。
    • 使用的网关是 137.64.245.1
    • 路由通过索引为 62 的网卡接口。
    • 跃点数为 1,表示优先级很高(数值越小,优先级越高)。
  3. 命令执行权限

    • 确保以管理员权限运行命令提示符,否则可能会因为权限问题导致命令无法正常执行。
  4. 验证路由条目

    • 运行命令 route print 检查路由表,确认新添加的路由已出现在表中。
    • 使用 pingtracert 测试网络通达性,看能否正常访问目标网段。

如果确认接口索引和其他参数都没有问题,并且添加的路由有效且正确,那么问题应该会得到解决。否则,请检查网络配置和物理连接,是否符合预期的设置。

总结

  1. 查看网络配置

    • 打开命令提示符:按下 Win + R,输入 cmd,然后按 Enter。
    • 输入 ipconfig /all,记录下无线网卡和有线网卡的 IP 地址、子网掩码和网关。
  2. 运行命令查看接口索引

    • 输入以下命令并按 Enter
    kotlin 复制代码
    bash
    netsh interface ipv4 show interfaces

    这将显示一个列表,包含所有网络接口及其接口索引(Idx)信息。例如,输出可能看起来如下:

    diff 复制代码
    Idx     状态         名称
    ---  -----------  --------------------
     1    已连接        Loopback Pseudo-Interface 1
     6    已连接        以太网
    14    已连接        WLAN
  3. 添加静态路由

    • 在命令提示符中,使用 route add 命令添加静态路由。命令格式如下:

      csharp 复制代码
      route add 137.64.108.0 mask 255.255.255.0 137.64.245.1 metric 1 if 62
      1. 验证路由
    • 通过命令 route print 确认静态路由已被正确添加。

cmd 复制代码
IPv4 路由表 
=========================================================================== 
活动路由: 网络目标 网络掩码 网关 接口 跃点数 
0.0.0.0 0.0.0.0 137.64.245.1 137.64.245.34 291
0.0.0.0 0.0.0.0 110.179.64.1 110.179.67.109 30
110.179.64.0 255.255.248.0 在链路上 110.179.67.109 286 
110.179.67.109 255.255.255.255 在链路上 110.179.67.109 286 
110.179.71.255 255.255.255.255 在链路上 110.179.67.109 286 
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
137.64.245.0 255.255.255.0 在链路上 137.64.245.34 291 
137.64.245.34 255.255.255.255 在链路上 137.64.245.34 291 
137.64.245.255 255.255.255.255 在链路上 137.64.245.34 291 
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331 
224.0.0.0 240.0.0.0 在链路上 110.179.67.109 286 
224.0.0.0 240.0.0.0 在链路上 137.64.245.34 291 
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331 
255.255.255.255 255.255.255.255 在链路上 110.179.67.109 286 
255.255.255.255 255.255.255.255 在链路上 137.64.245.34 291
=========================================================================== 
永久路由: 网络地址 网络掩码 网关地址 跃点数 
10.0.0.0 255.0.0.0 10.144.211.1 1 0.0.0.0 0.0.0.0 137.64.245.1 0 
=========================================================================== 
IPv6 路由表 
=========================================================================== 
活动路由: 接口跃点数网络目标 网关 
1 331 ::1/128 在链路上 
1 331 ff00::/8 在链路上
markdown 复制代码
-   测试连通性,使用 `ping` 命令测试内网和外网是否都能通。
  1. 使路由永久化(可选)

    • 添加的静态路由默认情况下在重启后会丢失。若希望永久化,可以在 route add 命令后添加 -p 参数:

      css 复制代码
      route -p add 192.168.1.0 mask 255.255.255.0 192.168.1.1 metric 1 if 2

删除路由

如果网络环境发生变化,之前配置的永久路由可能不再适合当前的网络需求。在这种情况下,删除或更新这些路由是很重要的,以避免造成不必要的网络连接问题或性能下降。

何时需要删除永久路由

  1. 网络拓扑变化:当网络结构、IP规划或网关地址发生变化时,旧的永久路由可能指向错误的网关或网段。
  2. 设备或网段移除:如果某些设备或子网不再存在,相关的路由就没有意义,并且可能会导致误导的网络流量路径。
  3. 路由冲突:当现有的永久路由和新的动态路由规则或其他静态路由冲突时,需要删除旧路由以确保网络顺畅。
  4. 故障排查:为了排查网络连接问题,需要简化路由表,保持其干净有序。

如何删除永久路由

要删除永久路由,你需要知道网关和目标网络的信息。从之前的永久路由输出中可以看到用于删除的参数。

  1. 打开命令提示符

    • 用管理员权限运行命令提示符。
  2. 查看当前路由

    • 使用 route print 查看当前活动和永久路由。
  3. 删除永久路由

    • 使用 route delete 命令。格式如下:
    xml 复制代码
    bash
    route delete <目标网络> mask <子网掩码> <网关>

    例如,假设要删除 10.0.0.0/8 的永久路由,可以使用:

    arduino 复制代码
    bash
    route delete 10.0.0.0 mask 255.0.0.0 <网关>

    <网关>需要填写之前用于此路由的网关,例如 10.144.211.1

  4. 验证删除效果

    • 重新执行 route print,确认永久路由已被成功移除。

后续措施

  • 在网络环境变化后,合理配置新的路由以适应当前的网络需求。
  • 定期审核和清理永久路由,确保其与当前网络配置的实际需求相符,确保网络性能最优化。

由于权限问题,有时可能需要注销或重新启动设备来使删除的路由完全生效。确保在这些更改操作完成后进行适当验证,以确保网络连通性未受负面影响。

相关推荐
开花沼泽.4 小时前
CentOS9与Windows通过Samba实现永久共享配置
windows
梁萌4 小时前
Windows系统Jenkins企业级实战
运维·windows·ci/cd·svn·jenkins
不会飞的鲨鱼6 小时前
Windows系统下【Celery任务队列】python使用celery 详解(二)
开发语言·windows·python
扛枪的书生7 小时前
AD 侦查-LLMNR 毒化
windows·渗透·kali·提权·域渗透
时之彼岸Φ9 小时前
Windows:Powershell的使用
windows
七七小报11 小时前
uniapp-商城-51-后台 商家信息(logo处理)
java·服务器·windows·uni-app
霍志杰12 小时前
stable-diffusion windows本地部署
windows·stable diffusion
zm12 小时前
TCP套接字通信核心要点
网络·windows
古月-一个C++方向的小白12 小时前
C++STl——list
c++·windows·list
jiandongg1 天前
【已解决】WORD域相关问题;错误 未找到引用源;复制域出错;交叉引用域到底是个啥
windows·microsoft·word·引用·参考文献·office·