分析家预测,到2020年,将有300亿个连接的“事物”,但是IPv4地址空间只能容纳40亿个,更改。即使有了网络地址转换(NAT)和专用地址空间,物联网对地址的胃口也将克服IPv4的需求。嗯,由于保留了某些组合,因此从技术上讲要少一些。尽管如此,仍然有足够的可用地址来为地球上的每个人分配约4,000个地址。
让我感到困惑的是,为什么物联网会对切换到IPv6的需求产生任何影响。在我看来,绝大多数物联网都连接到路由器,因此只需要一个全球IP。
例如,您的智能烤箱IP(或其他IP)为192.168.0.52,防止邻居的Echo具有相同的IP,因为要从屋外访问该IP,您必须经过房屋的IP地址,例如148.238.24.9。切换到IPv6?
#1 楼
有两个原因。(1)首先是更简单的端到端连接。如果源和目标都具有公用IPv4(或IPv6)地址,则它们可以随时沿任何方向相互连接。
具有专用IP
192.168.0.52
的物联网只能使用NAT进行连接Internet上任何需要的公共IP,但是Internet的其余部分都无法连接到它。曾经有过DNAT和uPNP之类的麻烦来让您指定启用了某些传入连接,但是由于IPv4短缺,由于CGNAT的实现,如今它们正在越来越多地中断。所谓的“解决方案”是,您所有(经过NAT转换)的设备都使用公用IP(通常由设备制造商托管)连接到某个中央位置。这使其在技术上可以正常工作,但涉及到隐私问题(您要从物联网中获取所有数据),安全性问题(因为您对它们敞开大门),受到侵害或不满的员工可以执行您的物联网设备可以执行的任何操作)和可靠性问题(当制造商停业或决定停止支持旧设备或遭受故障的情况下),您所有(以及其他所有人)功能完善的设备将停止工作。
(2)第二个问题是,它将在将来的某个时候(即使不是一两年之内,但仍然会停止工作)(即使是传出的连接),但物联网和服务的普及越多,它就会越早开始崩溃。
这是因为NAT允许
192.168.0.52
之类的专用地址访问整个Internet。它通过将源地址192.168.0.52
更改为路由器的公共IP来实现,但是用池中的空闲端口替换了源端口。 例如,您的第一个连接可能是
192.168.0.52:1000
,可能是(CG)-NAT到(公共IP)198.51.100.1:1000
,而邻居192.168.0.77:1000
可能是NAT,到198.51.100.1:1001
。来自192.168.0.52:1001
的第二个连接将被NAT到198.51.100.1:1002
等。问题是,即使是像打开网页这样的简单事情,也可能会打开数十个连接并使用许多端口(用于DNS查询,用于不同元素的HTTP(S)连接,不同站点上的JS分析等)。
更加昂贵的程序(例如torrent客户端)将轻松使用数千个端口。而且只有65535个端口可用于任何IP。
这意味着您的几个共享同一CGNAT IP的邻居使用的连接份额更大(更多的IoT意味着更多的连接),突然之间使用该公用IP 198.51.100.1上的65535端口。这意味着无法为您和您的邻居建立新的连接。从更大的角度来看,这意味着有很多人无法使用其物联网,而且我们所知道的文明正在崩溃:-)
由于我们想尽可能长时间地推迟这种文明崩溃,我们正在过渡到改为使用IPv6。如果可能,请通过使用IPv6支持该文明的持续存在。谢谢!
评论
“并且只有65535个端口可用于任何IP。”但是连接由源IP,源端口,目标IP和目标端口的四元组标识。因此,NAT可以将相同的公共源端口用于多个目标(无论它是否实际取决于实现)
– Peter Green
17年1月27日在20:02
@PeterGreen是正确的,因为有两个IP(src和dst),所以有两个端口池。我已经在学习技术了,所以我没有深入。实现可能会将相同的源端口重用于不同的目的地(或不会重复使用,因为由于搜索列表会增加路由器的负载)。但是,请注意,目的地通常出于某种目的是固定的-例如,您始终连接到8.8.8.8:53以获取google DNS解析器,或者始终连接到端口80(或443)以连接到某些Web的HTTP服务器。但是NAT只能更改源端口,而不能更改目标端口。
– Matija Nalis
17年1月27日在20:44
@PeterGreen已经有报告CGNAT硬件以此处描述的方式发生故障。这表现为没有明显原因的奇怪的不可靠连接。例如,请参阅此Ofcom报告。无论如何,CGNAT只是在失败中投入了很多钱,当IPv6部署早就应该拖延时,IPv4仍在继续发展。
–迈克尔·汉普顿
17年1月28日在7:47
我已经看到塑料路由器的NAT死于只是试图从头开始解析几个DNS名称,即在公共DNS中不使用递归DNS名称服务器,而是在本地进行递归。
–乔纳斯·谢弗(JonasSchäfer)
17年1月28日在13:32
@ v7d8dpo4不一定很坏-是的,但是对于大多数情况下的IoT设备而言,这是不好的-IoT设备通常会将其数据(有时甚至是加密的,但不是很频繁地)发送给制造商,然后制造商在几乎所有情况下解密数据以显示漂亮的HTML页面(或其他内容)。因此,制造商(或运行公共ip的任何人)都可以使用您的所有数据,并可以随意控制您的IoT设备。现在,在少数情况下,您可以指示设备连接到您自己的公共IP并运行在那里提供给您的开源服务器端软件,但这非常罕见:(
– Matija Nalis
17年1月28日在14:45
#2 楼
IPv6现在是必需的。我们已经几乎没有IPv4地址了。随着越来越多的人上线,我们开始达到必须在多个人之间共享IP的地步,不仅仅是一个不可接受的家庭(运营商级NAT),而且不仅仅是物联网的问题。 br />IPv6使我们可以使用一种更具语义的表示形式,其中一个IP =一个设备,这具有多个优点。如果您可以直接寻址智能设备(例如烤面包机,烤箱,灯泡,电视或其他设备),则只需将命令直接发送到设备即可,而无需经过集线器。目前,NAT使其很难设置,因为它需要专门用于转发IoT设备的端口(这对于运营商级NAT可能根本不起作用)。
也许值得读一读'切换到IPv6意味着删除NAT。那是件好事儿吗?'如果您担心安全隐患,请从Server Fault中获取;为您的所有IoT设备提供公共IPv6地址并不是一个很大的安全漏洞;这仍然会在启用NAT的网络上引起问题。
这篇IEEE文章具有一些优点:
移动设备与网络之间的“物”通信就是物联网。下一步将反映移动网络经历的事件顺序。专有协议排在第一位,因为单个公司的利润通常是在考虑共同利益之前产生的。但是,IP和透明性(即开源协议)的使用对于物联网开发至关重要,就像该技术的易用性和隐蔽性对于最终用户而言很重要一样。根据我们的研究,我们的观点是透明度和易用性的价值,以及更重要的是对互操作性的需求,将有利于IoT市场采用IPv6。
目前,1个IPv4地址代表...谁知道?有时是设备,有时是路由器,有时是由不同客户组成的整个网络。
使用IPv6,您可以为每个IoT设备指定Internet上的“名称”。
能够寻址设备可以控制它们,并简化设置和管理。
评论
比这更好。一台设备可能具有多个IPv6地址,并且有望实现。
–迈克尔·汉普顿
17年1月28日在7:50
评论
我想知道地球上每个人的340个十亿个唯一地址(节省了几个保留位)如何简化成只有4,000个?观看此视频:“坚果很好。它们提供安全性”,请尝试使用IPv6借口宾果游戏。
它不需要像使用电动汽车不需要使用电动“加油站”那样进行切换。但是,两者肯定会使它更加方便。
IPv4寻址提供2 ^ 32个地址,而IPv6提供2 ^ 128个地址(较少的开销)。人数少于2 ^ 33,还有公司,学校等。因此,将其称为2 ^ 36个人/位置。每个人/位置留下2 ^ 92个地址,比每个人/位置4000(2 ^ 12)个更多。 IPv6在2 ^ 64时本来可以算是黄金,并且很快就会采用。
有关希望IPv6在家庭网络中如何工作的信息,请参阅RFC7368。