Windows开启路由转发、配置静态路由详解

路由表是Windows的TCP/IP协议栈的一个重要的部分。但是,路由表不是Windows操作系统向普通用户显示的东西。如果你要看到这个路由表,你必须要打开一个命令提示符对话框,然后输入“ROUTE PRINT”命令。

路由器的工作是协调一个网络与另一个网络之间的通信。因此,一台路由器包含多个网卡,每一个网卡连接到不同的网段。当用户把一个数据包发送到本机以外的一个不同的网段时,这个数据包将被发送到路由器。路由器将决定这个数据包应该转发给哪一个网段。如果这台路由器连接两个网段或者十几个网段也没有关系。决策的过程都是一样的,而且决策都是根据路由表做出的。

Windows开启内核转发命令:

reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /D 1 /f

或者打开注册表编辑器(Win+R–>regedit)。
在注册表编辑器中,定位以下注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters选择下面的项目:IPEnableRouter:REG_DWORD:0x03)
要对该计算机安装和使用的所有网络连接都启用 IP 转发,请指定值为 1。
要对该计算机安装和使用的所有网络连接都关闭 IP 转发,请指定值为 0。注:必须以管理员或管理组成员的身份登录才能完成该过程。

默认情况下,将禁用 IP 转发。要检查IP转发是否已经禁用:ndd -get /dev/ip_forwarding

启用IP转发:ndd -set /dev/ip_forwarding 1
关闭IP转发:ndd -set /dev/ip_forwarding 0

另一种关闭IP转发的方法是创建/etc/norouter文件,例如touch /etc/norouter

windows 路由表解释
查看路由表执行:route print(或者 route print -4)

# route print -4
===========================================================================
Interface List
19...78 dd 08 a4 40 f4 ......Bluetooth Device (Personal Area Network)
11...00 27 10 5b 26 fc ......Intel(R) Centrino(R) Advanced-N 6200 AGN
13...f0 de f1 08 58 f4 ......Intel(R) 82577LM Gigabit Network Connection
15...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
16...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
1...........................Software Loopback Interface 1
23...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
12...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
21...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
17...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #4
20...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #5
22...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #6
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.1.12 26
10.108.0.0 255.255.0.0 10.108.58.1 10.108.58.18 21
10.108.58.0 255.255.255.0 On-link 10.108.58.18 276
10.108.58.18 255.255.255.255 On-link 10.108.58.18 276
10.108.58.255 255.255.255.255 On-link 10.108.58.18 276
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
172.16.0.0 255.255.0.0 10.108.58.1 10.108.58.18 21
192.168.0.0 255.255.252.0 On-link 192.168.1.12 281
192.168.1.12 255.255.255.255 On-link 192.168.1.12 281
192.168.3.255 255.255.255.255 On-link 192.168.1.12 281
192.168.10.0 255.255.255.0 On-link 192.168.10.1 276
192.168.10.1 255.255.255.255 On-link 192.168.10.1 276
192.168.10.255 255.255.255.255 On-link 192.168.10.1 276
192.168.159.0 255.255.255.0 On-link 192.168.159.1 276
192.168.159.1 255.255.255.255 On-link 192.168.159.1 276
192.168.159.255 255.255.255.255 On-link 192.168.159.1 276
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 10.108.58.18 276
224.0.0.0 240.0.0.0 On-link 192.168.159.1 276
224.0.0.0 240.0.0.0 On-link 192.168.10.1 276
224.0.0.0 240.0.0.0 On-link 192.168.1.12 281
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 10.108.58.18 276
255.255.255.255 255.255.255.255 On-link 192.168.159.1 276
255.255.255.255 255.255.255.255 On-link 192.168.10.1 276
255.255.255.255 255.255.255.255 On-link 192.168.1.12 281
===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
172.21.10.0 255.255.255.0 172.16.56.190 1
10.108.0.0 255.255.0.0 10.108.58.1 1
172.16.0.0 255.255.0.0 10.108.58.1 1
===========================================================================
☑ Interface List: 网络卡列表
☑ Active Routes: 活动路由
☑ Network Destination: 目的网段
☑ Netmask: 子网掩码,与目的网段共同定义了此条路由适用的网络地址
☑ Gateway: 网关,又称下一跳路由器,在发送IP数据包时,网关定义了针对特定的网络目的地址,数据包发送到的下一跳服务器
☑ Interface: 接口,接口定义了针对特定的网络目的地址,本地计算机用于发送数据包的网络接口
☑ Metric: 跳数,跳数用于指出路由的成本,通常情况下代表到达目标地址所需要经过的跳跃数量,一个跳数代表经过一个路由器。跳数越低,代表路由成本越低,优先级越高
☑ Persistent Routes: 手动配置静态路由

Windows 路由命令

操作网络路由表。

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
destination^ ^mask ^gateway metric^ ^
Interface^
如果未给出 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

双网卡配置
1. 网络环境:
有线(网线,交换机):可连接公司内网,不能连接Internet
无线(无线,WIFI):可连接Internet,不能连接公司内网 默认网关为 192.168.0.1
我们的目的就是同时连接这两个网络,并自动选择路由实现内外网都可以访问。

2.配置
# 删除默认设置
route delete 0.0.0.0
# 外网路由,全走无线
route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 –p
# 公司内网全部在10.108.*.*网段,增加此路由
route add 10.108.0.0 mask 255.255.0.0 10.108.58.1 -p

路由表通常形如:

目的网络地址(D) 子网掩码(M) 下一跳(N)
0.0.0.0 0.0.0.0 192.168.0.1
192.168.0.0 255.255.0.0 192.168.25.1

IP 包如何路由(路由器转发分组)?
1) 从收到的数据报的首部提取目的 IP 地址 D1;
2) 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码(M)和 D1 逐位相“与”,看结果是否和相应的网络地址(D)匹配。若匹配,则把分组进行直接交付(当然还需要把 D1 转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行3);
3) 若路由表中有目的地址为 D1 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器(N);否则,执行4);
4) 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码(M)和 D1 逐位相“与”,其结果为 D2。若 D2 与该行的目的网络地址(D)匹配,则把数据报传送给该行指明的下一跳路由器(N);否则,执行5);
5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行6);
6) 转发分组出错。

原文链接:
https://blog.csdn.net/qq_50573146/article/details/126626630

Related Posts