【面试系列】6to4地址及NAT64的原理

2021-07-29 14:49:42 浏览数 (1)

问题:6to4 地址格式什么样的?第49 位到第64 位这16 地址有什么用?需要配置静态路由吗?静态路由怎么配?隧道之间采用动态路由协议行不行?6to4 地址应用什么场景?ISATAP 使用在什么场景?和 6to4 什么差别?

6to4 地址是以 2002 开头的,6to4 地址可以表示为 2002::/16,而一个 6to4 网络可以表示为 2002:IPv4 地址::/48。6to4 地址的网络前缀长度为 64bit,其中前 48bit(2002: a.b.c.d)被分配给路由器上的 IPv4 地址决定了,用户不能改变,而第 49 位到第 64 这 16 位是用户可以自己定义的。

6to4 自动隧道需要配置静态路由,静态路由的下一跳是隧道接口,不能使用动态路由协议。

6to4 自动隧道可以应用在 Router 到 Router、Host 到 Router、Router 到 Host、Host 到 Host 之间通信。ISATAP 隧道的典型应用是在站点内部。和 6to4 隧道的差别在于 6to4 是将 IPv4 地址嵌入前缀中,而 ISATAP 是将 IPv4 地址做为接口标识。

问题:NAT64 的原理?具体过程,IPv4 访问 IPv6 能使用静态 NAT64 吗?动态 NAT64 呢?IPv6 访问 IPv4 呢?

NAT64 技术实际上是一种协议转换技术,主要作用是实现分组在 V4 及 V6 格式之间相互灵活转换。

NAT64 前缀:NAT64 设备是通过判断 IPv6 报文的目的地址中是否包含 NAT64 前缀来决定是否对该 IPv6 报文进行 NAT64 处理。知名前缀是 64:FF9B::/96,缺省情况下已存在,无需配置。另外,也可以自定义 NAT64 前缀。

NAT64 有两种实现方式:一种是动态 NAT64,只适用于 IPv6 用户主动发起访问 IPv4 Server。另一种是静态 NAT64,它是通过静态配置 IPv6 和 IPv4 地址之间的映射关系,不仅可以实现 IPv6 用户访问 IPv4 服务器,也可以实现 IPv4 用户访问 IPv6。

动态 NAT64:

(1)IPv6 单栈用户发起远端服务的 AAAA DNS 请求(www.admin.com)。 ()2DNS64 收到请求报文后,先解析 AAAA 请求,如果解析不到 IPv6 地址,再发起 A 请求,通过解析发现此服务地址为 IPv4 地址,根据配置的 Prefix64::/n(64:ff9b::/96),合成 NAT64 地址(64:ff9b::0101:0101),然后发给用户,完成地址解析。 (3)用户收到 DNS64 的回复报文后,把解析的地址作为目的地址发往远端服务器。NAT64 设备收到用户发出的 IPv6 报文后,使用地址转换算法提取出 IPv6 报文中的IPv4 地址(1.1.1.1),以此 IPv4 地址作为 IPv4 报文的目的地址。

(4)然后根据 NAT64 策略配置的映射关系,以 NAT 地址池中的地址为 IPv4 报文的源地址(2.1.1.10),将 IPv6 报文转换为 IPv4 报文,发送给 IPv4 网络中的服务器,并生成有地址对应关系的会话表。 (5)服务器收到报文后,回复响应报文 (6)NAT64 设备收到 IPv4 网络中服务器的响应报文后,根据会话表将 IPv4 报文转换为IPv6 报文,然后发送至 IPv6 用户

静态 NAT64:

(1)IPv4 用户向 DNS 发起 A 请求(www.admin.com)。 (2)DNS 收到请求报文后,解析域名对应的IPv4 地址2.1.1.10(A 请求如果无法解析IPv4地址,报文将丢弃。此场景中,域名与地址关系一般已经提前在 DNS 设定好),然后发送回复报文给用户。 (3)用户收到 DNS 的回复报文后,把解析的地址作为目的地址发往远端服务器。 (4)NAT64 设备收到用户发出的 IPv4 报文后,根据事先设置好的静态映射关系(会产成Server-Map 表),把报文的目的 IPv4 地址转换成对应的 IPv6 地址 3000::2,以此 IPv6 地址作为 IPv6 报文的目的地址,把 IPv4 报文与设置好的 NAT64 前缀合成 IPv6 报文的源地址(64:ff9b::0101:0101),完成 IPv4 报文到 IPv6 报文的转换,发送给 IPv6 网络中的服务器。并生成会话表。 (5)服务器收到报文后,回复响应报文。 (6)NAT64 设备收到 IPv6 网络中服务器的响应报文后,根据会话表将 IPv6 报文转换为IPv4 报文,然后发送至 IPv4 用户

0 人点赞