假设我发送的请求https服务器的数据包成功地到达了我的目标(NAT)路由器。
路由器接收它,并通过端口转发/触发策略,它知道它必须发送到服务器-1的IP地址192.168.0.100端口443。但是它接收到的数据包有一个L3封装源路由器公共IP(ME)和目的地路由器公共IP(它们)。我知道它用新的帧封装数据包,这是一种新的源Mac和目标Mac,可以通过局域网发送并找到正确的设备。但我听说L3封装没有改变。这是真的吗?
这是否意味着服务器-1接收的数据包将只是具有两个公共IP地址的旧L3-封装,还是会更改为自己的私有IP ( 192.168.0.100 )和路由器的私有IP ( 192.168.0.1 )?
发布于 2021-06-11 18:15:41
这是否意味着服务器-1接收的数据包将只是具有两个公共IP地址的旧L3-封装,还是会更改为自己的私有IP ( 192.168.0.100 )和路由器的私有IP ( 192.168.0.1 )?
在您描述的场景中,目标( NAT )路由器根据NAT策略修改第三层信息(IP地址),并删除和替换作为正常路由一部分完成的第二层信息。
在典型的静态NAT中,数据包的目标地址被修改为与实际服务器地址的地址相匹配。返回包被反向修改,这样服务器的真实地址就被NAT地址所取代。
结果是源设备和目标服务器都不知道NAT正在发生。源将流量发送到NAT地址,它接收的通信量来自同一地址。
服务器接收到寻址给它的数据包,并且不知道路由器修改了目标地址。
正如其他人所指出的,虽然这是一个非常常见的NAT场景,但是还有许多其他使用NAT的方法。
发布于 2021-06-11 18:03:43
..。到达我的目标路由器
我假设您是指使用数据包地址的广域网路由器(与IPv4 NAT一起)。通常,目的地不是路由器,而是主机。
但是它接收到的数据包有一个L3封装源路由器公共IP(ME)和目的地路由器公共IP(它们)。
不是的。数据包仅由L2帧封装(从上一跳路由器到当前路由器,通常是通过MAC)。IP数据包反过来封装TCP段(或其他来自更高层协议的内容)。通常,IP数据包是从源主机寻址到目标主机的周期。
只有使用IPv4和NAT,您才需要翻译。在您的例子中,有目的地NAT从公共IP空间到私有主机。NAT路由器需要端口转发规则.由于数据包是针对路由器自己的公共IP和L4端口(符合规则),因此它在实际服务器上将publicIP:publicPort转换为privateIP:privatePort。然后它转发包。
只有当数据包需要穿越以太网等基于MAC的网络时,才需要MAC地址。路由器使用主机IP并使用该MAC地址作为封装帧的目的地。
https://networkengineering.stackexchange.com/questions/74215
复制相似问题