网络转发
参考: https://www.cnblogs.com/wanliangwl/p/13510471.html
参考: https://blog.csdn.net/gofishing/article/details/722015
参考: https://blog.csdn.net/csdn10086110/article/details/100895703
参考: https://blog.csdn.net/daocaokafei/article/details/115091313
参考: https://blog.51cto.com/jafy00/651856
从数据包的角度, 常见的网络(数据包)转发分为三种情况: 路由转发, 网络地址转换(NAT转发), 端口映射转发.
“端口转发”概念容易发生混淆(有些时候特指NAT转发, 有些时候指端口映射), 而且是从端口的角度考虑的, 这里不使用此术语.
基础知识
P地址:IP网络中,计算机在网络通信中的标识,分为公网地址和私有地址。公网地址又叫合法地址,可以在互联网中进行通信,公网地址必须通过电信运营商申请。因为公网地址数量有限和安全问题,人们从IP地址中选出了三段,作为私有地址,私有地址只能在局域网中使用,不能在互联网中使用,不需要向电信运营商申请,最常见的192.168.1.1就是私有地址。
源地址:数据包的发送方的IP地址。
源端口:数据包的发送方的端口号。
目的地址:数据包的接收方的IP地址。
目的端口:数据包的接收方的端口号。
网关:某一网络与另一网络互通的设备。
路由转发
路由转发,路由器收到数据包后,查询数据包的目的地址,然后匹配本机路由表中路由条目,并按照路由表转发至下一网络节点的过程。举个例子,路由器就相当于邮局,数据包就是邮包,路由表就是地图,邮局收到邮包后看一下邮包的目的地址,然后查一下地图,然后将邮包转发至就近的下一个邮局。
路由转发用于公网与公网边界, 或者不同类型的私网与私网边界, 在边界网关上进行, 数据包从一个网络转发到另一个网络. 路由转发不改变数据包的源地址和目标地址.
网络地址转换/NAT转发
再说网络地址转换(NAT),刚才说了IP地址分为私有地址和公网地址,只有公网地址才能在互联网线路通信。公网地址需要从电信运营商处申请,并且需要支付较高的费用。那么问题来了,怎么才能让使用私有地址的设备访问互联网呢?答案就是通过网络地址转换技术,在使用私有地址的设备访问互联网时,将数据包的源地址转换为公网地址。利用网络地址转换技术,可以使多个设备(手机、电脑等)公用一个公网地址进行通信,节省了费用,提高了IP地址的利用率。
网络地址转换(NAT)用于公网与私网边界, 或者不同类型的私网与私网边界, 在边界网关上进行, 数据包从一个网络转发到另一个网络. 网关会维护一张网络地址转换表(内网主机ip: 内网主机端口: 网关端口), 从内网向公网转发数据包时, 数据包源地址会被修改为网关的公网ip, 数据包源端口也会被修改为网关上的一个临时端口, 并在这张表中登记. 从公网向内网转发数据包时, 从网络地址转换表中查询与数据包目的端口相同的网关端口对应的条目; 若能找到这样的条目, 数据包目的地址转换为该条目中内网主机ip, 数据包目的端口转换为内网主机端口, 并将数据包转发到私网中.
NAT转发一般用于内网主机访问公网. 但也会造成公网无法直接访问内网主机的问题(必须先由内网主机向公网发起连接)
有些情况下, 必须面对公网需要主动访问内网主机的问题(即需要做内网穿透), 在公网与私网边界网关上做内网主机的端口映射(也可以看作是静态NAT), 或者直接在内网主机上安装内网穿透软件(一般是维持个与公网的心跳连接, 公网需要访问内网主机端口时, 由内网穿透软件先在内网主机上向公网发起连接)
端口映射转发
**端口映射:**端口映射就是将主机的一个端口映射到(本机另一个端口/内网另一个主机的一个端口/外网主机的一个端口),提供相应的服务。当主机的这个端口时,服务器自动将请求映射到对应主机的相应端口上。
端口映射不一定是在网关主机上进行, 但也是通过修改数据包的数据包来源地址与端口, 目的地址与端口, 并转发数据包来实现的.
在网关上做端口映射, 可用于向外网提供内网服务器/主机上的服务.
发表回复