昨天和一个群友说到 IPv4 和 NAT 的问题。
有很多人说 NAT 是个坏技术,是破坏互联网的。
我个人的观点是 IPv4 的 NAT 是一种妥协的艺术。
为什么我认为 NAT 是妥协的艺术?
IPv4 总共只有约 40 亿个地址,扣掉私有块,扣掉多播,给每个人分一个地址显然是不够的,更何况显然易见互联网上的终端比人还要多。所以需要一种妥协。
NAT 破坏互联网,破坏了什么呢?
理想情况下,在互联网上的所有终端(我这里说的终端,包括服务器,包括客户端,包括你的阿里云小鸡,包括你的手机,你的智能电视智能冰箱智能洗衣机)都可以主动和被动地访问任意一个终端,所有的终端都可以是服务端也可以是客户端,整个互联网可以去中心地运行,任意终端都可以和另一个终端通信,不需要依赖第三方。
而 NAT 破坏了这种可能,使得没有公网 IPv4 的终端只能主动去访问另一个有公网 IPv4 的终端。
但现实世界中的互联网是上面的理想的互联网么?
现实世界中的互联网,有一部分终端同时是服务端也同时是客户端,但其他的,有一部分是只作为服务端,更大的一部分,只作为客户端(比如说大多数人的手机,大多数人的电脑)。
你说你手机还往外提供服务?开 NAS?拜托,你去大街上随便抓个人问问,你抓 1000 个人,会不会有一个人的手机往外提供服务……
互联网上的各个终端的通信,也绝大多数都是中心化的,国内流行的微信 QQ,国外流行的 Whatsapp,你在用的 Telegram,哪个不是中心化的呢,哪个不是少数服务端服务多数客户端的呢。
所以实际上,并不是所有的终端都需要作为服务端存在,这些就是 NAT 可以妥协的地方。
其余的,需要作为服务端的,可以比不需要作为服务端的终端,付出稍微高一点的代价(指费用),取得公网 IPv4 (也就是说,公网 IPv4 应当是一种易于取得的增值服务)。这做法类似于其他有限的公共资源,比如城市道路等,收取拥堵费(限牌本质上也是一种拥堵费的收取),使得有刚需的人可以通过付出更高的价格来获取有限的资源。
我们的世界并不完美,世界在妥协中运行,而互联网,也可以有一些妥协。
至于现在一直说 IPv4 不够用,我个人认为更多是因为分配不均:早期发展互联网的国家、地区、机构等拥有大量的 IPv4 地址,富裕到给不需要作为服务端的终端也分配了地址,甚至完全丢空(我就是在说 11.0.0.0/8 )。这就像一些一线城市的早期居民,买了好多车,停在路边占着路,但自己完全不需要开车。
IPv4 最早的开发者并没有想到自己写的 IPv4 会成为当代互联网的根基,地址不够用我并不认为是因为互联网先驱目光短浅。
IPv4 有自己的优势,在设置局域网专用网络的时候地址短,容易记,配置也方便。
NAT 有一个隐含的好处是可以起到防火墙的作用。当然有些人认为依赖 NAT 作为防火墙是不安全不专业的做法,但我认为不能苛求所有人都是专业用户。
IPv6 很理想,每一粒沙子都可以有一个 IPv6 地址,但代价什么呢?
好像很久没有写这么长的东西发表自己的观点,我觉得自己老了,不太愿意写这么多东西了。以前 PillNews 的时候我还写了挺多观点的呢
有很多人说 NAT 是个坏技术,是破坏互联网的。
我个人的观点是 IPv4 的 NAT 是一种妥协的艺术。
为什么我认为 NAT 是妥协的艺术?
IPv4 总共只有约 40 亿个地址,扣掉私有块,扣掉多播,给每个人分一个地址显然是不够的,更何况显然易见互联网上的终端比人还要多。所以需要一种妥协。
NAT 破坏互联网,破坏了什么呢?
理想情况下,在互联网上的所有终端(我这里说的终端,包括服务器,包括客户端,包括你的阿里云小鸡,包括你的手机,你的智能电视智能冰箱智能洗衣机)都可以主动和被动地访问任意一个终端,所有的终端都可以是服务端也可以是客户端,整个互联网可以去中心地运行,任意终端都可以和另一个终端通信,不需要依赖第三方。
而 NAT 破坏了这种可能,使得没有公网 IPv4 的终端只能主动去访问另一个有公网 IPv4 的终端。
但现实世界中的互联网是上面的理想的互联网么?
现实世界中的互联网,有一部分终端同时是服务端也同时是客户端,但其他的,有一部分是只作为服务端,更大的一部分,只作为客户端(比如说大多数人的手机,大多数人的电脑)。
你说你手机还往外提供服务?开 NAS?拜托,你去大街上随便抓个人问问,你抓 1000 个人,会不会有一个人的手机往外提供服务……
互联网上的各个终端的通信,也绝大多数都是中心化的,国内流行的微信 QQ,国外流行的 Whatsapp,你在用的 Telegram,哪个不是中心化的呢,哪个不是少数服务端服务多数客户端的呢。
所以实际上,并不是所有的终端都需要作为服务端存在,这些就是 NAT 可以妥协的地方。
其余的,需要作为服务端的,可以比不需要作为服务端的终端,付出稍微高一点的代价(指费用),取得公网 IPv4 (也就是说,公网 IPv4 应当是一种易于取得的增值服务)。这做法类似于其他有限的公共资源,比如城市道路等,收取拥堵费(限牌本质上也是一种拥堵费的收取),使得有刚需的人可以通过付出更高的价格来获取有限的资源。
我们的世界并不完美,世界在妥协中运行,而互联网,也可以有一些妥协。
至于现在一直说 IPv4 不够用,我个人认为更多是因为分配不均:早期发展互联网的国家、地区、机构等拥有大量的 IPv4 地址,富裕到给不需要作为服务端的终端也分配了地址,甚至完全丢空(我就是在说 11.0.0.0/8 )。这就像一些一线城市的早期居民,买了好多车,停在路边占着路,但自己完全不需要开车。
IPv4 最早的开发者并没有想到自己写的 IPv4 会成为当代互联网的根基,地址不够用我并不认为是因为互联网先驱目光短浅。
IPv4 有自己的优势,在设置局域网专用网络的时候地址短,容易记,配置也方便。
NAT 有一个隐含的好处是可以起到防火墙的作用。当然有些人认为依赖 NAT 作为防火墙是不安全不专业的做法,但我认为不能苛求所有人都是专业用户。
IPv6 很理想,每一粒沙子都可以有一个 IPv6 地址,但代价什么呢?
好像很久没有写这么长的东西发表自己的观点,我觉得自己老了,不太愿意写这么多东西了。以前 PillNews 的时候我还写了挺多观点的呢