内网和外网如何互通
公司内网的内网财务系统要访问阿里云上的报销服务,结果超时了。和外互通运维查了半天,网何发现防火墙根本没放行——内网机器连外网IP的内网请求,在边界路由器那一步就被丢了包。和外互通这事儿不复杂,网何但每次遇到都得重新捋一遍。内网
内网和外网的和外互通本质区别就一条:路由可达性。你的网何笔记本在公司连WiFi,拿到的内网是192.168.x.x这种私有地址,运营商的和外互通路由器看到这个地址直接扔掉,因为它不在公网路由表里。网何外网服务器拿的内网是公网IP,全球任何角落都能找到它。和外互通所以内网访问外网,网何核心问题是:怎么让一个"不存在于公网"的地址,跟公网地址通信。
NAT:最普遍的解法
你家路由器干的就是这件事。内网设备192.168.1.5要访问百度,数据包先到路由器,路由器把源地址换成自己的公网IP(比如123.45.67.89),同时记一笔:"端口30001对应内网的192.168.1.5"。百度回包到123.45.67.89:30001,路由器查表,转发回192.168.1.5。整个过程内网设备无感。
这叫SNAT(源地址转换)。企业出口路由器上配一条ip nat inside source list 1 interface GigabitEthernet0/0 overload,内网所有设备就能共享一个公网IP上网。overload就是PAT,靠端口号区分不同会话。
但NAT有个硬伤:外网主动发起的连接进不来。你内网搭了个Web服务,想让外网访问,光有NAT不够。得配DNAT(目的地址转换),把公网IP的80端口映射到内网服务器的80端口。家用路由器里那个"端口转发"功能就是干这个的。
没有公网IP怎么办
现在运营商越来越抠,很多宽带根本不给公网IP。你拿到的是100.64.x.x——运营商级NAT(CGNAT)的地址,跟私有地址一样不可路由。这时候端口映射也救不了你,因为你在运营商那层NAT的后面。
常见绕法有几种。一是打洞,WebRTC和Tailscale用的就是这思路,靠STUN服务器发现双方的外部端口,尝试直连。成功率看NAT类型,对称型NAT基本没戏。二是反向隧道,内网机器主动连到一台有公网IP的服务器,把隧道建起来,外网流量通过这台服务器中转。frp、ngrok都是这个原理。三是找运营商要公网IP,打客服电话说"家里要装监控",有一定概率能要到,但IPv4地址池紧张,越来越难。
代理和VPN不是一回事
很多人把这两个混着说。代理是应用层的,浏览器配个SOCKS5代理,流量走代理服务器出去,只影响配了代理的应用。VPN是网络层的,建一条隧道,路由表一改,所有流量都走隧道。公司让你连VPN访问内网OA,那是VPN;你翻墙用的那个,严格说也是VPN的一种(比如WireGuard),只是用途不同。
企业里还有一种场景:两个内网互通。比如北京办公室10.1.0.0/16要和上海办公室10.2.0.0/16通信。两边都是私有地址,直接路由不可能。做法是在两边出口各建一条IPsec隧道,把对方的内网网段路由指过去。数据包在隧道里被封装成公网包传输,到了对端解封装,还原成原始内网包。这叫站点到站点VPN。
IPv6会改变什么
IPv6地址足够多,理论上每个设备都能有公网地址,NAT就不需要了。但现实是,运营商给你分/64的段,防火墙默认还是拦入站。安全模型从"NAT挡着"变成了"防火墙挡着"。而且很多企业内网压根没上IPv6,双栈环境下的路由策略更复杂。我见过一个案例:内网DNS返回了AAAA记录(IPv6地址),但内网没有IPv6路由,客户端尝试连接直接超时,等半天才回退到IPv4。查这种问题特别费劲。
说到底,内网和外网互通就是解决"地址不可达"和"方向不对等"这两件事。NAT解决前者,端口映射和隧道解决后者。具体用哪种,看你有多少公网IP、能不能控制两端设备、以及愿不愿意为稳定性多花点钱。
本文地址:http://www.79wt.cn/news/050c1099939.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。