IPv6 FIB路由查找及更新之挑战和测试原则
- 格式:docx
- 大小:231.16 KB
- 文档页数:7
ipv6校验规则IPv6是互联网协议IPv4的升级版,它拥有更高的地址可用性和更好的性能。
IPv6地址是一个128位的二进制数,而IPv4地址是一个32位的二进制数。
在IPv6中,地址被表示为8组16进制数字,每组数字之间是由冒号隔开的。
IPv6的校验规则是指在IPv6地址被使用前需要遵循一些约定的规则来确保地址是有效的。
以下是IPv6校验规则的步骤:1. 确认IPv6的地址格式IPv6地址的格式与IPv4地址不同,需要以“:”分隔,每个分段是由16进制数字组成。
它包括8个分组,每个分组包含四个十六进制数字,每个十六进制数字是由0到9,以及字母A、B、C、D、E、F组成。
例如,一个IPv6地址看起来像这样:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
2. 确认IPv6的地址位数IPv6地址是由128位的二进制数字组成,因此每个地址组必须是16位的,特别注意的是,IPv6地址不能有前导零。
3. 验证IPv6地址的正常性IPv6地址需要验证它的“正常性”,这个过程是指检查地址是否包括非法字符,这些字符包括字母i,o和u。
如果存在这些非法字符,那么IPv6地址是不正常的。
4. 验证IPv6地址是否为公有地址IPv6地址可以分为公有地址和私有地址。
公有地址是分配给互联网服务提供商和企业的地址,而私有地址是分配给设备和网络的地址。
在验证IPv6地址时,必须确定这是公有还是私有地址。
5. 验证IPv6地址是否为链接对本地地址“链接对本地地址”是在本地网络中使用的地址,它只能在本地网络中使用。
这种地址使用方法类似于IPv4中的“127.0.0.1”,需要确认IPv6地址是否为链接对本地地址。
6. 检查IPv6地址的唯一性IPv6地址是唯一的,因此在分配地址时需要确保地址的唯一性。
如果两个设备使用相同的IP地址,则它们将无法有效地通信。
在网络通信中,IPv6是一个重要的网络协议。
IPV6测试⽅法
TOC平台⽀持IPV6测试⽅法⼀、确定⽹络环境,百度搜索ipv6
1. 选择ipv6测试,查看⽹络⽀持
结果仅⽀持IPV4
1. 使⽤⼿机移动⽹络开启热点,电脑连接后,再次检测⽹络⽀持
结果:IPV4和IPV6都⽀持
⼆、确定测试连接环境
1. 和运维沟通给⼀个,仅⽀持IPV6的连接:
1. 给⼀个正常⽹站的平台连接,两个都⽀持:
三、验证连接和⽹络⽀持
1. 使⽤仅⽀持ipv6的连接在环境ipv4电脑打开,预期结果:连接失败
2. 使⽤两个都⽀持的连接在环境IPV4电脑打开,预期结果:正常打开
3. 使⽤仅⽀持IPV6的连接在环境两个都⽀持的电脑打开,预期结果:正常打开
4. 使⽤两个都⽀持连接在环境两个都⽀持的电脑打开,预期结果:正常打开
结论:满⾜第三的预期结果,则视为测试通过
其它⽅法,和运维同学沟通,配置仅ipv6可以登录使⽤
1.准备安卓⼿机和⼀张⼿机卡
2.⼿机⼀般默认是ipv4,插⼊⼿机开机
3.进⼊⼿机设置-双卡与移动⽹络-选择使⽤的⼿机号
4.找到接⼊点名称(⼿机不同名字也不同)总之找到 APN
5.新添加⼀个APN,进⼊找到 APN协议和 APN漫游协议,全部选择 IPV6
6.保存即可,但是需要填写名称和APN 均写ipv6或这⼏随意写后,就可以保存这⾥没有要求
7.这个时候请求⽹络均是通过ipv6请求
备注:建议查看所有APP内的⽹页是否可以打开,讨论需求是否要⽀持
现在浏览器⼀般都打开不⽹页,浏览器不⽀持ipv6。
IPV6的设置指南IPv6是下一代互联网协议,它提供了更大的地址空间,更好的网络性能和更高的安全性。
在设置IPv6时,有一些重要的步骤和指南必须遵循。
下面是一个IPv6设置指南,包括必要的步骤和注意事项。
2.路由器支持检查:您还需要确保您的路由器是IPv6兼容的。
您可以在路由器的说明书或制造商的网站上找到相关信息。
如果您的现有路由器不支持IPv6,您需要购买一台新的支持IPv6的路由器。
3.路由器设置:一旦确定您的路由器支持IPv6,您需要登录到路由器的管理界面进行设置。
您可以在路由器的说明书中找到登录信息。
一旦登录,您需要找到IPv6设置选项。
不同的路由器品牌和型号可能有所不同,但通常都有IPv6设置选项。
将IPv6设置选项开启,并根据您的ISP提供的信息进行配置。
4.IP地址分配:在IPv6中,IP地址是通过DHCPv6服务器自动分配的。
您需要在路由器的IPv6设置中启用DHCPv6服务器。
DHCPv6服务器将为每个设备分配唯一的IPv6地址。
您可以在设备的网络设置中查看分配给它的IPv6地址。
5.防火墙设置:IPv6防火墙的设置非常重要,以确保网络的安全性。
您需要登录到路由器的管理界面,在IPv6设置中找到防火墙选项。
启用IPv6防火墙,并配置策略以保护您的网络免受潜在的攻击。
在设置IPv6时,还有一些常见的注意事项需要注意:-法律和隐私问题:使用IPv6可能会引发一些法律和隐私问题。
由于IPv6地址更多,对用户的跟踪和监控更容易进行。
因此,您需要了解当地法律和隐私政策,并确保采取必要的安全措施来保护您的隐私。
-设备和应用程序兼容性:不是所有的设备和应用程序都完全支持IPv6、在设置IPv6之前,您需要确保您的设备和应用程序与IPv6兼容。
否则,您可能会在使用这些设备和应用程序时遇到一些问题。
-IPv4和IPv6共存:IPv4和IPv6是可以同时存在于同一网络中的。
您的网络可能会同时运行IPv4和IPv6、在设置IPv6时,您需要确保IPv4和IPv6之间的互操作性和互访性。
目录IPV6测试指导书 (2)一.B683 IPV6版本页面介绍 (2)(1)Settings→DHCP (2)(2)Setting→IPV6 Static Route (3)(3)Connection页面里有添加IP type的类型。
(4)二.B683 IPV6功能简介 (4)(1)Settings→DHCP→DHCP_IPV6 (5)(2)Settings→DHCP→SLAAC (8)2.1 ConfigureMode为Manual (9)2.2 ConfigureMode为UseAllocatedSubnet (10)2.3 禁用SLAAC (10)(3)Connection (10)(4)Setting→IPV6 Static Route (11)三.IPV6测试 (11)3.1 路由器通告消息 (12)3.2 邻居请求消息NS (12)3.3 邻居通告消息NA (13)3.4 DHCPV6 (13)3.4.1 Solicit消息 (14)3.4.2 Advertise消息 (15)3.4.3 Request消息 (15)3.4.4 Reply消息 (16)IPV6测试指导书本指导书主要介绍B683的IPV6功能以及测试方法。
一.B683 IPV6版本页面介绍首先从我们的页面来看,支持IPV6的版本主要在以下三个界面作了调整。
(1)Settings DHCP(2)Setting IPV6 Static Route(3)Connection页面里有添加IP type的类型。
二.B683 IPV6功能简介下面,结合我们的页面对各个功能做下简单的介绍。
(1)Settings→DHCP→DHCP_IPV6DHCP Server的开关,打勾代表启用DHCPV6功能,去勾选代表禁用DHCPV6功能。
Configure Mode模式有三种,Manual/UseAllocatedSubnet/UseAllocateOther。
目次1 范围 (7)2 规范性引用文件 (7)3 术语和定义 (7)4 缩略语 (7)5 概述 (9)6 安全技术要求........................................................................9数据平面安全 (9)6.1.1 标识和鉴别 (9)6.1.1.1 SRv6报文鉴别功能 (9)6.1.1.2 DHCPv6 Snooping功能 (10)6.1.2 可信信道 (10)6.1.3 系统访问 (10)6.1.4 资源分配 (10)6.1.4.1 抗大流量攻击能力 (10)6.1.4.2 抗畸形包能力 (10)6.1.4.3 ND非法报文攻击防护 (11)6.1.4.4 IPv6地址欺骗防护 (11)6.1.4.5 组播报文抑制 (11)6.1.4.6 BGP IPv6 FlowSpec (11)6.1.5 安全审计 (11)6.1.5.1 攻击溯源功能 (11)6.1.5.2 采样功能 (11)6.1.6 系统功能保护 (11)6.1.7 安全管理 (11)控制平面安全 (12)6.2.1 标识和鉴别 (12)6.2.1.1 路由认证 (12)6.2.1.2 ND报文鉴别功能 (12)6.2.2 可信通道 (12)6.2.3 系统访问 (12)6.2.3.1 路由策略和路由过滤 (12)6.2.4 资源分配 (12)6.2.4.1 关闭ICMPv6功能 (12)6.2.4.2 关闭Hop-by-Hop 选项功能 (13)6.2.5 安全审计 (13)6.2.6 系统功能保护 (13)6.2.7 安全管理 (13)管理平面安全 (13)6.3.1 标识和鉴别 (13)6.3.2 可信信道 (13)6.3.3 系统访问 (13)6.3.3.1 访问控制安全 (13)6.3.3.2 串口访问 (13)6.3.3.3 SSH访问 (13)6.3.3.4 SNMP访问 (14)6.3.4 资源分配 (14)6.3.5 安全审计 (14)6.3.6 系统功能保护 (14)6.3.7 安全管理 (14)6.3.7.1 分级分权管理 (14)6.3.7.2 不安全配置检查 (14)6.3.7.3 数字证书管理 (14)6.3.7.4 密码要求 (15)7 测试方法 (15)测试环境 (15)数据平面安全测试 (17)7.2.1 标识和鉴别 (17)7.2.1.1 SRv6报文鉴别功能 (17)7.2.1.2 DHCPv6 Snooping功能 (18)7.2.2 可信信道 (18)7.2.2.1 IPsec密钥管理功能 (18)7.2.2.2 IPsec AH安全协议功能 (19)7.2.2.3 IPsec ESP安全协议功能 (19)7.2.2.4 IPsec AH和ESP嵌套功能 (19)7.2.3 系统访问 (19)7.2.3.1 系统访问控制功能 (20)7.2.4 资源分配 (20)7.2.4.1 抗大流量攻击能力 (20)7.2.4.2 抗畸形包能力 (21)7.2.4.3 ND报文攻击防护 (23)7.2.4.4 IPv6地址欺骗防护 (23)7.2.4.5 组播报文抑制 (24)7.2.4.6 BGP IPv6 FlowSpec (25)7.2.5 安全审计 (25)7.2.5.1 攻击溯源功能 (25)7.2.5.2 采样功能 (25)7.2.6 系统功能保护 (26)7.2.6.1 敏感数据加密保存 (26)7.2.7 安全管理 (26)7.2.7.1 分级分权管理 (26)控制平面安全测试 (26)7.3.1 标识和鉴别 (26)7.3.1.1 路由认证 (26)7.3.1.2 ND报文鉴别功能 (28)7.3.2 可信信道 (29)7.3.2.1 RIPng支持IPsec功能 (29)7.3.2.2 OSPFv3支持IPsec功能 (29)7.3.2.3 BGP4+支持TLS功能 (30)7.3.2.4 PIMv6支持IPsec功能 (30)7.3.3 系统访问 (30)7.3.3.1 路由策略和路由过滤 (30)7.3.4 资源分配 (31)7.3.4.1 关闭ICMPv6功能 (31)7.3.4.2 关闭Hop-by-Hop 选项功能 (32)7.3.5 安全审计 (32)7.3.5.1 关键事件日志记录 (32)7.3.6 系统功能保护 (32)7.3.6.1 敏感数据加密保存 (32)7.3.7 安全管理 (32)7.3.7.1 分级分权管理 (32)管理平面安全测试 (33)7.4.1 标识和鉴别 (33)7.4.2 可信信道 (33)7.4.2.1 SSH (33)7.4.2.2 TLS (33)7.4.3 系统访问 (34)7.4.3.1 访问控制安全 (34)7.4.3.2 串口访问 (34)7.4.3.3 SSH 访问 (34)7.4.3.4 SNMP访问 (34)7.4.4 资源分配 (35)7.4.4.1 管理平面协议防范异常报文攻击 (35)7.4.4.2 管理平面协议防范拒绝服务攻击 (35)7.4.5 安全审计 (35)7.4.6 系统功能保护 (36)7.4.6.1 敏感数据加密保存 (36)7.4.6.2 安全启动功能 (36)7.4.6.3 预装软件启动及更新安全 (36)7.4.7 安全管理 (36)7.4.7.1 分级分权管理 (36)7.4.7.2 不安全配置检查 (36)IPv6网络设备安全技术要求和测试方法第1部分:路由器1 范围本文件提出了支持IPv6能力的路由器的安全架构,确立了数据平面、控制平面、管理平面等安全技术要求。
网络设备刷新方案背景随着科技的不断发展,网络设备的更新换代已经成为企业发展的必然趋势。
为了保持网络的稳定性和安全性,我们需要制定一个网络设备刷新方案。
目标我们的目标是更新和升级现有的网络设备,以提高网络的性能和可靠性。
同时,我们还希望确保设备的兼容性,避免引入任何潜在的安全风险。
方案以下是我们制定的网络设备刷新方案:1. 评估当前网络设备:首先,我们需要评估当前网络设备的性能和功能。
这将帮助我们确定哪些设备需要更新或升级。
2. 制定更新计划:根据评估结果,我们将制定一个详细的更新计划。
这将包括更新的时间表、设备的选择和采购、以及设备的配置和安装。
3. 测试和验证:在更新网络设备之前,我们将进行充分的测试和验证。
这将确保新设备的正常运行,并避免可能的故障和中断。
4. 设备更新和配置:一旦测试和验证完成,我们将进行网络设备的更新和配置。
这将涉及到设备的安装、连接、以及网络设置的调整。
5. 监控和维护:更新网络设备后,我们将建立监控和维护机制。
这将帮助我们及时发现和解决任何潜在的问题,保持网络的稳定和安全。
风险和挑战在实施网络设备刷新方案时,可能会遇到以下风险和挑战:1. 兼容性问题:新设备可能与现有设备不兼容,导致网络故障或功能受限。
为了避免这种情况,我们将进行充分的测试和验证,并确保新设备与现有设备的兼容性。
2. 时间和成本:网络设备刷新可能需要一定的时间和资金投入。
我们需要合理规划和控制时间和成本,以确保项目的顺利进行。
3. 数据迁移:在设备更新过程中,可能需要进行数据的迁移和转移。
我们需要确保数据的完整性和安全性,避免任何数据丢失或泄露的风险。
结论网络设备刷新方案是保持网络稳定性和安全性的重要举措。
通过评估、计划、测试和配置,我们将能够更新和升级现有的网络设备,提高网络的性能和可靠性。
同时,我们需要注意潜在的风险和挑战,并采取适当的措施加以应对。
ipv6路由基础-回复标题:IPv6路由基础详解一、引言IPv6(Internet Protocol Version 6)是互联网协议的最新版本,设计用于替代目前广泛使用的IPv4。
IPv6的主要优势在于其巨大的地址空间、更简洁的报头格式以及内置的安全性和移动性支持。
在IPv6网络中,路由是数据包从源到目的地的关键过程。
本文将详细解析IPv6路由的基础知识。
二、IPv6地址结构IPv6地址由128位组成,通常用冒号分隔的十六进制数表示,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
为了简化表示,可以省略连续的零,例如:2001:db8:85a3::8a2e:370:7334。
三、IPv6路由表IPv6路由表是路由器存储和查找路由信息的地方。
每个条目包含以下信息:1. 目的地址:这是路由器要转发数据包的目的IPv6地址或地址范围。
2. 子网掩码:在IPv6中,子网掩码通常是/64,这意味着前64位用于标识子网,后64位用于标识主机。
3. 下一跳地址:这是路由器发送数据包的下一个路由器的IPv6地址。
4. 出接口:这是路由器发送数据包的物理或逻辑接口。
四、IPv6路由类型1. 直连路由:这是路由器直接连接到的网络的路由。
这些路由通常是自动创建的,并且具有最高的优先级。
2. 静态路由:这些路由是由网络管理员手动配置的,并且不会随网络状况的变化而变化。
3. 动态路由:这些路由是通过路由协议(如RIPng、OSPFv3或BGP4+)动态学习和更新的。
动态路由可以根据网络状况的变化自动调整。
五、IPv6路由选择过程当路由器接收到一个数据包时,它会检查数据包的目的地址,并在路由表中查找匹配的条目。
如果找到匹配的条目,路由器将根据下一跳地址和出接口将数据包转发出去。
如果没有找到匹配的条目,路由器将根据其默认路由(如果配置了的话)或者丢弃数据包。
六、IPv6路由协议1. RIPng(Routing Information Protocol Next Generation):这是一个简单的距离向量路由协议,适用于小型和中型网络。
ip6x测试标准和方法
IPv6是下一代Internet协议,为了保证IPv6的质量和可用性,需要进行ip6x测试。
ip6x测试标准和方法如下:
标准:
1. 协议兼容性测试:确认设备是否符合IPv6协议的标准,验证设备是否能正确处理IPv6报文。
2. 地址配置测试:测试设备是否能正确地获取IPv6地址,并能正确地配置、分配和管理IPv6地址。
3. 路由测试:确认设备是否能正确地进行IPv6路由,包括IPv6路由协议和转发表的配置。
4. 数据传输测试:测试设备在IPv6环境下是否能正确地传输数据,包括正确地封装和解析IPv6报文、正确地处理IPv6扩展报文等。
5. 安全性测试:测试设备是否能正确地处理IPv6防火墙规则、IPSec等安全机制,以保障IPv6网络的安全性。
方法:
1. 实验测试:构建IPv6测试网络,通过测试设备的实际运行来评估其性能和兼容性。
2. 性能测试:使用工具对设备进行性能测试,包括传输速率、延迟等指标的测量。
3. 压力测试:通过模拟大量IPv6流量来测试设备的性能和稳定性。
4. 安全性测试:使用专门的工具对设备进行安全性测试,如漏洞扫描、网络入侵测试等。
在进行ip6x测试时,需要制定详细的测试计划和测试用例,并记录测试结果。
测试过程中要注意设备的配置、网络环境的搭建和测试数据的准备。
总之,ip6x测试标准和方法是确保IPv6设备的质量和功能正常运行的重要步骤。
通过遵循标准和采用合适的测试方法,能够有效地评估IPv6设备的性能、兼容性和安全性,提高IPv6网络的可用性和可靠性。
IPv6改造相关指标和测试方法说明附件:IPv6改造相关指标和测试方法说明一、IPv6网络性能劣化比IPv6网络性能劣化比=(IPv6网络性能-IPv4网络性能)/IPv4网络性能,其中当IPv4和IPv6性能好于某一阈值时,不再考量性能劣化比,视为趋同。
IPv6和IPv4网络性能数据来自国家IPv6发展监测平台抽样检测,由移动和固定宽带用户到指定目标的往返时延、网络丢包率和TCP建立连接成功率等主要网络指标综合加权形成。
具体测量方法和性能阈值参见《IPv6网络性能测量指标和方法》。
二、网络IPv6活跃连接数IPv6活跃连接数指已经获得IPv6地址,且在一个月内有IPv6访问记录或者流量记录的用户数,其中访问记录或者流量记录不包含单纯的Ping操作或者单纯的DNS查询操作记录。
IPv6活跃连接数由基础电信企业通过国家IPv6发展监测平台运营商数据采集接口上报。
三、移动网络IPv6流量占比移动网络IPv6流量占比=(LTE网络IPv6流量+5G网络IPv6流量)/(LTE网络流量+5G网络流量)。
LTE网络、5G网络IPv6流量由基础电信企业通过国家IPv6发展监测平台运营商数据采集接口上报。
四、内容分发网络(CDN)IPv6支持度内容分发网络(CDN)节点数指特定区域范围内,能过提供内容分发服务的数据中心(IDC)机房的个数。
这些节点中能够独立提供IPv6业务加速服务的节点视为支持IPv6的节点数,支持IPv6的节点数在全部节点数中占比应超过85%。
内容分发网络(CDN)服务覆盖能力指在特定区域范围内,内容分发服务能够覆盖的用户范围,由覆盖的地理区域范围(地市级)和覆盖的互联网接入服务提供商的数量综合评价。
IPv6服务覆盖能力达到IPv4服务覆盖能力的85%以上。
内容分发网络(CDN)应用加速性能指内容分发网络(CDN)运营企业提供业务加速时的性能指标。
提供IPv6业务加速的性能应达到提供IPv4业务加速性能的85%。
IPv6 FIB路由查找及更新之挑战和测试原则内容简介:IPv6 address长度是128bit,Ipv4 address长度的32bit。
就地址长度而言,扩大4倍。
就容量而言,扩大了2^96倍。
IPv6 Address Lookup对路由器设备的挑战有多大,是比IPv4难4倍还是难40倍?当前路由设备对IPv6 FIB查表的支持程度竟究如何?本文从三层转发最长匹配(LPM)原理出发,对比分析IPv6对路由器设备的带来的挑战难度。
同时,根据LPM的实现原理,提出对现有设备IPv6 Address lookup及IPv6 FIB支持情况的测试用例的设计三原则:IPv6地址离散性、不同掩码长度,IPv6 Prefix有嵌套和分叉。
同时,根据这三个原则对国内运营商选型测试中常用的两例IPv6测试进行分析,指出其优点改进方向。
最后,提出一个满足上述四个原则的测试用例脚本。
1.迎接IPv6时代—Are the Boxes Ready?全球的IPv4地址即将用完,尤其是中国的地址最为紧缺。
另一方面,物联网概念的提出,对IP地址的需求成N倍增长。
因此,IPv6地址即将走上舞台。
中国政府已经将Ipv6的推进提到国家战略的高度。
中国的各大运营商也对应Ipv6网络演进纷纷采取大动作,例如中国电信宣布成为全球首家认证通过的IPv6宽带接入运营商。
近年来,国内外各设备运营商纷纷对路由器设备展开IPv6 Address Lookup能力的测试,以期望这些设备能在未来的IPv6商用网络中发挥正常作用。
测试的内容,主要考核点:IPv6 FIB容量、IPv6路由刷新性能、IPv6转发性能。
由于全世界IPv6并未大规模商用,IPv6路由分布和地址分配方案都存在较大变数。
另一方面,IPv6地址容量大得足以给地球上每一粒沙子分配一个地址;而当前设备能处理的IPv6地址和前缀容量很有限,相对IPv6整个容量而言只能算沧海中的一小粟。
因此,如何设计一个具备代表性的测试用例,以客观地评价设备对未来商用网络的支持情况,就变成一个非常重要的工作。
IPv6 address长度是128bit,Ipv4 address长度的32bit。
就地址长度而言,扩大4倍。
就容量而言,扩大了2^96倍。
IPv6 Address Lookup对路由器设备的挑战有多大,是比IPv4难4倍还是难40倍?当前路由设备对IPv6 Address Lookup支持程度究竟如何?当前这方面的分析很少。
众所周知,三层转发查找远远比二层转发要难。
难度差别来源于三层转发的一个本质特殊:最长匹配LPM。
2 路由查找LPM算法及实现2.1 什么是最长匹配LPM?最长匹配(Longest Prefix Match)是指如果一个IPv4地址与FIB表中的多个路由前缀(prefix)匹配,则以掩码长度最长的前缀为最终匹配结果。
例如,一个路由器中有4条路由:1) 1.*.*.*/82) 1.2.*.*/163) 1.2.3.*/244) 1.2.3.4/32一个IPv4地址1.2.3.5在上述路由表中查找时,会与前3项前缀匹配上,与第4项匹配不上。
匹配上的3个前缀中,1.2.3.*/24的掩码最长,所以它就是最长匹配结果。
为什么需求最长匹配?这是因为prefix有嵌套。
为什么Prefix有嵌套?是因为IP地址的分配方式引起。
其中一个例子是:一个Tier 1运营商申请到一个A类地址,它将其中划分一小块批发给Tier 2运营商; Tier 2运营又会继续再划出一小块,分配给Tier 3运营商。
这样,就发生了“路由前缀嵌套”现象。
理论上,IPv4地址最多会嵌套24层(从8bit A类地址开始计算);这就是说,在路由转发查表时,一个IPv4地址最多可能同时与24个前缀匹配上,此时设备要从24个前缀中选择一个最佳前缀(掩码最长为最佳)。
2.2 LPM最长匹配实现算法二层MAC转发查表可以使用Hash算法(请见小师的Hash表介绍),三层IP转发查表要使用最长匹配LPM算法。
前者是精确匹配,一个地址只会与转发表中一个表项比对上;后者却是,一个IP地址与转发表中的多个表项同时匹配命中,并在匹配命中的多个表项中选择一个最佳表项。
正是这个多项匹配,造成LPM算法的实现难度远远大于Hash算法,这是常说三层转发难度高于二层转发的主要原因之一。
例如,一个Broadcom的以太网单芯片,可以轻松支持64K MAC地址表,但IPv4转发表只有8K量级。
LPM算法的基本实现原理是用Tree-based search。
即1)将众多路由前缀构造成一棵树(Tree);2)当查找IP地址时,从树的根开始往下查找,每到一个分支点,就可以判断是否已经匹配上。
如果已经匹配上,就先记录下来;3)继续往下走,直到没有进一步的匹配,或者已经到达树的顶端(即叶子);4)在多个匹配中的节点中,选择掩码最长的。
一般而言,越往下的节点,其掩码越长。
下图是一个1-bit binary trie树算法的原理图。
大家看看,是否长得象一棵Orange Tree(倒过来)?如果输入IP地址1111110000,则在该Tree中走法是:首先从根开始,命中P1;第1bit为1,往右走,命中P2;第2bit为1,再往右走; 第3bit为1,往右走,命中P5,第4bit为1,该往右走,但发现右边没有路了,故查找结束。
此过程中,P5/P2/P1都命中,但P5掩码最长,故匹配结果为P5。
实际上,从P2到P5只需要一步就可以完成,而不是2步。
这是因为路径上没有分叉,走向是唯一的,这叫SKIP。
在上述1-bit binary trie搜索树的原理基础上,可优化发展出Multi-bit trie,Treebimap等算法。
这些算法在当前路由设备中比较常见。
2.3 用1bit Trie搜索树实现IPv6查表的难度分析IPv4有32bit,故用它构造成一棵1-bit Trie树时,最高有32层。
IPv6地址有128bit,故用它构造一棵1-bit Trie树时,最高有128层。
从Trie搜索树的形状可以看出,如果树的分支层数越多,则搜索难度越大。
如果每次查1bit,32层高的IPv4搜索树,需要查找32次;128层高的IPv6搜索树,需要查找128次。
当前房地产是最热门话题,在此借用一下。
IPv4查表之难度,就如修建一个32层的住宅楼;IPv6查表之难度,就如修建一座128层的摩天大楼。
后者工作量和难度是前者的多少倍?应该不止4倍。
2.4 Multi-bit Trie算法用1bit trie实现IPv6查表时,最坏情况下需要访问128次RAM。
显然这在硬件实现上不太现实,故在NP 的Data path中,一般采用其变种形式: Multi-bit trie算法。
Multi-bit Tree搜索树的原理,是在1bit trie的基础上,由每一步搜索1bit改为每一步搜索8bit(也可以是其它数字如4、或16)。
这样,IPv4地址就分成8-8-8-8共4个8bit段,需要访问4次DDR2 SDRAM或RLDRAM。
IPv6地址分成8-8-8…8-8共16个8bit段,需要访问16次DDR2 SDRAM或RLDRAM。
Multi-bit Tri的算法示意图如下:在上述基础上,如果树的某个搜索路径上没有分支(即路由没有重叠嵌套),则可用采用SKIP方法直接跳过,这样可以减少搜索次数。
以IPv6为例,最好情况是所有路由都没有嵌套,访问2次-3次DRAM就能找到最终找到最终结果;最坏情况是路由有很多级嵌套发生,需要查找16次DRAM才能找到最终结果。
Multi-bit Trie算法的另一个特点是采用段页式管理DRAM,将片外DRAM划分成一个个Page,每个Page 可以正好存放256条连续的路由(2^8=256)。
如果路由不连续,则最坏情况一个Page只能放一条路由,此时容量大大减小。
2.5 Multi-bit Trie算法的特点Multi-bit Tire算法(以及其派生算法如Tree bitmap, LC-trie)具备下述两个特点:1)路由容量不恒定。
对+1、+2的连续路由容量最大,对随机产生的路由则容量严重变小;2)性能不恒定。
对没有嵌套路由性能最好,对嵌套层数多的路由性能严重变差。
这里的性能包括数据平面转发性能和控制平面刷新性能,因为路由插入时也需要软件查FIB表。
如果是让设备商推荐测试方法,则它一定会聪明地选择下述路由来测试设备:使用+1递增路由以使容量最大;使用不嵌套路由以使转发和刷新性能最好。
3. IPv6 Address Lookup测试用例设计原则3.1 三个测试原则由于IPv6 Address Lookup的难度比IPv4高4倍以上,那么使用什么的用例才能充分检验Router设备的查表性能、路由刷新性能、根据Trie搜索树的原理,可以归纳出下述测试用例设计:1) IPv6地址离散性IPv6地址容量巨大有如浩瀚之海洋,故IPv6前缀的选择尽量离散,以求有更大的代表性;2)不同掩码长度同IPv4的一样,IPv6地址也采用了层次化的分配方式,而且未来的层次化是否会出现CIDR这样的更细粒度的层次化还未可知。
这导致需要不同的IPv6前缀长度。
所以,在测试中尽量多采用各种前缀长度来测试,以应付未来可能出现的IPv6地址分配需求。
3) IPv6 Prefix有嵌套和分叉这其实是层次化地址分配方式造成的必然结果。
从LPM算法的实现原理看,Prefix嵌套层次越多,则构造出的树层高越高,搜索难度也就越大。
所以,在测试用例中一定要考虑充分的路由嵌套。
如果站在搜索树的角度,上述原则可保证由IPv6 prefix构造成一棵枝盛叶茂的参天大树;如果站在个房子的视角,上述原则可保证由IPv6 prefix构造成一座摩天大楼;3.2 两则IPv6 FIB测试用例分析根据上述三原则,下面选择国内大运营商用过的二个测试用例进行分析:1)用例A:几种IPv6前缀长度,+1递增路由a) 不同的前缀长度的路由数量按照一定的比例设置;b) 同一个前缀长度内的路由+1递增c) 共50万IPv6路由d) 路由分布如下所示:2)用例B:随机前缀,前缀长度可配在测试仪中,使用随机函数产生IPv6路由前缀。
路由前缀的长度可配置上述两个测试用例的共同最大不足点,就是路由prefix没有嵌套,在查找中始终只会匹配一个表项,而不会同时命中多个表项,失去了LPM最长匹配查表的本质特征。
按三原则进行具体分析如下:原则一IPv6离散性原则二不同掩码长度原则三Prefix嵌套和分支Search Tree视角建楼房视角点评用例A+1递增路由不满足满足不满足多果椰子树联排性能和容量测试不准确用例B随机路由满足满足不满足单果椰子树别墅容量较好,性能测试不准确。