端到端的威胁

随着国务院印发的《推进互联网协议第六版(IPv6)规模部署行动计划》逐步实施, 中国移动和中国联通的4G网络以及固定宽带在很大一部分地区都开始分配IPv6地址。不论是通过手机热点上网, 还是通过路由器分享宽带上网, 每一台联网设备都能获得自己全球独一无二的地址, 并且是全球可路由寻址的公网地址(IPv6全球单播地址)。人们失去已久的端到端原则回来了。任意拥有这种地址的两台设备都可以直接通过互联网相互传输数据了, 这在IPv4时代是难以做到的。端到端原则可以理解为, 网络本身不对传输的数据包做过多处理, 而复杂的操作, 包括加密、差错检测、重传或确认等都由手机、电脑或者网站服务器等端系统来完成。

早在2011年, 统筹规划全球IPv4地址分配的IANA宣布所有IPv4地址已经全部分配给各大区域, 而各大区域也相继在几年后宣布其地址已经分配完毕。如今, 每个B类IPv4地址段(含有65536个地址)在市场上的价格已经炒到了600万元人民币(约每个91.55元), C类IPv4地址段(含有256个地址)的月租金也高达上千元人民币。可以看出, IPv4地址确实不够用了。

事实上, 早在1990年代, 人们就已经意识到IPv4地址即将枯竭。为了在地址枯竭的情况下还能满足大量上网需求, 让终端访问互联网服务, 一种叫做NAT的技术被提出, 它的变种NAPT在现在仍然被广泛使用, 几十元的家用无线路由器中都有它的身影。使用NAT技术时, 网络被分为内网和公网, 内网地址不能直接在互联网中使用, 公网地址则可以。某个终端上网时, 它由内网发出的数据包经过NAT设备的转换, 将内网地址和端口转换为公网地址和临时端口, 然后发送到公网。多个内网地址可能转换为同一个公网地址, 只不过端口不同罢了。服务器返回的数据包还是能够经过NAT设备的辨别, 到达内网终端。考虑到每个终端基本不会用满所有端口, 以及转换后的端口可以动态分配, 让多个终端合用一个公网地址成为可能。一个公网地址现在可以满足成百上千个内网设备的上网需求了。甚至有些NAT设备将对方(服务器)的地址和端口也作为识别信息之一, 这样不同的内网终端不仅可以共享相同的公网地址, 它们转换后的端口也可以相同, 企图支持更大的终端数。在地址极度枯竭的今天, 有些互联网运营商无奈也开始为他们的客户分配运营商级别的内网地址, 部署运营商级别的NAT设备, 甚至在合同中明确指出不提供IPv4公网地址。

然而, 当公网的某个终端需要主动访问内网的某个设备时, 它可能会失望, 因为上面的NAT设备仅支持由内网终端先发起请求的场景。更不要想两个分处不同NAT内网的终端如何通信了。NAT对端到端原则的损害不止于此, 因为它甚至改变了互联网上传输数据最最重要的一部分——地址。FTP或SIP等网络协议会在传输的数据中包含地址信息, NAT设备让它们很尴尬。顺便一提, 为了能够让这些协议正常工作, ALG被实施。

从另一方面看, 只允许内网终端先发起请求的限制反而保护了某些终端, 因为它提供的服务可能从政策上就不希望被公网随意访问。由于有了NAT设备的保护, 某些管理人员在维护内网设备时会放松警惕, 大量使用弱口令或有缺陷的过时的软件版本, 因为他们认为内网的威胁远不如公网。情况发生了变化。IPv6广泛部署的现在, 所有终端都有公网地址, 内网的概念不复存在, 或者说全世界就是同一个”内网”。因此, 从现在起, 需要认真对待每一台终端, 因为它们直接暴露给全世界了。当然, 为了维持内网的存在, 管理人员可以在自己网络与互联网的中间插入无状态防火墙, 阻断某些端口的数据传输, 或者插入有状态防火墙, 阻断入站连接, 实现类似的保护效果。当然, 这是损害端到端原则的, 防火墙应该在端系统本身部署。然而, 在端系统部署防火墙要求使用端系统的用户足够精明[文献], 这似乎与现实是矛盾的。总之, 应当通过宣传和教育来提高终端用户的素质, 而不是一味地插入防火墙。这对于某些国家级防火墙也是同样的道理。

IPv6时代已经到来, 聪明的你准备好了吗?

发表评论?

3 条评论。

  1. 博主写得很好!学习了 :-D :-D

  2. 院士写的很好!学习了

  3. 博主写得很好!学习了 :-D :-D

回复给 shyoshyo ¬
取消回复

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

本文链接:https://twd2.me/archives/11706QrCode