为什么IPv6是一场噩梦(下)

0分享至

用扫码二维码

分享至好友和朋友圈

更多互联网新鲜资讯、工作奇淫技巧关注原创【飞鱼在浪屿】(日更新)

接上篇:为什么IPv6是一场噩梦(上)

NAT

IP地址将在全球范围内可路由-任何人都可以从任何地方访问它。

但是,内网(地址范围fc00:0000:0000:0000:0000:0000:0000:0000 ~ fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff)(fc00::/7)是不可路由的网络。 因为第一位始终为1,这意味着实际符合RFC的范围为fd00::/8,即fd00:0000:0000:0000:0000:0000:0000:0000 ~ fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff。一半的地址空间仍然很多。

如何将数据包路由到这些专用IP?答案是网络地址 前缀翻译。

IPv4用的是NAT, IPv6则用的是NPt。IPv4可以扫描数据包,如果它们符合特定条件(例如,已知端口上的WAN地址转到已知地址),则将目标(或源)地址换成新的。这就是目标端口决定了您的请求将路由到哪个服务器。从这个意义上讲,所有未知流量都将被丢弃,具有NAT规则的流量也将被允许通过防火墙。

IPv6使用NPT,可以在其中将一个前缀转换为另一个前缀。

举例来说,专用地址有一个主机fd2c:a7c6:2aae:ef93::41。然后,我可以添加NPt规则以转换fd2c:a7c6:2aae:ef93::为2607:f0d0:1002:51::。这实际上是1:1映射,这意味着可以双向运行,入站和出站都将被转换。

比如说下面例子用一条AAAA记录,将服务器的公共IP为2607:f0d0:1002:51::41,转发为内网地址

ORIG DEST: 2607:f0d0:1002:0051::41 PREFIX: ||||||||||||||||||| REPLACE: fd2c:a7c6:2aae:ef93 NEW DEST: fd2c:a7c6:2aae:ef93::41

意味着每个不同的目的地都需要一个不同的IP,还暴知道确切的子网地址,因为做前缀翻译!

“不同的IP”是奇怪的设计。对于运行的某些系统仅由端口号决定目的地,甚至仍可以使用相同的域名。而使用NPt,将无法做到这一点,必须拥有一个额外的设备(例如第7层代理HAProxy)才能接收所有内容并将其发送到正确的目的地,这意味着需要专门的主机来完成IPv4的任务NAT本来可以做的!

换入和换出前缀。只需添加一个步骤即可暴露整个网络!防火墙规则来阻止不需要的内容,并添加显示允许。这是“默认通过”路由-除非我告诉你不要这样做,否则请通过。现在,大多数防火墙在默认情况拒绝未知流量。如果有什么东西没有NAT规则,它确实有不知道在哪里路由,即使它被允许通过。而使用NPt,就没有那层防火墙的安全保护。

DHCP和路由器广告

IPv4中的DHCP分为四个步骤:

客户端从源0.0.0.0发送一个DHCPDISCOVER包到广播地址

服务器发送DHCPOFFER包,提供可使用的客户端IP,子网掩码,DNS服务器,租用时间和其他信息

客户端发送DHCPREQUEST请求特定IP地址

服务器发送DHCPACK与请求中相同的IP地址,从而确认IP分配

DHCP包含一些常见的值:

IP地址

子网掩码

网关

最多4个DNS服务器

最多2个WINS服务器(专用)

域名(用于子网)

域搜索列表(尝试使用其解析主机的域名前缀)

最多2个NTP服务器

TFTP服务器的有效IP,主机名或URL

网络LDAP服务器URI

PXE网络根(与PXE兼容的服务器IP,文件名)

也可以发送一些其他值,例如默认的MTU(选项26)。有254个有效选项,还有0x00填充和0xff标记消息的结尾。

在四个UDP消息中,刚开机的主机几乎可以获得它可能需要的所有信息。

DHCPv6…没那么多流程。该协议被一分为二。这又是一个四步过程:

客户端SOLICIT从其本地链接发送一个“ All DHCP”多播地址,ff02::1:2

服务器使用ADVERTISE响应可提供的客户端IP

客户端发送REQUEST该IP。

服务器给出一个REPLY,并确认分配。

DHCPv6也有一些额外的数据:

最多4个DNS服务器

域名(用于子网)

域搜索列表(尝试使用其解析主机的域名前缀)

最多2个NTP服务器

网络LDAP服务器URI

网络启动文件URL

一些过时的选项(例如WINS服务器)已删除,但某些例如网络网关已完全不用。同样,DHCP服务器仅提供地址的本地部分,甚至不提供网络前缀。

但是,DHCP(V4)使用客户端的MAC地址,因为它的标识,IP地址出租给特定的MAC。DHCPv6与其他功能一起使用DHCP唯一标识符(DUID)(通常是MAC地址)。有四种类型:一种用于MAC +时间戳,一种基于企业编号的唯一DUID,仅一种MAC和一种基于UUID的类型。

IP是租借给DUID而不是MAC的,所以实际上这确实很困难提前预约。最简单的方法是等待客户端获得租约,然后将其升级为静态分配。当然,这是MAC + time DUID的示例00-01-00-01-18-BA-30-56-D8-9D-67-C9-FA-33。IPv6模式变得冗长,笨拙。

RS / RA

当支持IPv6的主机加入网络时,它将发出路由器征求消息。可以转发帧的可用IPv6网关将定期发送路由器广告消息,或者,如果看到请求,将立即发送广告。

这些广告包含M和O标志(保留),应认为广告有效的生存期,最多三个DNS服务器,一个搜索列表(与DHCP相同)和网络前缀。广告还包含该特定路由器的优先级,即低,正常或高。为什么只有三个?在同一个优先级上拥有多个路由器通常不是一个明智的主意。如果网络上有三个以上的网关呢?

前缀授权

DHCPv6的一个特征是:前缀授权。如果客户端询问,则DHCPv6服务器可以给出其自身有效地址空间的整个前缀。也可以使用分层DHCP,其中有完整的根服务器/64可以提供,/56s到请求者,也可以提供/48s到他们的请求者。可以包含多个代理,因为选项允许启动、结束范围和前缀长度。

SLAAC / APIPA

入门:SLAAC是APIPA的IPv6版本。

这两种协议的基本原理是在不依赖其他外部机制(例如DHCP)的情况下,为新主机提供一个有效的IP地址。在IPv4中,这称为自动专用IP寻址或APIPA。APIPA地址占据了该169.254.0.0/16块,从169.254.0.0至169.254.255.255。 客户端将在此范围内选择一个随机值,运行ARP查询以确保它是空闲的,然后绑定到它。在IPv4中,APIPA通常是不得已的方法。而且,如果提供了一个新地址,例如公用地址或一个适当的专用保留块中的一个,则该地址将覆盖APIPA地址,这意味着它仅在没有任何东西可以为主机提供IP的情况下存在。

在IPv6中,始终存在SLAAC(无状态地址自动配置),这是第一个手段。该fe80::/10块是为本地链接保留的,实际上,它实际上是从fe80::1到fe80::ffff:ffff:ffff:ffff,因为前缀和地址之间的54位全为零。此链接本地地址用于其他所有内容,例如NDP(路由器请求!),DHCPv6等。并且与IPv6不同,即使使用全局可路由地址,本地链接地址也始终有效。(是的,支持IPv6的主机将在一个接口上具有多个IPv6地址。这一点都不会造成混淆。)请注意,链接本地地址是确定性的(基于MAC地址)或部分随机的,应该存储(如果可能) ,以便重新启动不会导致设备更改地址。SLAAC进程(NDP)的一部分为它提供了可能需要的其余数据,而不仅仅是有效的本地地址。

主机很可能为两个不同的网络接口生成相同的IPv6链接本地地址。对于传入数据而言,这无关紧要,因为接收到的数据就是接收到的数据。但是对于发送,网络驱动程序需要知道要使用的设备。从而进入区域索引。区域索引可以是字符串,也可以是数值。必须支持数字值,但是许多类Unix的系统以文本形式指定接口名称本身。因此,这意味着使用所有可用部分的完整URL如下所示:fe80::1ff:fe23:4567:890a%eth2

:password@[fe80::1ff:fe23:4567:890a%eth2]:9091/transmission/web/?query=value#confirm

但是现在听不到我在监视器上的回应 。

ARP / NDP

地址解析协议是IPv4中用于将链路层地址(MAC地址)转换为互联网层地址(IP地址)的协议。协议它不仅适用于以太网和IPv4,甚至Chaosnet都具有ARP标识符。总的流程是,客户端会问一个简单的问题:“谁拥有IP地址X?告诉IP地址Y。” ARP消息包含发送者和接收者的IP和MAC字段。收到某个IP的ARP请求时,主机将响应“ MAC地址X具有IP地址X”消息。

该协议依赖广播。但是IPv6没有广播。 这里有一个类似的“所有节点”的链路本地多播地址,但它是不一样的东西。因此,我们有了邻居发现协议。路由器请求和通告以及邻居请求和通告都是NDP的一部分,唯一的区别是NA不会像RA那样周期性地发送出去。但是除此之外,我们必须创建一个全新的协议来完成与现有协议完全相同的工作。

安全协议

IPsec不仅是最初为IPv6开发的,并且还计划成为所有实现中的强制性部分。但是很快降级为“推荐”了。至少如果你不实现IPsec,你需要执行IKEv2协议和某些密码,所以有兼容性的保证水平。

无论如何,IPsec已经在IPv4网络中找到了很好的部署(自从OpenVPN吸纳以来,我就将IPsec用作手机的VPN),并且其中的某些部分确实告诉您IPv6对IETF的想法 。我的意思是,两种主要的操作模式AH (身份验证和抗更改)和ESP (身份验证和加密)实际上是IPv6扩展标头。

IPsec并不是必需的,就像HTTPS一样。如果实现IPsec,实际上需要为Internet上的任何连接配置IPsec凭据。也许有一天,我们会以一种与TLS相同的方式来自动配置IPsec。

结论

IPv6是为现代构建的Internet协议的改进版本,其中包含大量地址空间,简化的标头,对运行中处理的期望降低以及其他一些我没有谈到的好处。但是,为了简化事情,专注于端到端的方法(例如互联网的早期阶段),与Ipv4相比,已经变得非常复杂。IPv6仅在所有方面都支持IPv6的情况下才有意义,如果必须使用6in4隧道,或者在某个时候只是降级到IPv4。那为什么要麻烦呢?

而且,好吧,缺少NAT是不合适的设计。

的确,当我读到IPv6已完成的大多数工作时,我就是这么说的-“为什么?您这样做的真实理由几乎为0,而且您还是这么做了!” 我真的很期待看到未来IPv6的变化,这些决定中的一些是否会被逆转,或者只是sa之以鼻,进一步推动自己进入双重陷阱22,导致今天的采用率很低。

不过,对于移动和非技术密集型市场,IPv6很大,根据Google的流量日志,我相信美国大约有33%的采用率。任何本地网络,或没有任何高档设备的任何东西,只要将一两台计算机插入调制解调器并观看Cat视频,由于ISP占用了大量资源,IPv6会自行配置花费时间和精力使它变得正确,然后就可以玩得开心。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

/阅读下一篇/

返回网易首页 下载网易新闻客户端