攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . cc■E路由和交换 认证考试指南 (第5版) 〔美〕 Narbik 〔美〕 (第2卷) Kocharians, CclE #12410 「七rryVinson, CclE #35347 夏俊杰 译 人民邮电出版社 北 京 攻城狮论坛(技术+生活)2群 1813097 图书在版编目(CIP)数据 CCIE路由和交换认证考试指南 (美)那比克●科查理安(Narbik 特里●文森(Terry 人民邮电出版社, 1SBN 1. ‥ 第5版.第2卷/ Kocharians) , (美) Vinson)著;夏俊杰译.一一北京‥ 2016.7 978-7-115-42264-4 Ⅱ. ①c… ①那‥.②特…③夏…Ⅲ. ①计算机 网络一路由选择一资格考试一自学参考资料Ⅳ. ①TP393 中国版本图书馆CIP数据核字(2016)第113438号 版权声明 CCIE Routing Copyright Authorized All rights ◎ and 2015 Switching Pearson translation v5.O O拥cial Education, from the Cert Guide, Vblume 2, Fifth Edition (ISBN‥ 9781587144912) Inc. English language edition published by Cisco Press. reserved. 本书中文简体字版由美国PearsonEducation授权人民邮电出版社出版。未经出版者书面许可,对本 书任何部分不得以任何方式复制或抄袭。 版权所有,侵权必究。 ◆ 著 [美]Narbik Terry ◆ 译 夏俊杰 责任编辑 傅道坤 责任印制 焦志焊 Kocharians Vinson CCIE 人民邮电出版社出版发行 电子邮件 邮编100164 网址 CαE #12410 #35347 北京市丰台区成寿寺路11号 315@ptpress.com.cn http://www.ptpress.com.cn 北京天宇星印刷厂印刷 ◆ 开本, 800×1000 印张: 32.5 1/16 字数: 683千字 2016年7月第1版 印数: 1-2000册 2016年7月北京第1次印刷 著作权合同登记号 定价: 读者服务热线: 图字: 01-2014-5446号 118.00元(附光盘) (010)81055410 反盗版热线: 印装质量热线: (O10)81055316 (O10)81055315 内容提要 本书是根据Cisco最新发布的CCIE路由和交换400-101考试纲要编写的认证考试 指南,涵盖了与CαE路由和交换笔试相关的IPBGP路由、 QoS、广域网、 IP多播、 网络安全以及MPLS等技术,为广大备考人员提供了翔实的学习资料。为了帮助广大 读者更好地深入掌握各章所学的知识,作者在每章开头均安排了“我已经知道了吗? ” 测试题,以帮助读者更好地评估知识能力并确定如何分配有限的学习时间;在主要章 节中间,作者提供了大量具有极佳连贯性的配置示例,便于读者掌握认证考试中可能 遇到的各种复杂场景;在每章结柬前的″备考任务″中总结了本章的考试要点以及各 种有用的IOS配置和验证命令,便于读者随时参考和复习。此外,为帮助读者进行考 前模拟,配套光盘还提供了测试工具和模拟测验题。 本书主要面向备考CCIE路由和交换笔试的考生,但本书相关内容实用性很强, 有助于提高大家日常工作的效率,保证网络的高效运行,因而也非常适合从事企业网 及复杂网络设计及运维的工程技术人员参考。 关于作署 Narbik Kocharians, CCIE #12410 (包括路由和交换、安全、 SP)取得了三项CCIE 认证,拥有超过32年的IT工作经验,曾经设计、部署并支撑了大量企业网o Narbik是 Micronics培训公司(www.Micronicstraining.com)的总裁,负责讲授CCIE Tlerry Vinson, CCIE #35347 R&S和SP课程o (包括路由和交换、数据中心)是一名经验丰富的讲 师,拥有超过25年的授课经验以及投术课程和培训教材的编写经验。耽ny不但讲授和开 发培训课程,而且还为北佛吉尼亚/华盛顿特区的大企业提供技术咨询服务o Lerry精通Cisco 路由和交换技术以及最新的数据中心技术,包括Nexus交换技术、统一计算技术以及存储 区域网络(SAN)技术o LtFTy目前在Micronics墙训公司负责讲授CCIE 心课程,闲暇时喜欢航海及游戏设计。 R&S以及数据中 关于技术审稿人 David Bums在路由和交换、网络安全以及移动领域拥有丰富的经验和知识,目前是 Cisco高级系统工程经理,领导的工程团队负责为美国有线电视/MSO以及内容服务提供商 提供服务o Dave于2008年7月进人Cisco,是Femtocell、数据中心、 全架构等多个领域的资深系统工程师,为美国的SP移动部门提供服务o MTSO以及网络安 David在进人Cisco 之前曾经在一家大型的美国有线电视公司工作,是一名高级网络和安全设计工程师。在进 人Cisco之前的十多年行业工作中, David曾经从事过SP维护、 SP建设、 SP架构、企业 IT以及美军智能通信建设等多种工作。目前David拥有多项销售及行业/Cisco技术认证, 包括CISSP、 CCSP、 CCDP以及两个初级认证o 前正在准备CCIE安全实验室考试o 与共享,曾经在Cisco David最近刚刚通过CαE安全笔试,目 David热衷于网络技术(特别是网络安全)的知识传播 Live上做过Femtoce11 (IP移动性)和IPS (安全)的专题演讲o David 获得了位于佐治亚州的南方州立理工大学电信工程技术专业的理学学士学位,目前是计算 机及电气工程技术学院工业咨询委员会的委员o David还获待了风凰城大学的工商管理硕 士学位o Sean Wilkins是SR ̄W咨询公司一名极富经验的网络顾问,从20世纪90年代就进人 IT领域,长期与Cisco、 有包括Cisco Lucent、 (CCNP/CCDP)、 Verion、 Microsoft AT&T以及其他私营企业进行合作o (MCSE)以及CompTIA Sean目前拥 (A+和Network+)在内 的多项认证,还获得过信息技术专业的理学硕士学位(专注于网络架构与设计)、组织管理 专业的理学硕士学位、网络安全专业的硕士证书、计算机网络专业理学学士学位以及计算 机信息系统应用科学的肆业证书。除了作为网络顾问, Sean大部分时间都在为多家公司从 事技术写作和编撰工作,相关作晶可以查阅网站www.infodispersion.como 献辞 谨将本书献给我的妻子Janet,感谢她给我的挚爱、鼓励以及一如既往地支持。同时还 献给我的父亲,感谢他教给我的至理名言。 一一一Narbik Kocharians 谨将本书献给我的父亲,感谢他在生活中教会了我很多东西,包括我一直记忆犹新的 事情: “永不放弃自已的梦想,只要永不放弃,努力与勤奋就会始终陪伴在你身边”。我要 把我所有的爱、尊敬与钦佩都奉献给你。 一Lerry VInson 致谢 首先感谢上帝给了我写作、教学以及做自已真正喜欢的工作的机会,其次感谢我的家 庭,特别是我年芳29的妻子Jmet,感谢她一直以来给我的鼓励与帮助。她一直负责与学 生沟通并处理所有与课程安排相关的工作,才使得我能够专心教学。最后感谢我的孩子 Chris、 Patrick、 特别要感谢Brett Alexandra以及最小的宝贝Daniel,感谢你们表现出的非凡耐心。 Bartow先生,在我截稿目期一变再变的情况下能够始终保持足够的 耐心。毫无疑问,技术编辑和审稿人的工作也极其出色,在此表示衷心的感谢。最后,感 谢我所有的学生们,感谢你们的激励,也感谢你们能够阅读本书。 一一一Narbik Kocharians 非常荣幸有机会能够合作编写本书的新版本,感谢Na血ik给了我这个写作机会以及多 年来给予的支持与指导。没有Naforik就没有我的今天。此外,感谢CiscoPress的优秀团 队,感谢他们在过去几个月中表现出的非凡冷静与理解。尤其要感谢BrettBartow,感谢他 几乎无限的耐心(不过我已经快要磨光了他的所有耐心) 。同时还要感谢David Buns和Sean w毗ins,感谢他们提供的大量有益建议和对工作的热情,让我能够始终不偏离轨道。最后 要重点感谢Cisco Press的朋友Christopher Cleveland,感谢他在我写作过程中坚持不懈地推 动与支持。 衷心感谢我的妻子Sheila,感谢她使我的生命变得与众不同,让我每天能够不断努力, 竭力成为一名更优秀的人、更杰出的工程师以及更棒的教师。没有她,就没有我如今挚爱 的生活。 最后要感谢我的学生以及Micronics培训公司,感谢你们给我机会每天都去做我喜欢 做的事情,感谢你们的所有问题、耐心及热忱的学习欲望。正是有了你们,才使得这个行 业有别于世界上的其他任何行业。 一Lerry VInson 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 . 鲤 蓖Pc 疆 本书使用的图标 本资料仅供试读 孟 酮⁝ 曲嘶 需 禹联 企业光纤 通道盘 ′ 以太网线路 串行线路  ̄ ̄ ̄ ̄ ̄÷二____. 交换式串行线路 命令语法约定 本书在介绍命令语法时使用与IOS命令参考一致的约定,本书涉及的命令参考约定如下: ■ 需要逐字输人的命令和关键字用粗体表示,在配置示例和输出结果(而不是 命令语法)中,需要用户手工输人的命令用粗体表示(如show命令); ■ 必须提供实际值的参数用斜体表示; ■ 互斥元素用竖线(l)隔开; ■ 中括号∥表示可选项; ■ 大括号()表示必选项; ■ 中括号内的大括号[( )]表示可选项中的必选项。 攻城狮论坛(技术+生活)2群 1813097 前言 CCIE (Cisco Certified Intemetwork Expert,思科认证互联网专家)是网络认证领域 最具挑战性也最具声望的认证之一,获得了无数赞誉和奖项,是技术界公认最难获得的 认证之一o CCIE认证能够帮助大家打开专业领域之门,待到更高的工作报酬和与众不同 的简历o Cisco目前提供了多种CCIE认证,本书涵盖了CCIE路由和交换认证笔试5.0版本 考试大纲的所有内容。下面列出了截至本书出版之时Cisco提供的所有CCIE认证,大家 可以通过www.cisco.com/go/ccie查阅最新的CCIE认证信息,以下认证以其在网页上的 顺序为序‥ ■ CCDE; ■ CCIE ■ CCIEDataCenter ■ CCIERouting ■ CCIESecurity ■ CCIE Service ■ CCIE Service ■ CCIEVireless Collaboration & (CCIE协作) ; (CCIE数据中心); Switching (CCIE路由和交换) ; (CCIE安全); Provider Provider (CCIE服务提供商) operations ; (CCIE服务提供商运营和操作) ; (CCIE无线)。 每项CCDE和CCIE认证都必须通过笔试和一天的实验室考试,笔试的目的是测试大 家对优秀设计实践所必需的技术理论、协议及配置概念的理解和掌握程度,实验室考试的 目的是测试大家对真实设备的配置和排障能力。 为什么要参加cclE路由和交换笔试 参加CCIE路由和交换笔试最直接也是最明显的理由是,这是获得CCIE路由和交换 认证的第一步,只有通过了CCIUE路由和交换笔试,才能安排后面的CCIE实验考试。也 就是说,如果希望获得CCIE路由和交换认证的所有好处,那么就必须首先通过CCIE路 由和交换笔试。 获得CC吧认证的好处不胜枚举,可能有: ■ 更高的工作薪酬; ■ 更好的职业机会; ■ 是申请成为Cisco金牌和银牌渠道合作伙伴的最低要求,对于寻找技术大牛的 公司以及渠道合作伙伴来说,更能凸显你的价值; 2 前 言 ■ 请求Cisco ■ 更高的声望; ■ 提升顾问及客户工程师的可信度,包括使用αscoCCIE的标志。 TAC帮助时能够更好地通过故障解决进程; 参加CCIE路由和交换笔试的另一个重要原因就是对自已的初级、中级及高级αsco 认证进行再认证,有关Cisco再认证的具体需求可能会发生变化,具体需求请参阅 WWW. Cisco. com/go/certifications o CclE路由和交换笔试400-101 截至本书写作之时, CCIE路由和交换笔试由隶属于Pearson VUE (www.vue.com/cisco) 的监考机构负责,需要在2小时内完成大约100道多项选择题。所有的模拟题都不是实际 笔试的考试题。 与大多数考试一样,每个人都希望知道实际的考试情况, αsco在CCIE路由和交换笔 试大纲中提供了相关考试主题的通用指南,最新版本请参阅www.cisco.com/go/ccieo 虽然Cisco会经常调整CCIE笔试和实验室考试的大纲,但很少更改考试编号,不过 这次发布的CCIE路由和交换笔试大纲5.0版本却更改了考试编号, 350 ̄001, 4.0版本的考试编号为 5.0版本的考试编号为400 ̄1010 为了帮助读者更好地练习并熟练掌握CCIE路由和交换笔试的主题内容,本书在配套 光盘中提供了大量测试题,很好地反映了5.0版本考试大纲的要求。应该说这些主题需要 用到本书提到的所有知识,提供这些测试题库的原因是希望为广大读者提供更多的学习和 练习机会,以更好地掌握这些主题内容。 这些测试题都在模拟考试测试软件的题库中,大家可以进行完整的模拟测试,也可以 选做特定类型的测试题。 关于本书 本节将简要介绍本书的主要内容、主要目标以及阅读本书时的常见注意事项。 本书组织方式 本书主要包括6个部分,除了书中提到的这些章节之外,第7部分提供了每章开头的 测试题的答案。 本书每个部分的主要内容如下。 ■ 第1部分, 1PBGP路由彝(第1-2章):第1章主要讨论BGP的细节信息, 第2章主要讨论BGP的路径属性以及影响BGP做出最佳路径决策的方式。 ■ 第2部分,.Qos’(第3-5章):主要讨论各种常见的Qos工具,包括基于 前 言 3 MQC的工具和一些传统工具,特别是FRTSo第3章讨论了分类与标记,第4 章讨论了排队与拥塞避免,第5章则讨论了整形、监管以及链路效率。 ■ 第3部分, “VAN” (第6章): CCIE R&S笔试大纲经过多次修改后, WAN 部分的内容已大为缩减。第6章简要描述了PPP和帧中继的相关知识,需要 注意的是,上一版(4.0版本)和这一版(5.0版本)考试大纲还包含了其他 WAN主题一MPLS,本书将MPLS的相关内容放到了第11章。 ■ 第4部分, “IP多播” (第7-8章):第7章讨论了LAN中的多播问题,包括 IGMP以及主机加人多播组的方式,第8章则讨论了多播WAN的相关内容。 ■ 第5部分, α安全. (第9-10章):由于CCIE认证体系中包含了专门的安全 和语音两类认证,因而Cisco对是否在CCIE路由和交换认证中包含安全方面 的内容以及内容深度(如果包含)感到有些拿捏不定,本部分提供了与CCIE 路由和交换笔试相关的安全主题,第9章和第10章分别讨论了交换机和路由 器的安全问题。 ■ 第6部分, “MPLS” (第11章):如wAN部分所述,最近的两个CCIER&S 笔试大纲版本都增加了MPLS的考试内容。第11章讨论了MPLS的概念以及 MPLS ■ 第7部分, VPN (包括基本配置方式)等与企业网相关的主题内容。 “附录士 附录A给出了每章开头列出的测试题的答案。 本书特色 本书每个章节的编排都尽力帮助大家更好地利用时间,具有如下特点。 ■ “我已经知道了吗? ”测试题:每章开始部分都设置了测试题,目的是帮助 大家确定学习每章知识所需要花费的时间。在严格打分的情况下,如果只做 错了一道测试题,那么就可以略过本章的基本主题,直接跳至本章最后的“备 考任务”,通过“备考任务”复习考试内容。如果做错了两道及以上的测试题, 那么就应该花时间阅读本章的墓本主题,或者至少阅读自已还没有完全掌握 的部分主题。 ■ 基本主题:是每章的核心内容,解释了相关主题的协议、概念及配置方式。 ■ 备考任务:本书的“备考任务”与αsco Press出版的其他认证考试指南中的 “备考任务”不同,本书的“备考任务”不是重复“墓本主题”中的内容,而 是简单地汇总并列出与本章知识相关的信息,但这些信息并不一定是对本章 知识的更详细解释。 ■ 考试要点:本书在“基本主题”中以“考试要点”图标的方式列出了最重要 的考试内容。学完备章节的内容之后,可以在最后冲刺阶段快速测览“考试 4 前 要点”图标标出的内容,复习相应的段落、表格、示意图及列表信息。 ■ 凭记忆完成考试要点表:本书配套光盘中的附录E以PDF文件的方式汇总了 备章节的考试要点表格,附录中的表格删除了大部分内容,大家将这些空表 打印出来之后,可以凭记忆完成这些表格以提高记忆效果。该工具对于记忆 考试要点非常有用。附录F提供了完整的表格信息,以使于对照检查。 ■ 配套光盘中的测试题:配套光盘提供了大量多选测试题及模拟考试软件,包 含了200道测试题。作为最后冲刺的一部分,大家可以通过这些测试题来熟 悉考试过程,而且还能提升并验证自已对考试主题的掌握程度。 ■ 为考试大纲中的“部署网络建议调整方案”专门设置的测试题:为便于读者 练习并掌握这些考试内容,本书专门提供了这类测试题以帮助大家更好地准 备这类新题型。 ■ 关键术语与术语表:每章最后的“定义关键术语”列出了本章讨论过的所有 关键术语,配套光盘中的术语表则给出了这些关键术语的定义。学习每章内 容的时侯,建议读者认真复习这些术语。如果对这些术语的定义还有疑问, 那么就可以查阅术语表。 ■ 推荐读物:大多数章节的最后都列出了与本章内容相关的推荐书籍及网站信 息,这些推荐读物对于备考CαE路由和交换的实验室考试也非常有用。 目录 第1章 1.1 ″我已经知道了吗? ”测试题 ′o 1.2 BGP操作基础 构建BGP邻居关系 7 1.2.1内部BGP邻居 o/ 外部BGP邻居 1.2.3 成为BGP邻居之前的检查操作 1.2.4 BGP消息与邻居状态 Ⅱ 1.2.2 1 构建IP路由表 32 1.4 1 4 构建BGP表 2 1.3 3 3 1.4.1将eBGP路由添加到IP列表中 34 后门路由 1.4.3 向IP路由表添加iBGP路由 3 1.4.2 5 理解与记忆 5 1.6 48 多协议BGP 5 1.5 5 5 1.6.1凭记忆完成要点表 5 1.6.3 推荐读物 5 定义关键术语 5 1.6.2 5 BGP路由策略 =∴= 2.3 67 通过匹配AS二PATHPA来过滤BGP更新 66 2.2.3 62 利用aggregate-address命令过滤汇总路由的成员子网 1 2.2.2 6 路由过滤与路由汇总 2.2.1根据NLRI来过滤BGP更新 7 2.2 ″测试题 5 ″我已经知道了吗? 7 2.1 5 第2章 BGP路径属性与BGP决策进程 2.3.1 BGPPA的通用术语与特性 7 配置BGP策略 第1步: NEXT」工OP可达 84 2.4.2 83 2.4.1背景:路由策略使用的BGPPA及功能特性 82 2.4 BGP决策进程 8 2.3.2 2 目 录 2.4.3 第2步:管理性权值 2.4.4 第3步:最高本地优先级(LOCAL_PREF) 2.4.5 第4步‥基于ORIGENPA在本地注人的路由之间选择最佳路由‥…………●‥…………………‥90 2.4.6 第5步:最短AS_PATH 90 2.4.7 第6步:最佳ORTGENPA 94 2.4.8 第7步:最小MED 95 2.4.9 第8步‥邻居类型eBGP优于iBGP 98 第9步:去往NEXTLJIOP的最小IGP度量 2.4.10 2.4.11 maximum-Paths命令与BGP决策进程的比较规则 2.4.12 第10步:最小的宣告路由器BGPRID 2.4.13 第11步:最小邻居ID 98 ……………………………………‥99 0 1 BGP团体属性 1 2.5 (有一个例外情况) 98 04 1 2.5.1利用团体列表匹配COMMUNITY 06 1 删除COMMUNITY值 2.5.3 利用COMMUNITY值过滤NLRI 07 1 2.6 06 1 2.5.2 快速收敛增强功能 08 1 2.6.1快速外部邻居丢失检测 08 1 2.6.2 内部邻居丢失检测 EBGP快速会话去活 1 理解与记忆 1 2 2.7 09 1 2.6.3 1 1 l ! 1 分类与标记 5 5 1 1 8 用于Qos的可标记字段 1 ”测试题 1 ″我已经知道了吗? 1 3.2 1 3.1 ! 第3章 1 推荐读物 1 定义关键术语 2.7.3 3 2.7.1凭记忆完成要点表 2.7.2 1 1 1PP与DSCP对比 8 3.2.1 1 1 非IP报头的标记字段 22 1 DSCP的设置与术语 9 3.2.2 3.2.3 CiscoMQc 24 1 3.3 28 1 分类与标记工具 25 3.4 利用分类映射进行分类 1 3.3.2 MQC原理 24 1 3.3.1 攻城狮论坛 bbs.vlan5.com 本资料仅供试读 128 3.4.1 #^_^# 版权归原作者所有 CB标记的配置 利用策略路由进行标记 1 QoS预分类 3.4.5 ⁝5 利用监管器进行标记 3.4.4 1 CB标记的设计选项 3.4.3 1!5 3.4.2 !6 1!7 1!71 3.5 AutoQos !7 3.5.1 企业版AutoQoS 113113 3.6 139 3.5.2 VoIP版AutoQoS 理解与记忆 3.6.1凭记忆完成要点表 3.6.3 推荐读物 ″测试题 117118 4.2 ″我已经知道了吗? 145 4.1 拥塞管理与拥塞避免 145 第4章 14! 定义关键术语 11! 3.6.2 Cisco路由器的排队概念 4.2.1软件队列和硬件队列 4.2.3 排队工具对比 排队工具: CBWFQ与LLQ !0 4.3.1 1191 4.3 119 接口排队与子接日及虚电路排队 119 4.2.2 CBwFQ的基本特性与配置 1 LLQ 4.3.4 定义和限制LLQ带宽 4.3.5 用于多个优先级队列的LLQ 1 定义和限制CBWFQ带宽 4.3.3 !2 4.3.2 !4 1 !6 1 !7 1 排队工具小结 1 !8160 4.4 1 57 CBWFQ什LQ的其他内容 4.3.7 57 4.3.6 WRED 4.4.1 wRED加权数据包的方式 1 wRED配置 4.6.1 αsco交换机的人站排队 168 4.6.2 64164 LAN交换机的拥塞管理与拥塞避免 1 4.6 61 MDRR 1 4.5 61 4.4.2 αsco3560交换机的出站排队 攻城狮论坛(技术+生活)2群 1813097 . 4 目 录 70 1 4.7 Rs>P 7 1 1 4.7.1 RSvP进程概述 4.7.3 为语音呼叫使用RSvP 1 理解与记忆 7 5 4.8 73 1 配置RSvP 72 1 4.7.2 75 1 4.8.1凭记忆完成耍点表 ″测试题 79 1 流量整形的概念 1 ″我已经知道了吗? 1 整形、监管与链路分段 =∴= 5.2 5 5.1 7 第5章 1 推荐读物 5 4.8.3 7 定义关键术语 1 4.8.2 80 1 5.2.1整形技术的相关术语 8 1 84 cB整形 1 5.4 83 GTs 1 5.3 82 整形技术的底层机制 1 利用Be进行整形 5.2.3 1 5.2.2 将CB整形配置为峰值速主 89 1 监管的概念与配置 89 5.5 自适应整形 1 5.4.4 89 1 5.4.3 88 利用带宽百分比配置整形 1 5.4.2 86 1 5.4.1利用LLQ和小Tc对语音流量进行整形 CB监管的概念 90 1 5.5.1 5.5.3 CAR 5.6 HQF 5.6.1在class-default中支持基于流的公平排队 5.6.2 class-default的默认排队实现 5.6.3 class ̄default与带宽 5.6.4 整形类别的默认排队实现 5.6.5 策略映射与接口带宽 5.6.6 公平队列中的逐流队列门限 5.6.7 在逻辑接口上支持多个策略的超额配置 5.6.8 整形GRE隧道 97 1 CB监管配置 93 1 5.5.2 Qos故障检测与排除及相关命令 5.7.1应用响应慢的故障检测与排除 其他QoS故障检测与排除技巧 5.7.4 QoS故障解决方案 207207 5.8 20! 5.7.3 理解与记忆 5.8.1凭记忆完成要点表 推荐读物 ″我已经知道了吗? ”测试题 2 二层协议 1 6.2 WAN 209 6.1 209 第6章 207 定义关键术语 5.8.3 207 5.8.2 205 语音与视频故障检测与排除 204 5.7.2 20220! 5.7 在配置了策略映射的接口上处理流量拥塞 202 5.6.10 202 用于子策略的嵌套式策略及参考带宽 5.6.9 02 1 6.2.2 PPP 6.2.3 PPPoE 2 HDLC 1 6.2.1 2 220 223224 以太网WAN VPLS 6.3.2 城域以太网 224 6.3.1 226226 6.4 1 6.3 理解与记忆 6.4.1凭记忆完成要点表 推荐读物 227 定义关键术语 6.4.3 227 6.4.2 ″测试题 多播IP地址 7.3.1多播地址范围及结构 7.3.3 临时组的多播地址 2!9 周知多播地址 2⁝7 7.3.2 2!62!6 7.3 多播提供可扩展可管理解决方案的方式 233 7.2.2 1 7.2.1单播和广播存在的问题 12! 为何需要多播 2! 7.2 ″我已经知道了吗? 229 7.1 229 第7章IP多播概述 6 目 录 7.3.4 多播地址范围小结 7.3.5 将IP多播地址映射为MAC地址 7.4 利用IGMP管理多播流量的分发操作 7.4.1加人多播组 7.4.2 1GMP 7.4.3 1GMPv2 7.4.4 7.4.5 1GMPv3 1GMPvl与IGMPv2的互操作性 1GMPv2主机与IGMPvl路由器 7.5.2 1GMPvl主机与IGMPv2路由器 7.6 7.7 7.7.1 1GMPvl、 CMGP 1GMP监听 RGMP 7.7.4 1GMP过滤 7.7.5 1GMP代理 3 7 2 7.8 IGMPv2与IGMPv3对比 LAN多播优化 7.7.2 7.7.3 4 <J 2 7.5.1 4 4 一︑)∴∴∴′ヽ一 2 2 7.5 1GMPv2定时器 理解与记忆 3 7 2 7.8.1凭记忆完成要点表 推荐读物 3 7 2 7.9 3 7 2 定义关键术语 7.8.3 3 7 2 7.8.2 参考文献 7 2 8.1 ”测试题 多播路由基础 8 7 2 8.2 ″我已经知道了吗? 一ヽ一 第8章IP多播路由 8.3 多播定界 密集模式路由协议 8.3.1 PIM-DM操作 8.3.2 PIM-DM以及PIM-SM与LAN相关的问题 8.3.3 DVMRP 8.3.4 MOSPF 4 8 2 8.2.2 o‘ 7 2 8.2.1多播路由协议概述 300300 8.4 稀疏模式路由协议 8.4.1 PIM-SM操作 3 双向PIM 8.4.4 PIM-DM与PIM-SM对比 8.4.5 SSM 325 326!29 部署IPv6多播PIM 8.5.1控制指派优先级 PIMv6Hello间隔 1Pv6稀疏模式多播 3!0 8.5.4 3!0 8.5.3 1Pv6静态RP 8.5.6 MLD 8.5.7 嵌人式RP 3!9 1Pv6BSR 3!⁝3!! 8.5.5 !1!!15 8.6 !29 8.5.2 理解与记忆 8.6.1凭记忆完成要点表 推荐读物 ”测试题 9.2.1 CLI的简单密码保护 9.2.3 PPP安全 9.4.1 !74!75 三层安全 !72 9.4 !9 9.3.2二层安全通用建议 8! 9.3.1未用端口和用户端日的交换机安全最佳实践 5 二层安全 ! 9.3 !57 用户模式与特权模式AAA认证 !!3 9.2.2 50!!0 路由器和交换机设备安全 3 9.2 ″我已经知道了吗? !17 9.1 设备和网络安全 !47 第9章 345 定义关键术语 8.6.3 !↑! 8.6.2 321 8.5 32! 8.4.3 ! 动态发现RP与使用冗余RP 1 8.4.2 1PACL回顾 9.4.4 αscoIOS基于区域的防火墙 9.4.5 CoPP !90 传统的CiscoIOS防火墙 ! 85 9.4.3 83 三层安全的通用考虑 !78! 9.4.2 8 目 录 DMVPN 9.4.6 9.5 1Pv6第一跳安全 9.5.1 IPv6的第一跳安全 链路操作 9.5.2 9.5.3 1CMPv6与NDP 9.5.4 RA保护 9.5.5 DHCPv6保护 9.5.6 1Pv6设备跟踪 9.5.7 9.5.8 1Pv6源保护 PACL 9.5.9 理解与记忆 1 1 9.6 1Pv6邻居发现检测 1 隧道技术 43 IPv6隧道及其相关技术 GETVPN 41 lO.2.4 4! 二层vPN 理解与记忆 MPLs ″我已经知道了吗? ”测试题 一ヽ一 MPLS单播IP转发 0 4 11.2 12 DMVPN隧道 10.2.3 11.1 42 GRE隧道 10.2.2 第11章 ″测试题 42 ″我已经知道了吗? 10.2.1 10.3 42 10.2 1 10.1 4 第10章 1 推荐读物 4 定义关键术语 9.6.3 1 9.6.1凭记忆完成要点表 9.6.2 MPLSIP转发:数据平面 .ヽ一 0 4 11.2.1 MPLSVPN 11.3.1问题:客户地址空间重叠 11.3.2 解决方案: MPLSVPN 11.3.3 MPLSVPN控制平面 11.3.4 MPLSVPN配置 .ヽJ 11.3 MPLSIP转发:控制平面 ′o 4 11.2.2 84 4 11.3.5 MPLSVPN数据平面 (>RF 92 4 部署Multi->RFCE 1 11.5 9 其他MPLS应用 4 11.4 Lite) 92 4 11.5.1无MPLS的VRFLite 有MPLS的VRFLite 95 4 11.6 94 4 ll.5.2 理解与记忆 95 4 ¨.6.1凭记忆完成要点表 11.6.3 推荐读物 ″我已经知道了吗? ”测试题答案 497 附录A 95 4 定义关键术语 95 4 ¨.6.2 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 本章主要讨论以下主题‥ ■ 下一跳; ■ 对等体; ■ 检测与排除无法在路由表中安装BGP路由的故障; ■ MP ̄BGPo 攻城狮论坛(技术+生活)2群 1813097 . 第1章 BGP操作基础 本章讨论的内容可能是唯一一个对CCIE路由和交换笔试与实验室考试都非常重 要的主题一BGP-4 (Border Gateway ProtocoI version 4,边界网关协议版本4) 。本章 主要讨论BGP实现其基本任务的操作方式: 1.构建邻居关系; 2.从其他路由信息源将路由注人BGP; 3.与其他路由器交换路由; 4.将路由安装到IP路由表中。 虽然这些BGP主题都与IGP很相似(两者关系密切) ,但在具体细节上还有许多 差异。 本章将重点讨论BGP完成路由协议这一核心职责的操作方式0 1.1 ″我已经知道了吗? ″测试题 表1-1列出了本章的基本主题以及与之相应的测试题。 表1-1 ″我已经知道了吗? ”基本主题与测试题对照表 构建BGP邻居关系 1-3 构建BGP表 4′_8 构建IP路由表 9-12 得分 为了提高测试评价效果,请务必严格评分。参考答案请参见附录Ao l.在发送BGP更新消息之前,邻居必须稳定地处于下面哪种邻居状态? a.激活(Active) b.空闲(Idle) c.连接(Cormected) 2 第1章 BGP操作基础 d.建立(Established) 2● BGP邻居在完成邻居关系建立进程之前必须检查一些参数,下面哪一项不在检查 之列? a.邻居的路由器ID与其他路由器不重复 b.其中一台路由器的neighbor命令与另一台路由器更新消息的源IP地址相匹配 C●如果是eBGP,那么neighbor命令指向直连网络中的IP地址 d.其中一台路由器的neighbor 令引用的是同一个ASN remote-aS命令与另一台路由器的router (Autonomous SystemNumber,自治系统号) bgp命 (假设未 使用联邦特性) 3●假设某组BGP路由器(某些拥有iBGP连接,某些拥有eBGP连接)都在各自的 neighbor命令中使用环回接口的IP地址来引用对方,那么下面有关这些对等体配 置的描述,错误的有哪些? a ●为了建立对等体, b●为了建立对等体, iBGP对等体需要应用neighbor giv仍肋esribgp-multihop命令 eBGP对等体需要应用neighbor *朋胁s ebgp-multihop命令 C.不能将eBGP和iBGP对等体放在同一个对等体组中 d●对于eBGP对等体来说,路由器的BGP路由器皿必须等于eBGP邻居的neighbor 命令中列出的IP地址 4●假设某路由器的IP路由表中有20.0.0.0/8、 路由器的BGP配置了no 20.1.0.0/16和20.1.2.0/24的路由,且该 auto-Summary命令,那么在使用BGP network命令将这 些路由注人到BGP中时,下面哪一项描述是正确的? a. b. network20.0.0.0命令可以将这3条路由均添加到BGP表中 network c. network 20.0.0.O 20.0.0.O mask mask 255.0.0.0命令可以将这3条路由均添加到BGP表中 255.0.0.0命令可以将20.1.0.0/16和20.1.2.0/24添加到 BGP表中 d. network 20.0.0.0命令可以将20.0.0.0/8添加到BGP表中 5.假设某路由器利用redistribute eigrp l BGP中,且该路由器的BGP配置中包含了no route-maP fred命令将EIGRP路由重分发到 auto-Summary命令,那么下面哪一 项描述是正确的? a. route-maP fred可以重分发IP路由表中学自EIGRP的路由 b.虽然route-maP 必须与EIGRP c● fred可以重分发IP路由表中的直连路由,但是要求这些接口 l的network命令相匹配 route-maP fred可以重分发EIGRP拓扑结构表中的后继路由,但这些路由不在 IP路由表中,这是因为IP路由表中存在学自其他路由协议的AD(Administrative Distance,管理距离)值较小的路由 1.1 “我已经知道了吗? ”测试题 3 d.虽然route-maPfred可以重分发IP路由表中学自EIGRP的路由,但是要求这 些路由必须至少有一个可行后继路由 6.假设Rl通过BGP从R3学到了去往9.1.0.0/16的最佳路由, Rl通过一条使用子网 8.1.1.4/30的点对点串行链路与R2建立了邻居连接,并且Rl配置了auto-Summary 命令,那么下面有关Rl向R2宣告哪些路由的描述,哪一项是正确的? a. Rl仅向R2宣告9.0.0.0/8,而不宣告9.1.0.0/16 b.如果配置了BGP子命令aggregate-address 9.0.0.0 255.0.0.0,那么Rl仅向R2 宣告9.0.0.0/8,而不宣告9.1.0.0/16 c.如果配置了BGP子命令network 9.0.0.O mask 255.0.0.0,那么Rl仅向R2宣告 9.0.0.0/8,而不宣告9.1.0.0/16 d.以上均不正确 7.下面有关BGP路由器能够向其邻居宣告哪些路由的描述,哪一项是错误的(假设 不使用联盟或路由反射器) ? a.如果要将某条路由宣告给eBGP对等体,那么就要求该路由不能是从iBGP对 等体学到的路由 b.如果要将某条路由宣告给iBGP对等体,那么就要求该路由不能是从eBGP对 等体学到的路由 c. NEXT_HOP IP地址必须响应ping命令 d.如果邻居路由器的AS位于AS_PATH中,那么就不向该邻居宣告路由 e.被宣告路由必须在show ip bgp命令的输出结果中显示为valid 8.假设在Rl上通过不同方法将不同的路由注人到BGP中,然后再通过iBGP将这些路 由宣告给R20 R2利用aggregate-address summary-Only命令汇总这些路由后,再 通过eBGP将汇总路由宣告给R30那么下面有关这些路由的ORIGIN路径属性的 描述,哪一项是正确的? a.在Rl上利用network命令注人的路由的ORIGEN值为IGP b.在Rl上利用redistribute ospf命令注人的路由的ORIGIN值为IGP c.在Rl上利用redistribute命令注人的路由的ORIGEN值为IGP d.在Rl上利用redistribute static命令注人的路由的ORTGEN值为incomplete (不 完全的) e.如果没有使用as-Set选项,在R2上创建的汇总路由的ORIGEN值为IGP 9.下面有关BGP同步的描述,哪一项是正确的? a.启用了BGP同步之后,对于从iBGP学到的路由来说,仅当从eBGP也学到了 该相同前缀,路由器才能将该路由添加到IP路由表中 b.启用了BGP同步之后,路由器不能将从iBGP学到的路由认为是去往该前缀的 4 第1章 BGP操作基础 “最佳”路由,除非其NEXT_HOPIP地址与IP路由表中的某条IGP路由相匹配 c.如果位于单个AS中的路由器创建了全网状的BGP对等连接或者与通过 eBGP学习前缀的路由器之间创建了星型对等连接,那么就可以安全地禁用 BGP同步机制 d.以上均不正确 10.下面有关BGP联盟的描述哪一项是正确的? a.对于neighbor ebgp-multihop命令来说,如果是非邻接的邻居IP地址,那么 联盟eBGP连接的操作行为与普通(非联盟) eBGP连接相似 b.通过iBGP学到的路由将通过联盟eBGP连接进行宣告 c.位于联盟子AS内的iBGP对等体之间不需要全网状连接 d.以上均不正确 11. Rl与ASN l中的R2、 有其他对等连接o R3、 R4及R5建立了BGP对等连接,并且在该AS内没 Rl是路由反射器,仅为R2和R3提供服务。每台路由器都有 自已的eBGP连接,并通过eBGP连接学到了以下路由: 学到了2.0.0.0/8, R3学到了3.0.0.0/8, Rl学到了1.0.0.0/8, R4学到了4.0.0.0/8, R2 R5学到了5.0.0.0/80 那么下面有关这些路由传播方式的描述,哪一项是正确的? a. Rl将NLRI l.0.0.0/8转发给其他所有路由器 b. R2将NLR12.0.0.0/8发送给Rl, Rl仅转发给R3 c. R3将NLRI3.0.0.0/8发送给Rl, Rl转发给R2、 R4和R5 d. R4将NLR14.0.0.0/8发送给Rl,但Rl不将该路由信息转发给R2或R3 e. R5将NLRI 5.0.0.0/8发送给Rl, Rl将该路由反射给R2和R3,但是不反射 给R4 12. Rl位于联盟ASN65001中, R2和R3位于联盟ASN65023中, R2与R3对等,并且eBGP对等体知道这3台路由器均位于AS Rl与R2对等, l中。那么下面有 关这些路由器的配置描述,哪一项是正确的? a.这3台路由器均配置了routerbgpl命令 b. R2和R3都需要配置BGP子命令bgp c. Rl需要配置BGP子命令bgp d. R2和R3都需要配置BGP子命令bgp confederation confederation peers identifier confederation 65001 l identifier 65023 墓本主题 与IGP (Interior Gateway ProtocoIs,内部网关协议)相似, BGP也要为路由器交 1.1 “我已经知道了吗? ”测试题 换拓扑结构信息,从而最终学到一组IP前缀的最佳路由。但是与IGP不同的是, 5 BGP 并不使用度量在一组去往相同目的地的可选路由中选择最佳路由,而是使用多种BGP PA (Path A恤houte,路径属性)以及一套复杂的路径决策进程,在去往相同子网的多 条可能路由中选择最佳路由。 如果没有特意设置和配置其他PA,那么BGP将使用BGPAS二PATH SystemPath,自治系统路径) 的特征,因而本章将详细介绍备种BGP (Autonomous System PA作为其默认度量机制o PAo (Autonomous BGP通常使用PA来描述路由 AS二ELFTH属性列出的是由一系列ASN Number,自治系统号)定义的路径,数据包必须穿越这些路径才 能到达指定前缀(如图1-1所示)。 图1-1 AsN2 AsN3 AsN5 AsN4 BGPAs_PAI1-H与路径矢量逻辑 图1-1是一个非常典型的示例,显示了BGP利用路径矢量逻辑来选择路由的方式。 图中的Rl学到了两条去往9.0.0.0/8的AS一旦盯H:一条通过ASN 2-3;另一条通过ASN 5-4-30如果所有路由器都没有使用任何路由策略来影响其他PA,进而影响BGP的最 佳路由选择,那么Rl将会选择最短的AS二PATH,对于本例来说就是AS_PATH 2-30 事实上,此时BGP将AS_PATH作为矢量,矢量的长度(即路由中ASN的数量)决 定了最佳路由选择。对于BGP来说,虽然术语路由指的仍然是传统意义上的逐跳IP 路由,但术语路径指的却是去往指定目的地的一系列自治系统。 6 第1章 BGP操作基础 本章的组织方式与常见的IGP章节相似,首先讨论邻居关系,然后解释BGP与 其邻居交换路由信息的方式,最后讨论BGP根据BGP拓扑结构表将IP路由安装到路 由器的IP路由表中的方式0 1.2 构建BGP邻居关系 BGP邻居之间需要构建TCP连接,并通过TCP连接发送BGP消息,特别是通过 TCP连接发送包含路由信息的BGP更新(Update)消息。每台路由器都要显式配置邻 居的IP地址,目的是通过这些定义来告诉邻居路由器将与哪个IP地址建立TCP连接。 如果路由器收到了从非BGP邻居的源IP地址发送的TCP连接请求(BGP端口179), 那么就会拒绝该请求。 建立了TCP连接之后, BGP就开始发送BGP打开(Open)消息。交换了一对 BGP打开消息之后,邻居就可以进人建立(estchlished)状态,该状态是两个活跃BGP 对等体所处的一种稳定状态,此时就可以交换BGP更新消息了。 本节将详细介绍BGP邻居建立过程中涉及的协议及配置信息,如果大家已经熟悉 了这部分内容,那么就可以直接查看表1-2列出的一些关键知识点。 表1-2 BGP邻居汇总表 TcP端口 179 设置保持激活(Keepa"ve)问隔和保持时间(使用路由器 默认值分别为60秒和180秒,定义的时问值可以介 子命令bgptimerskeepa“veho/dtw)e,或者为每个邻居逐 于保持激活与处于静默状态(意昧着邻居已经失效) 一配置neighbortimers命令) 的时问值之间 什么情况下邻居会成为iBGP(intemalBGP,内部BGP) 邻居处于相同As内 对等体 什么情况下邻居会成为eBGP(extemalBGP,外都BGP) 邻居处于不同As内 对等体 接照如下顺序: bgprouter-id命令; BGP进程虐动时处于up/up状态的环回接口的最大IP 如何确定BGP的RID(RouterlD,路由器ID) 地址 BGP进程肩动时处于up/up状态的其他接口的最大IP 地址 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 1.2 本资料仅供试读 . 构建BGP邻居关系 7 续表 ∴∵.∵ ∴∴ ̄.∵∵∴∴ ∴∵∵∴二∴ 、 利用neighborupdate.source命令进行定义,或者 如何确定到达邻居的源IP地址 默认为到达邻居的蹿由使用出接口的IP地址 如何确定到达邻居的目的IP地址 利用neighbor命令显式定义 默认关闭,可以通过路由器子命令auto屯ummary肩 自动汇总★ 用该特性 邻居认证 ★从cisco 仅支持MD5,使用neighborpassword命令 IOS Software Release 12.3开始, Cisco将IOS默认的BGP自动汇总特性更改为禁用状态 1.2.1内部BGP邻居 BGP路由器将每个邻居均视为iBGP对等体或eBGP对等体,由于每台BGP路由 器都位于单个AS中,因而相应的邻居关系要么是与相同AS中的路由器建立的(iBGP 邻居),要么是与其他AS中的路由器建立的(eBGP邻居)。这两种邻居关系的建立方 式并无多大区别,但不同类型的邻居(iBGP或eBGP)在BGP更新进程以及向路由 表添加路由的方式上存在较大差别o iBGP对等体通常使用环回接日IP地址来建立BGP对等关系,从而获得更高的可 用性。对于单个AS来说,其物理拓扑结构通常在每对路由器之间最少包含两条路由。 如果BGP对等体使用接口IP地址来建立TCP连接,那么在该接口出现故障后,虽然 两台路由器之间可能还有一条路由,但是低层的BGP TCP连接已经中断。只要两个 BGP对等体之间拥有一条以上的路由,且通过这些路由均能到达对端路由器,那么使 用环回接口IP地址建立对等关系将是最佳选择。 下面将通过一些案例来解释BGP邻居的配置方式以及相应的协议信息。首先来看 例1-1,该例显示了一些基本的BGP配置信息, AS 123中的Rl、 R2及R3是iBGP 对等体(如图1-2所示),本例配置了如下功能特性: ■ AS ■ Rl将使用bgp ■ R3使用peeILgrouP命令来配置邻居Rl和R2,由于只要为对等体组(peer 123中的三台路由器之间将建立iBGP邻居关系(全网状连接); routeILid命令来配置其RID,而不是使用环回接口地址; group)准备一套出站更新消息(向对等体组中的所有对等体发送相同的更新 消息) ■ ,因而能够大大减少配置命令并提高处理效率; Rl-R3之间的对等关系使用BGPMD5认证,该认证方式是CiscoIOS支持的 唯一一种BGP认证方式。 攻城狮论坛(技术+生活)2群 1813097 8 第1章 BGP操作基础 AsN 图1-2 励1-1 123 BGP邻居配置示意图 …暮右铭腥GP勃居蹬 AsN 45 1.2 hb〇r 3.3.3.3 in亡erface |P no bgp L〇OPbackl 3.3.3.3 bgp 255.255.255.255 123 synchroniza亡ion l〇g-neighbor-Changes ne|ghbor l.1.1.1 peer-grouP my-aS ne|ghb〇r 2.2.2.2 peer-grouP my-aS no 9 Loopbackl address router upda亡e-SOurCe 构建BGP邻居关系 au亡○一Surmary Rl# show BGP rou亡er BGP 亡able ip 2.2.2.2 3.3.3.3 surmary version 常二硅 4 Neighbor bgp local iden亡ifier AS is l, main MsgRcvd rou亡ing MsgSent table |nQ TblVer AS number version 123 59 59 0 0 123 64 64 0 0 123 l OutQ 0 Up/Down 00‥11‥14 肆 例1-1给出了一些非常重要的功能特性。首先,该配置并没有显式地将对等体定 义为iBGP对等体或eBGP对等体,而是由每台路由器检查自已的ASN(定义在router bgp命令中) ,并与neighborremote-aS命令中列出的邻居ASN进行比较,如果匹配, 那么就是iBGP对等体,否则就是eBGP对等体。 例1-1中的R3显示了利用peeILgrouP命令建立对等体组以减少配置命令的配置方 式。请注意,不能在BGP对等体组中设置任何新的BGP配置,只能简单地将这些BGP 邻居配置组合为一个组,然后利用neighbor 此外, BGP会为对等体组构建一套更新消息,并将路由策略应用到整个对等体组上(而 不是每次仅用于一台路由器) 1.2.2 peeILgrouP命令将该组设置应用到邻居上。 ,因而能够大大减轻BGP的处理压力及内存开销0 外部BGP邻居 eBGP对等体之间的物理拓扑结构通常都是单链路,主要原因在于该连接是不同 自治系统中的不同企业之间的连接,因而eBGP对等关系可以简单地使用接口IP地址 来实现冗余性,这是因为链路失效后, TCP连接也将中断(因为此时的对等体之间已 经没有IP路由了)。例如,图1 ̄2中的Rl-R6 令中定义的接口IP地址。 eBGP对等关系使用的就是neighbor命 10 第1章 BGP操作基础 如果两个eBGP对等体之间拥有冗余连接,那么eBGP 环回IP地址以充分利用冗余连接。例如, neighbor命令就应该使用 R3和R4之间拥有两条并行链路,如果在 neighbor命令中使用环回地址,那么即使这两条链路中有一条出现了故障, TCP连接 仍然能够保持正常运行。例1 ̄2给出了图1-2所示网络的额外配置信息,即在R3与 R4之间使用环回接口地址,而在Rl与R6之间使用接口地址。 励1-2 基榴eBGP邻居乾置 r゜uter bgp neighbor Rl# sh゜w Rou亡ing Kn〇Wn ip Via 172.16.16.6 172.16.16.0/24 "connec亡ed", direc亡Iy show for Descrip亡Or R〇u亡e Rl# route en亡ry Routing * 123 172.16.16.6 connec亡ed, me亡ric ip int distance O, me亡ric O (COnneC亡ed, is Via bgp brief l include share coun亡is I O/0/0.6 YES 4.4.4.4 neighbor 4.4.4.4 neighbor 4.4.4.4 sh゜w BGP rou亡er BGP table manual up 123 neighb゜r R3# interface) Seria10/O/0.6 O,亡raffic Seria10/0/0.6 router Via Blocks: ip bgp rem゜te-aS surmary identifier version is 3.3.3.3, l, local AS Tblver 123 version l l.1.1.1 4 123 247 247 0 0 0 03‥14‥49 0 2.2.2.2 4 123 263 263 0 0 0 03‥15‥07 0 sh゜W tCP Local MsgSen亡 number 亡able r〇u亡ing V TCB MsgRcvd main Neighbor R3# AS 45 |nQ Ou亡Q Up/Down S亡a亡e/PfxRcd brief Address Fore|gn Address (Sta亡e) 649DDO8C 3.3.3.3.179 2.2.2.2.43521 ESTAB 649DD550 3.3.3.3.179 1.1.1.1.27222 ESTAB 从例1-2可以看出,eBGP配置与iBGP配置之间存在一些细微差别。首先,与route bgp命令不同, neighbor eBGP对等体。其次, remote-aS命令引用的是不同的AS,因而意味着对等体是 R3必须配置neighbor 4.4.4.4 ebgp-multihop 相似),否则将无法建立对等连接。对于eBGP连接来说, αs∞ 2命令(R4的命令 IOS默认将IP包的 TTL字段设置为数值1,其依据是假定使用接口IP地址建立对等连接(如例1-2中的 1.2 构建BGP邻居关系11 Rl ̄R6所示)。对于本例来说,如果R3没有使用多跳特性,那么就会以TTL 发送数据包, l向R4 R4收到数据包之后(此时TTL为1),会将数据包路由到自已的环回接 口,该过程会将TTL递减至0,导致R4丢弃该数据包。因此,即使路由器仅在一跳 之外,也要将环回接口视为位于路由器的另一端,需要额外的跳数0 1.2.3 成为BGP邻居之前的检查操作 与IGP相似,在其他路由器成为邻居(进人BGP建立状态)之前, BGP也要执 行一些必要的检查操作,此时大多数设置都比较直观,唯一容易出错的地方就是IP地 址问题。下面列出了BGP构建邻居关系时需要执行的一些检查操作0 1.路由器必须收到一条TCP连接请求,且路由器必须在BGPneighbor命令中能 惠 够发现该请求的源地址0 2.路由器的ASN remote-aS (位于routerbgp as7?命令中)必须与邻居路由器在其neighbor Crs7?命令中引用的ASN相匹配(联盟配置无此要求)0 3.两台路由器的BGPRTD必须相同0 4.如果配置了认证机制,那么还必须通过MD5认证。 图1-3给出了上述检查操作中前3项的检查过程,R3向Rl发起BGPTCP连接请 求,带圆圈的数字1、 2、 3分别对应于上述检查操作中的前3项。请注意, Rl在第2 步检查操作中使用的neighbor命令是Rl在第1步中确定的。 注: R3的环回IP地址是3.3.3.3 图1-3 检查BGP邻居参数 图1-3中的R3以其更新源IP地址(3.3.3.3)为数据包的源地址发起了一条TCP 12 第1章 BGP操作基础 连接请求,第一项检查操作发生在Rl收到第一个数据包的时候,需要查看数据包的 源IP地址(3.3.3.3),发现该地址位于neighbor命令中。第二项检查是Rl将R3宣称 的ASN (位于R3的BGP打开消息中)与Rl的neighbor命令(在第1步中确定的) 进行对比。第三项检查的目的是确定BGP 发送端的BGP RID的唯一性,利用BGP打开消息来宣告 RIDo 虽然第1步检查操作看起来很直观,但有趣的是,即使反向检查操作通不过,也 能建立邻居关系。例如,即使Rl没有配置neighbor 3.3.3.3 update-SOurCe l.1.1.1命令, 图1-3所示的进程也能正常运行。也就是说,只要两台路由器的更新源IP地址中有一 个位于对端路由器的neighbor命令中,就能建立邻居关系。例1-1和例1-2显示了这 两台路由器正确的更新源地址,这种情况当然没问题,只要其中一个正确就可以建立 邻居关系o BGP利用保持激活定时器来定义路由器发送保持激活消息的频率,利用保持定时 霹器(Holdtimer)来定义路由器在重置邻居连接之前等待接收保持激活消息的时间。打 开消息包含了每台路由器宣称的保持激活定时器,如果不匹配,那么每台路由器都将 为这两个定时器使用较小值。参数设置不匹配不会妨碍路由器成为邻居。 1.2.4 BGP消息与邻居状态 BGP邻居的期望状态是建立状态,此状态下的路由器已经建立了TCP连接,交 换了打开消息,而且参数检查也全部通过,此时可以利用更新消息交换拓扑结构信息。 表1-3列出了可能的BGP邻居状态及相应的状态特性。请注意,如果IP地址不匹配, 那么邻居将进人Active (激活)状态。 BGP邻居状态 表1-3 ∴ . . 、 、 、 赢 群 ● 骗 ▲ .▼ - 靴 一 - ●.一 ●●一 - ● 一 1. BGP消息类型 BGP使用4种基本消息,表1 ̄4列出了这些消息类型并给出了相应的描述信息。 1.2 BGP消息类型 表1-4 打开(Open) 构建BGP邻居关系13 用于建立邻居关系并交换基本参数 用于维护邻居关系。如果在协商好的保持定时器问隔内未收到保持激活消患,那么BGP 保持激活(Keepalive) 就会关闭邻居连接(可以利用子命令bgptimerskeepa″veho/dwhe或BGP子命令 neighbor[rf)一addressIpee广g′OuP″ame]timerskeepa″veho/dtwe配置这些定时器) 更新(Update) 用于交换路由信患(详见下一节内容) 通告(Not恫cation) BGP出现差错时使用,发送该消患后将会重置邻居关系 2.主动重置BGP对等连接 例1-3显示了利用neighbor shutdown命令重置邻居连接的方式,同时给出了备 种BGP邻居状态。本例中的路由器Rl和R6来自图1-2,相应的配置信息见例1-20 励1-3 彻居扰;夯示励 攻城狮论坛 bbs.vlan5.com 第1章 14 #^_^# 版权归原作者所有 本资料仅供试读 . BGP操作基础 与neighbor shutdown命令相似, EXEC命令clear ip bgp *也能重置所有BGP邻居, 该命令可以重置邻居连接、关闭与该邻居之间的TCP连接并删除BGP表中学自该邻居的 所有表项。本章还会在后面显示clear命令的其他使用方式,包括同时清除多个邻居的方式。 1.3 构建BGP表 BGP拓扑结构表(topoIogy 由信息库) table)也称为BGP ,负责维护BGP学到的NLRT (Network RTB (Routing Layer 络层可达性信息)以及相关联的PA信息。其中, Information Reachabildy Base,路 Information,网 NLRI就是普通的IP前缀与前缀长 度。本节主要讨论BGP将NLRI注人到路由器BGP表中的处理过程,以及路由器将 相关联的PA及NLRI宣告给邻居的方式。 1.3.1将路由/前缀注入BGP表 毫无疑问, BGP路由器也使用与IGP相同的方法将表项添加到本地BGP表中: 利用network命令,通过邻居发送来的更新消息学习拓扑结构信息,或者从其他路由 协议进行重分发。接下来将详细解释本地BGP路由器通过备种方法(除了从BGP邻 居学习路由之外)向其BGP表添加路由的操作方式。 1. BGPnetwork命令 本节以及下一节假设已经配置了BGP IOS Software Release 12.3 no auto-Summary命令,请注意,对于Cisco Main血e来说, no autO■Summary命令是默认配置,而早期版 本则默认使用auto-Summary命令。本章后面的“auto-Summary对于redistribute以及 netwock命令的影响”一节将详细讨论auto-Summary命令对network命令及redistribute 命令的影响o BGP network路由器子命令与IGP使用的network命令完全不同, BGP network 命令的作用是指示路由器的BGP进程完成以下操作: 在路由器的当前IP路由表中查找与network命令中的参数完全匹配的路由,如果 撬 存在这样的IP路由,那么就将等价的NLRI注入到本地BGP表中。 攻城狮论坛(技术+生活)2群 1813097 1.3 构建BGP表15 按照这种逻辑,可以将IP路由表取出的直连路由、静态路由或IGP路由放到BGP 表中,并在今后进行宣告。如果路由器从IP路由表中删除了特定路由,那么BGP也 要从BGP表中删除相应的NLRI,并向邻居通告该路由已经被撤销。 请汪意,如果配置或默认使用了no 表1-5列出了BGP network ( network命令的一些关键特性,该命令的语法形式如下: ne亡WOrk-number [ mask BGP 表1-5 auto ̄Summary命令,那么IP路由必须完全匹配。 ne亡WOrk-maSk ] ) [ route-maP maP-tag ] network命令的关键特性 圭 ∴∴∴∵∴∵一∴ ∴∴三∴∴∴∵∴∴∴ / 假定便用默认的有类掩码 不配置掩码 配置n°autO-Summary命令后的匹配逻辑 lP路由必须同时匹配前缀和前缀长度(掩码) 配置aut゜-Summary命令后的匹配逻辑 如果netw゜rk命令列出的是有类网络,那么只要存在有类子网就匹配 将BGP路由的NExT_HOP添加到BGP表中* 使用IP路由的下一跳 通过network命令注入BGP进程的最大数量 受限于NVRAM和RAM network命令中的r°ute-maP选项的作用 过滤路由并控制PA(色括NEXT_HOP*) ★NEXT_HOP是一种BGP PA,表示下一跳IP地址,应该使用该下一跳IP地址到达NLRl 例1-4给出了图1-4中R5的network命令示例(由于R5的BGP邻居已经关闭, 因而BGP表仅显示了由network命令在R5上创建的BGP表项),可以看出R5利用 两条network命令将21.0.0.0/8和22.1.1.0/24添加到了BGP表中。 励1-4 透过″e!wo欣命令将路白安装勤BGP表砷 16 第1章 BGP操作基础 r Origin R|B-failure,S c〇des‥i一 Netw〇rk 工GP,e Next - S亡ale EGP,?一incomple亡e Metric Hop LocPrf Weigh亡 32768 0 32768 0 Pa亡h i i 网络30-39 通过redis出bute 图1-4 eigrp 6命令 BGP网络示意图(带IP地址) 2.从IGP、静态路由或直连路由重分发路由 BGP子命令redistribute可以重分发静态路由、直连路由以及IGP学到的路由, 本节将讨论这些BGP重分发操作的一些细微差别。 由于BGP不使用度量计算的概念,不为去往特定前缀的每条可选路由计算度量, 而是使用逐步递进的路径决策进程,通过检查各种PA来确定最佳路由,因而将路由 重分发到BGP中时不需要考虑度量的设置问题。不过,路由器可能需要为重分发功能 应用路由映射以控制PA,从而影响BGP的路径决策进程。如果为注人BGP的路由分 配了度量,那么BGP会将该度量值分配给BGP 口鉴别符) PA MED (Multi-Exit (通常也将该PA称为度量)。 Discriminator,多出 1.3 例1-5中的R6 构建BGP表17 (如图1-4所示)通过路由重分发操作从EIGRP进程6 中的routereigrp (由例1-5 6命令进行配置)安装其BGP表,并且重分发了一条静态路由, R6 上的EIGRP仅为网络30-39学习路由。本例的主要目标如下: ■ 为网络31和32重分发EIGRP路由; ■ 将静态路由重分发到网络34并将MED ■ 不能意外地重分发与EIGRP ■ 使用Cis∞ IOS Release (度量)设置为9; network命令相匹配的直连路由; 12.3默认的no 例1-5给出了意外重分发额外路由(由EIGRP auto-Summary设置。 network命令所匹配的网络10.0.0.0 的直连子网)的错误情况。为了解决这个问题,本例在后面增加了一个路由映射。 砌1-5 迈姓重分发捞作安装BGP表 18 第1章 BGP操作基础 Policy rou亡ingma亡Ches‥ show R6# ●一 ● ● O packe亡S,O by亡es access-1ist → 粥 一 一 ⑦ 缚 10 permi亡 32.0.0.0,Wildcardbits 7.255.255.255(1538 ma亡Ches) 20 permi亡 30.0.0.0,Wildcardbi亡Sl.255.255.255(1130 ma亡Ches) 此外请注意,每条路由的NEXT」工OP 么就是0.0.0.0 3. PA要么与重分发路由的下一跳相匹配,要 (对于直连路由以及指向NullO的路由来说)0 auto-summary对于redistribute以及network命令的影晌 与IGP相同, BGP auto-Summary命令也会创建一条有类汇总路由(只要该汇总 路由的任意子网存在)。但是与IGP不同的是, 总该路由器通过重分发操作注人的路由, BGP BGP auto-Summary路由器子命令仅汇 auto-Summary命令并不查询拓扑结构 中的有类网络边界,也不查询BGP表中的已有路由,而仅在路由器上查询通过 redistribute命令和network命令汪人的路由。 对于通过redistribute命令或network命令注人的路由来说,两者的处理方式有 所不同,这两条命令的处理方式如下。 ■ redistribute命令:如果重分发有类网络的任意子网,那么并不重分发该子网, 而是重分发该有类网络的路由。 ■ network命令:如果network命令列出了有类网络号及有类默认掩码或者无 掩码,并且该有类网络的子网存在,那么就注人该有类网络的路由。 虽然上述定义很清晰,但是仍然有必要强调以下几点:首先,对于重分发来说, auto-Summary命令会导致重分发进程仅将有类网络注人本地BGP表中,而不会注 人子网;但是对于network命令来说,即使配置了auto-Summary命令,根据本章 前面所说的处理方式,仍然会注人子网。除此以外,如果network命令与有类网络 号相匹配,那么只要IP路由表中存在该有类网络的至少一个子网, BGP就会注人 该有类网络。 例1 ̄6给出了auto-Summary命令的影响情况(本例以图1-2中的R5为例),步 骤如下。 第1步:通过redistribute命令将10.15.0.0/16汪人到BGP中。 第2步:配置自动汇总,清除BGP,此时BGP表中仅剩下10.0.0.0/80 第3步:禁用自动汇总和重分发。 第4步‥配置network lO.14.0.O lO.0.0.0、 mask netWOrk lO.12.0.O mask 255.254.0.0以及network 255.255.0.0命令。由于这3条命令中只有最后一条命令与当前路由精 确匹配,因而仅将该路由注人到BGP中。 第5步:启用自动汇总,从而注人10.0.0.0/8以及最初的10.14.0.0/160 1.3 构建BGP表19 自动汇总,劝路白哀/的影俯 励1-6 R5# show r゜uter no R5# run bgp l be bgp gynchronization show Routing ip route en亡ry At亡ached lO.0.0.O f〇r (4 lO.0.0.0/8, known 4 subne亡S connec亡ions) Redis亡ribu亡ing Adver亡ised C router 5 by via bgp lO.14.0.0/16 is 99, e|grP 5 bgp rou亡e-maP direc亡Iy S 5 Only15 connec亡ed, directly L〇OPbacklO connected, LoopbacklO C lO.12.0.0/16 is direc亡Iy connec亡ed, Loopbacklo C lO.13.0.0/16 is directly connec亡ed, LoopbacklO R5# show BGP table Sta亡us ip bgp version codes: S r origin codes‥ conf En亡er 工GP, Nex亡 r゜uter (config-rou亡er) clear R5# sh゜w BGP table Sta亡us ip Hop S |D ip ★ valid, > bes亡, i - internal, Me亡ric LocPrf Weigh亡 32768 0 bes亡, i - in亡ernal, Path ? One Per line. End with CNTL/Z. 5 auto-Surmary ^z bgp codes: codes: conf 5.5.5.5 ?一inc〇mPle亡e S 2, is local SuPPreSSed, i d RIB-failure, 一 工GP, Next e Hop - router |D damped, S h is 5.5.5.5 his亡Ory, * valid, > S亡ale EGP, ?一inc〇mPle亡e Me亡ric LocPrf 0.0.0.0 En亡er is his亡Ory, ★ version Network R5# h S亡ale EGP, cormands, bgp # bgp r origin - e rou亡er damped, t R5(C〇nfig-rou亡er)# R5# d 0.0.O.0 configuration R5(COnfig)# R5 一 10.15.0.0/16 R5# local R|B-failure, i Network ★> 2, is SuPPreSSed, Weigh亡 32768 0 Pa亡h ? t configura亡ion R5〈config)# router cormands, bgp One Per line. End wi亡h 5 R5 (COnfig-router) # no auto-Surmary R5 (COnfig-router) # n゜ redist c゜nn r゜ute-maP Only15 CNTL/Z. 20 第1章 BGP操作基础 4.手动汇总与As一瞅1.H路径属性 如前所述,路由器可以通过network命令和路由重分发操作向BGP表添加表项。 此外, BGP还支持通过手动路由汇总机制将汇总路由宣告给邻居路由器,使得邻居路 由器能够学到其他BGP路由。使用aggregate-address命令的BGP手动汇总与 auto-Summary完全不同,它可以基于BGP表中的任意路由进行汇总,并创建任意前 缀长度的汇总路由,而且并不始终抑制成员子网的宣告(虽然可以这么配置)。 聚合路由必须包含AS_PATH PA (与BGP表中NLRT的要求相似),为了更好地 理解该命令的使用方式,需要进一步弄清楚AS二PATH AS_PATH ■ ■ ■ ■ PA最多包含以下4个组件(称为字段[segment]) AS_SEQ AS PAo (ASSequence, : AS序列); SET; AS_CONFED_SEQ AS CONFED (AS Confederation Sequence, AS联盟序列) ; SETo 最常用的字段就是AS_SEQo AS_SEQ的概念与图1-1中的AS_PATH相似,表示 路由在宣告过程中经历的所有有序ASN列表。 不过, aggregate-address命令可以创建AS_SEQ必须为空的汇总路由。如果汇总 路由的成员子网拥有不同的AS_SEQ值,那么路由器就无法简单地创建AS_SEQ的精 确表示,因而使用空AS_SEQo但这样做可能会引人路由环路,因为路由器收到更新 消息后,会使用AS_PATH (特别是AS_SEQ)的内容,这样就可以忽略包含自身ASN 的前缀。 如果汇总路由包含空AS_SEQ,那么可以利用AS_PATH的AS_SET字段来解 决上述问题。字段AS_SET保存了所有成员子网的AS_SEQ字段中全部ASN的无 序列表。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 1.3 构建BGP表 21 例1-7首先给出了路由器使用空AS_SEQ的汇总路由的示例,然后给出了利用 as-Set选项创建AS_SET字段的相同汇总路由。 篇冉聚合矽as-Se!迸贸 励1-7 !pre R3# g 蛔i雷hha莲藩耽聂篮襄轴斑朗雕驶∵主耽执讶藏撬瑟蕊嚣摊寓筹鼠蔑瑟蘸∵芒寒蠢接蕊靛等蔓滚辨攒忘 摹 l鼻薯'等 howip bgplinclude 23 ★> 23.3.0.0/20 4.4.4.4 0 451 ★> 23.3.16.0/20 4.4.4.4 0 45i ★> 23.3.32.0/19 4.4.4.4 0 45i ★> 23.3.64.0/18 4.4.4.4 0 45i ★> 23.3.128.0/17 4.4.4.4 0 45i 4.4.4.4 0 45 硅.轧g′1帛 *> 婆 圭i翼 6781 ■ :鹅部ill蹦t吾媳甘锋茧摊窜电蠢眺肆肆扛毛芯乎舱厅躬.镭茁好排蛀肆持建窜辑ヽ 蜜蠢 蛀搜 鲁窘. !e !:R ■ ■ ■ 丰h蛊亡 Rl# g 膏h事 琵事荒鲁 性锑娥琳爵斑蕊 宝露 增斟 瑰生, hipbgplbegin∴Network Ne亡WOrk Next *>i21.0.0.0 3.3.3.3 Metric Hop 3.$鼻$.♂∴∴∴3.局.3-3 LocPrf 0 100 0 100 鼻 *>i2 氰 Pa亡h Weight 45i 0 0i '摹 毯 摹 __ 王封等嚣 ■ 十 → Rl# showip bgp BGP rou亡Ing 三∴二 → → ∵ 23.O.0.0 亡able 23.0.0.0/8,VerSion for en亡ry Pa亡hs‥(1available,bes亡 #1,亡able 45 Defaul亡一IP-Routing-Table) Flag:Ox800 Adver亡ISed 亡O uPdate-grouPS: 2 Local (a搁reg魂镀襄fty ff曼 薯 .3.3(me亡ric2302976)from3.3.3.3(3.3.3.3) 3.3 O !盘帛, 3.3∴3.宝),(received&used) 塘 rigin|GP,me亡ricO,l〇CalprefloO,Valid,in亡ernal,a亡Omic-aggrega亡e,bes亡 ~ ._ _ 主扛盈事毒?8瞒瞒王常售事抽皂持挪榔藩姆rQ出古肆把瞒瞅蕊击ヽ王靛蛀讳竭毒蕊餐蕊蠢莹登蕊蕊蕊鹃蛰蕊鞍 !i班 _-_ヽ 地尊c雌芒忠耽t一槛」兽翻糠舞暮工肆的盘竟昏砷1秘搬'暮搬毒钝患斌咏恕常杂靛燕凿藩藕毒睦漾蜂 摹 '摹 ship bgp nei172.16.16.1received-r゜uteSlbegin∴Netw゜rk R6# Ne亡WOrk *> Next Metric Hop LocPrf Weight Path 45i 21.0.0.0 172.16.16.1 0123 ∴….锥.$ 172.16.16.1 0策蜜缮i *>瑟3 簧 R3# 十 ● ● 二 aggregate-address 23.0.0.0 255.0.0.O ff攒鸥撑摊H獭蒸巍磐塌蘸韶 ’ ′ 摹 Rl# 一' 篆募 幽 渊溢潍J‘翻 醒臻赣獭撼篙 ship bgplbeginNetwork Ne亡WOrk Nex亡 Hop Metric LocPrf Weigh亡 Pa亡h 攻城狮论坛(技术+生活)2群 1813097 . 22 第1章 BGP操作基础 ★>i21.0.0.0 R6# 0 100 3.3.3.3 0 100 ship bgp nei172.16.16.1 Ne亡work ★> 3.3.3.3 21.0.0.0 Nex亡 45i 0 received-routeSlbeginNetwork Hop Metric 172.16.16.1 LocPrf Weight Pa亡h 123 i 0 45 aggregate-address命令在创建汇总路由时采取的操作如下。 ■ 如果当前BGP表不包含汇总路由内的任何NLRI路由,那么就不会创建该汇 总路由。 ■ 如果从聚合路由器的BGP表中撤销了聚合路由的所有成员子网,那么该聚合 路由也将被撤销(也就是说,路由器将告诉其邻居,该聚合路由已经无效)。 ■ 将汇总路由的NEXT_HOP地址(列在本地BGP表中)设置为0.0.0.00 ■ 分别为每个邻居将汇总路由的NEXT_HOP地址(宣告给邻居)设置为路由器 的更新源IP地址。 ■ 如果汇总路由中的成员子网拥有相同的AS_SEQ,那么就将汇总路由的 AS_SEQ设置为与成员子网的AS_SEQ完全相同。 ■ 如果汇总路由中的成员子网的AS_SEQ不同,那么就将新的汇总路由的 AS_SEQ设置为空。 ■ 配置了as-Set选项之后,路由器将为聚合路由创建AS_SET字段,但此时汇 总路由的AS_SEQ必须为空。 ■ 与常规处理方式一样,如果将汇总路由宣告给eBGP对等体,那么路由器在 发送更新消息之前会将自已的ASN附加到AS_SEQ中。 ■ 如果使用了summary-Only关键字,那么将抑制所有成员子网的宣告操作。 如果没有配置summary-OnIy关键字,那么将宣告所有成员子网。如果配置 了suppress-maP选项,那么将宣告单个子网。 如例1-7所示,图1-4中的R3汇总了路由23.0.0.0/8,然后R3以As 123作为 AS_SEQ中的唯一AS宣告该汇总路由。由于有些成员子网的AS__PATH为45,而有 些成员子网的AS_PATH为678 45,因而R3为聚合路由使用的是空AS_SEQo该例的 后面还显示了as-set选项的作用。 拄:违可取鞋过襄他方洼薄加汇总躇由。首先鞋由嚣暮事刨肆一寨静薄鞋由工鞋常雕接凸nu栅 为目的接口h棘席通过啪加时击命令匹醋相应拇葡藕′长糜械注入汪患辑冉。诗洼寓,接方洼不 过鸿肆闺成员手网 1.3 表1-6列出了与aggregate-address、 构建BGP表 23 autO-Summary以及network命令相关的路由 汇总特性。 表1-6 汇总:将汇总路由注入到BGP中 仅汇总通过redistribute命令注入该路由器 全部 auto-Summary(配合重分发) BGP的路由 BGP表中已有的任何前缀 aggregate-address 全部、一个也不或者单个 子网 仅汇总通过netw゜rk命令注入该路由器BGP auto-Summary(配合network命令) 一个也不 的路由 5.向BGP添加默认路由 本章讨论的最后一种向BGP表添加路由的方法就是将默认路由注人到BGP中。 可以采取以下3种方式将默认路由添加到BGP中: ■ 利用network命令注人默认路由; ■ 利用redistribute命令注人默认路由; ■ 利用 BGP 子命令 neighbor 7re咕肋or-id defauIt-Originate [ route-maP 讹讹船一朋砷一阴″孵]将默认路由注人BGPo 使用network命令将默认路由注人BGP时,本地路由表中必须存在路由0.0.0.0/0, 并且需要配置network O.0.0.0命令。虽然可以通过备种途径学到默认IP路由,但是如 果IP路由表删除了默认路由,那么BGP也要从BGP表删除默认路由。 通过重分发方式注人默认路由需要额外配置一条命令‥ defaultinformation originateo首先,路由表中必须存在默认路由,例如,创建一条指向nu110的默认路由。 然后,利用redistribute 由这种特殊情况来说, Cisco 利用BGP子命令neighbor static命令重分发该静态默认路由。需要注意的是,对于默认路 IOS要求配置BGP子命令defaultinformation ne助boJL材default-Originate [ route-maP originateo JOute-J#ap一栅″re ] 将默认路由注人BGP时,不会向本地BGP表添加默认路由,而是向指定邻居宣告默 认路由。事实上,该方法默认根本就不检查IP路由表中是否存在默认路由(但是可以 检查)。利用route-maP选项,被引用的路由映射将检查IP路由表(而不是BGP表) 中的表项,如果与路由映射的permit语旬相匹配,那么就将该默认路由宣告给邻居。 例1-8给出了Rl的相关示例,在Rl向R3宣告默认路由之前,需要通过route-maP Check-default来检查默认路由的存在性。 24 第1章 BGP操作基础 励7-8 #居″e佃帕or 6. defa″什O句inafe命令届彻居宣告耕以窟白 ORIGIN路径属性 利用不同的方法将路由注人本地BGP表中时, 代码: IGP、 EGP或Incomplete BGP会分配3种BGP (不完全的)o 息,说明特定NLRI第一次注人路由器BGP表的方式o ORIGEN PA ORIGENPA提供了一种一般性的描述信 show ip bgp命令输出结果的 顶部列出了这3种可能取值的说明,而且在每个输出行的最后列出了每条BGP路由的 实际ORIGEN代码。表1-7列出了这3种ORTGEN代码的名称、 Cis∞IOS使用的单字 母缩写形式以及为路由分配特定代码的原因o ORIGEN代码及其含义隐藏了一些与许多人直觉相反的概念。首先,对于从IGP 重分发到BGP的路由来说,实际分配的ORIGEN代码是Incompleteo其次,不要将 EGP与eBGP相混淆, ORIGEN代码EGP表示外部网关协议,指的是一种非常古老的 已被废弃的BGP前身,事实上,如今根本就不应该看到ORIGEN代码EGPo BGPORIGIN代码 表1-7 」∴山h中十亡 lGP l EGP e lncomplete ? -{-一三∴∴∴∴∴∴ network.aggregateaddress(在某些场合)以及neighb°rdefault+D巾ginate命令 EGP(ExteriorGatewayProtocol,外部网关协议),不针对特殊命令 redistribute、aggregate-address(在某些场合)以及default-information Originate命令 1.3 构建BGP表 25 对于由aggregate-address命令创建的汇总路由来说,其ORIGIN代码也比较复杂, 其规则如下: ■ 如果没有使用as-Set选项,那么该聚合路由将使用ORIGEN代码i; ■ 如果使用了鹅-Set选项,并且所有被汇总的成员子网的oⅢGN代码均为i, 那么该聚合路由的ORIGEN代码为i; 如果使用了as-set选项,并且至少有一个被汇总的成员子网的ORIGⅡ寸代码 ■ 为? ,那么该聚合路由的ORIGN代码为? 。 7.向邻居宣告BGP路由 前面主要讨论了BGP将路由注人本地路由器BGP表中的相关工具o BGP路由器 可以从本地BGP表中取出路由并将这些路由的子网宣告给BGP邻居。本节将继续分 析BGP表,因为BGP路由宣告进程是从BGP表中提取路由并宣告给邻居路由器的(这 些路由会被添加到邻居的BGP表中)。此后将在本章最重要的一节“构建IP路由表” 中详细讨论BGP将路由安装到IP路由表中的处理规则0 8. BGP更新消息 BGP表拥有了路由、路径及前缀等信息之后,路由器就要将这些信息宣告给邻居 路由器,为此路由器需要向邻居发送BGP更新消息。图1-5给出了BGP更新消息的 通用格式。 已撤销路由字段的长度(字节) 已撤销路由(变长) 路径属性字段的长度(字节) 路径属性(变长) 前缀长度 前缀(变长) 前缀长度 前缀(变长) ' 图1-5 BGP更新消息格式 ' ' 26 第1章 BGP操作基础 每条更新消息都包含以下3个主要部分。 ■ 被撤销路由字段: ■ BGP通过该字段告诉邻居已经失效的路由。 路径属性字段:列出了每条路由的PA信息,如NEXT二HOP和AS_PATH等。 ■ 前缀和前缀长度字段:定义每个NLRIo 更新消息的中间部分是一组PA集,更新消息的末尾是共享相同PA集以及PA值 的所有前缀(NLRI)。如果路由器需要宣告一组NLRI,而且每个NLRI都至少有一个 不同的PA设置,那么就需要为每个NLRI都发送一条独立的更新消息。如果多条路 由都共享相同的PA (如特定ISP拥有的前缀),那么就可以在单条更新消息中包含多 个NLRI,这样就能大大降低路由器的CPU负荷并减少链路带宽的占用0 9.确定更新消息的内容 路由器根据BGP表的内容构造更新消息的内容,但路由器必须选择将哪些BGP 表项的子网宣告给每个邻居,而且每个邻居可能都不一样。表1-8总结了BGP不会将 哪些路由包含在发送给每个邻居的路由更新中的相关规则,并在表1-8的后面给出了 更为详细的描述信息。 表1 ̄8 BGP不会将哪些路由包含在路由更新中的规则 两者 非“最佳”路由 两者 与出站BGP过滤器中的deny语句相匹配的路由 iBGP 从iBGP学到的路由* ★如果使用路由反射器或联盟,那么该规则将会有所放松或改变 BGP仅宣告被认为是最佳路由的路由以到达指定子网(NLRI)。如果BGP路由器 仅学到一条到达特定前缀的路由,那么路由决策进程将非常简单,但是如果要在去往 同一前缀的多条路径中选择最佳路由时,那么BGP将按照冗长的BGP决策进程来确 定最佳路由(有关BGP决策进程的详细信息,请参见第2章的“BGP决策进程”一 节)。假设所有路由器都没有配置任何影响决策进程的路由策略,那么就可以将BGP 决策进程归结为以下4步对比过程。 第1步:选择AS二PATH最短的路由。 第2步:如果AS二PATH长度相同,那么学自eBGP的单条路由将优于一条或多 条iBGP路由。 第3步:如果此时仍未选出最佳路由,那么就选择去往NEXT_HOP的IGP度量 最小的路由。 第4步:如果IGP度量相同,那么就选择宣告路由器的BGPRID最小的学自iBGP 1.3 构建BGP表 27 的路由。 除此以外, BGP还会根据NEXT」工OPPA值,将某些路由排除在最佳路由之外。 对于最佳路由的候选路由来说,其NEXT」工OP必须以下两者之一‥ ■ 0.0.0.0,因为该路由注人到了本地路由器之上; ■ 按照该路由器的当前IP路由表可达,也就是说, NEXT」工OP IP地址必须与 路由表中的某条路由相匹配。 由于NEXT」工OP PA对于BGP选择到达每个NLRI的最佳路径来说非常重要,因 而本节将解释相应的处理规则并给出一些案例。根据将路由宣告给iBGP对等体或 eBGP对等体的不同场景,可以将处理规则分为以下两种情况。在默认情况下,如果 发送给eBGP对等体,那么就会为每个邻居将NEXT」工OP更改为宣告路由器上的某 个IP地址,具体而言,就是更改为与该路由器用作BGP更新消息的源IP地址相同的 IP地址。如果发送给iBGP对等体,那么默认操作就是保持NEXT二HOP PA不变。利 用表1-9中的命令可以更改这两种默认操作行为。 表1-9 更改NEXT HOPPA的条件 iBGP 不改变NEXTLHOP neighbor...next-hop-Self eBGP 将NEXT_HOP更改为更新消息的源IP地址 neighbor¨.neXt-hop-unChanged 请注意,无法通过路由映射来设置NEXT_HOP PA,更改NEXT_HOP PA的唯一 方式就是使用表1-9列出的方法0 10.案例:决策进程以及NExT_HOP对BGP更新消息的影响 本节将通过几个案例说明利用BGP在图1-4所示网络中传播网络31.0.0.0/8的一 系列操作过程o R6通过重分发学自R9的EIGRP路由在网络30-39中发起相应的路 由(如例1-4所示)。本节将通过这些案例解释不同条件下BGP如何选择更新消息中 包含的路由。 第一个案例(如例1-9所示)主要讨论检查R6发送给Rl哪些路由、 些路由以及RI Rl收到哪 BGP表的最终表项的相关命令。第二个案例(如例1-10所示)检查上 述相同路由从Rl传播给R3的处理情况,包括与Rl不更改这些路由的NEXT_HOPPA 的默认行为相关的问题。最后一个案例(如例1-11所示)给出了Rl使用neighbor3.3.3.3 next-hop-Self命令的解决方案,以及对AS 励1-9 123中的BGP更新消息内容的影响情况。 R6剁居BGP将励络30-39发甚给Rl 1比山.沸三,二 性.讽 薯∴三蛊恕甚蚤哺壹汝蘸三÷ 攻城狮论坛 28 bbs.vlan5.com 第1章 #^_^# 版权归原作者所有 本资料仅供试读 BGP操作基础 R6# sh゜w BGP 亡able S亡a亡us ip bgp version codes: S r origin codes‥ i Network is 5, local SuPPreSSed, d R|B-failure, - 1GP, - e Nex亡 r〇u亡er S is h *> 32.0.0.0 0.0.O.0 32.1.1.0/24 10.1.69.9 R6# sh゜w BGP 亡able S亡atus ip bgp codes‥ S r origin codes‥ Ne亡W〇rk i 31.0.0.0 ★> 32.0.O.0 *> 32.1.1.0/24 Rl# sh゜W 亡able S亡atus Metric LocPrf ip S i 32.0.0.0 *> 32.1.1.O/24 number ip bes亡, i - in亡ernal, > bes亡, i - internal, > bes亡, i - in亡ernal, Pa亡h Weigh亡 32768 ? 32768 1 32768 ? - e Hop r〇u亡er |D damped, S is h 6.6.6.6 his亡Ory, * valid, S亡ale EGP, ?一inc〇mPle亡e Me亡ric LocPrf Weigh亡 156160 32768 32768 i 156160 32768 ? Pa亡h ? bgp COdes: sh゜W R工B-failure, version Neighbor d 0.0.0.0 ★> Rl# SuPPreSSed, 一IGP, > 172.16.16.1 l〇Cal 10.1.69.9 r To亡al 5, 156160 10.1.69.9 c〇des‥ or|g|n is Nex亡 ★> BGP neighbor version valid, ★ ?一incomple亡e 156160 *> 6.6.6.6 history, S亡ale EGP, H〇P ID damped, of bgp V is 7, l〇Cal SuPPreSSed, d R工B-failure, 一 工GP, - e prefixes surmary AS rou亡er |D damped, S is h lll.111.111.111 his亡Ory, ★ valid, S亡ale EGP, ?一incomplete 156160 0 0 0 678 i 156160 O 678 ? 678 ? 3 l begin MsgRcvd Neighbor MsgSen亡 TblVer |nQ OutQ Up/Down 2.2.2.2 4 123 55 57 7 0 0 00‥52‥30 0 3.3.3.3 4 123 57 57 7 0 0 00:52:28 3 4 678 53 51 7 0 0 00:48‥50 3 Rl# show ip bgp 攻城狮论坛(技术+生活)2群 1813097 . 1.3 例1-9解释了查看发送给邻居的更新消息内容的方式(使用show advertised-routeS命令) ip bgp ip bgp 构建BGP表 29 neighbor ,以及查看从邻居接收到的更新消息内容的方式(使用show neighbo‥.eCeived-routeS命令) o RFC 1771建议将BGP RIB划分为从每个邻 居接收到的更新消息以及发送给每个邻居的更新消息。大多数实现情况(包括Cisco IOS)都采用单个ⅢB,并通过标记来识别发送给每个邻居的表项以及从每个邻居接 收到的表项。 虽然携带advertised-routeS选项的show ip bgp neighbor命令可以列出将要宣告 给指定邻居的BGP表项,但是该命令的输出结果无法显示每条BGP表项的PA变化 情况。例如, R6的show ip bgp neighbor 172.16.16.1 advertised-routeS命令列出的网 络31/8的NEXT」工OP为10.1.69.9,后来R6在发送实际的更新消息之前更改了该 NEXT」工OPPA,此时的NEXT_HOP为172.16.16.60 从例1-9的最后可以看出,对于网络30-39中的3个前缀来说,虽然Rl知道每个 前缀的两条路径(AS_PATH 678和45-678) R6)的路径作为最佳路径。请注意, ,但每种情况下都只选择AS_PAVH最短(经 Showipbgp命令输出结果中的“>”表示该路由 是Rl的最佳路由。接下来的例1-10显示了R3的最佳路由选择结果,这些结果可能 会让人大感意外。 励1-10 硷查R3铂BGP表 30 第1章 BGP操作基础 例1-10不但列出了show ip bgp命令输出结果中一些不好理解的术语,而且还显 示了BGP的重要设计选项。首先,虽然show ip bgp命令输出结果中显示的“*”表 示“有效”,但实际上仅表示该路由是候选可用路由,在该路由确实可用并被添加到 IP路由表中之前,其NEXT二HOP必须可达。在某些情况下, Show ip bgp命令认为“有 效”的路由可能并不是可用路由,例1-10给出的就是这样的例子。 为了保证路由确实有效,每条BGP路由的NEXT_HOP都必须可达。在全部采用 默认设置的情况下,从iBGP学到的路由的NEXT_HOP eBGP路由器的IP地址。例如, IP地址就是最后宣告该路由的 R3经Rl去往31.0.0.0/8的路由的NEXT_HOP字段列 出的就是R6的IP地址(172.16.16.6)。但不幸的是, R3并没有去往172.16.16.6的路 由,因而BGP不会将该路由视为“最佳路由”。 此时可以采取以下两种简单方法来解决上述问题: ■ 使eBGP邻居的IP地址可达(实现方式是将该子网宣告到IGP中); ■ 在指向iBGP对等体的neighbor命令中使用next-hop-Self选项。 第一种解决方案通常很容易实现,这是因为很多eBGP邻居都在它们的neighbor 命令中使用接口IP地址,因而NEXT」工OP地址都位于与该AS直连的子网中。例如, Rl直连172.16.16.0/24,因而Rl可以很简单地将该直连子网宣告到该AS内的IGP中。 请注意,如果为BGP邻居使用环回接日地址,那么该解决方案就可能会出现问题。 例如,如果Rl被配置为引用R6的环回接口IP地址6.6.6.6,并且该环回接口处于工 作状态,那么Rl就必须拥有去往6.6.6.6的路由,但Rl很可能没有被宣告去往ASN 123 中的6.6.6.6的路由。 第二种解决方案是让路由器将NEXT二HOP PA更改为自身的某个IP地址,该地址 1.3 构建BGP表 31 极有可能已经存在于邻居的IP路由表中,该解决方案对于为eBGP对等体使用环回接 口地址来说也同样适用。例1-11给出了本解决方案的配置示例,例中的Rl通过 neighbor 由于R3拥有到达 next-hop-Self命令将自身(1.1.1.1)宣告为NEXT_HOPo 1.1.1.1的路由,克服了“NEXT二HOP不可达问题”,因而R3更改了自已的最佳路由 选择。 虽然例1-11主要说明的是iBGP对等体将NEXT_HOP设置为自身的配置方式, 但该例也很好地解释了BGP确定何时将路由宣告给iBGP对等体的决策方式。例1 ̄11 的处理次序如下(通过相应的命令输出结果可以看出这些事件)。 第1步‥本例是例1-10的延续, Rl将R6作为下一跳来宣告路由,并且R3无法 将这些路由用作最佳路由。 第2步:由于R3的最佳路由是eBGP路由(经R4),因而允许R3将这些路由宣 告给R20 第3步‥然后Rl更改其配置,使用next-hop-Self选项。 第4步:此时R3能够将学自Rl的路由用作R3的最佳路由。 第5步:由于此时R3的新最佳路由是iBGP路由,因而R3无法将最佳路由宣告 给这些网络。 励1-∥ … R3将励络30-39互’告给R2,然后R3撤筋落些锗白 蛊瑟廉接撵肆键裴韶,童薄 惑蕊窜韶摊蕊蔬眺 害事咀凳辱蛰亡肆 BGP versionis 亡able S亡a亡us codes‥ 7,localrou亡er 3.3.3.3 SuPPreSSed,ddamped,hhis亡Ory,★ r R工B-failure,S codes:i-1GP,e Origin |Dis S Ne亡WOrk Nex亡 - valid,> best,i一In亡ernal, S亡ale EGP,?一incomplete Metric H°P L°CPrf Weight Pa亡h 事鼓 割正眺健∴常 慧盖孽无理÷建 0 事籍 都梅 ★> 32.0.0.0 4.4.4.4 0 45 678i *> 32.1.1.0/24 0 45 678? 4.4.4.4 To亡alnumberofpref|XeS3 - R2# t ' showipbgp surmarylbeginNeighbor Neighbor V 1.1.1.1 4 123 212 210 7 0 0 曼二鸟∴慕.壹 4123 213 211 7 0 003:28:00 ASMsgRcvdMsgSent TblVer |nQOu亡QUp/Down S亡ate/PfxRcd 03‥27‥59 _._ Rl# ? c゜nf Enter 3 3 l t configurat|On Rl(COnfig)# COmmands,One Perl|ne.Endw|亡h CNTL/Z. routerbgp123 Rl(COnfig-rou亡er)# neigh 3.3.3.3 next-h゜P-Self !藉骤怒凝慧糖滤表吉澄蝉群隐蛀棱龋揽摊凝王搏毯撬愁褒簿鞘 挑眺凯挑 溜韶滤戳 聂藩莎键撑 蕊葬澄擞肆素澄掇轧 32 第1章 BGP操作基础 R3# show BGP 亡able S亡atus ip bgp version codes: S r origin ★ c〇des‥ is lO, 一 i 工GP, - e Ne亡w〇rk Nex亡 4.4.4.4 1.1.1.1 ★ 4.4.4.4 32.0.O.0 ★>i 1.1.1.1 ★ 4.4.4.4 32.1.1.0/24 router damped, S EGP, ? - show To亡al ip bgp neighbor of prefixes number sh゜w ip Neighbor bgp V surmary AS is 3.3.3.3 history, ★ valid, > bes亡, i - in亡ernal, inc〇mPle亡e Me亡r|C LocPrf 156160 156160 2.2.2.2 We|gh亡 Pa亡h O 45 100 0 蔼?8 0 45 100 0 678 0 45 0 678 0 1.1.1.1 ★>i 工D h S亡ale Hop *>主 R2# d R|B-failure, 31.0.O.0 R3# local SuPPreSSed, 100 678 ? ? 678 1 1 678 ? ? advertised-r゜uteS O l begin MsgRcvd Neighbor MsgSen亡 TblVer |nQ Ou亡Q Up/D〇un S亡a亡e/PfxRcd l.1.1.1 4 123 213 211 7 0 0 03:28:44 3 3.3.3.3 4 123 214 211 7 0 0 03:28‥46 0 11.在BGP更新消息中宣告路由的规则小结 BGP路由器在更新消息中发送路由时,需要遵循如下规则。 ■ 仅发送BGP表中列出的最佳路由。 ■ 向iBGP邻居发送路由时,不能宣告从其他iBGP邻居学到的路径。 ■ 不宣告已被抑制或被阻尼的路由。 ■ 不宣告已被相应配置过滤掉的路由。 本节重点讨论的是前两条规则,后两条规则的相关内容不在本书写作范围之内。 1.4 构建IP路由表 到目前为止,本章已经解释了如何构建BGP邻居关系、如何将路由注人到BGP 表中以及BGP路由器如何选择将哪些路由宣告给邻居路由器等内容。有些内容与BGP 选择去往每个前缀的最佳路由的BGP决策进程有关,在特定路由成为最佳路由之前还 必须满足一个附加约束条件,那就是NEXT_HOP必须可达。 本节将解释实现BGP终极目标(向IP路由表添加恰当的路由)的最后一步。虽 然简单来说,就是BGP为每个前缀选择已识别的最佳BGP路由并将这些路由添加到 IP路由表中,但是该过程需要满足一些约束条件,主要与AD (针对eBGP和iBGP 路由)以及BGP同步(仅针对iBGP路由)有关。本节将详细讨论这些约束条件。 1.4 构建IP路由表 33 1.4.1将eBGP路由添加到IP列表中 Cis∞ IOS软件在确定将哪些eBGP路由添加到IP路由表中时的规则很简单,只 要满足以下两个条件即可: ■ BGP表中的eBGP路由是“最佳”路由; ■ 如果从其他IGP或静态路由学到相同的前缀,那么BGP外部路由的AD必须 小于其他路由源的ADo 在默认情况下, Cis∞IOS认为eBGP路由的AD值为20,因而eBGP路由的AD 优于(小于)其他动态路由协议的默认AD (EIGRP汇总路由除外,其AD值为5)。 之所以会有这样的默认值,是因为从BGP学到的路由不应该是来自AS内部的前缀。 虽然在正常情况下很少将学自eBGP的前缀视为学自IGP的路由,但如果确实如此, 那么将默认优选BGP路由o BGP为eBGP路由、 iBGP路由以及本地(本地注人的)路由设置不同的AD,这 三类路由的默认AD值分别为20、 200和2000利用以下两种方法可以更改默认AD (有关这两种方法的详细内容请参考第9章的AD部分) ■ 利用BGP子命令distance bgp exrer72CJ/-C#st切72Ce : froter硼/一C7JstczJ7Ce /oca1-C#s‘仍Ce 设置从eBGP学到的前缀的AD、从iBGP学到的前缀的AD以及本地注人的 前缀的AD; ■ 利用BGP子命令distance c栅ZcrJ7Ce ( givc7枕rf wi舰cJJd7#Crs居) ) [ giv砧阴Cha;存/is/ l矿饼砌讹妇才′加]更改ADo 对于BGP来说, IP地址及子网掩码指的是为指定邻居配置的neighbor命令中使 用的IP地址,而不是该路由的BGPRTD或NEXTJIOPo ACL负责检查从邻居接收到 的BGP路由,并为所有与该ACL允许语旬相匹配的路由分配指定的AD值。 厂蒜 最后,需要对添加到IP路由表中的实际IP路由做进一步解释。该路由包含的前 裤撬缀、前缀列表以及下一跳IP地址与BGP表列出的完全相同(即使NEXT_HOP PA不 是直连网络中的IP地址),因而IP转发进程可能需要执行递归查询。例1 ̄12给出了 相应的配置示例,例中的R3拥有三条BGP路由,每条BGP路由的下一跳地址均为 1.1.1.1,该地址正是Rl的环回接口地址。从图1-4可以看出, R3与Rl之间没有公共 接口,去往1.1.1.1的路由列出了实际的下一跳IP地址(数据包将被转发到该地址)。 励1-12 R3# R3 /矽下一助软矽1.1.1.1铂L路白, sh゜wip ‘需妻迸绍工酵∴白查矽 r゜utelincll.1.1.1 D B 32.1.1.0/24[200/156160]vial.1.1.1,00:01:00 34 第1章 BGP操作基础 32.0.0.0/8[200/0]vial.1.1.1,00:01:00 翱蹦醒 Il ● ●l 伊 Ill B B 1.4.2 ll 后门路由 eBGP路由默认AD值(20)较低对于某些拓扑结构来说可能会产生一定的问题 (如图1-6所示),图中的企业1通过eBGP路由到达企业2的网络99.0.0.0,但这两个 企业希望使用从OSPF学到的路由经企业间专线进行通信。 AsN lol lsPl 图1-6 BGP后门路由的必要性 由于eBGP路由的AD (20)小于OSPF路由的AD (110),因而Rl使用其eBGP 路由去往99.0.0.00此时一种解决方式是配置distance命令以减小OSPF路由的AD值, 但BGP为此类场景提供了更好的解决方案,即使用network 例来说,如果Rl配置了路由器BGP子命令network backdoor命令。对于本 99.0.0.O backdoor,那么将会达 到如下效果: ■ Rl将为从eBGP学到的到达网络99.0.0.0的路由使用本地AD ■ Rl不通过BGP宣告网络99.0.0.00 (默认200); 按照该解决方案,如果Rl需要使用该私有链路去往企业2,那么就可以为每条前 缀都配置network backdoor命令。如果去往每条前缀的OSPF路由都处于正常运行状 态,那么Rl将优选OSPF路由(AD为110),而不会选择从eBGP学到的经Intemet 的路由(AD为20)。如果OSPF路由丢失,那么这两个企业仍然能够通过Intemet进 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 1.4 本资料仅供试读 构建IP路由表 35 行通信0 1.4.3 向IP路由表添加iBGP路由 对于Cis∞ IOS来说,将iBGP路由添加到IP路由表也要满足与eBGP路由相同 的两个条件‥ ■ 该路由必须是最佳BGP路由; ■ 与其他路由源相比(根据AD进行比较),该路由必须是最佳路由。 此外,对于从iBGP学到的路由来说, 如果使用no IOS还要考虑BGP同步问题。 synchronization命令禁用了BGP同步机制,那么将iBGP路由添加 到IP表中与将eBGP路由添加到IP列表中的处理方式完全相同。如果启用了BGP同 步机制(配置了BGP子命令synchronization) 从图1-7可以看出, 图1-7 ,那么就可以避免出现一些IP路由问题。 ASN678错误地禁用了BGP同步机制,从而产生了路由黑洞。 问题:未使用BGP同步机制而产生的路由黑洞 下面列出了图1-7中的BGP处理过程。 第1步: R5通过两条network命令将两条前缀(21.0.0.0/8和22.2.2.0/24)添加 攻城狮论坛(技术+生活)2群 1813097 . 36 第1章 BGP操作基础 到自已的BGP表中。 第2步: R5将这两条前缀宣告给R7,但R7并没有将这些前缀重分发到自已的 IGP中。 第3步: R7将这两条前缀宣告给R60 第4步:由于R6 (禁用了BGP同步)认为这些路由是“最佳”路由,因而R6 将这些路由添加到自已的IP路由表中。 第5步: R6将这两条前缀宣告给Rlo 上述过程出现了两个路由问题(如图中标示的A、 B)。首先是路由黑洞问题(标 示为A),出现路由黑洞的原因是R8没有去往BGP宣告的这两条前缀的路由, 有运行BGP (对于不与eBGP对等体直连的路由器来说很常见) , R7也没有将这两条 前缀重分发到IGP中,因而R8无法为这些前缀路由数据包。因此,虽然R6 包括AS 123中的路由器)试图通过AS R8没 (可能还 678来转发去往这两条前缀的数据包,但R8 却丢弃了这些数据包(因为路由黑洞)。 第二个路由问题(标示为B)出现在第5步,由于R6向其他AS 其能够到达这些前缀,从而进一步加剧了路由黑洞问题o (AS123)宣称 R6认为其BGP表中去往 21.0.0.0/8和22.2.2.0/24的路由是最佳路由,因而R6将这些路由宣告给Rlo根据拓扑 结构以及PA设置情况, 包发送给AS Rl会将这些路由视为最佳路由,从而将去往这些前缀的数据 6780但是根据前面的示例配置, Rl应该将经R3去往AS 45的AS二PATH 视为最佳路径。 虽然可以采用多种方案解决上述路由问题,但所有解决方案归根结底都必须让内 部路由器(如R8)学到去往这些前缀的路由,从而解决路由黑洞以及宣告这些路由所 带来的负面影响。针对这类问题的最原始解决方案是使用BGP同步并将BGP路由重 分发到IGP中,不过目前可以提供两种更好的解决方案。 ■ BGP路由反射器; ■ BGP联盟。 有关这两种解决方案的详细信息将在后面的章节进行讨论0 1.使用BGP同步并重分发路由 理解BGP同步的最好方式是结合希望使用该机制的场景进行分析。顾名思义, BGP同步就是将BGP路由重分发到IGP中,目前的ISP很少使用该方法,主要原因 是担心将大量BGP路由注人到IGP中。但是将BGP同步与重分发结合使用,就可以 解决与上述路由黑洞相关的故障问题。 了蒜 理解BGP同步的关键就是必须知道重分发解决的是路由黑洞问题,而BGP同步 谭臆解决的是将黑洞路由宣告到其他AS中的问题。例如,为了解决上述路由黑洞问题, 1.4 构建IP路由表 37 R7需要将这两条前缀重分发到ⅢP中(如图1-7所示),此时R8就拥有了去往这些前 缀的路由,从而解决了路由黑洞问题o R6的同步特性处理的是上述路由问题的第二个问题,要求R6在特定条件下才能 将这些前缀宣告给其他eBGP对等体(如Rl )oBGP同步通过控制BGP表项是否是“最 佳”路由来完成其功能。需要记住的是,仅当BGP表中的路由是“最佳”路由时,才 能将该路由宣告给BGP对等体o BGP同步机制通过如下方式来确定最佳路由问题: 不将BGP表中的iBGP路由视为“最佳”路由,除非通过IGP学到了完全相同的 前缀,并且该前缀目前位于路由表中。 从本质上来说, BGP同步机制为路由器提供了一种了解AS内部非BGP路由器是 否有能力将数据包路由到指定前缀的方法。需要注意的是,该路由必须是从IGP学到 的路由,因为R6上的静态路由无法为其提供其他路由器(如R8)是否已经学到或未 学到该路由的任何提示信息。再次以图1-7为例, R6通过ⅢP学到这些前缀之后, ⅢP 会将这些路由安装到IP路由表中,此时R6的同步机制就可以将BGP表中从BGP学 到的这些相同前缀视为最佳路由的候选路由,如果被选为最佳路由,那么R6就可以 将这些BGP路由宣告给Rlo 例1 ̄13从R6的角度显示了路由黑洞问题。例中的R6利用BGP子命令no SynChronization禁用了BGP同步机制。例1-13的后半部分则显示了R7将BGP路由 重分发到IGP之后的R6操作情况(此时R6已经启用了BGP同步机制)。 励1-13窟由黑沥(禁篇局步)与篇决方案(启居周步) R6# show 土p bgplbeginNetwork Ne亡WOrk ★ Nex亡 21.0.0.0 Me亡ric Hop 窑 * trace Tracing 亡he conf En亡er 亡〇 21.1.1.5 20 亡0 msec 20 msec router 0 123 0 100 0 45 45 20 COrmands, 45i 1 msec 〇ne Per 678 me亡ric One Per 1ine. End wi亡h CNTL/z. End wi亡h CNTL/Z. 3 - t configura亡ion R6(COnfig)# cormands, r゜uterbgp 678 line. i 1 →~- ヽ conf 0 rip R7(COnfig-router)#redis亡bgp En亡er 100 t configura亡i〇n R7(COnfig)# R6# 123 45 0 abor亡. sequence rou亡e 110.1.68.8 R7# Path 0 21.1.1.5 escape Type Weigh亡 172.16.16.1 22.2.2.0/24 R6# LocPrf 172.16.16.1 38 第1章 BGP操作基础 R6 (COnfig-r〇u亡er) synchronization # ^z R6(COnfig-r〇u亡er)# R6# clear R6# show BGP 亡able S亡a亡us ip ip bgp version codes: S r origin ★ bgp codes‥ i Ne亡WOrk 5, is local SuPPreSSed, d R工B-failure, 一IGP, Nex亡 e - Hop S router |D damped, h is 6.6.6.6 his亡Ory, EGP, Me亡ric L〇CPrf Weigh亡 R6# 7.7.7.7 show ip route l inc1 [120/4] R6# show ip bgp Ne亡WOrk 0 100 0 100 172.16.16.1 22.2.2.O/24 r>1 neighb゜r Next r>i22.2.2.0/24 via Hop valid, > bes亡, i - in亡ernal, ?一inc〇mPlete 172.16.16.1 r ★ S亡ale Pa亡h 0 123 0 45 0 123 0 45 45 1 45 i i i 21.0.0.0 lO.1.68.8, 172.16.16.1 Me亡ric 00‥OO‥15, Seria10/0.8 advertised-routeS LocPrf Weigh亡 l begin Netw゜rk Pa亡h 7.7.7.7 0 100 0 45 i 7.7.7.7 0 100 0 45 i 2.禁用同步并在AS内的所有路由器上运行BGP 解决路由黑洞的第二种方法就是简单地利用BGP将所有从BGP学到的前缀都宣 告给AS中的所有路由器。这样一来,所有的路由器都能知道这些前缀,从而可以安 全地关闭同步机制。但是该解决方案的缺点是需要在所有路由器上都引人BGP,而且 要求每对路由器之间都必须建立iBGP邻居连接(如果AS中有N台路由器,那么就 需要建立N(N-1)/2条邻居连接)。对于大型自治系统来说,这样做会存在大量对等连 接,从而严重影响BGP的性能及收敛时间。 由于BGP不会将iBGP路由(从iBGP对等体学到的路由)宣告给其他iBGP对 等体,因而BGP要求在AS内部建立全网状的iBGP对等连接。虽然该要求能够避免 路由环路,但是也带来了全网状iBGP对等连接问题(否则只有部分iBGP对等体能够 学到所有前缀)o BGP提供了两种有效工具(联盟和路由反射器)来减少AS内的对等连接数量,同 1.4 构建IP路由表 39 时还能预防路由环路并允许所有路由器都学到所有前缀。下面将逐一介绍这两种工具0 3.联盟 根据RFC 5065的定义,可以将部署BGP联盟(confederation)机制的AS划分为 多个联盟子自治系统,并将AS内的每台路由器都划分到其中的一个联盟子自治系统 中。位于同一个Sub-AS (Sub-Autonomous iBGP对等体(confederation 对等体(confederation eBGP iBGP peer) System,子自治系统)中的对等体是联盟 peers) ,位于不同Sub-AS中的路由器是联盟eBGP 。 联盟可以将路由传播给所有路由器,而不需要在整个AS内建立全网状的对等连 接。为此,可以在一定程度上将联盟eBGP对等连接视为真正的eBGP对等体。在 Sub-AS内部,联盟iBGP对等体之间必须建立全网状连接,因为它们与普通的iBGP 对等体操作特性完全相同,即联盟iBGP对等体之间不会相互宣告iBGP路由。联盟 eBGP对等体与eBGP对等体相似,因为联盟eBGP对等体可以将从联盟Sub-AS学到 的iBGP路由宣告给其他联盟Sub-ASo 联盟利用AS_PATH 责将 Sub-AS 添加到 AS_CONFED_SEQ PA来防止在联盟AS内部产生环路,联盟内的BGP路由器负 AS_PATH 中并作为 字段的一部分,称为 AS_PATH (ASLPATH最多包含四个组件[称为字段] : AS_SEQ、 AS_SET、 AS_CONFED_SEQ以及AS_CONFED_SETo有关AS_SEQ和AS_SET的详细信息可 参见前面的“手动汇总与AS_H盯H路径属性”一节)。 与AS_SEQ和AS_SET能够避免自治系统间环路一样, AS_CONFED_SEQ和 AS_CONFED_SET也能避免在联盟自治系统内部出现环路。联盟eBGP对等体在将 iBGP路由宣告给其他Sub-AS之前,该路由器必须确保目的Sub-AS不在AS二PATH AS_CONFED_SEQ字段中。以图1-8为例, 之后将这些路由宣告给Sub-ASN Sul)一ASN 65002和65003 65001中的路由器学到一些路由 ,然后这两个Sub-ASN中的路由器又 将这些路由宣告给对方,但是由于AS_CONFED_SEQ Sub-ASN中的路由器始终不会将这些路由宣告给Sub-ASN (标注在图中)的缘故,这两个 65001中的路由器。 图1-8给出了一个非常详细的联盟AS_PATH案例,图中带圆圈的数字标识的步 骤如下。 第1步: R45注人并通过eBGP将路由21.0.0.0/8宣告给AS 123,该路由的AS_JArH 为450 第2步: 规则, R3通过自已的两条iBGP连接宣告该前缀,但是根据Sub-AS内部的iBGP Rl与R2之间不会相互宣告该前缀。 40 第1章 BGP操作基础 AsN 图1-8 123 联盟中的As_mTH变化情况 第3步: StO-AS 65001中的路由器接照eBGP规则将21.0.0.0/8宣告给它们的联盟 eBGP对等体,但是首先要将自已的Sub-ASN添加到AS_PAVH的AS_CONFED_SEQ 字段中(这部分AS_PAVH显示在show ip bgp命令输出结果中的括号内[如图1-8所示]) 。 第4步:其他两个子自治系统均重复第2步所描述的相同操作。 第5步: R6和R9将备自的ASN添加到AS_CONFED_SEQ中之后,会将该路由 宣告给对方。 第6步: R9删除了AS二PATH中的Sub-AS信息之后,通过真正的eBGP连接宣 告该前缀。 完成上述步骤之后, 678 ASN 123中的所有路由器都将学到前缀21.0.0.0/8,而且ASN (对于本例来说就是R77)也将学到该相同前缀的路由,并且该路由工作正常,不 存在路由黑洞问题。从ASN 678的角度来看,它看到的路由实际上就是经ASN 和45的路由。需要注意的是, Sub-AS 回Sub-AS 65001,因为AS 本例的Sub-AS 65001、 123 65002和65003中的路由器不会将该前缀宣告 65001已经位于联盟AS二PATH中了。 65002、 65003并不是随便选择的o ASN 64512-65535属 于私有ASN,如果不需要将ASN宣告给Intemet或其他自治系统,那么就可以使用这 些私有ASNo联盟使用了私有ASN之后就可以避免如下问题:假如Sub-AS 65003使 1.4 用的是ASN 构建IP路由表 41 45,由于AS_PATH环路校验会检查整个AS上ATH,因而根本就无法将 图1-8中的前缀宣告给Sub-AS45,也就无法宣告给ASN6780使用私有ASN就可以 避免出现该问题。 联盟的技术要点如下。 ■ Sub-AS内部必须建立全网状连接,这是因为Sub-AS内部需要满足所有的 iBGP规则。 ■ 联盟eBGP连接在宣告iBGP路由的时候与常规eBGP连接完全相同(只要 AS二PATH校验结果显示该路由宣告不会产生环路即可) ■ 联盟eBGP连接在TTL (Time to Live,生存时间)的处理上也与常规eBGP 连接完全相同,这是因为所有数据包都默认使用TTL ebgp-multihop命令更改TTL ■ l (可以通过neighbor 。 联盟iBGP连接在备种问题的处理上与常规iBGP连接完全一致,如默认不更 改NExT」工OP ■ ) 。 o 路由器基于最短AS二PATH选择最佳路由时,联盟AS不在AS_PATH的长度 计算之列。 ■ 由于联盟路由器会从发送到联盟外部的更新消息的AS二PAVH中删除联盟 ASN,因而其他路由器并不知道联盟的存在0 4.配置联盟 虽然只要在本章前面介绍过的命令之外增加少量命令即可完成联盟配置工作,但 是将网络迁移到联盟机制却非常麻烦,这是因为此时不是在router 实的ASN,而是在BGP子命令bgp confederation bgp命令中配置真 identifier中配置真实的ASN,因而 迁移过程会导致一条或多条路由不可用。表1-10列出了常见的联盟命令及其功能。 配置联盟时使用的BGP子命令 表1-10 定义路由器的sub-AS routerbgps″b-aS 定义真正的As bgpconfederationidentifieras″ 将邻居As标识为其他Sub-As bgpconfederationpeerss″b-aS月 例1-14给出了图1-9所示拓扑结构的简单配置示例。 在图1-9的互连网络拓扑结构中, Rl位于Sub-AS65001中, R2和R3位于Sub-AS 65023中,例中的Rl和R3不是邻居。此时的前缀传播过程如下。 第1步: R3通过eBGP从AS45 (R4)学到前缀21.0.0.0/80 第2步: R3通过iBGP将该前缀宣告给R20 第3步: R2通过联盟eBGP将该前缀宣告给Rlo 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 AsN 图1-9 励1一四! 在AsN AS router no 45 123中利用联盟实现互连网络拓扑结构 123府励铂镁管 bgp 65001 synchronizati゜n bgp router-id bgp c゜nfederati゜n identifier bgp confederati゜n PeerS lll.111.111.111 123 65023 neighbor 2.2.2.2 remote-aS neighbor 2.2.2.2 ebgp-rmltih゜P neighbor 2.2.2.2 update-SOurCe neighbor 2.2.2.2 next-h゜P-Self neighbor 172.16.16.6 router no 本资料仅供试读 . bgp 65023 remote-aS 2 Lo゜Pbackl 678 65023 gynchronization bgp confederation identifier bgp confederation peers 123 65001 65001 neighb゜r l.1.1.1 remote-aS neighbor l.1.1.1 ebgp-m恤Itih゜P neighbor l. 1.1.1 update-SOurCe neighbor 3.3.3.3 rem゜te-aS neighbor 3.3.3.3 update-SOurCe 2 Lo゜Pbackl 65023 Lo゜Pbackl 攻城狮论坛(技术+生活)2群 1813097 构建IP路由表 1.4 43 ■ Router no 65023 bgp synchronization bgpIog-neighb゜r-Changes confederationidentifier123 bgp neighb°r 2.2.2.2 remote-aS neighbor 2.2.2.2 update-SOurCe neighbor 2.2.2.2 next-h゜P-Self neighbor 4.4.4.4 remote-aS neighbor 4.4.4.4 ebgp-multih゜P 2 neighbor 4.4.4.4 update-SOurCe Loopbackl 聂诅亡雷注常舵餐u窘 圭 Rl# 45 簿草莲膏忠耽毒. Nex亡 H〇P 21.O.0.0 3.3.3.3 22.2.2.0/24 3.3.3.3 ★ Me亡r|C LocPrf * 100 0(65023)45i 0 100 0(65023)45i 0 172.16.16.6 主嘛g主眼舞主增嘛 R6# 肆丰 亡吨e 亡芒咀嘻鼓第,巍卷 Pa亡h We|gh亡 0 172.16.16.6 *> 王 Loopbackl showip bgplbeginNetwork Ne亡WOrk ★> 65023 0 678 678 45 1 45 1 抛壹- showipbgp∴neighbor172.16.16.1received-r゜uteSlbeginNetwork Network Next Hop Me亡rlC LocPrf Weigh亡 Path r 21.0.0.0 172.16.16.1 0123 45i r 22.2.2.0/24 172.16.16.1 0123 45i 5.路由反射器 RR (Route Reflector,路由反射器)可以实现与联盟相同的效果‥不需要在iBGP 对等体之间建立全网状连接,允许AS内的所有iBGP路由器都学到全部iBGP路由, 并且能够避免路由环路。利用RR设计iBGP对等连接时,只要在iBGP对等体之间建 立部分网状连接,将某些路由器配置为RR服务器,允许这些服务器从它们的客户端 学习iBGP路由并将这些路由宣告给其他iBGP对等体。例1-10给出了RR设计方案 中的一些关键术语以及核心理念。此时只有RR服务器的操作规则比较特殊,客户端 以及非客户端设备都遵循常规的iBGP对等体操作规则。 图1 ̄10给出了前缀11.0.0.0/8在As中的传播过程,步骤如下。 第1步: Rll通过eBGP学到前缀11.0.0.0/80 第2步: Rll使用常规的iBGP规则,向Rl发送更新消息。 第3步: Rl通过向所有其他客户端发送更新消息来反射路由。 第4步: Rl也向所有非客户端路由器反射路由。 第5步‥ 非客户端路由器遵循非RR规则,通过eBGP向R77发送更新消息。 44 第1章 BGP操作基础 AsN 123 AsN 图1-10 199 使用单个RR以及四个客户端和两个非客户端的基本流程 只有充当RR的路由器才使用修改后的操作规则,其他路由器(包括客户端与非 蠢 客户端)甚至都不知道RR的存在,而且也不改变操作规则。表1-11列出了RR的操 作规则,其操作规则与RR从哪种类型的BGP对等体收到前缀有关。表中列出了可以 学习前缀的源端以及RR将前缀信息反射给哪些类型的路由器。 向不同类型的邻居反射前缀 表1-11 ∴ 目 目 客户端 刀≡ 刀≡ 非客户端 E己 刀≡ 否 eBGP E己 E≡ 刀≡ 刀≡ 有一种情况RR不会反射路由,即RR从非客户端路由器收到路由后, RR不会将 该路由反射给其他非客户端。其原因在于RR与非客户端及eBGP邻居之间的操作规 则完全遵从常规的iBGP对等体规则。也就是说, 其他非客户端iBGP对等体o RR不会将学自iBGP的路由反射给 RR操作规则差异与客户端何时向RR发送前缀或者RR 何时决定将前缀反射给客户端有关。 一个(或多个) 设计方案允许: RR及其客户端可以组成一个RR簇(cluster),采用RR的BGP 1.4 构建IP路由表 ■ 多个RR位于同一个RR簇中; ■ 多个RR簇(虽然多个RR簇仅在拥有物理冗余时才有意义)。 45 在多簇场景下,每个簇至少要有一个RR必须与其他簇中的至少一个RR建立对 等连接。通常在所有的RR之间都应建立直接对等连接,从而在所有的RR之间建立 全网状的RRiBGP对等连接。此外,如果有些路由器是非客户端路由器,那么也必须 将这些路由器包含在RR的全网状连接中(如图1-11所示)。图中的每台RR不但与其 他簇中的RR建立了全网状连接,而且也与非客户端路由器建立了全网状连接o RR簇3 RR簇2 图1-11多RR簇场景: RR以及非客户端之间建立全网状连接 对比表1-11和图1-11后可以看出,这种设计方案不但可能存在路由环路,而且 可能性非常大。不过, ■ RR可以通过以下工具来有效防止路由环路。 CLUSTER_LIST: RR在发送更新消息之前,会将自已的簇ID添加到称为 CLUSTER二LIST的BGP PA中,因而RR收到更新消息之后,如果在其中发 现了自已的簇ID,那么就会丢弃接收到的前缀。与联盟的AS二PATH相似, 该特性可以帮助RR避免在簇之间产生环回宣告。 ■ ORIGINATOR_ID:该PA列出的是将路由宣告到AS中的第一个iBGP对等 体的RTDo如果路由器在接收到的路由中发现ORIGENATOR二ID是自己的 BGPID,那么就不会使用或传播该路由。 ■ 仅宣告最佳路由:仅当RR认为指定路由是其BGP表中的“最佳”路由时, 46 第1章 BGP操作基础 RR才反射该路由。该规则进一步限制了RR所要反射的路由(与联盟相比, 该规则还有一个明显好处,那就是路由器一般只能看到较少的路由,特别是 无用、冗余的路由)。 例1-15给出了一个使用RR的简单示例。该设计方案包括两个簇,有两个RR (R9 和R2)和两个客户端(Rl和R3)。此时的前缀传播过程如下(如图1-12所示)o AsN123 图1-12 RR部署方案使用的修改后的AS123 第1步‥ R3通过eBGP从AS45 (用于例1 ̄15) (R4)学到前缀21.0.0.0/80 第2步: R3通过iBGP将该前缀宣告给R2 第3步: R2 (使用标准规则)。 (RR)从RR客户端收到前缀之后,通过iBGP将该路由反射给R9 (对R2来说是非客户端)。 第4步: R9 (RR)从非客户端收到iBGP路由之后,将该路由反射给Rl 客户端)。 AS 励1-15 123铂尺R/配置‘历个RR椭个客包赫 _∴主土{门∴二三二薯三∴干h击∵三击击÷h三击出正高主壳韭丰蛊三十叠∴∵∵世.∴∴_∴_∵∴三∴∴∵∵ router no bgp123 gynchronizacion ∴二内∵.f世∴."一三∴.〔∵∴ (其RR 构建IP路由表 1.4 neighbor 2.2.2.2 rem゜te-aS neighb゜r 2.2.2.2 update-BOurCe neighbor 2.2.2.2 next-hop-Self 123 L°゜Pbackl neighb゜r∴4.4.4.4 rem゜te-aS neighbor∴4.4.4.4 ebgp-multihop 255 4.4.4.4 update-g°urCe Loopbackl neighbor ! R2 Configurati〇n. ! manually ! designa亡es r゜uter n゜ bgp The 3.3.3.3 45 clus亡er which "1," set∴亡O (R3) as 工D will a would be default∴to lis亡ed as R2's BGP "0.0.0.1" in R|D, but cormand i亡 has ou亡Put. clien亡. 123 cluster-id l neighbor 3.3.3.3 rem゜te-aS neighbor 3.3.3.3 update-SOurCe neighbor 3.3.3.3 route-reflector-Client neighbor 9.9.9.9 remote-aB neighbor 9.9.9.9 update-SOurCe ! R9 ! clus亡er Configuration. r゜uter no The 123 L°OPbackl 123 Loopbackl configura亡ion is 亡O similar R2, bu亡 Wi亡h |D. bgp 123 gynchr゜nization bgp router-id bgp cluster-id 9.9.9.9 2 neighbor l.1.1.1 rem゜te-aS neighbor l.1.1.1 update-SOurCe neighbor l.1.1.1 route-reflect°r-Client neighb゜r 2.2.2.2 remote-aS neighbor 2.2.2.2 update-S゜urCe no 123 Lo゜Pba゜k2 123 Loopback2 aut゜-gumary R9# sh゜W BGP rou亡ing Pa亡hs‥ Flag: ip (1 21.0.0.O bgp 亡able en亡ry available, 21.0.0.0/8, for bes亡 #1,亡able VerSion 3 Defaul亡一工P-Rou亡ing-Table) Ox820 Adver亡ised to upda亡e-grouPS‥ 2 45 3.3.3.3 Origin (metric |GP, Origina亡Or‥ Rl# sh゜ BGP rou亡ing Pa亡hs: No亡 ip (1 bgp 2300416) me亡ric O, 3.3.3.3, from 2.2.2.2 l〇Calpref Clus亡er loO, lis亡‥ (2.2.2.2) Valid, in亡ernal, bes亡 0.0.0.1 21.0.0.O table en亡ry available, advertised 亡O any 21.0.0.0/8, for bes亡 #1,亡able VerSion 20 Defaul亡一IP-Routing-Table) Peer 45 3.3.3.3 Origin (me亡ric |GP, 2302976) metric O, from 9.9.9.9 localpref loO, (9.9.9.9) Valid, in亡ernal, bes亡 a been R2 gynchronization bgp 47 different 48 1.5 第1章 BGP操作基础 多协议BGP 接下来需要讨论BGP-4协议的扩展协议。利用该扩展协议,可以在PE Edge,提供商边缘)设备之间宣告客户VPN 路由。这些路由将被注人CE EIGRP、 (VIrtual Private (Provider Network,虚拟专用网) (CustomerEdge,客户边缘)设备。可以通过标准的BGP-4、 OSPF等多种动态路由协议或静态路由方式学习这些路由。 仅要求在提供商网络中运行MP-BGP (MultiprotocoI BGP,多协议BGP) 。从本质 上来说,每个MP-BGP会话都是一个内部BGP会话,这是因为MP-BGP会话是在属 于同一个自治系统的两台路由器之间建立的o MPLS/VPN体系架构需要运行MP-iBGP,这是因为此时的BGP更新消息需要承 载包含IPv4地址在内的多种信息。例如,对于MPLS (MultiprotocoI Label Switching, 多协议标签交换)三层VPN来说,更新消息必须承载VPNIPv4地址、 MPLS标签信 息以及扩展或标准BGP团体(Commundy)属性。 如前所述,上述BGP扩展协议的本质是为BGP提供附加能力,以允许BGP承载 IPv4地址以及典型BGP属性之外的更多信息。根据前面讨论的结果,在两个对等体 之间建立BGP会话时,需要通过打开消息交换初始的BGP参数(如ASN)o BGP中 的打开消息可以交换其他参数,其中就包括能力(C坤打il巾)参数。该可选参数的作 用是定义对等体可以理解并执行的能力类型,在这些能力当中就有一个多协议扩展能 力。该能力是通过多协议扩展应用来交换BGP引人的除标准IPv4地址之外的其他地 址。该进程要求创建一些额外的可选属性,以便为管理和注人这些非IPv4地址提供增 强功能。 具体而言, ■ MP-BGP引人了两个新的可选非传递属性。 MP_REACH」寸LRI (MultiprotocoI Reachable NLRI,多协议可达NLRT) :用 于宣告新的多协议路由。 ■ MP二UNREACH」恤RT NLRT) (MultiprotocoI Unreachable NLRI ,多协议不可达 :用于撤销之前由MP_REACH二NLRI宣告的路由。 为了更好地理解MP-BGP的操作特性,需要进一步解释这两个非传递属性o MP二REACH」ヾLRT可以宣告一组可达前缀及其下一跳信息,而第二个属性 MP二UNREACHJELRT则用于宣告一组不可达目的地。两个BGP发言者交换多协议数 据时,必须在能力交换阶段就这些能力达成一致o PE路由器向其他PE路由器发送MP-iBGP更新时, MP二REACHJELRT属性会包 含一个或多个三元组。表1-12列出了这些三元组所定义的取值情况。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 多协议BGP 1.5 49 MP-BGP属性 表1-12 ー 地址簇信忌 地址簇信忌可以标识更新消忌中携带的网络层协议 下一跳信忌 下一跳信忌是去往目的地的路径中下一台路由器的下一跳地址 NLRl NLRl负责管理多协议路由及下一跳地址的增加或撤销,NLRI前缀必须属于同一种地址簇 1.5.1多协议BGP的配置 大量的MP-BGP配置场景都可以通过以下步骤及配置命令来完成o MP ̄BGP的配 置过程比前面讨论过的典型BGP配置过程稍显复杂。为了支持跨服务提供商网络的多 PE-tO-PE会话以及客户可能希望在CE-PE侧协议运行eBGP的需求, MP-BGP的配置 过程需要引人更多的复杂性和语法变化。 前面已经讨论了MP-BGP规范定义地址簇的方式以及创建地址簇以允许BGP携带 除IPv4之外的其他协议的方式。地址簇可以有多种形式,例如, MPLS/VPN部署方案 中的地址簇称为VPN-1Pv4地址,比标准的IPv4地址长得多。此外需要注意的是,如果 激活了MP-BGP,那么就默认自动承载IPv4单播路由。该操作特性对于某些不希望如 此的应用场景来说就是一个潜在问题。例如,如果仅希望在网络基础设施中使用与应用 或协议相关的地址(与三层vPN类似) ,那么就可能会产生问题。为了改变该操作特性, 可以禁用IPv4单播前缀的自动宣告功能。例1-16给出了相应的命令语法格式。 励“6 bgp de角∥佃>4-"/cas!命令 Rl(c〇nfig)# r゜uterbgpl Rl(COnfig-r〇u亡er)# nobgpdefaultipv4-unicast MP-BGP配置过程的第二步就是定义并激活PE路由器之间的BGP会话。该配置 命令的语法具有很丰富的多样性,有些仅承载VPN-1Pv4路由,有些仅承载IPv4路由, 有些则同时承载VPN-1Pv4和IPv4路由o BGP会话的类型以及对等会话所承载的路由 规范取决于前面讨论过的地址簇。需要注意的是, BGP配置能够将指定路由重分发 进/出BGP,通常将该操作特性称为语境路由(context ̄based 为了完成上述配置任务,必须为PE路由器上配置的每个VRF routing) (VIrtual 。 Routing and Forwarding,虚拟路由和转发)配置一个BGP地址簇,以便在PE路由器之间承载非 IPv4路由。初始的BGP配置进程(还未使用地址簇规范的配置部分)就成为默认地 址簇,该默认语境就是“承载一切” ,可以配置任何非VRF会话或任何IPv4特有会话。 在默认地址簇中学到或宣告的任何前缀都要注人到全局路由表中。同样需要注意的是, 这些BGP会话的配置方式与前面讨论过的标准BGP会话的配置方式完全相同,唯一 的区别就是必须激活这些会话,激活会话可以使用neighbor命令(如例1-17所示)。 攻城狮论坛(技术+生活)2群 1813097 50 第1章 BGP操作基础 励“7 BGP标狰矽/P>4乾置 Rl(COnfig)# routerbgpl Rl(COnfig-rou亡er)# neighbor194.22.15.3 remote-aSl Rl(COnfig-r〇u亡er)# neighbor194.22.15.3 update-SOurCeloopbackO Rl(COnfig-rou亡er)# neighbor194.22.15.3 activate BGP进程利用与协议相关的地址簇来激活承载非IPv4前缀的MP-iBGP会话。通 过该配置可以为非IPv4前缀的交换进程创建相应的路由语境。例1-18给出了相应的 命令语法形式以及在路由器Rl和R2之间配置MP-iBGP会话所需的相关命令。 励1-18 地业蘑馏置 r゜uterbgpl Rl(C〇nfig)# Rl(COnfig-rou亡er)# ipv4 VPnV4 Address address-family? family Address family Rl(c〇nfig-rou亡er)# address-familyvpnv4 Rl(C〇nfig-rou亡er)# neighbor194.22.15.3 从例1-18可以看出, activate vPNv4地址簇的配置只需要一条命令,这是因为必须在全局 霹BGP进程中输人BGPneighbor配置命令,从而激活BGP会话以承载非IPv4前缀。 配置vPNv4地址簇时还需要为BGP配置增加一条命令,以支持MP-BGP特定的 扩展团体属性o IOS默认自动添加该命令,而且该命令对于指示BGP宣告扩展团体属 性来说是必需的。例1-19给出了该命令的语法形式。 励“9 启居扩展屠焰铬支挥能力 Rl(C〇nfig-rou亡er)# bo亡h neighbor194.22.15.3 Send S亡andard and send-COmmnity? Ex亡endedCormunity ex亡ended Send Ex亡ended Cormuni亡y a亡亡ribu亡e Standard Send S亡andard Cormuni亡y a亡亡ribu亡e at亡ribu亡es <Cr> 默认行为是仅发送扩展团体属性。如果网络设计要求为这些非IPv4前缀附加标准 廉 的团体属性,那么就可以通过neighbor 194.22.15.3 send-COmmunity both命令来更玫 该默认行为。 接下来需要通过服务提供商网络宣告这些非IPv4路由。为便于讨论,下面将通过 大量VPNv4配置来解释该配置语法。请注意, MP-iBGP通过MP-iBGP会话在PE路 由器之间交换路由信息,因而必须在BGP进程下配置路由语境,以告知BGP需要宣 告哪些vRF前缀。 可以在BGP进程的地址簇配置下完成上述配置任务,使用addressrfumily命令的IPv4 选项(如例1-18所示)。必须在BGP进程下使用备自的地址族配置每个VRFo此外,如 果需要通过服务提供商网络宣告前缀,那么就必须将这些前缀重分发到BGP中。 例1-20解释了利用vPNv4地址簇实现上述目标的配置示例。 1.5 >R尸之励铭∥P-BGP.重分发 励1-20 hos亡name |P Vrf rd Rl VPN_A l:100 rou亡e-targe亡 expor亡100:100 rou亡e一亡arge亡impor亡100:100 1P Vrf rd VPN_B l:200 route一亡arget exp〇r亡100:200 rou亡e一亡arge亡impor亡100‥200 in亡erface |P l〇OPbackO address interface 1P Vrf |P seria10 forwarding address in亡erface 1P Vrf |P 255.255.255.252 seria11 VPN_B 255.255.255.252 195.12.2.5 r|P version 2 address-family version ipv4 vrf VPN_A 2 redis亡ribu亡e network no vpN_A lO.2.1.5 forwarding address rou亡er 255.255.255.255 194.22.15.2 bgp l me亡ric l lO.0.0.O au亡O-Summary exi亡一address-family address-family version redistribu亡e ne亡WOrk no ipv4 vrf VPN_B 2 bgp l me亡ric l 195.12.2.O au亡O-Surmary exit-address-family rou亡er no bgp bgp l de王aul亡ipv4-unicas亡 neighbor 194.22.15.3 remo亡e-aS neighbor 194.22.15.3 update-SOurCe neighb〇r 194.22.15.3 ac亡iva亡e neighbor 194.22.15.1 remo亡e-aS neighbor 194.22.15.1 upda亡e-SOurCe address-family redistribute ipv4 r|P vrf VPN_A metric no auto-Surmary no synchroniza亡ion l exit-address-family address-family redistribu亡e ipv4 r|P vrf VPN_B me亡ric no au亡O-Surmary n° SynChroniza亡ion exit-address-family l l loopbacko l loopbackO 多协议BGP 51 52 第1章 BGP操作基础 address-family vpnv4 neighb〇r194.22.15.3 ac亡iva亡e neighb〇r194.22.15.3 send-C〇rmunity ex亡ended neighbor194.22.15.1ac亡iva亡e neighb〇r194.22.15.1send-COrmunity ex亡ended exit-address-family 备考任务 表1 ̄13列出了与BGP相关的一些重要RFCo 表1-13 第1章的协议与标准 BGP-4 RFc4271 BGPC゜nfederations RFc5065 BGPRouteReflection RFc4456 MD5Authentication RFc2385 表1-14列出了本章提到的所有BGP路径属性及其用途。 表1 ̄14 BGP路径属性 列出指定路由已经宣告过的AsN 周知强制属性 列出用于到达NLRl的下一跳IP地址 周知强制属性 AGGREGATOR 列出创建汇总NLRl的路由器的RID和AsN 可选传递属性 ATOMlcAGGREGATE 将汇总NLRl标记为汇总 周知自选属性 As 盯I ̄H NEXT HOP 该路径属性值表示注入BGP的路由来自何处‥i(lGP),e(EGP) 周知强制属性 ORIGIN 或?(incomplete[不完全的I) ORIGINATORID cLUsTER 日ST RR利用此蹿径属性来标识将NLRl注入AS的iBGP邻居的RID 可选非传递属性 RR利用此路径属性来列出RR簇ID,以避免环躇 可选非传递属性 表1-15列出并解释了在BGP表中安装表项的方法。 表1 ̄15 在BGP表中安装表项的方法总结 network命令 将路由宣告到BGP中,依赖于所配置的网络/子网在IP路由表中的存在性 重分发 提取IGP路由、静态路由或直连蹿由,不需要分配度量(MED) 要求至少有一个成员子网位于BGP表中,可选保持所有成员子网、抑制所有 手动汇总 子网的宣告或者抑制特定子网的宣告 多协议BGP 1.5 53 续表 一 default-infomationo巾ginate命令 要求IP路由表中有一条默认路由以及redistribute命令 携带可选的路由映射时,仅当躇由映射的允许语句与IP路由表相匹配时才宣告 neighbordefault-Originate命令 默认路由。不携带路由映射时,默认总是宣告默认路由 表1-16列出了与本章主题相关的一些常用Cis∞IOS命令。 第1章的命令参考 表1 ̄16 ー BGP模式;该命令可以创建MP-BGP会话,从而在PE address-familyvpnv4 设备之间构建>PNv4会话 aggregate-addressaddressmask[as-Set] BGP模式;该命令可以汇总BGP路由、抑制所有/部分 [summary-Only]【suppress-maPmaP-name] 咸员子网或者不抑制成员子网 [advertisemapmapr′lame∥a栅b山emapmapmame] BGP模式;该命令可以将本地注入的路由自动创建为有 auto-Summary 类汇总路由 BGP模式;在默认情况下,该命令可以告诉RR服务器 bgpclient-tO-ClientrefIection 将学自客户端的路由反射给其他客户端 BGP模式;该命令可以为RR服务器定义一个非默认RR bgpcluster-idc/″Sferid 簇ID BGP模式;对于联盟来说,该命令可以为整个AS定义 bgpconfederationidentifieras一月umber 一个其他自治系统可以看到的AsN BGP模式;对于联盟来说,该命令可以标识位于其他联 bgpconfederationpeersas-″″mbe′[...as一″″mber] 盟子自治系统中的邻居AsN BGP模式;在默认情况下,该命令可以告诉BGP为BGP bgplog-neighbor-Changes 操作中的重要变化创建日志消息 bgpr°uter-idfO-address BGP模式;该命令可以定义BGP路由器ID BGP模式;如果要将静态默认路由重分发到BGP中,那 default-inf°rmationoriginate 么就必须配置该命令 BGP模式;该命令可以为分配给重分发到BGP中的路由 defauIt-metricr)″mbe′ 设置默认度量,通常默认将每条路由设置成IGP度量 distance bgp toca+d′sfance ex!ema厂disfance/r)!ema+disfa″ce BGP模式;该命令可以为eBGP.iBGP以及本地注入的 BGP路由定义管理距离 54 第1章 BGP操作基础 neighbor(fO-addressIpee广g′Oap-name) BGP模式;该命令可以告诉路由器在发送给令瞩的BGP更新 default゜riginatelroute-maPmaP-r)ame】 消息中增加一条默认路由(在可选的路由映射设置的条件下) neighbor(佃-addressIpee厂g′Oap-″ame) BGP模式;该命令可以在BGP配置中添加描述性的文本 descripti°n!exf 说明 neighbor(佃-addressIpee广g′O″P-″ame) BGP模式;对于eBGP对等体来说,该命令可以将发送 ebgp-multihoplff/l 给对等体的数据色中的TTL设置为大于默认值1 BGP模式;该命令可以让IOS将NEXT_HOPPA重置为 neighborfO-addressIpee广grO″P-r)ameneXt-hop-Self 指定IP地址,该IP地址被用作发送给该邻居的更新消忌 所使用的源地址 neighbor(tO-addressIpee广g′O早P-name)password BGP模式;该命令可以定义发送给该邻居的所有BGP消 S″加g 患的MD5啥希函数使用的密钥 BGP模式;该命令可以将邻居的IP地址关联为对等体组 neighbortry-addresspeer-grouPPee广g′Oap-r)ame 的一部分 neighborpee厂grO∥P一″amePeer-grouP BGP模式;该命令可以定义对等体组的名称 neighbor(fO-addressIpeergroap一″ame)remoteas BGP模式;该命令可以定义邻居的AS asr″″mbe′ BGP模式;该命令可以管理性地关闭邻居,从而中断 neighb°r(佃一aCidressIpee′Lgrol仲-″ame)shutdown TcP连接 neighbor[fO-addfessIpee广g′Oap-″ame] BGP模式;该命令可以为邻居设置两个BGP定时器 timerskeepa“veho肋77e neighbor(try-addressl佃V6-addressIpee厂g′Oap-″ame) BGP模式;该命令可以为发送给该邻居的BGP消忌定 update-SOurCefrrfe′faα尹fypeinfe′face一″″mber 义源IP地址 netw゜rk(ne!wowh二″″mbe′[masknefwowh-maSk] BGP模式;该命令可以让IOS将已定义的前缀添加到 【r°ute-maPmaP-fag] BGP表中(要求该前缀必须位于IP路由表中) routerbgpas-″t/mbe′ 盒局命令;该命令可以定义ASN并让甫户进入BGP模式 SynChronization BGP模式;该命令可以启用BGP同步机制 timersbgpkeepa〃ve′70idf″77e BGP模式;该命令可以为所有邻居定义BGP定时器 Showipbgp[ne‘wowh]【″efwowhJmaSk] Ⅱonger-Prefixes][prefix-1istpre/取一ifef-″ame EXEC模式;该命令可以列出蹿由器BGP表的细节信患 lro山emap′Oute→77apra″re∥shorferpnefixesmaskJength】 Sh゜Wipbgpinjected-Paths EXEC模式;该命令可以列出在本地注入BGP的路由 理解与记忆 1.6 55 续表 Showipbgpneighbors[ne甸帕O广address] EXEC模式,该命令可以列出指定邻居收发的路由信患 [received-routeSlroutesladvertised-routeSl (Pathsregexp)ldampened ̄routeSlreoeivedpre欣ifer] EXEC模式;该命令可以列出指定对等体组的细节信患 Showipbgppeergroup[pee即(伸丑ame∥summary] EXEc模式;该命令可以列出每个BGP对等体的基本统 Sh゜Wipbgpsummary 计信患 1.6 理解与记忆 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试主题, 因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试主题0 1.6.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 1.6.2 定义关键术语 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: 路径属性、 等体组、 BGP表、 BGP更新消息、建立状态、 eBGP多跳、自治系统、 AS号、 MUITI_EXIT_PISC、 识符、 iBGP、 AS_PATH、 eBGP、 ORTGIN、 EGP、 NLRI、 BGP、对 NEXT」工OP、 LOCAL_PREF,路由黑洞、同步、联盟、路由反射器、联盟标 Sub ̄AS、路由反射器服务器、路由反射器客户端、路由反射器非客户端、联盟 AS、联盟eBGP、权重 1.6.3 推荐读物 Routing Cisco TCP月P, BGP-4 Intemet VI)lune Command Routing by IP JeffDoyle Con五guration Routing , by and Handbook Bassam ProtocoIs Jennifer , , by DeHaven Villian Carrol R. Parichurst Halabi by Zz山eer Aziz, Johnson Liu, Abe Martey, and Shamim Cisco WWW and , Architectures Thoubleshooting Faraz H Cisco. BGP支持页面提供了大量有用的参考信息(需要Cisco.con的用户名和密码) com/en/US佃ar血erftechAh3 6 5他8 0ftsd technolog)LSuPPOrt_Sub-Profocol : home.hrfu 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 本章主要讨论以下主题: ■ lPv4BGP同步、路径属性以及其他高级功能特性的 部署; ■ 快速收敛。 攻城狮论坛(技术+生活)2群 1813097 第2章 BGP路由策略 本章主要讨论用于定义BGP路由策略的常见工具o BGP路由策略定义的规则供一 台或多台路由器使用,主要实现如下目标‥过滤路由并影响BGP确定最佳路由的方式o BGP过滤工具通常都非常直观,不过AS_PATH过滤工具是个例外o 滤器使用正则表达式来匹配ASLPATH PA (Path AS二PATH过 A世ibute,路径属性) ,因而对于配置 工作来说具有一定的挑战性。除此以外,大多数BGP过滤概念都可以直接类比IGP 过滤概念。 本章讨论的另一个重点问题就是解释路由策略对BGP路径决策进程的影响方式。首先 解释BGP决策进程,然后解释决策进程中的每一步对于BGP确定最佳路由的影响方式0 2.1 ″我已经知道了吗? ”测试题 表2-1列出了本章的基本主题以及与之相应的测试题。 ″我已经知道了吗? 表2 ̄1 ”基本主题与测试题对照表 路由过滤与路由汇总 1一-4 BGP路径属性与BGP决策进程 5-7 配置BGP策略 8一-12 BGP团体属性 13一-14 得分 为了提高测试评价效果,请务必严格评分。参考答案请参见附录Ao l.假设需要配置BGP策略以过滤前两个八位组为20.128的/20所有前缀,那么下 面哪一项能够满足该过滤进程的匹配逻辑,仅匹配所描述的子网,而不匹配其 他子网? a. access-1ist l b. access-1ist lol c. ip prefix-1ist deny l 20.128.0.0 deny deny ip 0.0.255.255 20.128.0.0 20.128.0.0/16 0.0.255.255 eq 20 host 255.255.240.O 58 第2章 BGP路由策略 d. ip prefix-1ist 2 deny 20.128.0.0/16 ge 20 1e 20 2.路由器Rl部署了可运行的BGP,正在将子网1.0.0.0/8宣告给邻居2.2.2.2 (R2)。假 设在Rl上配置了一个名为正ed的路由映射以过滤网络1.0.0.0中的所有路由, 刚添加了一条router bgp子命令neighbor 2.2.2.2 route-maP fred Rl刚 outo此后没有输人 其他命令,那么下面哪一项(作为下一步)能够正确验证该过滤器确实过滤了指定 路由? a. Rl的show ip bgp neighbor 2.2.2.2 advertised-routeS命令输出结果将不再显示 bgp neighbor 2.2.2.2 advertised-routeS命令输出结果将反映被过 被过滤的路由 b. Rl的show ip 滤的路由,这些路由将显示代码r,表示“RTBfailure (RTB失败)” C.该过滤操作无法实现,也无法验证过滤结果,除非Rl运行了clear ip bgp 2.2.2.2 命令 d. show ip bgp命令没有任何选项能够确认该过滤操作是否已经实现 3●路由器需要匹配AS_PAVH包含333的路由,要求333不是AS_PATH中的第一个 ASN,但是不匹配包含33333的AS_PATHo那么下面这些语法正确的命令中哪一 项能够成为匹配正确AS_PATH的配置的一部分? a● ip filter-1ist l permit b● ip filter-1ist 2 permit.*333 c. ip filterLIist 3 permit.* d● ip filter-1ist4permit e. ip filterLlist 4. 5 ^.* 333.*$ 333 permit 333 $ ^.*_333.*$ Rl和R2是可运行的BGP对等体,下面的showipbgp命令输出结果显示了Rl从 R2收到的表项信息,同时显示了后来添加到Rl上的一些配置信息。在应用了正 确的clear命令使得这些新配置生效之后,下面哪些表项将位于Rl的BGP表中? Next Hop Me亡ric L〇CPrf ★>ill.10.0.0/16 2.2.2.2 4294967294 loo *>ill.11.0.0/16 2.2.2.2 4294967294 *>ill.12.O.0/16 2.2.2.2 4294967294 ! New router config bgp neighb゜r shown nex亡 l 2.2.2.2 access-1ist l distribute一Iist permit a. 11.10.0.0/16 b. 11.11.0.0/16 c. 11.12.0.0/16 d. 11.8.0.0/14 e.以上均不正确 ll.8.0.0 l in 0.3.255.255 Weigh亡 Pa亡h O 4 1 33333 10 200 44 100 0 4 1 33333 10 200 44 100 0 4 1 404 303 202 .工.工.工 Network 2.1 “我已经知道了吗? ”测试题 59 5.下面关于BGP路径属性类型的描述,哪一项是正确的? a.使用周知属性的BGP特性必须包含在每条BGP更新消息中 b.创建特定BGP部署方案的程序员不必实现可选属性 c.不能将非传递属性宣告到其他AS中 d.自选属性包含敏感信息,应该对更新消息进行MD5加密以保护私密性 6.对于BGP决策进程来说,检查完AS_PATH长度之后会检查下面哪项信息? a.最佳ORIGEN代码 b. LOCAL c. MED PREF d.下一跳是否可达 7.对于BGP决策进程来说,下面哪一项数值越大越优? a. ORIGEN b. LOCAL c. WEIGHT d. MED PREF e.到达下一跳的IGP度量 8.下面哪一项不会宣告给BGP邻居? a. WEIGHT b. MED c. LOCAL d. ORIGEN PREF 9.从下面的RI show ip bgp命令输出结果可以看出, BGP决策进程通过哪个步骤确 定了最佳路由(假设下一跳IP地址可达)? ★ * Nex亡 Hop Me亡ric LocPrf Weigh亡 Pa亡h 10.1.2.3 4294967294 100 0 4 1 33333 10 200 i 2.2.2.2 4294967294 100 0 4 1 33333 10 200 i 2.2.2.2 4294967294 100 0 4 1 404 *> 11.10.0.0/16 505 303 44 44 .⊥.⊥.⊥ Ne亡WOrk 202 a.最大权值 b.最佳ORIGEN代码 C.最小MED d.最大LOCAL_PREF e.较优的邻居类型 f.以上均不正确 10.从下面的RI show ip bgp命令输出结果可以看出, 定了最佳路由(假设下一跳IP地址可达)? BGP决策进程通过哪个步骤确 60 第2章 BGP路由策略 Ne亡W〇rk Next H〇P Me亡ric L〇CPrf Weight Pa亡h 10.1.2.3 3 120 10 4 1 ★>i 2.2.2.2 1 130 30 4 33333 10 * 2.2.2.2 2 110 20 4 1 505 ★ 11.10.0.O/16 i 33333 404 10 44 200 200 44 303 ? i 202 ? a.最大权值 b.最佳ORIGIN代码 c.最小MED d.最大LOCAL二PREF e.较优的邻居类型 f.以上均不正确 11.下面列出了利用文本编辑器输人并在后来粘贴到路由器Rl配置模式下的命令情 况。此时Rl与包括3.3.3.3在内的多个对等体拥有可运行的eBGP连接, Rl通过 包括3.3.3.3在内的邻居学到了11.0.0.0/8和12.0.0.0/8的多个子网。粘贴上述命令 之后又输人了clear命令,以使上述变更生效。那么下面关于Rl宣告给3.3.3.3 的路由的AS_PATH的描述,哪一项是正确的? router bgp neighb゜r ip l 3.3.3.3 prefix-1ist r゜ute-maP match ip ZZZ route-maP matchll Permit address seq ZZZ 5 Out permit ll.0.0.0/8 1e 32 lo prefix-1ist matchll a.不会出现任何变更,因为上述配置中存在语法错误,因而Rl将拒绝这些配置 b.去往网络11.0.0.0/8内部子网的路由的AS上ATH属性中将包含3个连续的1 c.去往网络11.0.0.0/8内部子网的路由的AS_PAVH属性中将至少包含4个连续的1 d.去往网络12.0.0.0/8内部子网的路由的AS_PATH属性中没有1 e.去往网络12.0.0.0/8内部子网的路由的AS上ATH属性中将包含1个额外的1 12.如果要在BGP表中将多条iBGP路由(拥有完全相同的目的前缀/长度的表项) 标记为最佳路由,那么必须实现或配置下面哪一项内容? a.在路由器BGP模式下包含maximum-Paths 70w朋ber命令,并且将路径数量设 置为大于1 b.在路由器BGP模式下包含maximum-Paths ibgp rmJnder命令,并且将路径数 量设置为大于1 c.这些路由在BGP决策进程的属性对比过程中一直保持相同,直至检查这些路 由的ORIGN代码 d. BGP无法将BGP表中的多条路由都视为同一前缀的最佳路由 13.下面哪种BGP 盟AS之外? a. LOCAL AS COMMUNETY值(在设置的情况下)表明不应该将该路由转发到联 2.2 b. NO ADVERT c. NO EXPORT d. NO EXPORT 路由过滤与路由汇总 61 SUBCONFED 14.假设BGP对等体在BGP更新消息中设置并发送了COMMUNITY值,那么下面 哪一项是正确的? a. b. BGP决策进程会在检查最短AS上ATH长度之前增加检查COMMUNETY值 BGP决策进程会将COMMUNITY值最小的路由视为最佳路由,除非 COMMUNITY被设置为某些特殊的保留值 c. COMMUNITY不会直接影响BGP的决策进程 d.以上均不正确 墓本主题 2.2 路由过滤与路由汇总 本节将讨论过滤BGP路由时用到的4种常见工具: ■ 分发列表(Distributionlist) ■ 前缀列表(Prefixlist); ■ ■ AS_PAVH过滤器列表(AS_PATH ; filter list) i 路由映射(Routemap)。 除此以外, aggregate-address命令还可以过滤汇总路由中的成员子网。本节将详 细讨论这5种可选配置方式(本章将在最后一节“BGP团体属性”中讨论利用特殊 BGP COMMUNITY值过滤BGP路由的方式) 。 上述4种主要工具都具有如下特点: ■ 这些工具都能过滤人站和出站更新消息,都可以按照每个邻居或对等体组进 行过滤; ■ 对等体组配置要求Cis∞ IOS软件仅对更新消息执行一次路由策略操作,而不 是对每个邻居都执行一次路由策略操作; ■ 不能将过滤器应用于对等体组中的单个邻居,必须将过滤器应用于整个对等 体组,或者将指定邻居配置到对等体组之外; ■ 每种工具的匹配规则都要检查BGP更新消息的内容,包括BGPPA以及NLRI 信息; ■ 如果更改了过滤器的配置,那么就必须运行clear命令,这样才能使变更后的 过滤器生效; 62 第2章 BGP路由策略 ■ clear命令可以利用软重配(softreconfiguration)特性来部署变更操作,而不 需要将BGP对等体中断后再重启。 这些工具的区别在于它们所能匹配的BGP更新消息中的内容。表2-2列出了每种 工具所用的相关命令以及匹配更新消息中的NLⅢ表项的不同方式。 NLRl过滤工具 表2-2 / 、 ∴ 一 一 - 一 . .● 一 ●● 睫 . ● ● ▲ ● ● ● ● ● . ● . - 一 一 - ● . 一 ● ● ● ▲ - . . .▲ :- 主 ▲ .▲ 抽.= 一 ●. . . 一 一 ● ● ● ● 一 .● ● ' . 酮=….■. ' 珊 .▲ 本节首先通过匹配NLRI、分发列表、前缀列表及路由映射的使用来解释路由过 滤技术,然后讨论通过BGP过滤器列表来匹配AS_PAVH信息以过滤路由更新中的 NLRI表项的方法0 2.2.1根据NLRl来过滤BGP更新 BGP分发列表与IGP分发列表的区别之一就是BGP分发列表可以使用扩展ACL 来匹配前缀及前缀长度,而与IGP过滤工具配合使用时,从分发列表调用的ACL则 无法匹配前缀长度。例2-1显示了扩展ACL利用ACL命令的源地址部分匹配前缀并 利用ACL命令的目的地址部分匹配前缀长度(掩码)的匹配配置方式。 对于prefix-1ist和route ̄maP命令来说, BGP与IGP的匹配规则完全相同。例如, 这两条命令的列表末尾都隐含了deny操作,可以在prefix-1ist和route-maP命令的末 尾增加一个匹配所有路由的表项来更改该隐含操作。 图2-1给出了例2-1所用网络的一些重要信息,例2-1显示了执行相同过滤任务的 前缀列表、分发列表以及路由映射配置示例,它们都基于NLRI过滤BGP更新。对于 本例来说, AS 123中的4台路由器建立了全网状连接, R3从AS45学到了一组前缀, 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 路由过滤与路由汇总 2.2 63 然后利用过滤机制不在发送给R3的3个邻居的更新消息中发送两个前缀(22.2.2.0/4 和23.3.16.0/20)。本例为每个邻居都使用了不同的过滤工具。 来自网路 21、 AsN 123 22和23 <的多条路由 雷宴---一 圭、> ′ l 图2-1 AS123中的全网状iBGP连接以及从AS45学到的路由 励2-1砌/勃酵白瑰射、分发砌表以皮筋缀砌表在R3上实彪路冉膀 R3 Configura亡ion. BGP added router la亡er bgp 亡he Only 亡O Rl in 亡he Upda亡es and R2 cormands are route-maP neighb°r 2.2.2.2 distribute-1ist ! exac亡Iy ip ACL matches ma亡Ching acces鲁-1ist exac亡Iy host 23.3.16.O deny ip host 22.2.2.O ip any ! The prefix ! any ge or for a l°Se-2 prefix and host le ma亡Ches parameter ma亡Ches all the exact means each prefixes, deny 5 seq lo deny ip prefix-1ist prefix-1°Se-2 seq 15 permit ! by ! fil亡ered ! matches ! rou亡e ! Nex亡, maP ACL, by implied 亡WO and has then l Iose-2, all deny Prefixes are aS Well as reSPeC亡ively. clause wi亡h ma亡Ched permit a defaul亡 O.0.0.0/0 the omission Prefix. exac亡 ac亡ion to of AIso, deny 亡hat end ac亡ion, implied fil亡ered of the they deny' are rou亡e do permit亡ed rou亡es not are map: ma亡Ch ac亡ually Because clause 亡he lo of C|ause. lo prefixes, begin Nex亡 Wi亡h the two sla亡ed for fil亡ering highligh亡ed. Network H°P Me亡ric the permit 32 1e rou亡es 亡WO The at∴亡he by∴亡he leng亡hs; that 23.3.16.0/20 PaSSing o亡hers. prefix only Iose-2 seven bgp Ne亡WOrk ACL 亡he rmaP-10Se-2 ip to fil亡ering address R3 sh°w refers and 亡hose map, 22.2.2.0, 22.2.2.O/24 seq r゜ute and 亡he Chang|ng prefix-10Se-2 The and 255.255.255.0, matches prefix-1゜Se-2 ! 23.3.16.O prefixes line prefix-1ist R3# be 255.255.240.O prefix-1ist ip will 255.255.255.O h°St ip match 亡ha亡 Note R9 ゜ut of ip route-maP to any list line 亡he shown. |゜Se-2 extended ip third are fil亡ering 0ut rmaP-1゜Se-2 255.255.240.O masks deny Permit filtering poin亡; 123 l.1.1.1 This at∴this example. neighb゜r ! related亡O fil亡ered LocPrf Weigh亡 Path *> 21.0.0.0 4.4.4.4 0 45 i ★> 22.2.2.O/24 4.4.4.4 0 45 i 攻城狮论坛(技术+生活)2群 1813097 ACL the . 64 第2章 BGP路由策略 4.4.4.4 ★> 23.3.32.0/19 4.4.4.4 ★> 23.3.64.0/18 4.4.4.4 ★> 23.3.128.0/17 To亡al number of ! The ! c〇rreC亡 亡WO ! resul亡S COuld R3# next 4.4.4.4 sh゜w 4.4.4.4 prefixes cormand ip be bgp 7 shows Prefixes wha亡 have seen Nex亡 en亡ries been for neighbor Network .工.⊥.⊥.⊥.⊥ 23.3.16.0/20 5 5 5 5 5 4 4 4 4 4 23.3.0.0/20 *> 0 0 0 0 0 ★> 亡he R3 will removed, Upda亡e l.1.1.1 adver亡ise Wi亡h sen亡∴亡O only R2, advertised-routeS H〇p Me亡ric LocPrf 亡O five but l Rl. i亡is begin Weigh亡 n〇亡 21.0.0.0 4.4.4.4 O 45 i 23.3.0.0/20 4.4.4.4 O 45 i ★> 23.3.32.0/19 4.4.4.4 O 45 i *> 23.3.64.0/18 4.4.4.4 O 45 i *> 23.3.128.0/17 O 45 i ! Nex亡, ! af亡erwards, R3# R3 of coni Enter 4.4.4.4 prefixes adds an R3 configura亡ion prefix believes router cormands, bgp it list for should neighbor send all R9 (9.9.9.9). seven R3 (COnfig-rou亡er)# neigh (COnfig-rou亡er)# ^Z ip bgp neighbor Ne亡WOrk Nex亡 One Per line. End wi亡h 9.9.9.9 prefix-1ist 9.9.9.9 advertised-routeS H〇p Metric 0ut prefix-10Se-2 LocPrf l begin Weigh亡 Network Pa亡h 21.0.0.0 4.4.4.4 O 45 ★> 22.2.2.0/24 4.4.4.4 O 45 i *> 23.3.0.0/20 4.4.4.4 O 45 i i ★> 23.3.16.0/20 4.4.4.4 O 45 i *> 23.3.32.0/19 4.4.4.4 O 45 i ★> 23.3.64.0/18 4.4.4.4 O 45 i ★> 23.3.128.0/17 4.4.4.4 O 45 i number of prefixes ! |ns亡ead of ! and connection ! soft ! prefixes. TCP 亡he cormand R3# clear R3# show Ne亡WOrk ip ip 亡O bgp bgp Next clear 7 ip 亡〇 Perform 9.9.9.9 neighb゜r Hop 9.9.9.9 bgp R9, R3 a uses sof亡 cormand, 亡he clear Which ip bgp reconfiguration. Now 9.9.9.9 Me亡ric advertised-routeS LocPrf Weight l 21.0.0.0 4.4.4.4 0 45 23.3.0.0/20 4.4.4.4 O 45 i ★> 23.3.32.0/19 4.4.4.4 O 45 i ★> 23.3.64.0/18 4.4.4.4 O 45 i ★> 23.3.128.0/17 4.4.4.4 O 45 i of prefixes cl〇Se 9.9.9.9 R3 0ut fil亡ers 亡he or BGP Clear 亡he neighbor ip bgp c〇rreC亡 亡wo ★ begin Network Pa亡h ★> number w〇uld 0ut *> To亡al R9. CNTL/Z. ★> To亡al However, 亡O prefixes 123 R3 show same t R3(COnfig)# R3# The here. 5 ou亡bound s亡ill Shown Network ★> number 亡ha亡∴亡he listed. Pa亡h ★> To亡al Note prefixes i 5 1.过滤NLRl的路由映射规则 利用路由映射过滤NLRI的规则相对比较直观:将更新消息与路由映射进行对比 并根据第一条匹配语旬过滤路由(或者不过滤路由) 。不过路由映射在某些方面可能会 产生一定的混淆,后面将详细解释利用路由映射过滤BGP路由时可能产生的潜在混淆 问题。 由于路由映射以及被引用的ACL或前缀列表都会配置deny和permit响应操作, 2.2 因而很容易与它们的使用场景产生混淆o 定义的是过滤NLRT 路由过滤与路由汇总 65 route-maP命令的响应操作(deny或permit) (deny)或允许通过(permit),而ACL或前缀列表中的响应操 作deny或permit表示的则是NLRT与route-maP语旬匹配(ACL/前缀列表中的 permit)或者不匹配(ACL/前缀列表中的deny)。 以例2-1为例,除了被名为Iose-2的ACL过滤掉的两条前缀之外, rmap-lose-2 permit lO将匹配所有NLRIo由于语旬10配置了permit响应操作,因而 将宣告所有匹配路由(本例中未被过滤掉的所有路由) 射末尾隐含的deny route-maP ,然后该路由映射再根据路由映 all规则过滤其他两条路由。 作为一种可选方式,路由映射也可以简单地将route-maP rmaP-lose-2 deny lO命 令作为初始语旬,仅匹配需要被过滤掉的两条前缀。由于该route-maP命令中有关键 字deny,因而第一条语旬就能过滤掉这两条路由。对于这类路由映射来说,还需要配 置第二条匹配全部路由的语旬并配置permit操作(如果要匹配路由映射中的所有 NLRI,只要简单地省略route-maP中的match命令即可。对于本例来说,只要增加 route-maP rmaP-Iose-2 20命令即可[无子命令] ,这样就可以匹配其余的所有路由并允 许宣告这些路由)0 2.软重配 例2-1的最后显示了BGP的一种功能特性一软重配。软重配特性允许BGP对 等体在不关闭邻居连接的情况下再次应用路由策略。如果要再次应用路由策略, IOS要求使用携带in或out选项的clear命令o Clear ip bgp ( ★ l 刀e上gfzbor-aC7dZress I Cisco clear命令的通用语法格式如下: peer-groZ4)一刃a砌e ) [ s゜ft [ in l ゜ut H 如果仅使用选项so耽,那么就表示同时应用人站和出站策略配置。如果包含关键 字in或out,那么就可以将策略重配限制在期望的方向上。 虽然Cisco IOS自动支持发送更新消息时的软重配功能,但是必须配置BGP以支 持人站更新消息的软重配功能。如果要支持软重配功能, 发的BGP更新信息。利用neighbor 7Ze砂加rid BGP必须记住为每个邻居收 soft-reCOnfiguration inbound命令,可 以让路由器为从指定邻居接收到的更新消息保存一份备份(IOS自动为发送的更新消 息保存备份)。利用这些可用的更新消息, BGP可以在不关闭邻居连接的情况下,很 容易地将这些变更后的过滤策略再次应用到更新消息上。 如果要应用变更后的路由策略,从而影响发送给邻居或者从邻居接收到的更新消 息,就必须清除邻居连接。虽然软重配特性可以很容易地完成这类变更操作,但是对 于影响路由本地注人BGP表的配置变更操作来说,软重配特性则无能为力。这是因为 软重配特性仅重新处理更新消息,而通过redistribute或network命令将路由注人BGP 的操作则无法通过更新消息进行处理。 66 第2章 BGP路由策略 3. BGP前缀列表、分发列表以及路由映射的对比 虽然前缀列表和分发列表都在BGP更新消息的NLRI上应用它们的匹配规则,但 是前缀列表可以实现更灵活的前缀长度匹配功能。这是因为前缀列表可以匹配指定范 围内的前缀,从而让匹配的最大前缀长度小于32,如命令ip lO.0.0.0/8 ge 16 1e prefix-1ist testl permit 23就可以匹配一定范围内的前缀长度。如果希望利用ACL的分发列 表完成相同的匹配策略,那么就必须使用多个命令行或者很复杂的通配符掩码。 对于大量BGP过滤任务来说,路由映射与前缀列表、 ACL以及AS二PATH过滤器 列表相比都没有什么明显优势。如果期望的路由策略仅根据前缀/长度的匹配情况来过 滤路由,那么与直接使用分发列表或前缀列表相比,路由映射没有任何优势可言。与 此相似,如果路由策略的目标是仅基于AS_PATH过滤器的匹配情况来过滤路由,那 么与直接使用neighbor filte山ist命令调用AS_PAVH过滤器相比,路由映射也没有任 何优势可言。 路由映射可以为BGP的路由策略配置提供以下独特功能‥ ■ 可以将前缀/长度、 ■ 可以设置BGPPA以控制BGP的路由选择o AS_PATH或其他BGPPA等多种匹配规则组合在一起; BGP用来控制最佳路由选择的很多功能特性都要用到路由映射,这一点将在本章 的后面小节进行讨论0 2.2.2 利用aggregate-address命令过滤汇总路由的成员子网 利用BGP路由器子命令aggregate ̄address进行手动BGP路由汇总可以实现灵活 的路由过滤能力,可以不将汇总路由的任何成员子网或者仅将汇总路由的部分成员子 网宣告到BGP表之外。利用允许部分子网而不允许其他子网的能力, 命令可以仅过滤部分路由o aggregate-address aggregate-address命令支持以下过滤选项‥ ■ 使用关键字summary-Only,可以不宣告汇总路由的所有成员子网; ■ 省略关键字summary-Only,可以宣告汇总路由的所有成员子网; ■ 省略关键字summary-Only并利用关键字suppress-maP引用路由映射,可以 宣告汇总路由的部分成员子网,而过滤其他成员子网。 选项suppress-maP背后的匹配规则有点儿复杂,该选项需要引用路由映射,与路 由映射permit语旬相匹配的所有成员子网都将被抑制。也就是说,将过滤路由映射所 允许的所有路由,而不宣告这些路由。虽然路由器并不会真地从自已的本地BGP表中 删除这些被抑制路由,但是却会抑制这些路由的宣告操作。 例2-2显示了suppress-maP选项的工作方式。例中的汇总路由为23.0.0.0/8,路 由过滤的目标是允许宣告除23.3.16.0/20之外的所有成员子网。 路由过滤与路由汇总 2.2 励2-2 #居aggregafe-address ! The R3# COrmand firs亡 sh ip bgp s早pPreSS-maP命令进蒋锗由 below neigh lis亡S l.1.1.1 all BGP routes advertised ̄routeS in I ne亡WOrk 23. 23 include ★> 23.3.O.0/20 4.4.4.4 0 45 i ★> 23.3.16.0/20 4.4.4.4 O 45 i ★> 23.3.32.O/19 4.4.4.4 O 45 i *> 23.3.64.0/18 4.4.4.4 O 45 i ★> 23.3.128.0/17 4.4.4.4 O 45 i ★> 23.4.0.0/16 4.4.4.4 O 45 ! The ! rou亡es ! access-1ist ! will ! on ip ACL below (defaul亡). be 亡he permit-1 router ip ip sh The SuPPreSS-1 address uSeS a means 亡hat∴亡he also cormand, a permit Permit 亡ha亡 clause, clause 亡he one surmary-Only 亡he allowing and 678 and all other references rou亡e permi亡亡ed keyword subne亡S i denies to was als° by be 亡he ACL used no亡 advertised. h゜St permit 255.255.240.0 lo permit-1 123 R3 ip logic with permit-1 23.3.16.O host bgp Below, R3# . N〇亡e extended 23.0.0.0 aggregate-address ! route-maP aggregate-address route-1naP match 23.3.16.0/20 The suppressed. access-1ist Permit ma亡Ches 67 (after bgp a neigh clear 255.0.0.O ip l.1.1.1 bgp as-Set∴suppress-maP *∴soft cormand) advertised-routeS l no SuPPreSS-1 longer 亡he advertises rou亡e. 23.3.16.O include R3# suppressed rou亡e. ! adver亡ised outside 土p "s" bgp neigh lef亡 The Side route the of 亡he remains sh゜w in ip the bgp cormand 亡able; i亡is ou亡Pu亡 simply advertised-r゜uteS l 23 include 0 45 s> 23.3.16.0/20 4.4.4.4 0 45 ★> 23.3.32.0/19 4.4.4.4 0 45 ★> 23.3.64.0/18 4.4.4.4 0 45 *> 23.3.128.0/17 4.4.4.4 0 45 ★> 23.4.0.0/16 4.4.4.4 0 45 ●工 4.4.4.4 8 7 6 23.3.0.0/20 '⊥ ★> PA来过滤BGP更新 如果要通过匹配AS_RATH AS_PAVH过滤器o 亡he longer rou亡er. l.1.1.1 通过匹配AS_PATH for n° .⊥.⊥.工.工 sh on 亡he No亡e ! R3# 2.2.3 亡he ! PA来过滤路由,那么就可以使用Cisco IOS提供的 AS_PATH过滤器的配置方式与BGP分发列表及前缀列表相似,需 要在列表中指定匹配规则并通过neighbor命令加以应用。主要步骤如下。 第1步‥利用ip as-Path access-1ist rm阴ber ( permit l deny ) 7?gex命令配置 AS二H叮H过滤器。 第2步:利用neighbor 7re语力hor-id filte山ist crs-PC#助73/fer一肋删ber( in l out )命令启 用AS_RATH过滤器o Cis∞ IOS将根据上述命令检查发送给指定邻居或者从指定邻居接收到的更新消 息中的AS二PATH PA,所有AS_PATH与deny语旬相匹配的NLRI均被过滤掉o AS二PATH通过正则表达式(缩写为regex)为AS_PATH应用各种强大的匹配规 则。为了匹配AS一卫虹H的内容,正则表达式必须匹配值、定界符以及其他特殊字符。 68 第2章 BGP路由策略 例如, AS_PATH本身就包含了多个组件(称为字段),需要在正则表达式中为这些字 段(如果出现)应用不同的匹配规则。接下来的几个小节将进一步讨论正则表达式和 AS_PATH,同时给出一些使用AS_PATH过滤器的应用示例0 1. BGPAS_PAl-H与AS_PATH字段类型 RFC 1771描述了AS_PATH PA中的4种AS二PATH字段(如表2-3所示)。最常 见的字段就是AS_SEQUENCE,该字段是路由穿越过的所有自治系统的有序列表, AS_SEQUENCE字段将最新添加的ASN列为第一个ASNo查看show命令的输出结 果后可以发现,该值位于最左侧,该值是正则表达式匹配规则所要处理的第一个AsNo 由于最新添加的ASN是AS_SEQUENCE字段中的第一个ASN,因而将添加ASN (向eBGP对等体宣告路由之前)的进程称为AS_PATH前附加(prepending)。以图2-2 所示网络为例,图中的路由首先被注人到AS l,然后宣告给AS4,最后又宣告给AS 1230 ¨.0.0.0/8 AS_SEQ 4 1上0.0.0/8 1 AS_sEQ 4 1 AsN AsN 图2-2 AS_PAI「H 4 AsN l 123 ( AS_SEQUENCE )前附加示意图 使用联盟和路由汇总时将会用到其他三种AS__PATH字段。表2-3列出了这4种 AS_PATH字段的简要信息。 As一盯I ̄H字段类型 表2 ̄3 赢 一 一 ▲ ▲ ● . ● . ● ▲ ● `… ▲ `≡ 眶 ≡= 已一… 拙 醒 拙 赢 ★不宣告到联盟之外 图2 ̄3给出了一个AS_SET示例, R4利用aggregate-address... as-Set命令汇总了 一些路由,由于包含了关键字as-Set,因而R4会在聚合路由的AS_PATH中创建一个 2.2 AS_SET字段。请注意, 路由过滤与路由汇总 69 AS_SET字段显示在小括号中,而且没有任何特定顺序,这 些信息对于AS二PATH过滤进程来说非常重要。 AS_SEQ 4 As_CONFED_SEQ (¨ As_SET 303, (1 , 404, 1 ) 202) AS_SEQ AS_sET 4 (1 , 404, 303, 202) /‘ ̄ < AsN4 AsN l AsN123 图2-3 AS_SET与AS_CONFED_sEQ示例 请注意图2-3中Rl增加的AS_CONFED_SEQ字段,联盟ASN的作用是防止联 盟内部出现环路,由于将路由宣告到常规AS的外部之前需要删除这些联盟ASN,因 而将这些联盟ASN保存在一个不同的字段内一AS_CONFED_SEQ字段。最后,如 果在联盟内部聚合路由,那么AS_CONFED_SEQ字段就会按照AS_SET字段的规则 来保存联盟ASN,但是会将联盟ASN与其他ASN分开保存,从而将聚合路由宣告到 联盟外部之前易于删除这些联盟ASNo例2-3的show ip bgp命令输出结果给出了 AS_SET和AS_CONFED_SEQ的示例内容,输出结果显示的是图2-3中示例路由的 R2的AS_PAiHo 励2-3 R2铂AS_一尸A71目 !The AS__coIV尸EP_SEQ、 AS_SEQUEIVcE #A(LSET AS_CONFED_SEQis(111),enClosedinparen亡heses.The AS_SEQUENCE !con亡ains 4,With no encIosing charac亡ers.The AS_SET crea亡edby R4 only when !surmarizing16.0.O.0/4is(1,404,303,202),enClosedinbracke亡S. R2# sh゜wip bgplinclude16.0.0.0 ★>16.0.0.0/4 10.1.14.4 0100 0(111〉 4 (1,404,303,202)i 2.利用正则表达式匹配As_PATH 每个αs∞ IOS AS二PATH过滤器都包含一条或多条配置行,而且每一行都要配置 一个正则表达式,并遵循如下应用规则。 第1步:列表中的第一行正则表达式会应用于每条路由的AS_PATHo 第2步:对于匹配的NLRI来说,需要按照AS二PATH过滤器配置的permit或deny 响应操作来过滤该NLRI或允许该NLRIo 第3步:对于非匹配NLRI来说,将重复第1步和第2步,使用AS二RATH过滤 攻城狮论坛 70 bbs.vlan5.com 第2章 #^_^# 版权归原作者所有 本资料仅供试读 BGP路由策略 器中的下一行,分析将要被该列表匹配的所有NLRIo 第4步:过滤所有未被显式匹配的NLRIo 正则表达式包含文本字符串和元字符(meta-Character) 行匹配,能够匹配备种定界符以及特殊运算符。表2-4列出了IOS ,元字符可以使用通配符进 AS_PAVH过滤器可 以使用的备种正则表达式元字符。 用于AS 表2 ̄4 PA二I ̄H匹配的正则表达式元字符 ∴∴∵∴∴∴三∴ ∴-∴三∴∴∵.三三∴ 行起始 ^ 行结柬 $ 应用于前后字符之间的逻辑ORl l 任意定界符:空格、逗呈、行起始或行结柬2 一 任意单字符 先前字符的零个或一个实例 ? 先前字符的零个或多个实例 ★ + 先前字符的一个或多个实例 (字符串) 如果与?、★或+一起使用,那么圆括呈中的字符串将作为单一实体 I字符串l 可以为字符串中的任意单字符创建通配符,用于匹配As一瞅1.H中相同位置处的单字符 1如果前面的数值是一个圆括号,那么逻辑运算符将应用于前面圆括呈内的整个字符串,而不仅仅是前面的单个字符 2该字符是一个下划线 将正则表达式应用于BGP路由时, αsco IOS会首先搜索AS_RATH以找到正则 表达式第一项的第一个实例,然后再按序处理其余的AS_PATHo例如,假设现有两条 路由,其中一条路由的AS_PATH中只有AS_SEQ字段,且值为12 由的AS_SEQ值为78 12 34 这是因为IOS会查找AS 56,另一条路 56,那么正则表达式12_34_56将同时匹配这两条路由, 12的第一个实例,然后再接序搜索。不过正则表达式 ∧12_34_56却仅匹配第一条路由,不匹配第二个AS_PATH 正则表达式会首先匹配“∧” 34 (行起始) (78 12 34 56)的原因在于 ,然后再按序搜索,因而接下来发现的就是AS 78, 与正则表达式不匹配。 表2-4提供了非常有用的参考信息,在此基础上,表2-5给出了这些元字符的 应用示例,并解释了每个示例的匹配内容,请重点关注表中的解释内容。需要注意 的是,短语“ASN303”与“以303为起始的ASN”的含义完全不同,第一个短语 精确地表示303,而不会是3031、 30342等号码,而第二个短语则可以匹配所有这 些号码。 攻城狮论坛(技术+生活)2群 1813097 . 2.2 71 AS_FFAT.H正则表达式及其含义 表2-5 ∴∴三∴∴∴ 路由过滤与路由汇总 ∴∴l■'∴∴ ★ 所有的AS_FA1.H(对于最终匹配来说很有用,可以将默认匹配操作从deny更改为Permit) ^$ 空(用于源自相同AS的NLRl) ^123$ 该AS_Pl午「H仅色舍一个AS:ASN123 ^123 该AS_FFA「H的第一个ASN以123开头或者是123,色括123、1232,12354等 该AS_FuA「H的第一个ASN是如下两种情况之一:以123开头的4位数呈码,或者是以AsN 123开头且在下一个ASN之前是一个定界符的号码(该正则表达式并不匹配仅有ASN123 ^123. 的As一瞅Ⅰ ̄H,因为表达式中的句点不匹配行结柬) 该AS_RATH的第一个ASN以123.1233开头或者是123330例如,该正则表达式可以色 ^123+ 拿AsN1231和12331,因为并没有指定“+”后面的内容 该AS_PAr1.H的第一个ASN是123、1233或12333等三个号码之一。例如,由于该正则表 ^123+ 达式要求最后一个3的后面必须是定界符,因而并不匹配1231和12331 该As_PAII ̄H的第一个ASN以12、123或1233开头,或者是123330由于该正则表达式并 没有指定下一个字符,因而这些值后面可以跟随任意字符。例如,该正则表达式可以匹配121, ^123★ 因为“”可以表示出现O坎“3”;也可以匹配1231,此时的“*”表示出现1坎“3” 该AS_PATH的第一个ASN以12.123或1233开头,或者是123330由于该正则表达式的 ^123★ 下一个字符必须是定界符,因而不匹配121、1231及12331 ^123? 该AS_Fyr1.H的第一个ASN以12或123开头 ^123_45$ 该As一盼1.H包舍两个自治系统号,第一个是123,第二个是45 ^123_.★」5$ 该AS_PAr「H以AS123为开头并以AS45为结尾,且这两个AS之间至少有一个其他AS 该AS_PAr1.H以AS123为开头,然后是零个或多个ASN及定界符,最后的AS未尾两位数 ^123.★45 必须是45(色括简单的As45) 该AS_PIN ̄H以123为开头并以AS45为结尾,且在两者之问有零个或多个其他ASN (^123_45$)l(^123_. 二45$) (注:本例与前例相似,但是没有圆括呈)该常见错误试图匹配以123为开头并以As45为 结尾的As一盼1.H,问题在于此时的“l”被应用于前一个字符“$”和下一个字符“^”,而没 ^123_45$l^123_.÷ 45$ 有应用于“Ⅰ”的前后所有字符 ^123LIO..91+)★_45 匹配以123为开头并以AS45为结尾的AS_PA二rH的另一种表示方式 该AS_PIN ̄H以AS_SET或AS_coNFED_SET为开头,并且第一个ASN的前三个数字是 ^(123 123 l(1303.*l)Ⅰ 找到AS_CONFED_SET,匹配第一个ASN是否为303 72 第2章 BGP路由策略 3.案例研究:利用AS_PAII ̄H过滤器匹配AS_PATH 利用AS二PATH过滤器过滤NLRI时需要用到以下两条命令: ip as-Path neighbor ( access-1ist ac'CeSS-J工sf一耽〃Zber Jj?一aCjl缸一e,S’S I peer-gZ-OZ4?一月a仍e ( ) Permit l deny filter-1ist ) as-r♀gexp) o3CCe,SS-J工sc一刀ZJ仍ber ( in l out ) 下面以图2-4所示互连网络为例,后面的许多案例都将以此图为例,其中就包括 两个AS_PATH过滤案例o AsN123 汪:所有的接口地址均以“10.1”开头 图2-4 As一盯1.H过滤器案例使用的网络 例2-4给出了AS二PATH过滤器的配置信息,负责过滤R4发送给R3的路由。首 先给出的是在R4上过滤出站更新,然后是在R3上过滤人站更新,这两种情况下的过 滤器的目标为: 过滤R4BGP表中的路由,这些路由的ASN以AS l为开头,然后是任意三个ASN, 最后以ASN44为结尾。 与上述过滤规则相匹配的两条NLRI分别为11.0.0.0/8和12.0.0.0/80 路由过滤与路由汇总 2.2 73 硼A斗尸A丑目过旅R4发甚给R3锨鹏 励2-4 ! R4 ! two 1earned ! ma亡Ch its o亡her 亡he R4# sh゜W BGP 亡able S亡atus AS_PATH ip r〇u亡es Only 亡0 the cri亡eria and 11.0.O.0/8 routes f〇r learned this 12.0.0.0/8 fr〇m R9, from With R9 (10.1.99.9), NEXT_HOP version S codes‥ 9, is local SuPPreSSed, r example. i-1GP, rou亡er d RIB-failure, e-EGP, |D damped, s 4.4.4.4 is h history, valid, * > bes亡, i-in亡ernal, Stale ?一inc〇mPlete Weigh亡 Pa亡h lO.1.14.1 o 123 5 1 33333 10 200 ★ 10.1.34.3 0 123 5 1 33333 10 200 ★> 10.1.99.9 0 1 o 123 5 1 0 123 5 1 0 1 Ne亡w〇rk ★ Nex亡 11.0.0.0 ★ ★ 10.1.34.3 ★> 10.1.99.9 lines ! R4 R4# omi亡亡ed curren亡Iy sh゜w Metric Hop LocPrf 0 10.1.14.1 12.0.0.0 ! ip for neighbor 33333 10 200 33333 10 200 10 亡O rou亡es Me亡ric R3, aS Shown nex亡. advertised-r゜uteS LocPrf l begin Netw゜rk Pa亡h Weigh亡 10.1.99.9 0 0 1 33333 10 12.O.0.0 10.1.99.9 0 0 1 33333 10 ★> 21.0.0.0 10.1.99.9 0 0 1 404 303 202 i ★> 31.0.0.0 10.1.99.9 0 0 1 303 303 303 i AS_PATH ! wi亡h ASN l, ! all ! lis亡is 亡hen ! sent∴to R3 o亡her and 壬il亡er ending AS_PATHs, is in Wi亡h enabled 44, a wi亡h sh〇Wn permit 亡he 34 deny ip as-Path access-1ist 34 permit 11 lO.1.34.3 soft and clear R4# show ip ip ★> 21.0.0.0 ★> 31.0.O.0 neighbor of shown: prefixes Not R3# permit cormand, As_PATHs second a11 for beginning line 1is亡S R4's i亡S before show ip outbound no longer 亡he adver亡ises rou亡es 亡〇 advertised-routeS l 0 0 1 404 303 202 i 0 0 1 303 303 303 i filter-1ist reS亡Ore 亡〇 亡he received 亡he neighbor Netw゜rk Pa亡h 2 unfil亡ered Nex亡 begin cormand Upda亡es Update is to from now removed, 亡heir R4. and unfiltered No亡e that sof亡 s亡a亡e. R4's ASN was lO.1.34.4 Me亡ric received-routeS LocPrf l Weight beg土n∴Network Path ★ 11.0.0.0 10.1.34.4 0 4 1 33333 10 200 44 i 12.0.0.0 10.1.34.4 0 4 1 33333 10 200 44 i * 21.0.0.0 10.1.34.4 0 4 1 404 303 202 i 0 4 1 303 303 303 i 10.1.34.4 31.0.0.0 R3 ! 4 uses as 亡he prac亡ically firs亡 the same AS_PATH ^4_1_.*_.*_.*_44$ as-Path access-1ist 34 deny ip as-Path access-1ist 34 permit bgp 333 fil亡er, eXCeP亡∴亡ha亡it ASN. ip router added Update. Hop .★ must l〇Ok The Upda亡es ne亡WOrks * ! end. 0ut 34 R4 lO.1.34.3 neighbor used sending bgp Network * ma亡Ches a亡∴亡he .* 10.1.99.9 number R4 filter-1土st a The ^1_.*_.*_.*_44$ 10.1.99.9 reconfigura亡ion R3 ac亡i〇n-eSSen亡ially Nex亡 Hop Me亡ric LocPrf Weigh亡 ! by be亡Ween. *∴soft bgp bgp ! ! filter-1ist reconfigurati〇n, Network ! in ma亡Ches 12. R4# T〇tal ASNs line 200 4 bgp ! first 200 (10.1.34.3). access-1ist Af亡er The 亡hree neighbor as-Path ! neX亡. With ip neighb゜r i .⊥.⊥ Hop four lO.1.34.3 11.0.0.0 new 44 200 ★> R4's i 33333 *> ! 44 200 10 4 4 4一4 Next 0 33333 brevi亡y adver亡ises bgp Network router Plus lO.1.99.9, bgp codes‥ origin best routers. for ASN 74 第2章 BGP路由策略 neighbor ! The R3# AS filter-1ist lO.1.34.4 sh°W show ip ip 34 as-Path-aCCeSS-1ist in cormand 亡he shows con亡ents of 亡he lis亡. 34 as-Path-aCCeSS-1ist 34 pa亡h access deny <4_1_.★_.★_.★_44S lis亡 Permi亡.★ ! T〇 ! pipe ! regex at∴亡he ! using an 亡es亡∴亡he (l) ! beginning These or 亡he of 亡he include end of AS_PATH ! R3# logic and the of ip bgp are line metacharac亡ers show show fil亡er end regex,亡he option. be neighb°r be bgp show ma亡Ched 王or cormand 亡he However, 亡he omi亡亡ed lO.1.34.4 ip ParSeS cormand. no亡in canno亡 mus亡 sh゜w Tha亡 with ^ a l used, some or $, 亡he Wi亡h based 亡hings outpu亡一for on 亡he matchable example,亡he reSPeCtively. 亡rick 亡es亡ing received ̄routeS be ou亡Pu亡 亡hat note cormand this can c〇rmand include 亡O WOrk. 4_1_.★_.★_.★_44 ★ 11.0.0.0 10.1.34.4 0 4 1 33333 10 200 44 i ★ 12.0.0.0 10.1.34.4 0 4 1 33333 10 200 44 i ! Af亡er a ! s亡ill show R3# c|ear R3# show clear ip ip Ne亡W〇rk , up first 亡he appears ou亡Pu亡 亡ha亡∴the rou亡es were no亡 fil亡ered, neighb゜r Nex亡 lO.1.34.4 received-routeS Metric Hop LocPrf l begin Weight Netw゜rk 11.0.0.0 10.1.34.4 O 4 1 33333 10 ★ 12.0.0.0 10.1.34.4 0 4 1 33333 10 ★ 21.0.0.0 10.1.34.4 0 4 1 404 303 202 ★ 31.0.0.0 10.1.34.4 O 4 1 303 303 303 However, ! the R3# BGP show R3 ip indeed in ★ i Me亡ric LocPrf Weight 10.1.36.6 O 100 0 0 10.1.36.6 omi亡亡ed for Upda亡e i from R4 in fil亡ered. pa亡h 1 33333 1 33333 5 1 33333 65000 1 65000 (111) 5 0 0 100 0 0 (111) 5 0 5 10.1.35.5 lines received i Network lO.1.15.5 ★> 亡he 200 33333 1 33333 1 33333 .⊥.⊥.工.工.1.工 Hop were shown 10.1.35.5 12.0.0.0 ! begin lO.1.15.5 *> ★ l Nex亡 routes rou亡es 200 4 4 4 4 4 4 4 4 4 4 4 4 i bgp 亡he Show 0 0 0 0 0 0 0 0 O O O O 2 (∠ 2 2 2 2 11.0.0.0 ★ no亡 0 0 0 0 0 0 ⊥ l l l l l * does 亡able;亡he Ne亡WOrk 亡hey Pa亡h ★ ! aS below. *∴soft bgp bgp i亡 in brevity 例2-4中的解释说明不但涵盖了利用过滤器列表基于AS_PAVH过滤NLRI的绝大 多数关键点,而且还给出了与αs∞ ■ show ip bgp IOS neighbor BGPshow命令相关的很多知识点。 7re姆厉hor-id advertised干OuteS命令显示的是实际发送的 路由,也就是说,该命令反映了路由过滤的效果,输出结果不显示已被过滤 的路由。 ■ show ip bgp neighbor 7re矽咖r一材received-routeS命令显示的是实际从邻居接 收到的路由,该命令的输出结果不会省略任何路由,即使路由器在输人侧本 地过滤了路由。 ■ 路由器在将自已的ASN添加到AS_PAVH中之前应用输出过滤器列表(如例 2-4中R4的AS_H叮H过滤器所示)。 可以采用多种方式在不更改路由策略的情况下验证正则表达式。例2-4给出了如 下命令示例: Show ip bgp neighbor lO.1.34.4 received-routeS l include 4_1_.★_.★_.*_44 由于该命令在关键字include之后使用了正则表达式,因而仅显示了整个命令输 2.2 路由过滤与路由汇总 75 出结果中的部分内容。需要注意的是,该命令查看的是输出结果中的ASCⅡ文本,意 味着不存在某些特殊字符(如行起始和行结束字符)。例如,由于show命令的文本输 出结果中不包含“∧”,因而例2-4的正则表达式中没有脱字符“∧”。 验证正则表达式的另一种方法是使用show ip bgp regexp expressfoJ7命令。该命令 将解析路由器BGP表中的AS_PATH变量(包括所有特殊字符) 式的备种内容。需要注意的是, Show ip ,可以验证正则表达 bgp命令中的选项regexp不能与选项 received-routeS或advertised-routeS同时使用。 虽然例2-4使用的是neighbor filter-1ist命令,但是也可以使用match as-Path /is/-JOw阴ber命令在路由映射中引用AS_PATH过滤器列表,这样就可以在以后利用 neighbor route-maP命令来调用该路由映射0 4.匹配As_sET和As_coNFED_SEQ 例2-5显示了利用BGP过滤器列表匹配AS_SET和AS_CONFED_SEQ字段的方 式。图2-5给出了该案例的一些细节信息。本例中的R4汇总了16.0.0.0/4,同时为该 汇总路由创建了AS_SET表项,并将其宣告给了Rl和R3,然后Rl和R3又将该路由 宣告给了R20 由于Rl和R2是联盟eBGP对等体,因而Rl的路由中包含了 AS_CONFED_SEQ o AsN123 AsN4 图2-5 生成AS_sET和AS_coNFED_SEQ 76 第2章 BGP路由策略 例2-5给出以下两种不同的示例过滤器: ■ 过滤AS_SET中任意位置包含ASN303的路由; ■ 过滤AS_PATH起始ASN为AS_CONFED_SEQ lll的路由。 剃居A〔L朗7H.兹涝R4发甚给R3铂锗白 励2-5 ! The ! rou亡es ! same ! AS_CONFED_SEQ R2# nex亡 COrmand wi亡h NLRI sh ip from bgp shows R2's AS_CONFED_SEQ R3, of l Wi亡h 亡he (111), begin BGP of table (111), related because R3 before all filtering learned AS_PATH is same Nex亡 lO.1.35.5 0 100 0 10.1.15.5 0 100 0 10.1.35.5 0 100 0 * i12.0.0.0 Weight 0 100 0 10.1.34.4 0 100 0 10.1.14.4 0 100 0 i21.0.O.0 10.1.34.4 0 100 0 10.1.15.5 0 100 0 i31.O.0.O 10.1.34.4 0 100 0 100 0 ★> * LocPrf 10.1.15.5 *> ★ Metric H〇p i16.0.0.0/4 *> * 10.1.15.5 *> ! R2 will use ! of lll. N〇亡e !亡he "(" ! in亡erpre亡ed ! AS_PATH R2# AS show pa亡h AS_PATH as fil亡er ip a mus亡 "(" 亡he and 0 be are ")" not find r〇uteS matched by 亡he has R2 learned five 亡he beginning sub-AS as R2. Wi亡hout∴亡he Path 1 5 33333 (111) 5 1 (111) 4 5 5 1 1 (111) 44 200 200 10 44 i 44 i i i (1,404,303,202) 202 303 5 1 1 303 in i 303 i AS_CONFED_SEQ square otherwise begin 202 i 303 303 wi亡h i i 303 404 303 5 it i 200 10 33333 begin would t〇 "[(]" 4 303 亡ha亡 and 10 1 404 (111) 4 33333 (1,404,303,202) (111) 4 44 200 10 1 33333 encIosing me亡acharac亡ers, me亡acharac亡er. would brackets, aS be the regex,亡he soft reconfig. ma亡Ch. as-Path-aCCeSS-1ist access 亡O access-1is亡1 亡he 亡ha亡 i亡Self also Network * *> enabled. R2 confedera亡ion Ne亡work ill.0.0.0 is Rl. no亡including 亡he in from l lis亡1 <[()111 deny Permi亡.* ! R2 filters incoming rou亡es from b〇亡h peers, l.1.1.1 filter-1ist neigh 3.3.3.3 filter-1ist R2# ! clear Now R2# ip all sh ip *∴s゜ft bgp rou亡es bgp l with begin AS_CONFED_SEQ of o ★>i12.0.0.0 10.1.35.5 0 ★>i16.0.0.0/4 10.1.34.4 0 *>i21.O.0.0 10.1.34.4 0 ★>i31.0.O.0 10.1.34.4 o only, ! The ! of ! metacharac亡ers,亡hey ! access-1ist ! resides R2# AS and next the sh°w pa亡h sof亡 uSing the lis亡 AS_PATH are gone. can an inside LocPrf Pa亡h O 5 1 33333 10 200 100 0 5 1 33333 10 200 100 0 4 (1,404,303,202〕 0 4 1 404 303 202 i O 4 1 303 303 303 i 100 loo AS_PATH is Weigh亡 loo filter-1ist 2 ins亡ead for peer R3 亡he "(" and 亡he regex. AS_PATH long 303 applied. con亡en亡S inbound Upda亡es simply AS_SET 亡he be 王rom typed R3. Because direc亡Iy anywhere in the in亡○ AS_PATH, aS are ")" as no亡 AS_SET. as-Path-aCCeSS-1ist access deny for matches anywhere ip shows fil亡er 2 亡O reconfigura亡ion cormand new Me亡ric Hop switches ! the .⊥.工 lO.1.35.5 No亡 beginning 4 4.工 4 4 Next ★>ill.0.0.0 ! lll Network Ne亡w〇rk Shown-R2's a n neigh R2 performs n (COnfig-rou亡er)# R2(C〇nfig-rou亡er)# and .工.工 333 bgp 工 工 router R2(C〇nfig)# 2 2 (.*303.*) Permi亡.* ! The next ! have 303 c〇rmand anywhere is in a test∴亡O 亡he Sh〇W AS_PATH. rou亡es received Remember, by fil亡ered R2 from rou亡es R3 are 亡ha亡 still happen 亡○ 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 2.3 !displayedwhen viewing R2# showipbgpneighbor BGP 3.3.3.3 亡ablewi亡h 亡he BGP路径属性与BGP决策进程 received-routeS received-routeSlinclude 77 OP亡ion. 303 *i16.0.0.O/4 10.1.34.4 0 100 0 4(1,404,303,202)i *i21.0.0.0 10.1.34.4 0 100 0 41404 303 202i *i31.0.0.0 10.1.34.4 0 100 0 41303 303 303i !R2 亡he has !routes R2# 2.3 亡he 本资料仅供试读 fil亡ered wi亡h 303in ship bgpl rou亡e 亡he wi亡h 303 in 亡he AS SET,bu亡i亡 did no亡 fil亡er 亡he AS_SEQ. includelO.1.34.4 ★ i21.O.0.0 10.1.34.4 O 100 0 4 1404 303 202 i * i31.0.0.0 10.1.34.4 0 100 0 41303 303 303 i BGP路径属性与BGP决策进程 BGP的路径属性定义了与PA相关联的NLRT的各种特性。例如, 列出了指定NLRI所宣告过的ASNo有些BGP AS_PATH PA会影响BGP的决策进程, PA BGP通 过决策进程在多条去往相同NLRI的已知路由中选择最佳路由。本节将解释BGP决策 进程,并介绍一些影响BGP决策进程的新PA以及BGP功能特性0 2.3.1 BGPPA的通用术语与特性 可以将每个BGP PA都描述为周知(Vvell-known) 些术语指的是BGP软件的特定实现必须支持的PA PA或可选(Optional) PAo这 (周知PA)或者不必支持的PA (可 选PA)。 周知PA包括以下两种类型。 ■ 强制(Mandatory) ■ 自选(Discretionary) PA:每条BGP更新消息都必须包含该PAo RA:不必在每条BGP更新消息中都包含该PAo 上述分类与BGP实现的能力无关,而是与是否默认配置或使用特定功能特性有 关。例如, ATOMICJIGGREGATE PA是一个周知自选PA,那就意味着所有的BGP 实现都必须理解该P△,但是特定路由器可以根据自已的需要添加该PA,创建汇总路 由的路由器就需要使用该PAo与此相反, AS_PATH PA是一个周知强制PA,那就意 味着必须在每条BGP更新消息中都必须包含该PAo 根据路由器的BGP实现在无法理解特定PA时的不同操作行为, BGP将可选PA 分为以下两种类型。 ■ 传递(Transitive) PA:路由器应该默默地将该PA转发给其他路由器,而无 需考虑该PA的含义。 ■ 非传递(Nontransitive) PA:路由器应该删除该PA,从而不将该PA传播给 其他对等体。 攻城狮论坛(技术+生活)2群 1813097 . 78 第2章 BGP路由策略 表2 ̄6总结了上述BGPPA的分类术语及其定义。 BGP路径属性分类术语的定义 表2 ̄6 ? ; . ÷宗 ~ ? 目 周知强制 周知自选 目 刀≡ 刀≡ 目 舟≡ 否 可选传递 否 可选非传递 否 ∈蔓 刀≡ 否 利用本书已经介绍过的BGPPA,可以很好地理解表2-6中的术语含义。表2-7列 出了这些PA及其特性信息。 本书已经介绍过的BGP路径属性及其特性 表2-7 亨 列出该路由已经被宣告过的AsN 周知强制 列出用于到达NLRl的下一跳IP地址 周知强制 AGGREGATOR 列出创建汇总NLRl的路由器的RID和ASN 可选传递 ATOMIC AGGREGATE 将汇总NLRl标记为汇总 周知自选 As 国盯H NEXT HOP 该路径属性值表示注入BGP的路由来自何处:i(IGP).e(EGP) 周知强制 ORIGIN 或?(不完全信患) ORIGINATORID RR利用此路径属性来标识将NLRl注入AS的iBGP邻居的RID 可选非传递 cLUSTER RR利用此路径属性来列出RR簇ID,以避免环路 可选非传递 LIST 只要创建新的可选PA,就可以为BGP定义新的附加功能,而无需创建新的基线 RFC,也不需要发布新的BGP版本。表2-7中的最后两个PA就是这样的案例,这两 个PA都是在RFC 2.3.2 1966中为路由反射器功能特性引人的路径属性0 BGP决策进程 BGP决策进程需要用到表2-7中的部分PA以及其他PAo本节将重点介绍决策进 程的墓本原理,并简要介绍一些新的BGP功能特性或PA,最后再详细解释本书仍未 介绍过的PA以及影响BGP决策进程的其他细节信息o BGP路由器在学到去往同一NLRI的多条路由后,必须选择一条去往该NLRI的 最佳路由o BGP并不像IGP那样依赖单一的度量参数,而是提供了一组丰富的工具来 影响路由的选择结果o 明其他三个决策规则) 。 BGP决策进程通过以下规则来选择最佳路由(本节将在后面说 2.3 第1步: BGP路径属性与BGP决策进程 NEXT」工OP可达吗?很多文献(包括RFC 79 1771)都提到了一个事实, 霞那就是如果路由器没有去往特定路由的NEXT」工OPPA的路由,那么就应该在决策进 程中拒绝该路由。 第2步:最大管理性权值。这是Cisco专有功能特性,可以在路由器本地为每个 NLRI都分配一个管理性权值,但是无法与其他路由器交换该权值。管理性权值越大 的路由越优。 第3步‥最大LOCAL_PREFPAo该周知自选PA可以在AS内的路由器上进行设 置,但是只能在该AS内部进行分发,因而AS内的所有BGP路由器都可以使用该功 能特性,为特定NLRI选择相同的离开它们所在AS的出口点o LOCAL_PREF PA越 大的路由越优。 第4步:本地注人的路由。选择本地注人BGP表的路由(通过network命令、重 分发或路由汇总方式) (注:通常很少使用该决策步骤,有些BGP参考文献可能会省 略该步骤)。 第5步:最短AS_PATH长度o AS二PATH长度越小的路由越优。请注意,计算 AS_PATH长度时,会忽略AS_CONFED_SET和AS_CONFED_SEQ,并且将整个 AS_SET视为一个ASN(无论AS_SET中包含多少个ASN) 中的每个ASN都视为一个ASN 将会忽略该决策步骤) 第6步‥ bestpath as-Path ignore命令,那么 。 ORIGEN (e)优于不完全路由(? 第7步:最小MED (如果配置了bgp ,但是会将AS_SEQUENCE (路由来源) PAo IGP路由(i)优于EGP路由(e), EGP路由 )。 (Multi-Exit Discriminator,多出日鉴别符) PAo如果ISP与 客户AS之间拥有多条对等连接,那么ISP通常利用该PA告诉客户AS哪条对等连接 是去往特定NLRI的最佳路径o 第8步:邻居类型o MED值越小的路由越优。 eBGP路由优于iBGP路由。请注意,本决策步骤将联盟eBGP 视为iBGPo 第9步:到达NEXT」工OP的IGP度量。对比去往每条NLRT的NEXT一卫OP的IGP 度量,该值越小的路由越优0 1. BGP决策进程的解释 上述9个决策进程步骤的日标是确定去往每条NLRI的最佳路由。请注意,上述 步骤的目标并不是试图找到多条等价路由并将这些等价路由都安装到IP路由表中,即 使配置了路由器子命令maximum ̄Paths并将最大路径数量设置为比默认值1大的数 值,决策进程的目标也只是为每条NLRI找到一条最佳路由。 首先,大家可能注意到第1步是确定NEXT_HOP的可达性,但是作者对是否包 80 第2章 BGP路由策略 含此步骤持不同意见。虽然第1步的描述完全正确,但有些人认为该概念与在多条有 用路由中选择最佳路由的操作无关,因为这是对所有可用路由的基本限制,只有满足 了该限制条件,才可能成为最佳路由的候选路由。之所以在上述决策列表中列出这一 条,其原因如下: RFC 1771在相应的小节中明确提出了这一点,而且砌韧彤上R佛彻g .47C历tec彻res和Ro#彻咯7CZ:y7P , VI)1ume H两本书也将这一条列人了决策进程中。这是 一个很重要的问题,值得一提o r蒜 如果某个决策步骤已经确定了特定NLRT的最佳路由,那么BGP就不会再继续执 谭霹行其余决策步骤。例如,假设Rl拥有5条去往9.0.0.0/10的路由,其中两条路由的 AS_PATH长度为3,其余三条路由的AS_PATH长度为50如果在到达决策进程的第4 步(AS二PATH长度)之前都没有确定最佳路由,那么第4步的规则就可以确定这两条 路由优于其他三条路由(因为它们的AS_P/FTH长度较小)o BGP通常会将第一个学到 的有效路由作为最佳路由。对于去往相同前缀的其他可选路由来说, BGP会对当前最 佳路由与新路由应用BGP决策进程o BGP会为每个唯一的NLRT应用决策进程。如果存在重叠的NLRT 130.2.0.0/16和130.0.0.0/12) (如130.1.0.0/16、 ,那么BGP会试图为每个特定的前缀/前缀长度找到最佳 路由。 2. BGP决策进程的最后三个决策规则 有时BGP利用上述9个步骤也无法确定去往特定NLRI的最佳路径,此时BGP 就需要继续执行以下决策过程。通常不会在路由策略中控制这些值以影响BGP决策 进程。 第10步:保持最早的eBGP路由。如果被必选的路由是eBGP路由,而且其中的 矗 一条路径是当前最佳路由,那么就保持现有的最佳路径。该操作方式能够有效减少 eBGP路由的翻动。 第11步:选择邻居RID (Router 器的RTD最小的路由。只有配置了bgp ID,路由器ID)最小的路由。使用下一跳路由 bestpath compare-routerid命令,才会执行本 决策步骤。 第12步:选择邻居ID最小的路由。到达本步骤时,本地路由器与其他某台路由 器之间至少拥有两个邻居关系。这种场景比较少见,此时路由器会优选由邻居ID (列 在该路由器的neighbor命令中)最小的路由器宣告的路由。 洼:如果到速第吨薄的时镰先前瞒定的最佳躇由失效了,荷且BGP正在比递两条其他可选躇由 郡么eBGP路由的决帝进程就套到速第出步 2.3 BGP路径属性与BGP决策进程 81 3.将多条BGP路由添加到IP路由表中 BGP决策进程能够影响BGP是否将去往单个NLRI的多条路由添加到IP路由表 中,其规则如下。 ■ 如果特定NLRT的最佳路由是在第1步到第9步之间确定的,那么BGP仅将 一条BGP路由添加到IP路由表中一当然就是最佳路由。 ■ 如果特定NLRI的最佳路由是在第9步之后确定的,那么BGP就会考虑将多 条BGP路由添加到IP路由表中。 ■ 即使BGP将多条BGP路由添加到了IP路由表中,BGP也仍然只为每个NLRI 选择一条路由作为最佳路由,而且该最佳路由也是BGP向其邻居宣告的去往 该NLRI的唯一路由。 有关上述限制条件的详细内容将在本章“maximum-Paths命令与BGP决策进程的 比较规则”中讨论0 4.决策进程的记忆方法 虽然很多人都在不厌其烦地死记硬背BGP决策进程的众多步骤,但是记住这些步 骤列表对于CCIE路由和交换的笔试及实验室考试来说确实非常重要。本节将介绍一 些实用方法来帮助大家更有效地记住这些步骤列表。当然,大家也可以根据自已的需 要决定是否学习这些方法或者直接跳过本节学习下一节内容。 表2-8给出了一种有效的BGP决策进程记忆方法。 BGP决策进程记忆法: 表2 ̄8 ∴二∴∵∴二三一三三∴÷二二三∵三∴∵ N WLLAOMNl ∫ 、 N Nexthop:reaChable?(下一跳:可达?) w Weight(权值) 越大越优 L LOCAL PREF 越大越优 L Loca"yinjectedroutes(本地注入的蹿由) 本地注入的路由优于从iBGP/eBGP学到的 路由 A AS_PA:Ⅰ ̄Hlength(AS_PAr1.H长度) 越小越优 82 第2章 BGP路由策略 o ORIGIN OEIGIN代码i优于e,e优于? M MED 越小越优 N Neighborlype(邻居类型) eBGP优于iBGP lGPmetrictoNEXT_HOP(去往NEXT_HOP的IGP度量) 越小越优 l 该记忆法的第一步就是先记住这9个首字母,然后再通过这9个字母联想出描述 每个决策点规则的短语。当然,记住这9个随机字母也不是很容易,因而我们可以将 它们分为三组: N WLLA OMNI 记住首字母分组之后,还需要练习由这些首字母联想出表2-8中的短语(本书附 赠光盘中就包含了表2-8的记忆练习版本,大家可以打印出来进行练习)。 写出这9个首宇母之后,再练习通过记忆写出与这九个首字母相关联的短语。建 议大家学完本书进人其他阅读/学习阶段之前,务必花时间牢记上述内容。每次花5分 钟,通常几轮过后就能完全记住这些内容了。 在这9个步骤中,作者发现很多人都难以将“I”与短语“去往NEXT_HOP的IGP 度量”关联起来。这里有个办法或许有用,那就是记住这9个步骤中只有第一步和最后一 步与NEXTJIOP有关,而且首字母“I”意味着“IGP”,两者结合起来就很容易记住了。 完全记住表2-8的前两列之后,请记住前两个量化决策规则的对比逻辑是越大越 优,其余的量化决策规则的对比逻辑都是越小越优,这样就不必记忆每种特性使用的 是哪种比较逻辑了。只要能够默写出整个列表,就能轻易地发现前两个量化对比项(即 第2步和第3步的WEIGHT和LOCAL_PREF)。 最后,还剩下第10步和第11步,此时需要记住的是,仅在前8步都无法确定最 佳路由的时候,才会用到maximun ̄Pathso 2.4 配置BGP策略 BGP策略包括路由过滤器和可以修改PA以及其他对BGP决策进程产生影响的设 2.4 配置BGP策略 置参数的相关工具。本节将重点讨论部署路由策略以影响BGP决策进程的Cis∞ 83 IOS 工具(按照决策进程的顺序进行描述)0 2.4.1背景:路由策略使用的BGPPA及功能特性 在深人分析决策进程的每个步骤之前,需要讨论一下影响决策进程的相关功能特 性以及反映决策进程每一步变化情况的路由器相关命令输出结果。首先,表2-9列出 了BGP决策进程用到的备种BGPPA及功能特性的汇总情况。 影响BGP决策进程的专有功能特及BGP路径属性 表2-9 列出用于到达NLRl的下一跳IP地址 NEXT HOP 周知强制 Cisco专有的本地设置参数,不宣告给任何对等体。越大 权值1 越优 LOcAL 在单个As内有效,越大越优,取值范围为O-232-1 PREF 周知自选 As_SEQ中的ASN数量,如果存在AS_SET,那么相应 周知强制 As一弧1.H长度 的数量加1 数值表示指定路由注入BGP的方式:i(lGP).e(EGP) 周知强制 ORIGIN 或?(不完全的) MED 多出口鉴别符oAs内的路由器设置并宣告MED后,会 (MULTLEXIT_DISC) 影响其他AS内的路由器的BGP决策。越小越优 可选非传递 BGP邻居的类型(从该邻居学到指定路由),决策进程将 邻居类型1 联盟eBGP视为iBGP 越小越优 去往NEXT_HOP的 lGP度量 为BGP路由器定义一个唯一的标识符。越小越优 BGPRIDl 1该值不是BGP PA 接下来,图2-6给出了showipbgp命令的输出结果示例。请注意图中标出的BGP 决策进程用到的备种变量的位置。 虽然show ip bgp命令的输出结果列出了大部分影响BGP决策进程的设置参数, 但是并没有列出宣告路由器的RID、到达NEXT二HOP的IGP度量或者宣告该路由的 邻居IDo如果要显示这三项参数信息,可以使用其他两条命令。例2 ̄6给出了其中的一 Show ip bgp IGP度量则由show 16.0.0.0命令输出结果。该命令列出了宣告路由器的RTD以及邻居ID,而 ip route命令显示。 攻城狮论坛 84 bbs.vlan5.com 第2章 #^_^# 版权归原作者所有 本资料仅供试读 . BGP路由策略 R3 #show BGP table status ip codes: origin bgp version S codes: is 12, local SuPPressed, d r RIB-failure, i - 1GP, e S  ̄ router lD damped, h 3.3.3.3 ★ valid, > i - intemal, incomplete ★ 路然 ̄ ̄ 权重 本地 10.1.36.6 ★ 65000 5 10.上35.5 (¨1)41 41 10.上36.6 65000 10.上35.5 5 度量 O 0 优先级 100 O O O O O O O O 200 440 1020044i 1020044i 33333 33333 (¨1)41 100 100 O 1 \ 10 333331020044i 33333 1 41 10.上14.4 33333 33333 10.1.14.4 10.1.34.4 6.O.0.O/4 1 1 10.上34.4 10.上14.4 1 Origin AS_Path - 下一跳 1上O.O.O best, stale EGP,? 网络 is history, 10 200 44 i 1020044i 333331020044i 33333 1020044i (∥1)4(1,404,303,202)i O ↑ NEXT_HOP LOCAL_PREF 权重 MED 备注:为了发现其他细节一 邻居类型:没有字母表示“EBGP” lGP度量: FtlD: Show Show route nex出Q()一address bgp月∥ 在showip 图2-6 励2-6 ip ip bgp命令中标识关键的BGP决策功能特性 R3铂show佃bgp ! Two ! neighbor ! the ! ou亡Put ! las亡Iine 亡0 rou亡es R|D of sh BGP rou亡ing Pa亡hs: ip bgp Adver亡ised The "from rou亡e. AIso, en亡ry also en亡ry The nO亡e as #2 lis亡ing for bes亡 z.z.z.z" phrases "(y.y.y.y)" iden亡ify tha亡 outpu亡 亡he follows lis亡S 亡ha亡∴亡he 亡he the 16.0.0.0/4, #2, upda亡e-grouPS 1 bes亡 word One, indica亡ed by 亡hat en亡ry (on 亡he "bes亡." table VerSion 8 Defaul亡一IP-Rou亡ing-Table) : 2 (111) 4 (1,404,303,202), 10.1.14.4 Origin 4 亡he 16.0.0.O 亡able to listed. rou亡er. iden亡ifies outpu亡) available, (2 are advertised Same 亡ha亡 first R3# 16.0.0.O 亡hat |D of 16.0.0.0命令纷#结果 (metric |GP, metric (1,404,303,202), 10.1.34.4 Origin |GP, from (aggrega亡ed 3193856) O, O, by by 4 2.2.2.2 localpref (aggrega亡ed lO.1.34.4 me亡ric from loO, 4 4.4.4.4), (received & used) (2.2.2.2) Valid, 4.4.4.4), COnfed-interna1 (received & uSed) (4.4.4.4) localpref loO, Valid, eXternal, bes亡★ ill.0.0.0 了解了BGP决策进程的步骤、影响决策进程的PA的定义以及查看这些参数的命 令之后,接下来将按照BGP决策进程的步骤顺序详细讨论决策进程的相关内容0 2.4.2 第1步: NEXT_HOP可达 该决策步骤的目的是防止BGP将BGP路由作为最佳路由,即使该路由器可能无 攻城狮论坛(技术+生活)2群 1813097 2.4 配置BGP策略 85 法将数据包转发给下一跳路由器。 路由策略通常不会更改NEXT」工OP地址以影响路由选择,但是可以通过neighbor Jce啮栅or-id next-hop-SeIf命令(默认用于eBGP对等体)或neighbor 7rej妒hor-id next-hop-unChanged命令(默认用于iBGP对等体)来更改NEXT」工OPo如果使用的 是next-hop-Self,那么NEXT_HOP的IP地址将被设置为发送给邻居的BGP更新消息 的源地址;如果使用的是next-hop-unChanged,那么将不更改NEXT_HOPo 2.4.3 第2步:管理性权值 权值(全称为管理性权值)允许单台路由器检查人站BGP更新消息并确定哪些路 由较优。权值并不是BGPPA,而是Cisco专有参数,仅在本地路由器上有效。事实上, 无法在发送给其他路由器的BGP更新消息中包含权值,因为更新消息没有为权值预留 位置。表2-10列出了与BGP权值相关的关键特性。 管理性权值的关键特性 表2 ̄10 / 是瞅吗? 不是;属于cisco专有特性 目的 标识单台路由器的最佳路由 范围 仅在单台路由器内有效 默认值 O(学到的路由)或32768(本地注入的路由) 更改默认值 不支持 取值范围 0-65535(216-1) 什么情况下最优? 值越大越优 通过neighb°rroute-maPin命令或neighborweight命令进行配置(如果特定路由与这 配置 两条命令均匹配,那么IOs将使用路由映射中指定的权值) 用于下一个案例的图2-7是图2-4的更新版本。与图2-4相比,图2-7的As 123 中的三台路由器都是全互连的iBGP对等体,而且没有配置联盟特性。 从例2-7可以看出, Rl为学自R4、 R5以及R6的NLRI设置了权值。该配置显 示了权值的两种配置方式: ■ 利用neighborweight命令将学自R4的路由的权值设置为4; ■ 利用路由映射将学自 AS二PATH中) 。 R5 的路由的权值设置为200 (如果ASN 200位于 86 第2章 BGP路由策略 AsN 123 AsN AsN 4 65000 注‥所有的接口地址均以“10.1”开头 示例网络:无联盟的As123 图2-7 在Rl上投置BGP管理缴符 励2-7 The cormands below COnfigura亡ion. ma亡Ching r゜uter clause bgp list All lo only from of rou亡e-maP, 亡he (10.1.14.4) from R5 added will to now 亡he be (10.1.15.5), exis亡ing 4, weigh亡 Will be RI and weigh亡 亡hose 200. 123 4 neighb゜r lO.1.14.4 weight ne土ghbor lO.1.15.5 r゜ute-maP ! The ! rou亡e-maP ! routes ip R4 Were 亡ha亡 cormands routes AS_PATH ma亡Ches requ|reS not ag-Path ACL matched a SeCOnd by access-1igt any Set-weight-200 AS_PATH permit clause lo clause will 5 permit _200 Set-weight-200 permit lo permit 20 in tha亡includes be wi亡h 200. ASN no match or No亡e set 亡hat∴亡he , Otherwise all filtered. 1 route-maP match Set ag-path Weight r゜ute-血aP ! The ! weigh亡S Rl# ★ sh 200 get-Weight-200 changes ip Ne亡WOrk 5 O王 bgp are 200, l reflec亡ed SO 亡hose begin Next Hop below. rou亡es Me亡ric networks bes亡 ll and 12 Weight Pa亡h 0 65000 1 33333 10 200 4294967294 200 10.1.14.4 4294967294 4 4 lO.1.36.6 4294967294 O 65000 65000 100 ★ 10.1.16.6 4294967294 0 *> 10.1.15.5 4294967294 200 5 1 1 33333 5 1 33333 10 10 44 200 200 i 44 44 i 1 33333 10 200 1 33333 10 200 33333 10 200 44 '工 4294967294 200 .工 200 10.1.15.5 10 .⊥.⊥ 10 10.1.16.6 33333 4 4.⊥ 4 4 33333 ★ 1 '工 1 100 4 4 4 4 65000 12.0.0.0 have Paths. 4 ★> i both the O 4294967294 ★ as 4 lO.1.36.6 ★ that LocPrf 4294967294 11.0.0.0 i also chosen Netw゜rk 10.1.14.4 * No亡e were 2.4 配置BGP策略 87 需要注意的是,本例中的路由映射包含一个语旬20,该语旬包含permit响应操 作,但是没有包含match或set命令o neighbor route ̄maP命令创建了一个隐式过滤 决策,允许与该路由映射permit语旬相匹配的任何路由通过,而过滤与该路由映射 deny语旬相匹配的任何路由。路由映射在末尾为所有未匹配路由使用隐式deny all规 则,如果在最后的语旬中包含了关键字permit,那么该路由映射就会将隐式deny 规则更改为permit 2.4.4 all all规则,从而允许所有路由通过0 第3步:最高本地优先级(LOCAL_PREF) BGP的LOCAL二PREF PA允许拥有多个出口点的AS内部路由器选择特定出口点 去往指定NLRI,因而期望出口点的路由器会将去往NLRI的 eBGP路由的 LOCAL_PREF设置为相对较大值,然后再通过iBGP宣告该路由。同一AS内的其他 路由器虽然知道有多条路由能够到达该NLRT,但是它们会将LOCAL上REF值较大的 路由选为最佳路由。 表2-11列出了与LOCAL二PREF相关的关键特性。 表2-11 LOcAL PREF的关键特性 ∴∴∵∴∵∴ ∵.二∴ ∴∴三∴∴ ∴三∴∵三-∵∴ ∴∴∴∴三三三∴∴∵ 是PA吗? 是;周知自选PA 目的 标识从该AS到达NLRl的最佳出口点 范围 在设置LOcAL_PREF的AS内均有效(色括联盟Sub-AS) 默认值 100 更改默认值 使用BGP子命令bgpdefaultloca1-Preference<04294967295> 取值范围 O-4294967295(232-1) 什么情况下最优? 值越大越优 ∵.∴∵三∴∴∴∴∴三-.∴ 通过neighb゜rroute-maP命令进行配置;对于来自eBGP对等体的更新消患来说,必须使 配置 用选项in 图2 ̄8给出了一个使用LOCAL_PREF的典型示例。例中AS 123的工程师希望通 过Rl将数据包转发给11.0.0.0/8,使用R3将数据包转发给12.0.0.0/80如果其中的一 条路由出现故障,那么则使用另一条路由。 例2 ̄8显示了Rl和R3的配置示例,路由策略如下‥ ■ AS 123应该通过Rl到达11.0.0.0/8; ■ AS 123应该通过R3到达12.0.0.0/8; ■ Rl可以使用其三条路由中的任意一条到达11.0.0.0/8, R3可以使用其三条路 88 第2章 BGP路由策略 由中的任意一条到达12.0.0.0/80 为了满足上述设计目标, Rl和R3需要将其LOCAI二PREF设置为大于默认值1000 AsN >最佳路由 ∴ >BGP更新 ∴ ----BGP对等体 LOcAL_PREF的典型应用:影响离开AS 图2-8 123的出口点 #居LOCALPRE尸∥导数援色郝R7去律77伯、 励2-8 !RIConfig-Only !called !includes a rou亡es !any !allows r゜uter relevan亡 亡he forincoming 亡he permit n〇t COnfigurati〇n fromR4, upda亡es clause with 20 for12.0.0.0/8 亡〇 亡〇 jg过R3去律72“ Shown.The is R6.N〇亡e and R5, noIratCh clauselO SPeCifiedin LOCAL_PREF 65000 C〇rmands Set 〇r pass Wi亡hou亡 defaul亡 same r〇u亡e-maPis 亡ha亡∴亡he 亡〇 r〇u亡e-maP Permit Changes.The rou亡e-maP (100). bgp123 neighb゜rlO.1.14.4 r゜ute-maPll-high-12-default in neighb゜rlO.1.15.5 r゜ute-maPll-high-12-default in in neighborlO.1.16.6route-maPll-high-12-default l access-1istllpermitll.0.0.0 l ● route-maPll-high-12-default permitlO matchip addressll Setlocal-Preference l 200 ● route-maPll-high-12-defau|t !R3 Config-Same permit 20 as Rl, generalconcep亡 bu亡 亡he 12.0.0.0/8 rou亡eis assigned 配置BGP策略 2.4 ! 200, LOCAL_PREF r゜uter bgp and ll.0.0.0/8 is assigned 89 50. LOCAL_PR且F 123 neighbor lO.1.34.4 route-maP ll-1゜w-12-high neighb゜r lO.1.35.5 route-maP ll-10w-12-high in neighbor lO.1.36.6 route-maP ll-10w-12-high in in l access一Iist ll permit ll.0.0.O access-1ist 12 permit 12.0.0.0 1 route-maP match Set ll-1°w-12-high ip addregg permit lo permit 20 permit 30 12 200 local-Preference 1 route ̄maP match Set ll-1゜W-12-high ip address ll 50 |ocal-Preference 1 r゜ute-maP ! R3 ! now ll-10w-12-high shows learned ! 4 the from routes R4 wi亡h LOCAL_PREF (10.1.34.4).工亡S ! adminis亡ra亡ive weigh亡S ! different rou亡e. R3# show ip bgp Ne亡WOrk ★ l are all R3′s route one learned tied a亡 0; 亡〇 route bes亡 bes亡 200一亡he LOCAL_PREF bes亡 values. 亡0 12.0.0.O 11.0.0.O fr°m Rl. ○亡herwise, is the No亡e BGP is the only also chosen Metric Hop LocPrf 4294967294 50 0 65000 lO.1.14.4 4294967294 200 0 4 ★ 10.1.35.5 4294967294 50 0 5 1 33333 ★ 10.1.34.4 4294967294 50 0 4 1 33333 10.1.36.6 4294967294 200 0 65000 10.1.35.5 4294967294 200 0 5 1 33333 10 200 44 i 10.1.34.4 4294967294 200 0 4 1 33333 10 200 44 i * 12.0.0.0 * *> R3# ! show lines ip 4 1 bgp 10 10.1.14.4 Origin ! lines ! Because iBGP route ! does no亡 ! route. R2# sh゜w for 200 33333 1 33333 1 10 200 10 200 44 i 10 200 44 i 10 200 44 i 33333 10 200 44 i 44 i brevi亡y 44, (me亡ric |GP, omit亡ed ! 1 ll.0.0.0 omi亡亡ed 33333 a Pa亡h Weigh亡 10.1.36.6 ★>i 亡he begin∴Network Nex亡 11.0.0.0 it of tha亡∴亡he have migh亡 one one R3's 亡O me亡ric for best R2. As a bgp Ne亡WOrk used) l.1.1.1 4294967294, rou亡e to (1.1.1.1) localpref ll.0.0.0/8 Similarly, result, l & fr〇m 200, Valid, in亡ernal, bes亡 brevity adver亡ise ip (received 2681856) its R2 bes亡 Rl's rou亡e receives is bes亡 亡0 only 亡hrough rou亡e 亡0 Rl, 12.0.0.0/8, one rou亡e does R3 12.0.0.0/8 again to each is not because of 亡he advertise 亡hrough i亡is 亡WO R3, an tha亡 SO Rl iBGP ne亡WOrks. begin∴Netw゜rk Nex亡 Hop Metric LocPrf Weight Pa亡h ★>ill.0.0.0 10.1.14.4 4294967294 200 0 4 1 33333 10 200 44 i ★>i12.0.0.0 10.1.34.4 4294967294 200 0 4 1 33333 10 200 44 i 虽然本例满足了上述设计目标,但需要注意的是,设计目标之一是Rl和R3可以 Rl并没有根据 选择三条eBGP路由中的任意一条去往它们的指定前缀。有趣的是, LOCAL_PREF选择其最佳BGP路由去往网络1 1.0.0.0/8 , R3也没有根据LOCAL_PREF 选择其最佳BGP路由去往网络12.0.0.0/80请注意,从LOCAL_PREF的角度来看, Rl和R3拥有三条优先级相同的路由,此时它们必须进人第10步(最小宣告BGPRID) 90 第2章 BGP路由策略 才能完成路由决策进程。因而R3选择经R4 或R6 (RID4.4.4.4)而不是R5 (RID 5.5.5.5) (ⅢD6.6.6.6)的路由去往目的网络。 如果Rl和R3希望使用三台eBGP路由器中的指定路由器到达备自的NLRI,那 么就可以更改路由映射以匹配来自每个邻居的路由,并将LOCAL二PREF设置为不同 的较大值。例如,可以将R4、 R5、 R6的路由的LOCAL二PREF分别设置为204、 205、 2060如果从这三个eBGP对等体都学到了12.0.0.0/8,那么R3就会选择经R6的路由 去往12.0.0.0/80 为了实现路由匹配,可以使用match ip next-hop或match ip route-SOurCe命令,也可以为每个邻居都应用一条不同的路由映射0 2.4.5 第4步:基于ORIGIN PA在本地注入的路由之间选择最佳路由 虽然很少使用本决策步骤,但本决策步骤也是BGP决策进程的一部分。为何很少 使用这一步呢?这是因为BGP为本地注人BGP的路由分配的权值为32768,因而路 由器在实质上已经将本地注人的路由选为最佳路由了(因为其权值最大)。 导致路由器使用本决策步骤的两种常见场景如下。第一种场景几乎不可能出现, 即路由器必须在本地注人一条NLRI,同时还从邻居学到了该相同NLRI,并利用人站 路由映射将收到的NLRI的权值设置为与本地注人的路由相同。该场景仅存在于实验 室环境中。 第二种场景是,路由器试图通过多种方法在本地注人路由,并且从两个不同的路 由信息源注人相同的NLRIo例如,假设Rl通过network 123.0.0.0命令和redistribute COrmeCted命令注人了一条去往网络123.0.0.0/8的路由,这两条路由的默认权值均为 32768,而且这两条路由的LOCAL_PREF都是相同的默认值,那么就会进人本决策步 骤,利用oⅢGN代码来确定哪一条路由为最佳路由。 可以将决策进程中使用本决策步骤的第二种场景(也是唯一一种可能的场景)简 述如下: 利用多种方法将相同NLRI本地注入BGP后,将选择ORIGIN PA优的路由作为 最佳路由。 唯一需要记忆的内容就是ORIGIN代码: 2.4.6 “i”优于“e”, “e”优于“? ”0 第5步‥ 最短AS_PA「H 根据AS_PATH四个字段(AS_SEQ、 AS_SET、 AS_CONFED_SEQ以及AS CONFED_SET)的计算规则,路由器能够很轻松地确定最短AS_PATH长度。除此以 外,路由策略还能更改AS_PATH中的ASN数量。表2-12列出了与AS二PATH长度有 关的关键特性。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 2.4 表2 ̄12 配置BGP策略 91 AS_PA二l ̄H的关键特性 ; ' AS . 不管实际长度是多少,都仅计算为一个AsN SET 联盟 As_CONFED_sEQ和AS_coNFED_SET不计算在内 如果咸员子网有不同的As_PATH,那么汇总蹿由在AS_SEQ中只有本地AS, aggregate-addres s命 令 否则As_SEQ将色舍所有咸员子网的AS_SEQo此外,有无命令选项as-Set 将决定是否色舍AS_sET在内 连接在私有As(64512-65535)上的路由器使用该命令,此时路由器将删除 neighb゜rrem°Ve中 hva te-a s命令 邻居AS使用的私有ASN 允许路由器使用与r゜uterbgp命令中的AS不同的AS,携带选项no-PrePend neighborlocaIasn .pIe pen d命令 之后,路由器将eBGP更新发送给邻居的时候将不再前附加任何ASN 在入站或出站方向使用neighboIr゜ute-maP命令,路由映射可以使用Set As一瞅l ̄H前附加 as-Pathprepend命令以便将一个或多个ASN前附加到AS_SEQ中 bgpbestpathas十rathign゜re命令 为本地路由器的决策进程删除As一瞅l ̄H长度的决策步骤 本决策步骤的常见逻辑就是要求路由器计算AS_SEQ中的ASN数量,如果存在 AS_SET,那么则加10不过,表2-12还提到了其他功能特性,这些功能特性对于使 用何种ASN以及eBGP对等体是否添加ASN有一定的影响作用,因而在继续讨论第 5步之前将首先介绍这些功能特性0 1.删除私有AsN 对于需要宣告到单个ISP之外的Intemet的AS_PATH来说,不应该在这些 AS_PArH中使用私有ASN (64512-65535)。使用私有ASN号码空间的目的是节约 ASN空间,可以为仅连接单个ISP的客户分配私有ASNo如果ISP需要向网络外部宣 告该客户的路由,那么只要在宣告路由之前简单地删除私有ASN即可。 图2-9给出了使用私有AS的典型应用场景。虽然私有AS的概念很简单,但配置 过程却有点儿复杂。 图2-9从左至右包含了以下关键信息: ■ R6 (位于私有AS中)不需要配置任何特殊命令; ■ Rl (ASN 65000所连接的单一ISP中的路由器)在BGP表中将所有学自R6 的路由都列为私有AS ■ 65000; Rl需要在路由器BGP配置模式下输人neighbor R2 remove-Private-aS命令, 目的是让Rl从宣告给路由器R2的AS二PATH中删除所有的私有ASNo 攻城狮论坛(技术+生活)2群 1813097 . 92 第2章 BGP路由策略 m上的配置: neighborr2remove-Private-aS BGP表:6.0.0.0侣AsSEQ65000 图2-9 私有ASN以及neighbor 为了防止出现路由环路, remove-Private-aS命令的典型应用 Cis∞ IOS对于是否删除私有ASN有很多限制条件: ■ 仅在发送eBGP更新消息之前才能删除私有ASN; ■ 如果当前AS_SEQ同时包含私有ASN和公有ASN,那么就不能删除私有 ASN; ■ 如果eBGP对等体的ASN位于当前AS_PATH中,那么也不能删除私有ASNo 该功能特性对于联盟来说也是如此, 2. AS_CONFED_SEQ也要遵循上述限制条件0 As一国盯H前附加与路由聚合 AS二PATH前附加功能特性背后的概念与动机很简单,就是通过增加AS_PATH的 长度来影响AS_PATH长度决策步骤。为此,路由器只要简单地配置一个路由映射并 利用neighbor asnl route-maP命令引用该路由映射即可。路由映射使用set as-Pa仙prepend asn2...命令,这样一来,该路由映射就可以向AS_SEQUENCE前附加一些额外 的ASNo 虽然可以前附加任何ASN,但最合理的方式是前附加本地路由器的ASN,这是因 为如果前附加的是其他ASN,那么就无法将该路由宣告到该AS中,而这种情况是不 希望看到的。此外,如果AS_PATH的长度需要增加多个ASN,那么就可以在set命 令中重复多次使用相同的AsN 励2-9 (如例2-9所示)。 A呈一尸灿丑目励励物〃及J露自涨与A〔L月4丑目长磨分斩 !R4's !f〇r configura亡i〇n Rl (10.1.14.1) !prepending 亡hree adver亡ising !usual, 亡he !〇f 亡he OVer rou亡e-maP rou亡es bgp are the rou亡e-maP no亡 Called R3(10.1.34.3).The addi亡ionalASN !before router Sh〇WS and eBGP needs a 4s.The Peer 亡he nullfinalclause wi亡h affected. 4 aggregate-address16.0.0.0 adds 240.0.0.O as ̄Set 10.1.14.1 route-map add3-4g out neighb゜r 10.1.34.3 route-map add3-4g ゜ut COrmands neighb゜r matChesll.0.0.0/8, normalprocess C〇nneC亡ion neighbor fori亡S add3-4s rou亡e-maP a of prepending 4亡hinstance permit so of 亡helocalAS ASN 亡hat∴亡he 4.As res亡 配置BGP策略 2.4 93 l ip prefix-1ist matchll seq permit 5 ll.0.0.0/8 1 r゜ute-maP match Set ip add3-4s permit address prefix-1ist aS-Path 4 prepend lo 4 matchll 4 1 route-maP add3-4s ! Below, ! (R4) ! on R4. ! at S亡ep ! Next, look ! to AS_PATH ! rou亡e ! 10.1.15.5 R3# first has be sh゜W four The focus on ll.0.0.O/8. consecu亡ive rou亡e 亡hrough 4s in The the lO.1.35.5 highligh亡ed AS_PATH, ends up route Showing being wi亡h 亡he based bes亡 NEXT_HOP effects on of lO.1.34.4 the prepending 亡iebreaker 亡he 9. 亡0 a亡16.0.0.0/4. ip because bgp 2, leng亡h 16.0.0.0/4 Network * 20 permit l The through it is begin rou亡e bu亡∴亡he NEXT_HOP eBGP, 亡hrough length VerSuS lO.1.34.4 亡hrough lO.1.35.5 iBGP for is considered lO.1.35.5 is is over 亡he chosen rou亡e only l. 亡he 亡hrough The rou亡e through lO.1.15.5. Network Nex亡 H〇P Me亡ric LocPrf Weigh亡 Path 10.1.36.6 4294967294 0 65000 1 33333 10 200 44 lO.1.16.6 4294967294 O 65000 1 33333 10 200 44 ★ 10.1.34.4 4294967294 O 4 4 4 4 1 ★> 10.1.35.5 4294967294 O 5 1 33333 10.1.34.4 4294967294 O 4 (1,404,303,202) 10.1.35.5 4294967294 0 5 i 4294967294 O 5 i 11.0.0.0 ★ ★ i 16.0.0.0/4 ★> ★ i lO.1.15.5 图2-10给出了AS二PATH前附加功能特性的应用示意图o 的路由前附加了自已的ASN 4 33333 10 10 200 44 200 i i 44 i i ? R6正确地为宣告给Rl (如图中上部所示),但R6同样由于为宣告给R3的路 由前附加了ASN2而产生了问题(如图中下部所示)。 IsPI AsNl ≡重≡≒ lsP3 AsN3 图2 ̄10 前附加AsN的选项 虽然AS_PATH前附加能够增加AS二PATH的长度,但是路由聚合却能缩短 94 第2章 BGP路由策略 AS二PATH的长度。基于BGP aggregate-address命令的路由聚合(汇总)机制能够通 过如下方式影响AS_PATH的长度: ■ 路由器检查成员子网的AS_PATHAS_SEQ值,如果所有成员子网的AS_SEQ 值均相同,那么聚合路由将使用该相同的AS_SEQ; ■ 如果成员子网的AS_SEQ值不同,那么聚合路由器将为聚合路由使用空 AS_SEQ (宣告给eBGP对等体时,路由器会按照常规做法前附加自己的本地 ASN),当然,该进程会减小AS_PATH的长度。 此外,携带选项as-Set的aggregate-address命令也能增大ASJRATH的长度计算 结果。如果路由器使用了携带选项as-Set的aggregate-address命令,而且路由聚合清 空了AS_SEQ (如前所述) ,那么该路由器就会将AS_SET字段添加到AS二PATH中(与 此相反,如果路由聚合没有清空AS_SEQ,那么路由器就不会创建AS_SET,因为在 这种情况下预防路由环路不需要AS_SET) , AS_SET包含了所有成员子网的ASNo BGP在计算AS二PATH长度时,无论AS_SET的实际长度是多少,都将整个AS_SET 视为10 例2-9给出了AS_PATH前附加与路由聚合对AS二PATH长度的影响示例。该例使 用了图2-7的常见网络,例中用到的功能特性如下: ■ R4将路由11.0.0.0/8宣告给AS 4 ■ 123之前,为该路由前附加了三个额外的ASN (使用出站路由映射); 虽然R4和R5汇总了16.0.0.0/4,但R4使用了as ̄Set选项,而R5没有使用 该选项。 从第二条可以看出, R3学到了两条汇总路由,但是将学自R5的汇总路由视为更 优路由。这是因为计算AS上ATH长度时,将R4汇总路由中的AS_SET视为1个ASNo 2.4.7 第6步:最佳ORIGINFIA 周知强制BGP 分别为i (IGP)、 ORIGEN e PA根据路由注人BGP的方式来比选路由, (EGP)或? ORIGIN代码 (不完全的)o BGP决策进程在比较ORIGEN代码的时候非常简单。首先,目前已经不存在 ORIGnヾ代码e (EGP),因为当前的IOS修订版本根本就不支持EGP,因而可以将决 策逻辑简化如下: 如果去往单一NLRI的一组路由仅包舍一条ORTGEN代码为i 撞他路由均为? (IGP)的路由,其 (不完全的),那么o珊毗码为i的路由将成为最佳路由゜ BGP路由策略可以利用路由映射子命令set origin来显式设置ORIGIN代码(虽 然通常更倾向于在BGP决策进程的前面步骤配置BGP策略)o BGP根据注人路由的 方法以及aggregate-address命令所使用的选项来确定ORIGEN代码。 2.4 配置BGP策略 95 有关ORIGIN代码的详细信息以及为NLRI分配ORIGEN代码的方式,请参见第 1章的“ORIGN路径属性”一节0 2.4.8 第7步:最小MED MED (或MUIJI‘I_EXIT」)ISC)的作用是允许AS内的路由器告诉邻居AS中的 路由器特定路由有多好。事实上,根据MED的工作方式,人们通常将MED称为BGP 度量(虽然MED在BGP决策进程中并不靠前)。图2-11给出了MED的典型应用场 景,图中的客户通过两条链路连接了某个ISP,该ISP知道11.0.0.0/8和12.0.0.0/8的 最佳路由,因而可以设置MED,以便让客户将数据包路由给最靠近目的网络的eBGP 对等体。 ∵>最佳路由 图2-11 ∴ > BGP更新 -一一-BGP对等体 MED的典型应用 ISP知道到达11.0.0.0/8的最佳路由是经R5的路由,因而配置R5为该前缀设置 低MED值,配置R7为该相同前缀设置高MED值。这样一来,客户AS 123中的BGP 路由器就能选择经上方对等连接的路由,在上方连接出现故障后,客户可以再选择经 下方链路的路由。 图2-11给出了一个典型的MED应用拓扑结构一客户仅连接单个ISP,但是却 通过多条链路连接该ISPo很多客户还希望连接冗余的ISP,或者至少连接由某个大型 ISP控制的多个自治系统。此时也可以使用MED,但是要求多个ISP或者同一个ISP 的多个AS在确定MED数值的时候采取相同的策略。例如,客户的两个ISP可以就以 96 第2章 BGP路由策略 下情形达成一致意见:如果某个ISP对于特定范围内的BGP前缀拥有更大的链路带宽, 那么就应该由该ISP为这些NLRI设置较低的MED值。 表2-13列出了与MED相关的关键特性。 MED的关键特性 表2-13 是m吗? 是;可选非传递m 目的 允许指定AS告诉邻居AS将数据色转发到本AS的最佳路径 范围 由一个AS宣告到另一个AS中,并在该AS中进行传播,僵是对于其他AS来说不可见 默认值 O 更改默认值 使用BGP子命令bgpbestpathmedmissing-aS-WOrst,将MED设置为最大值 取值范围 O-4294967295(232-1) 什么情况下最优? 值越小越优 配置 通过neighborr゜ute-maPO山命令进行配置,在躇由映射中使用Setmetric命令 1.配置MED:单个邻接As 例2-10给出了与图2-11相配套的MED配置示例, R5和R7为11.0.0.0/8设置的 MED值分别为10和200 臂个AS之胸铂箕型∥ED应居 励2-10 !The !亡O R5 per亡inen亡 !亡he me亡ric aVOid router follows. configura亡ion tolO.The rou亡e-maPincludes affec亡ing o亡her a Simply ma亡Ches defaul亡 11.0.0.0/8 pemit any clause and se亡S a亡∴亡he end r〇u亡es. 5 bgp neighborlO.1.35.3r゜ute-maPSet-medout ● R5 l ipprefix-1istllseq5permitll.0.0.0/8 ! route-maP Set-medpermitlO matchip address get route-maP !R7's o壬 !Rllis亡S !亡hrough 20 Set-medpermit no亡 configurationis !se亡亡ing Rl# prefix-1istll metriclO wi亡h rou亡es R5is Shown,bu亡i亡 MED.However,R7 亡he bes亡 亡he se亡S R5(10.1.35.5)and due 亡O 亡hel〇Wer basically MED R7 亡0 亡he Same regarding 亡he 20. (10.1.17.7) as NExT 亡he HOP; r〇u亡e MED. showipbgplbeginNetwork Ne亡WOrk Nex亡 Me亡ric Hop *>ill.0.0.0 10.1.35.5 10 * 10.1.17.7 20 ★>12.0.0.0 10.1.35.5 ★ lO.1.17.7 i !R3 is sees only the MEDlo LocPrf 100 0 rou亡e.Rl's bes亡 Pa亡h Weigh亡 100 r〇 u亡e O 5 1 33333 10 200 44 1 0 5 1 33333 10 200 44 1 0 5 1 33333 10 200 44 1 0 5 1 33333 10 200 44 1 to NEXT HOP 10.1.35.5 1 S 亡hrough 2.4 !R3,SO Rldidn〇亡 R3# best rou亡e toll.0.0.0/8 toiBGP peer 97 R3. showip bgplbeginNetwork Ne亡WOrk 击靛 adver亡isei亡S 配置BGP策略 Nex亡 Hop *>11.0.0.0 10.1.35.5 *>12.0.0.0 10.1.35.5 *i lO.1.17.7 非常重要的一点是, Me亡ric LocPrf We|gh亡 10 0 100 Pa亡h 0 5133333 10 200 44i 0 513333310 200 44i 0 5133333 200 44i 10 R5和R7应该同时为11.0.0●0/8设置MEDo如果R5将其MED 坤撮设置为10,而R7没有设置MED,那么路由器就会将经R7的路由选为最佳路由o 和R3为经Rl和R7的路由使用它们假定的默认MED值00与IGP度量类似, 越小越优。可以利用BGP子命令bgp bestpath med Rl MED missing-aS-WOrSt设置更好的MED 默认值,该命令可以将路由器的默认MED重置为最大可能的MED值(而不是最小值) 。 需要注意的是,同一AS内的所有路由器要么使用默认值0,要么就配置该命令,否 则将会影响路由选择结果0 2.配置MED,多个邻接As 如果去往单个NLRI的多条路由列出了不同的邻居ASN,那么Cisco路由器将默 认忽略MEDo这是有道理的,因为通常很难让两个不同的邻居ISP采取完全相同的 MED设置策略。如果要更改这种默认操作并在任何场景下都考虑MED,那么就需要 在路由器上配置BGP子命令bgp always-COmPare-medo如果在一台路由器上配置了 该命令,那么同一AS内的所有路由器都应该使用bgp always-COmPare-med命令,否 则就会产生路由环路。 此外,某些Cisco文档还提到,处理MED的内部BGP决策进程可能会由于BGP 表中表项的次序不同而不同。有意思的是, 顺序在show ip bgp和show ip BGP按照从新(最近学到的路由)到旧的 bgpj?′吻命令输出结果中显示BGP表项。在某些情况 下,针对同一NLRI的多条竟争路由(来自不同AS)拥有不同的MED值,那么这些 表项的顺序就会影响最终的最佳路由选择结果。出现不同选择结果的原因是Cis∞ IOS (默认)按序处理列表。也就是说,首先处理第一对路由(最新),从这两条路由中选 择最佳路由,然后再将该路由与下一条最新路由进行对比,以此类推o Cisco解决这种非确定性的MED处理行为的方法是为分析和做出MED决策创 建一种替代进程。在这种新进程下, BGP将按照每个邻居AS处理路由,从每个邻 居AS中选择最佳路由,然后再比较这些路由。因而该决策逻辑可以基于MED实 现确定性的路由选择,也就是说,可以避免BGP因BGP表中的路由顺序不同而做 出不同的路由选择。如果要启用该增强型决策逻辑,可以在同一As中的路由器上 配置bgp 该设置。 deterministic-med命令。事实上, Cisco建议在所有新的BGP实现中启用 攻城狮论坛 98 bbs.vlan5.com 第2章 #^_^# 版权归原作者所有 本资料仅供试读 . BGP路由策略 3. MED的有效范围 不应该将MED PA宣告到从人站BGP更新消息中获得MED值的AS外部。通常 情况下(如本节案例所示),由某个AS内的路由器在路由映射中设置的MED能够影 响另一个AS中的BGP决策进程,因而MED值是由某个AS内的路由器进行设置的, 然后又被其他AS内的路由器学到,但是到达其他AS之后,只能在该AS内部宣告该 MED,而不能宣告到该AS外部。如图2-11所示,图中的R5和R7设置了MED并将 其宣告到AS 123中。但是如果AS 123中的路由器拥有其他eBGP连接去往其他ASN, 那么它们将宣告该NLRI,但是不会包含MED值。 此外,还可以通过人站路由映射设置MEDo虽然这种方法并不是使用MED的 期望设计方法,但是如果通过人站路由映射设置MED,那么确实可以设置MED, 此时路由器可以将MED宣告给iBGP对等体,但是仍然不能将该MED宣告到本地 AS之外0 第8步:邻居类型eBGP优于iBGP 本决策步骤非常简单,无需过多解释。需要记住的是,决策进程的目标是为每个 2.4.9 NLRI找到一条最佳路由。本决策步骤只是简单地查看是否存在单条eBGP路由,如果 存在,那么就选择该路由。如果存在多条eBGP路由,那么本决策步骤将无法确定最 佳路由。 有意思的是,当两台或多台企业路由器连接到同一个ISP时, BGP会经常使用本 决策步骤。企业中的每台边界BGP路由器都会从ISP收到相同的前缀,这些前缀的 AS二PATH长度也相同。然后边界BGP路由器会将这些路由宣告给它们的iBGP对等 体,因而企业每台边界路由器都知道到达每条NLRI的每一条eBGP路由,并且从该 企业的其他边界路由器学到到达相同前缀的一条或多条iBGP路由。在没有配置路由 策略的情况下,由于所有前缀都是通过同一个邻居ISP学到的,因而到达本决策步骤 之前(包括AS_PAVH长度)都无法选出最佳路由。到达本决策步骤后,就可以将eBGP 路由选为最佳路由0 2.4.10 第9步:去往NEXT_HOP的最小IGP度量 本决策步骤也无须过多解释,路由器为特定前缀查找到达每个BGP表项中列出的 NExT_HOP的路由,列在这里的原因仅仅是保持决策进程列表的完整性0 2.4.11 maximum-paths命令与BGP决策进程的比较规则 从路由器的角度来看, BGP决策进程的目标是为每个NLRI都找到一条最佳BGP 攻城狮论坛(技术+生活)2群 1813097 2.4 配置BGP策略 99 路由,然后路由器仅将最佳路由宣告给其他路由器,并根据AS二PATH环路避免与路 由策略的配置情况限制这些路由。此外,路由器还试图将最佳路由(仅最近路由)添 加到自已的IP路由表中。事实上,只要其他路由源没有发现去往相同前缀的路由(拥 有更优的管理距离) ,那么就会将最佳BGP路由添加到该路由器的IP路由表中。 如果BGP经过第0步到第8步仍然没有为指定NLRT选定最佳路由,那么就表明 存在多条并列候选最佳路由,此时BGP需要做出以下两个重要决策。 ■ 哪条路由是最佳路由? BGP将利用两条对比规则(将在后面讨论)来确定最 佳路由。 ■ 是否将到达该NLRI的多条BGP路由都添加到IP路由表中? BGP需要根据 maximum-Paths命令的设置情况做出该决策(如后面的第10步和第11步所述) 。 即使BGP将多条去往相同前缀的BGP路由都添加到了IP路由表中,也仍然仅选 择一条路由作为BGP表中的最佳路由0 2.4.12 第10步:最小的宣告路由器BGPRID (有一个例外情况) 第一条比选规则就是选取RID最小的路由,该决策步骤实际上包含以下两个步骤: ■ 仅检查eBGP路由,选择由RID最小的路由器宣告的路由; ■ 如果仅存在iBGP路由,那么选择由RID最小的路由器宣告的路由。 上述直观规则虽然适用于很多场景,但对于有些场景来说则不适用。如果BGP已 经有了去往特定NLRT的最佳路由,但是又从其他路由器学到了新的BGP信息,且这 些信息中包含了到达之前已知前缀的新BGP路由,那么就会出现该规则的例外情况。 此时的路由器将再次应用决策进程来确定是否更改到达该NLⅢ的最佳路由。如果决策 进程到达本决策步骤时仍未确定最佳路由,那么本决策步骤将使用以下默认逻辑: 如果现有最佳路由是eBGP路由,那么就不替换现有最佳路由,即使新路由拥有 更小的RIDo 其原因是更改路由会导致路由翻动,因而保持现有路由是一种比较好的处理方式。 如果配置了BGP子命令bgp bestpath compare-routerid ,那么就会改变上述决策逻辑, 始终选择RTD最小的路由。请注意,上述例外情况仅适用于eBGP路由。如果当前的 最佳路由是iBGP路由,那么BGP决策进程将会根据最小的宣告路由器RID来选择最 佳路由0 2.4.13 第11步:最小邻居ID 如果第10步仍未选出最佳路由,那么路由器至少有两条指向相同路由器的 neighbor命令,而且该路由器的RTD恰巧在当前宣告特定NLRT的所有邻居中最小。 如果两台路由器之间存在冗余连接,那么通常使用环回接口进行配置,使用单条 100 第2章 BGP路由策略 neighbor命令。如果邻居是eBGP邻居,那么就使用neighbor ebgp-multihop命令。 不过,使用一对(或更多)指向单个邻居路由器的neighbor命令也是一种有效配置方 式o BGP决策进程的最后一个决策步骤就可以解决这种场景。 此时,路由器会查看与收到该路由的所有邻居相关联的neighbor命令中的IP地 址。需要注意的是,路由器在本决策步骤同样要重新考虑所有路由,因而有可能不会 在本步骤选择RID最小的邻居路由器0 1. BGP maximum-Paths命令 BGP默认将maximum-Paths命令设置为1 ,也就是说,只有BGP表中的最佳BGP 路由才有可能被添加到IP路由表中。不过在某些条件下(具体条件与最佳路由是eBGP 路由还是iBGP而不同) ,BGP会考虑将到达同一NLRI的多条路由都添加到IP路由表中。 首先考虑eBGP路由o BGP将依据如下规则来确定路由器是否以及何时将到达单 个NLRI的多条eBGP路由都添加到IP路由表中。 规则1: 规则2. 规则3‥ BGP必须使用第10步或第11步的决策规则来确定最佳路由。 : maXimum-Paths 73”加er命令中的路径数量必须配置为大于默认值1 0 只有那些邻接ASN与最佳路由的ASN相同的eBGP路由才会被视为候 选路由。 规则4:如果候选路由的数量大于maximum-Paths命令指定的路径数,那么第10 步和第11步决策规则将确定使用哪条路由。 虽然上述列表显得比较复杂,但核心思想是路由器可以信任多条路由,只要这些 数据包最终可以到达同一个邻接AS即可。此外,如果BGP在决策进程的第1步到第 9步找到了最佳路由,那么BGP必须限制自已不使用多条路径,因为根据其他路由来 转发数据包可能会产生路由环路。 接下来考虑iBGP路由o iBGP路由的规则与eBGP路由的规则相似,但也有一些 差别,规则如下。 规则1:与eBGP规则1相同。 规则2.:由maximum■Paths eBGP使用的maximum■Pa仙s ibgp 7”佛ber命令定义可能的IP路由数量,而不是 rm彻ber命令。 规则3:只有那些NEXT_HOP设置不同的iBGP路由才会被视为候选路由。 规则4:与eBGP规则4相同o iBGP路由的大部分逻辑规则在原理上都与eBGP路由相同。除此以外,如果 NEXT_HOP的设置均相同,那么就不会添加多条皿路由,因而BGP需要执行该检查操作。 最后,虽然maximum-Pa恤s eibgp mu阴beJ,命令看起来同时适用于iBGP和eBGP路由, 但是该命令仅适用于启用MPLS的场景。表2-14列出了与BGP多路径相关的主要命令。 2.5 表2-14 2.5 BGP BGP团体属性101 maximum-Paths命令选项 maximum-Pathsnumber 仅eBGP路由 maximum-Pathsibgpr)″mbe′ 仅iBGP路由 maximum-Pathseibgpnumbe′ 两种类型路由,但是仅适用于启用MPLS的场景 BGP团体属性 BGP COMMUNITY (团体) PA提供了一种路由组合机制,允许将路由策略应用 于具有相同团体属性的所有路由。将一组路由都标记为相同的COMMUNITY字符串 之后,路由器就可以查找COMMUNITY字符串,然后再傲出策略决策,如设置某些 可能会影响BGP决策进程的PA或者只是简单地过滤路由o BGP团体属性的功能很强 大,因为该属性允许指定AS中的路由器与相隔一个或多个AS的路由器之间交换策 略信息。事实上,由于COMMUNITY PA是一种可选传递PA,因而即使是不理解 COMMUNITY属性的自治系统也能传递该属性,而且对于其他下游AS仍然有用。 图2-12给出了团体属性的常见应用示例。该设计方案的目标是让ASN 4和ASN 5 中的工程师协同工作,以确定到达每个前缀的最佳路由,然后再以某种方式告诉ASN 123中的路由器。这一点听起来似乎很熟悉,实际上这就是使用MED的动机(如 图2-11所示)。不过MED在BGP决策进程中比较靠后,甚至要晚于最短AS_PATHo 一种更好的设计方案是使用COMMUNITY字符串并据此来设置LOCAL二PREF 因为LOCAL_PREF在BGP决策进程中较为靠前。 AsN5 ∴- 图2 ̄12 >最佳路由 ∴ >BGP更新 一一一一BGP对等体 利用COMMUNITY来部署路由策略 ,这是 102 第2章 BGP路由策略 图2-12中的操作步骤如下。 第1步: AS4和AS 第2步:AS4和AS 5的工程师们就每个前缀经哪个AS到达为最优达成一致。 5的工程师们在备自去往AS 123的邻居连接上配置出站路由 映射,将属于最佳路径的路由的COMMUNITY设置为1 ,将其余路由的COMMENITY 设置为20 第3步: R3和R4收到更新消息,根据COMMENITY来匹配NLRI,并将 COMMUNITY为1的路由的LOCAL_PREF设置为较大值。 第4步:利用LOCAL_PREF值影响BGP的最佳路由选择结果。 与本章前面的各种配置方式相比,本方案具有很多优点,包括灵活使用 LOCAL二PREF属性,来帮助AS 计方案将通过AS 4或AS 员。如果AS 4和AS 那么设置AS 4和AS 无需对AS AS 5的工作人 5的拓扑结构出现了变化、链路速率增大了或者出现了其他变化, 5的COMMUNITY属性的路由映射也要做出相应地变化。不过 123做任何调整,因为AS 是一家企业, 123确定使用哪个邻居AS到达每个前缀。但是该设 5到达每个前缀的路由选择权交给了AS4和AS 4和AS 123仅关注COMMUNITY字符串。假设AS 123 5都是ISP,那么ISP就可以通过一系列配置变更操作来影响 大量客户的路由选择。 例2-11给出了与图2-12相对应的配置示例。除了两个额外的功能特性之外,该 配置使用的很多命令及推导过程都与前面介绍过的内容类似。 ■ R4和R5 (AS4和AS 5)必须使用BGP子命令neighborsend-COmmunity, 目的是告诉BGP在更新消息中包含COMMUNITY 那么更新消息将不包含COMMUNITY ■ Rl和R3 (AS 必须利用ip 励2- “ ! PAo如果没有配置该命令, PAo 123)需要根据接收到的COMMUNITY值来匹配NLRI,因而 community ̄Iist命令来配置团体列表以匹配COMMUNITYo ∴旅置coMMUIV/ry并旅捞coMMOw′TY来没置LOCALPREF R4 mus亡∴add ! the ! COMMUN|TY router 亡he COMMUN工TY bgp 亡0 neighbor∴Send-COInENmity PA 1, in and updates sent∴亡O ma亡Ches 21/8 R3. and se亡S 4 neighbor lO.1.34.3 gend-C゜mmunity both neighb゜r lO.1.34.3 r゜ute-maP ゜ut C゜rm p ゜一 .﹂.工 Prefix-1ist ll seq 5 permit ll.0.0.0/8 Prefix-1ist 21 seq 5 permit 21.0.0.0/8 Ⅰ. r°uce-map match 鲁et com ip pemit address commmicy lo prefix-1ist ll l ! route-map match ip com pem土t address 20 prefix-1ist 21 c°rmand, The O亡herwise r°u亡e-maP COMMUN|TY 亡0 i亡Will ma亡Ches 2. ll/8, no亡include and sets BGP团体属性103 2.5 8ec∴communicy rouce-mp ! R5 ! :〇r has c゜mm and bgp 30 pe量mic essen亡ially 21/8 r゜ucef 2 亡〇 亡he 壬〇r 2 same con王iguraci〇n, ll,'8-the lO.1.15.1 neighbof lO.1.15.1 rouce-map com COMMUN工TY 二〇 ouc ●⊥一.⊥一一-● p二p ll geq 5 pe膏mic ll.0.o.0/8 pfe餐ix-1igc 21鲁eq 5 pe膏mic 21.o.0.o/8 rouce-map 8ec secs R5 8end-c゜mmunicy pfe餐ix-1i8c comm ip 二hac exCep二 R4. 5 neighbof macch 〇: 〇pp〇sice pemic∴10 addfegg communicy pfe餐ix-1i8c l1 2 1 rouce-mp maccb com ip pe暮mic addre8g gec∴c゜mmunicy rouce-map ! R3 Next, R3 LOC主L_PREF∴uslng ! COMγJN:TY ! parame÷ers. bgp neighbor 30 pemic ! 量Outef 21 l c゜mm Corifig: 20 pfe董ix-1igc is∴C〇 matc!1eS On∴the∴reCeived a∴r〇uCe-map re王er∴亡〇 an Called ip COMMUNITY reacc士〇一COm. comm恤nicy-1i8c , strings The only which∴亡hen and has sets maLCh 亡〇 way 亡he 亡he∴ma仁Ching 123 lO. 1.34.4∴r゜uce-map∴reacc-cO-c゜m iα p p ●﹂.1一-● commnity-1i鲁c l communicy-1i鲁c permic l pe膏mic 2 2 fouce-m恿p∴摹eacc-cO-c゜mm macch gec commnicy 血acch. 8ec lo 300 l゜cal-pre壬erence r゜uce一舶p pemic l react-c゜一comm 20 pemic 2 commnicy 200 local-preiefence 1 rouce一血ap∴reacc-cO-c゜mm ! No亡 ! fact shown-RI that∴the !亡° R5 ! R3 ch〇〇ses ! 〇三 R3‘s 30 pemit R∵s Con壬ig● coniig inbound∴route-maP ma二=hes∴R3.s 亡r∴every is∴aPPl|ed∴for∴the way, exCepc f〇r∴che neigbbor∴COrmand pointing (10.1.15.5〉. ! from R4 ! R5 ! Updace i工s besc asslgnmenC 11Sting 日O工工5.出, which lp l ¨/8 wl二∴∴NExT_ⅡOP 300, COMMUNITY happens 21/8 c〇 1is亡1ng ∴ wh主ch R3's p〇1nC of R4 in∴二urn best∴r〇ute back∴chr〇ugh COM测NITY l, and 出0.1.34.4上. was to Rl, a reSul工 12/8 a resui亡 亡he points∴to because Lhen∴se亡 as 〇f Rl Updace NEXT_HOP received∴an 300. LOCAL_PREF∴C〇 begin肘ecwofk Nex亡∴H〇p MecrlC L〇CPr王∴welghc∴Pach 1 33333∴主0 20C| 5 1 33333 10 20C 10 ★> 10.1.34.4∴∴∴∴4294967294 0 4 1 33333 ★>i21.O.0.0 10.1.15.5∴∴∴∴429496?294 300 0 5 1 404 303 202 i ★ 10∴.34.4∴∴∴∴4294967294 200 0 4∴1∴404 303 202 i R3 l 1王 nc)W or Rl 2. lists N〇Le ltS BGP table Cha亡∴b〇Ch had∴configured a enlries inat commands 〇n且y neighb゜薯 3.3.3.3 have COMMUNITY lisc∴Che∴rouCes settings 20C′ that learned∴direccly 鲁end-c゜皿咖恤icy c〇mmand, R3 ′q 4 0 ′哼 0 ヽ-一.1 300 429496了294∴∴∴∴100 4 10.1.15.5 ⊥一 10.1.34.4∴∴∴∴429‘!9b7294 ^=臀 ★→∴二i.0.0.O ★∴i二2.0.0.0 /→∴′生 Ne÷w〇rk bgp c〇 LOCAL_PREF as ll/8 丢r〇m∴R与∴f°r R3*∴8b゜w pa亡h o王 include from w〇uld R4. have 104 第2章 BGP路由策略 ' _-〇▼d L.J工 ' -〔 三上∴d∴α 生摹 l 干3~ 3( 8how ∴ 二∴ 〕 、 ∴上∵∵ . 、∴三三. (∴ 一 ▼,‥ (】 〇三< C二 ★ . 三广, bgp (c . 2 communicy 1 begin . ∵广\ ' ' ) ̄ ̄ 广∵广 ′ 、 , ★ ゝ ;)、∵ 广:, 市 ′ \)C , \三▼(. _ , 、, )∵ |∴-◆. / ' ‥ ∴ヽ′‘ 卜 ?J←← . !上. ! gbow ◆r←ゝ : ヽ、. .. ip bgp ‘ヽ士. \ 〔一〇∵∵dr工t,∴工( { 日 日〕士二) ' 、) 干三s∴8how 犯 ▼ ∴、 _ O bgp 21.0.Q.0 、α工 干 士。 .。~, ( ○、 ◆ , .' 主(一()¨`′ ←, | | 3.3.3.3 neighbor 3 市 ) .'′) ' ip 〇∴ 三{(三 ,一 8end-c゜mmunicy \ . √ 〕 、 ¨ヽ . ↑ ∵二∴∴。 T二∴工∴于. /' ∵ ` ∵CC∵二;于∵.〇 ` c◆∴ ' , (主、 ’. `小三 , 市ヽ(r 士二 日∵∴ 一ヽ Necw゜rk 川) ' ‘三ヽ` /士 〈写 ‘ (∵∴(- ′于、 ○:ヽ ← (、 ヽ ★ ← 〇 ∴ _ :于 { ' ∴/♀毒。/ ip .〇' ヽ ` 8how 、, 出( → / ( ∪ . u.\ .J. J‥ 。上∵上、  ̄ 'ゝ|' C工∵〕( ̄、∴ ∴丫 ` .. ○ ∴ 丫○▲ 三 ` (、〇出( ▼ () 1 t)(、 、 ∴_:∵ ̄二∴三.一 )、 士_。一〔 . e 士三、 ' 二\( ○ C ○▼ ←ヽ \↑∵∵ ‥〇 bgp∴comunicy 'C、士 ○出ヽ( /‥ ` ( 三上; ip 士毒〕|● → 三。. c 二二. C〔)`′!′∴ '、\ 」三大主、广 中_ `C (ヽ‥ 〈ヽ、. . + 厂.(▲ ←’ .. ` ′市_α ‘/ ∴〕‘ : '、市士∴∴士于:人 ( ! . 士〕 ' ‥ :了 一 二、∴.‥ { 厂 ′ 一 ヽ' 出(:〉 〔)r | 〈 ′ヽ←∵主.;)士 士(./ ` ., 、▼( , :八ヽ ` ◆ ! ◆ 、 . ′’、 ∵ . ▲. ' .市 ` . .. . 士 /厂’→, ( ' `三(▲ L(〕二∵∴∵∴ ̄ ! ! . 厂 ’ 三 厅′:一了) ̄ | .,士 告i∴●∵:〇∵∵∵毛需.∴∴上 J '` 2.5.1利用团体列表匹配COMMUNITY Cisco最初创建团体属性时是一种私有助能持性,将32比特的COMMUNITY视 为一个十进制值(如例2一Ⅱ所示)。后来将COMMUNITYPA添加到BGP标准RFC 中之后, 32比特的COMMUNITY格式被调整为AA‥NNo其中, 数字,可以表示ASN; 1997 AA是一个16比特 NN则表示由该ASN设置的一个值。虽然格式不同,但 COMMUNITYPA仍然是一.个32比特值o Cisco路山器可以为COMMUNITY PA蚀用最初的原始格式.也可以使用 RFC‘ 1997格式o show命令默认显示的是十进制数值.如果要使用AA:NN格式∴邯么就需 要配置全昂命令ip bgp-COmmuntry neWrfermato此外, Set命令(与路由映射一起使 用)也可以使用老式的士进制格式或新式的AA‥NN格式。由干配置或不配置ip bgp-COmmuntry neWformat命令将决定show route-maP命今显示的是十进制格式还是 AA‥NN格式,因而在实际拉用中,通常选择井使用单.格式(目前通常选择新格式)o COMMUNITYPA也支持多条日。例如,应用于路面映射的setcommunity 102030 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 BGP团体属性105 2.5 命令创建了一个拥有这三个数值的COMMUNITY,在这种情况下,任何现有的 COMMUNITY值都将被替换成10、 20和300需要注意的是, Set COmmunity lO additive命令的作用是在现有COMMUNITY字符串的基础上添加数值10、 考虑到多条目COMMUNITY以及COMMUNITY字符串中的符号“:” 要求使用比IP ACL更复杂的匹配能力。例如,团体列表可以在ip , 20 30 20和300 Cisco IOS community-1ist命 令中列出多个团体值。如果要匹配这样的命令,那么COMMUNITY就必须包含所有 数值(注: COMMUNITY数值是无序的,因而团体列表中的数值顺序没有任何关系)。 此外,扩展团体列表(编号100- 199)还允许采用正则表达式来匹配COMMUNITYPAo 表2-15列出了与团体列表相关的关键特性。 标准团体列表与扩展团体列表的对比 表2-15 击 列表编呈 1一-99 100一-199 目 能够在单条命令中匹配多个团体吗? E己 刀≡ 刀≡ 能够利用正则表达式匹配coMMUNITYPA吗? 否 目 刀≡ 单个列表可以超过16行吗? 否 目 刀≡ 例2-12给出了一些团体列表示例,例中的R4为前缀11/8和12/8设置了多个 COMMUNITY数值,然后使用show ip bgp co中munity-1ist /is/一肋Jnder命令来显示是 否有匹配项。该命令列出了BGP表中与COMMUNITYPA相匹配的所有表项,与show ip bgp regex命令检查AS二PAVH PA非常相似。 励2-12剁居/P团体砌表迸行鹏 R3# show ip C〇rmuni亡y Permi亡 Cormuni亡y Cormuni亡y 11/8's show R3# show ! the R3# 2 COMMUN工TY ip bgp ip bgp should ! show ip bgp 11.0.0.0 Both lis亡111 s亡ring ll.0.0.O 0:1212 0‥1212 lis亡ed include 0:1234 12.0.0.O match is l l nex亡, 8‥12 8‥9 followed by 12/8's Only ll/8 COMMUNITY string. CoIlmnity include 12‥9 12‥13 Community 8:13 8‥12 only ll/8, and values ! 11/8 no亡12/8, aS has 2 1 begin O:1234 as one of and ma亡Ch 12/8 matching ip bgp Network Nex亡 Hop Me亡ric L〇CPrf Weigh亡 configured. has show c゜rmunity-1ist 4294967294 10.1.34.4 ll/8 ! R3# access values. Ne亡WOrk *> 3 8:9 0‥12.* Cormuni亡y‥ List lis亡 O‥1212 Cormuni亡y‥ ! 2 (expanded) Permi亡 ! list 0‥1234 s亡andard Permit R3# c゜mmnity-1ist s亡andard The 亡he lis亡 values for co删nunity-1ist O‥1212 uses bo亡h 3 1 a 1is亡ed l〇gical in list AND 0 3, be亡Ween 4 1 Pa亡h 33333 bu亡Iis亡 the 3 10 has en亡ries, 200 44 i 亡WO and only cormuni亡ies. begin Network 攻城狮论坛(技术+生活)2群 1813097 . 106 第2章 BGP路由策略 Ne亡WOrk !Lis亡111 ma亡Ches !followedby any !ma亡Ches 亡O !have due Ne亡W〇rk 2.5.2 COMMUN工TY any addi亡ional 亡he LocPrf O‥1212. Pa亡h Weigh亡 4294967294 4133333 0 s亡ringwi亡h one entry Charac亡ers.11/8 ma亡Ches COMMUN工TY O:12,0‥123,and values 10 44i 200 beginningwith due t〇 the O:12, O:1234,and12/8 o亡her would also ma亡Ched. showip bgp R3# Me亡ric Nex亡 Hop 10.1.34.4 11.0.0.0 *> community-1istllllbegin Network Nex亡 Me亡ric Hop LocPrf Weigh亡 Pa亡h ★> 11.O.0.O 10.1.34.4 4294967294 0 4133333 10 200 44i ★> 12.0.0.0 10.1.34.4 4294967294 0 4133333 10 200 44i 删除coMMUNITY值 有时路由策略可能需要从COMMUNITY PA中删除某个字符串或者删除整个 COMMUNITYPA,此时可以利用路由映射(使用set命令)来完成该操作。删除整个 COMMUNITY PA相对比较简单,只要在route-maP语旬中包含set community none 命令即可,所有与该语旬相匹配的路由都将删除其COMMUNITYPAo例如,例2-11 显示了每台路由器上的路由映射route-maP reaCt-tO-COmmo对于本设计方案来说,在 利用Rl和R3接收到的COMMUNITY字符串来匹配正确路由并设置了LOCAL_PREF 值之后,就不再需要COMMUNITY PA了,因而例2-13显示的修改后的路由映射将 在此时删除COMMUNITYo 励2-73 不厚;需要coMMUMTY route-maP match reaCt-t゜-COrm comⅢnity fIA之后物馈整个coMMUMTy Perm土t lo l Set loca1-Preference Set COmmnity 300 none l route-maP match Set reaCt-t゜-COrm community loca1-Preference Set∴community Permit 20 2 200 none l route-maP 利用set 30 reaCt-tO-COrm Perm土t comm-1ist co阴阴阴try一砧仁″∥7?ber delete命令可以删除单个COMMUNITY 字符串,该命令的作用是告诉路由映射根据团体列表来匹配路由并删除团体列表中列 出的COMMUNITY字符串(此时对于每条ip community-1ist命令来说,被引用的团 体列表可以仅包含一个COMMUNITY字符串) 2.5.3 0 利用COMMUNITY值过滤NLRl 路由器可以通过路由映射来过滤特定NLRI,从而不将这些NLRI添加到BGP表中或 者通过更新消息发送给其他路由器。这些路由映射可以利用命令match (劝切毗加肌九/加一肋加针I e哗?仍砧才砧加附咖可∞朋″彻″砂一/加一阴″馆[ community exact ]) (该命令反 快速收敛增强功能107 2.6 过来又引用了团体列表)来匹配BGP路由中的COMMUNITY)。 此外, BGP还为COMMUNITYPA保留了多个特殊值,从而允许实施路由过滤操 作。与团体列表和路由映射相比,这种方式较为简单。在BGP确定了向哪些BGP对 等体宣告路由之后,这些特殊的COMMUNITY值(设置之后)就会影响路由器所使 用的决策逻辑。表2-16列出了这些特殊的COMMUNITY值。 专用于NLRl过滤的COMMUNITY值 表2-16 1 一 一 NO EXPORT FFFF:FFOl 不宣告到本As之外,可以宣告给其他联盟自治系统 NOAD>ERT FFFF:FFO2 不宣告给其他任何对等体 LOCALASl FFFF:FFO3 不宣告到本地联盟Sub-AS之外 LOcAL_AS是cisco专用术语, RFc 1997将该值定义为NO_EXPORT_sUBcoNFED 不能将COMMUNITY值为NO二EXPORT的路由宣告到AS之外,该COMMUNITY 值可以防止特定AS成为一组前缀的穿透ASo例如,如果AS NO_EXPORT的eBGP宣告给了AS 2,那么AS l中的路由器将设置了 2中的路由器只能在AS 2内部宣告该 路由,而不能将该路由宣告到AS2之外,因而AS2不可能成为该前缀的穿透ASo需要 注意的是,虽然无须为AS 2内的路由器配置路由映射以防止该路由流出AS 内的iBGP对等体必须利用neighbor 2,但AS 2 send-COmmunity命令启用COMMUNITYo COMMUNITY值LOCAL_AS的功能与NO二EXPORT相似,只是将路由限制在单 个联盟Sub-AS之内o COMMUNITY值NOJIDVERT看起来似乎有些不一样,该值允许路由器将前缀 宣告给对等体,但是希望对等体不再宣告该路由。 最后,需要注意的是,这些特殊的COMMUNITY值都有一些操作注意事项。首 先,收到这些特殊团体属性的路由器都可以利用这些明显的关键字来匹配上述三个 特殊团体值(使用ipcommunity■list命令)。其次,路由器可以利用路由映射来匹配 这些COMMUNITY字符串,然后再删除这些COMMUNITY字符串,从而忽略限制 路由宣告范围的要求。最后,可以利用show ip bgp community no-eXPOrt命令(以 及相似的NO_ADVERT和LOCAL_AS选项)来显示携带上述COMMUNITY数值的 路由信息0 2.6 快速收敛增强功能 虽然BGP也有很多固有缺陷,但是由于BGP具备很多特殊特性及功能,因而人 们仍然选择BGP在Intemet上交换路由和前缀信息o BGP在管理规模上具有很好的扩 展性,当然带来的问题也较为复杂、难以掌控,尤其是BGP的收敛速度非常缓慢。事 108 第2章 BGP路由策略 实上, BGP在Intemet上得到广泛应用的一个原因就是其缓慢的收敛速度。随着网络 的不断发展变化,特别是近年来各种新技术(如三层vPN)的大量采用,我们处于一 种很特殊的状态,一方面由于BGP具有无与伦比的路由交换能力而完全依赖BGP, 但另一方面由于BGP具有缓慢的收敛特性而又成为网络基础设施的不利因素。面对这 种困境,我们必须在IOS中修改BGP代码的运行方式。 为了更好地理解这些修改内容,必须分析并掌握BGP协议有限状态机的运行方 式。首先来看一下BGP对等关系中断后的操作过程。需要指出的是,该场景下即使 IP路由表显示邻居不可达,底层的BGP进程也不会重新发起收敛进程,直至TCP 会话超时或者BGP会话的Hold ̄down (抑制)定时器超时。该过程的默认时间为3 分钟。 依赖这些会话定时器并不是BGP进程收敛速度慢的唯一因素,还必须认识到BGP 仅向其邻居周期性地提供更新消息,时间间隔取决于对等类型: 接收一次更新消息; iBGP对等体每5秒钟 eBGP对等体则每30秒钟接收一次更新消息。 最后,需要考虑BGP对底层IGP的依赖情况,其中, IGP的作用是解析下一跳的 可达性。我们知道所有IGP通常都要检测网络中的变化情况并快速重收敛,事实上, IGP在新路由的重收敛速度上要远快于BGP,这一点从BGP每隔60秒钟才验证下一 跳可达性就可以看出来。 大家不必花费很长的时间逐一分析这些必须克服的产生收敛时延“完美风暴”的 因素,了解了这些问题的本质之后,就可以很好地理解BGP快速收敛的优化方式。 2.6.1快速外部邻居丢失检测 IOS对BGP操作所做的第一个改进就是快速外部倒换(fast extemal fa11-OVer) 。 在这种操作模式下,直连eBGP邻居之间的eBGP会话将在对等体之间的直连子网丢 失的情况下立即被拆除,这样就会立即清除BGP路由, 该功能特性并不是IOS的新功能, IOS Release BGP也将立即查找替代路由。 lO.0及以后版本中均默认启用该功能 特性0 2.6.2 内部邻居丢失检测 该功能特性是从IOS 蠢 Release 12.0开始引人的新增强特性,前面所说的快速外部倒 换仅适用于eBGP对等体之间的邻居丢失检测,允许IOS在这些对等体之间实现快速 重收敛,但是对于内部邻居来说则没有此类工具。在引人快速对等去活(fast-Peering deactivation)特性之前,都只能通过减小保持激活(keepalive)和保持时间(holdtime) 值来优化iBGP会话的操作特性。 目前只要配置neighbor fal1-OVer命令,就可以在不增加保持激活流量而加剧CPU 2.6 快速收敛增强功能109 负荷的情况下,改变iBGP对等体之间的操作行为。只要从路由表中删除了BGP对等 体的IP地址,就能立即拆除与该对等体的BGP会话,从而实现快速收敛。 需要注意的是,使用本解决方案时必须考虑底层的IGP特性,要求IGP协议必须 能够立即找到去往BGP对等体的替代路由。如果去往BGP对等体的原始路由出现中 断后,未能立即在IP路由表中插人新路由,哪怕这中间出现了一丁点儿中断,那么 BGP会话都会中断。 请注意, 2.6.3 BGP会话去活特性不使用抑制或延时机制0 EBGP快速会话去活 BGP快速会话去活(fast session deactivation)适用于所有BGP会话。该特性可以 快速检测eBGP对等体在环回接日之间建立的eBGP会话的失效情况。如果禁用了快 速外部倒换特性,那么该特性还可以检测eBGP邻居的丢失情况。 快速外部倒换是一个全局设置特性,而快速会话去活特性则需要针对每个邻居逐 一进行配置,因而在使用路由器配置命令no bgp fiut-eXtermalrfulIover禁用快速外部 倒换特性的情况下,仍然可以对选定的eBGP子集的接口故障保持快速响应o eBGP快速会话去活与前面描述的iBGP用例完全相同,也通过neighbor 命令来部署该特性,甚至还可以反映如下规则: route-maP命令直连。 备考任务 表2-17列出了与本章所涵盖的BGP概念相关的一些重要RFCo 表2-17 fal1-OVer BGP对等体必须与仅匹配直连子网的 第2章的协议与标准 一 BGP-4 RFc4271 TheNOPEERC゜mmunity RFc3765 BGPRouteReflection RFc4456 BGPCommunities RFc1997 表2-18列出了与本章主题相关的一些常用Cis∞ IOS命令。 110 第2章 BGP路由策略 表2-18 第2章的命令参考 BGP模式;该命令的作用是让路由器对比MED(即使邻 bgpaIways-COmPare-med 居AsN不相同) BGP模式;该命令的作用是让路由器在选择经不同联盟 bgpbestpathmedconfed Sub-AS的路由时考虑MED bgpbestpathmedmissing-aS-WOrst BGP模式,该命令可以默认MED值重置为O至最大值(232-1) bgpdefaultloca1-Preferencer)″mber BGP模式;该命令可以设置默认LOcAL_PREF值 BGP模式;该命令的作用是让IOs基于邻居AS(而不 bgpdeterministic-med 是路由学到的顺序)来处理MED逻辑 BGP模式;该命令的作用是让路由器丢弃AS_PA「I ̄H长 bgpmaxas ̄limitr)″mber 度超过本设置值的路由 Clearipbgp(*l″e佃hbo广addressIpee广g′O″P-″ame) ExEc模式;该命令的作用是清除BGP进程或邻居,可 [soft[inIoutⅡ 选使用软重配特性 BGP模式;该命令可以定义BGP分发列表(AcL或前 distribute-1istac厂月″mberlprefix″s+nameinlout 缀列表)以过滤路由 ipas-Pathaccess-1ista∞eSS-“S←rwmber(Permitl 盒局配置;该命令可以在用于匹配现有As一附H值的 deny)as-regexp) As瞅I ̄H访问列表中创建表项 全局配置;该命令的作用是让IOS显示并解析RFc1997 ipbgp-COmmunitynew-format 格式(AA:NN)的coMMUNITYPA ipcommunity-1ist(Sfar)(fardIstanda巾ts←name (denylpemit)[α〕mmun/fyLr)unber][AA∵IVIV] 全局配置;该命令可以在用于匹配现有coMMUNITY值 [intemetⅡlocalASⅡnoadvertiseHnoexport])l 的团体列表中创建表项 (expa″dedlexpandedife←r)ame(denylpermit)regexp) BGP模式;该命令的作用是设置能够添加到IP路由表中 maximum-Paths月″mber 的eBGP路由的数量 BGP模式;该命令的作用是在使用MPLS时设置能够添 maximum-Pathseibgpn″mbe′[importr)″mbe月 加到IP路由表中的eBGP路由及iBGP路由的数童 BGP模式;该命令的作用是设置能够添加到IP路由表中 maximum-Pathsibgpn″mber 的iBGP路由的数量 neighbor(fO-addressIpee厂g′Oap-r)ame)distribute-1ist BGP模式;该命令的作用是标识用于过滤NLRl(发送给 (access-ifefLr)″mbe′lexpanded-ife←n∥mbe′l 邻居或者从邻居收到的NLRl)的分发列表 access-ife←r)amelprefix」ife←″ame)(inIout) 2.6 快速收敛增强功能111 续表 neighbor(fO-add′eSSIpee广g′OuP-″ame) BGP模式;该命令的作用是标识用于过滤NLRl的 filter-1istaccess一″sL″Umbe′(inlout) AS_PArI ̄H访问列表,过滤方式是匹配AS_P/ITHPA BGP模式;该命令的作用是定义一个可选ASN,该ASN neighbor(fO-addressIpee广g′OuP-name) 将被前附加到发送eBGP更新消息的AS_PATH中,而 loca1-aSaS-n″mber[no-PrePend] 不是列在routerbgp命令中的ASN neighbor(fO-addessIpeengrotxpmame)prefix-1ist BGP模式;该命令的作用是标识用于过滤NLRl(发送给 (Prefix」胁amelcins一棚erexpmamelchs ̄栅e广SefLname) 邻居或者从邻居接收到的NLRI)的IP前缀列表 (i可Out) neighbor(fO-addressIpeerg′O″P-name) BGP模式;该命令与eBGP对等体配合使踊,可以在一 remove ̄Private-aS 定的条件下从AS_FyrI ̄H中删除私有ASN neighbor(fO-addressIpee广g′OuP ̄name) BGP模式;该命令的作用是定义一个路由映射以及将路 route-maPmap-r)ame(inlout) 由策略应用于BGP更新消忌的方向 BGP模式;该命令用于RR服务器,作用是将邻居标识 neighborfO-addressroute-reflector-Client 为RR客户端 neighbor(fO-addressIpee厂grO″P一″ame) BGP模式;该命令的作用是让路由器在发送给邻居的更 Send-COmmunify[bothlstandardlextended] 新消患中色舍coMMUNITYPA neighbor(fO-addressIpee广g/O″P-name) BGP模式;该命令的作用是启用更新的软重配特性 S°ft-reCOnfiguration[inbound] neighbor(fO-aaldrressIpee广g′Oap-″ame) BGP模式;该命令的作用是允许标识之前已被抑制的路 unsuppress-maP′Oute-maP一月ame 由,从而不再抑制这些路由 neighbor(try-add′eSSIpee广g′O″P-name)weight BGP模式;该命令的作用是为所有从邻居处学到的路由 ″″mbe′ 设置BGP权值 BGP模式;该命令的作用是将指定网络标识为后门路由, networkfO-addressbackdoor 该路由的管理距离与iBGP路由相同 ExEc模式;该命令的作用是显示AS_PATHPA与所声 Showipbgpquote-regeXPregexp 明的正则表达式相匹配的BGP表项 EXEC模式;该命令的作用是显示AS_PATHFIA与所声 Showipbgpregexp′egeXP 明的正则表达式相匹配的BGP表顶 ShowipcommunftyJist【sfa帅da′deomm″″/fyLife←″″mbe′ EXEC模式;该命令的作用是列出已配置的旧团体列表 lexfe″(fedr∞mmunfty-ifeL″″mbe′lco″7/77″″′fy-ifef-r)ame 的内容 ][exact-matCh] 攻城狮论坛 112 bbs.vlan5.com 第2章 #^_^# 版权归原作者所有 本资料仅供试读 BGP路由策略 EXEc模式;该命令的作用是显示色舍所列coMMUNITY showipbgpcommunitycommur?fty-n″mbe′[exact] 的BGP表项 Sh゜WipbgpfiIter-1istaccess-ifef-r)umbe′ ExEC模式;该命令的作用是显示AS__FyII ̄H访问列表的内容 BGP模式;直连eBGP邻居之问的eBGP会话将在这些 neighb゜rfraddessfallover[route-maPmap-″ameI 对等体之问的直连子网丢失的情况下立即被拆除 表2-19列出了路由映射中与定义BGP路由策略相关的match和set命令。 用于BGP的路由映射match和set命令 表2-19 ー matchas-Pathpath-ife!-n″mbe′ 引用ipas-Pathaccess-1ist命令以检查AS_PArI ̄H matchcommunfty(Sfandard-ife!-″″mber 引用ipcommunfty-1ist命令以检查coMMUNITYPA Iexpa″ded-ifef-r)″mbe′lcomm∥7/fy-ifefname[exact]) matchipaddress(access-ifeI-″″mbe′ 引用IP访问列表以根据NLRl来实施匹配操作 [access-ifef-r)″mber...1access-″sf″ame...] matchipaddressprefix-1istprefix-ifefr)ame 引用IP前缀列表以根据NLRl来实施匹配操作 [p伦/秋一″s←″ame...1) matchtagfag-Va/″e【...fag-Va/∥e] 匹配之前设置的路由标签 SetaS-Pathprependas-Path-Sfrir)g 将所列ASN添加到AS_PIN ̄H的开头 SetCOmm-1istcommunfty-″s!一nunberl 从coMMUNITYPA中删除个别字符串,这些字符串与 comm∥″rty二″s←月amedeIete 所引用的团体列表相匹配 SetCOmmunity(COmm″r)′fyLn″mber 设置、替换、添加或删除整个coMMUNITY [additive】[we∥knowr+commt/″fty]lnone) 2.7 Setipnext-hoptry-address[...try-address/ 使用对等体地址选顶时,该命令会将NEXT_HOPPA重 [peer-address] 置为发送方(将更新消患发送给邻居)的IP地址 Setloca1-Preferencer)″mberLVa/″e 设置LOcAL Setmetricmefrfe-Va/∥e 仅入站方向;设置MUFTLEXIT_DISCPA setorigin(igplegpas一″unbe′lincomplete) 设置ORIGINPA值 SetWeightn″mbe′ 设置cisc゜专有的管理性枚值 PREFFIA 理解与记忆 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试 攻城狮论坛(技术+生活)2群 1813097 . 理解与记忆113 2.7 主题,因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试 主题0 2.7.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 2.7.2 定义关键术语 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: NLR1.软重配、 AS_SEQUENCE、 NEXT HOP. CLUSTER AS一卫FTH访问列表、 AS_SET、周知强制、周知自选、可选传递、可选非传递、 AGGREGATOR LIST , 2.7.3 AS、 NO , ATOMIC ORIGEN.管理权值、 MUITI_EXIT_DISC LOCAL ASLP‘FTH前附加、正则表达式、 AGGREGATE NO ORIGINATOR LOCAL二PREF. (MED)、邻居类型、 EXPORT、 , ADVERT、 EXPORT ID. 长度、 AS二PATH BGP决策进程、私有AS、 NO AS_PATH、 COMMUNITY、 SUBCONFED 推荐读物 Routing Cisco TCP月P BGP-4 Intemet VAlume Command Routing Troubleshooting Faraz H , and by Configuration Architec血res IP JeffDoyle Routing , by and Handbook Bassam ProtocoIs , Jennifer , DeHaven by Carrol Wi11iam R. Parkhurst Halabi by Zch.eer Aziz, Johnson Liu, Abe Martey, and Shamim αsco BGP支持页面提供了大量有用的参考信息(需要Cisco.com的用户名和密码) WWW.Cisco.com/en/US佃artner/techftk3 65∧k80∧sd : technology_SuPPOrLsub-ProtoCOl home .html 如果希望了解BGP表顺序对于与MED相关的最佳路径选择的影响信息,请参考如下Cisco 资源: WWWCisco.com/en/US佃ar血erftech他c3 25.shtml 65ftectmologiesJechLPOteO9 1 8 6aoO 8 00949 本章主要讨论以下主题: ■ MQC(ModularQoSCLl,模块化QosCLl) ■ NBAR ( Network-Based 基于网络的应用识别) ■ Qos分类; ■ Qos标记; ■ CiscoAutoQoSo Application ; ; Recognition, 第3章 分类与标记 分类与标记工具的目标就是通过尽可能少地执行复杂分类操作来简化其他QoS (Quality ofService,服务质量)工具的分类进程。例如,分类与标记工具可能会检查数 据包的源IP地址、人站CoS (Class ofService,服务类别)参数以及TCP或UDP端口 号,然后可能为那些与上述字段相匹配的数据包标记IPP 或DSCP (DiffServ Code (IP Precedence, IP优先级) Points,差分服务代码点)字段。此后其他QoS工具(位于相 同或不同路由器/交换机上)在做出QoS决策之前只要简单地查找这些标记字段即可, 而不需要在采取期望的QoS操作之前再去执行这些复杂的分类操作0 3.1 ″我已经知道了吗? ”测试题 表3-1列出了本章的基本主题以及与之相应的测试题。 ″我已经知道了吗? 表3-1 ”基本主题与测试题对照表 用于Qos的可标记字段 1一-4 CiscoMQc 5-7 分类与标记工具 8一-10 AutoQoS 11 得分 为了提高测试评价效果,请务必严格评分。参考答案请参见附录Ao l.根据D瞄ServRFC,下面哪个PHB在每种服务类别中都定义了一组三个DSCP,并且 这三个DSCP值都有不同的丢弃特性? a.快速转发 b.分类选择器 c.确保转发 d.多类别多丢弃 2.下面有关IP报头中DSCP位置的描述,哪一项是正确的? a. TbS字节/DS字段的高阶6个比特 116 第3章 分类与标记 b. TbS字节的低阶6个比特 c. TbS字节的中间6个比特 d.前3个比特与IP优先级重叠 e.后3个比特与IP优先级重叠 3.假设某数据包被标记了DSCP CS3,然后QoS工具再对该数据包进行分类,那么 下面哪一个分类标准将匹配该数据包(假设原先的CS3标记没有发生任何变化)? a.匹配DSCPCS3 b.匹配优先级3 c.匹配DSCPAF32 d.匹配DSCPAF31 e.匹配DSCP十进制数值24 4.假设某数据包被标记了AF31 ,然后QoS工具再对该数据包进行分类,那么下面哪 一个分类标准将匹配该数据包(假设原先的AF31标记没有发生任何变化)? a.匹配DSCPCS3 b.匹配优先级3 c.匹配DSCP24 d.匹配DSCP26 e.匹配DSCP28 5.下面的路由器输出结果显示了用户向该路由器增加的配置情况,那么有关该配置 的描述,哪一项是正确的? Rou亡er(COnfig) # class-maP fred 叠F R〇u亡er(C〇nfig-CmaP)# match dscp Rou亡er(COnfig-CmaP) match access-grouP # a.同时匹配DSCPEF与ACL b.匹配DSCPEF或ACL c.匹配ACL lol lol的数据包将匹配该类别 lol的数据包将匹配该类别 lol的数据包将匹配该类别,这是因为第二条match命令替代了第 一条match命令 d.由于第一次匹配后即退出路由映射,因而数据包将仅匹配DSCPEF 6.假设路由器Rl配置了以下三个路由映射,那么下面哪些路由映射将匹配Cos字段 为3、 IP优先级为2以及DSCP为AF21的人站帧? Class-maP ma亡ch ma亡Ch-all c〇s Class-maP 3 ma亡Ch-any ma亡ch cos 2 match c〇s l Class-maP cos 3 ma亡Ch c〇s 2 C2 3 ma亡Ch-all ma亡ch cl 4 4 c3 3.1 a. cl b. c2 c. c3 “我已经知道了吗? ”测试题117 d.以上答案均正确 7.请分析下列在配置模式下输人的用于创建分类映射的命令。假设在策略映射中使 用了class fred命令,并在接口上启用了策略映射,那么下面有关被该分类映射所 分类的数据包的描述,哪一项是正确的? R〇u亡er(C〇nfig) # class-maP fred Router(COnfig-CmaP)# match ip dscp ef R〇u亡er(C〇nfig-CmaP) match ip dscp af31 # a.匹配DSCPEF和AF31的数据包 b.匹配DSCPEF或AF31的数据包 c.匹配非EF或非AF31的所有数据包 d.未匹配数据包 e.匹配优先级值为3和5的数据包 8.在路由器Rl的帧中继子接口SO/0.1的配置信息中发现了命令service-POlicy output fred,那么下面有关该CB标记策略映射的描述,哪一项是正确的? a.该策略映射可以使用基于DE比特进行匹配的分类映射来分类数据包 b.该策略映射可以引用基于DSCP进行匹配的分类映射 C.该策略映射可以设置CoS d.该策略映射可以设置CLP e.该策略映射可以设置DE 9.有关下列配置步骤的描述,哪一项是正确的? R〇u亡er(c〇nfig) # class-maP barney Rou亡er(COnfig-CmaP) # match Router (COnfig-CmaP) # p゜1icy-maP Router (c〇nfig-PmaP) # R〇u亡er(C〇nfig-PmaP-C) Rou亡er(c〇nfig-PmaP-C) Rou亡er(COnfig-if) # class # # set protoc゜1 http url "this-here.jpg" fred barney dscp af21 interface service-P゜1icy faO/O output fred a.如果还未配置,那么就需要配置全局命令ip cef b.该配置未使用NBAR,因为该配置中无match c.将拒绝service-POIicy命令,因为match nbar命令 protocol不能用作输出功能 d.以上答案均正确 10●在哪些模式下才能在路由器上运行qos a.在加密映射配置模式下 b.在GRE隧道配置模式下 c.在点对点子接口配置模式下 pre-Classify命令? 118 第3章 分类与标记 d.仅在物理接口配置模式下 e.在分类映射配置模式下 f.在全局配置模式下 11.下面有关CiscoAutoQoS的描述,哪些是正确的? a.只能用于交换机,不能用于路由器 b.使QoS配置操作更快捷、更简单、更使宜 c. d. AutoQoS可以为语音、视频以及其他类型的数据配置服务质量 AutoQoS命令应用在接口上 e.修改AutoQoS设置之前,必须先禁用AutoQoS 基本主题 本章主要包括三部分内容,首先描述可以由C&M 与标记)工具标记的备种字段,然后讨论Cis∞ CLI) (αassification IOS MQC ,所有以Class-Based开头的IOS Mirking,分类 QoS CLI,模块化QoS QoS工具都使用MQC,最后讨论C&M工具,重 点分析最重要的C&M工具一一℃B标记(Class-Based 3.2 (Modular and Mirking,基于类别的标记) 0 用于Qos的可标记字段 IP报头、 LAN中继报头、帧中继报头以及ATM信元报头中都至少有一个字段可以 执行某种形式的QoS标记操作。本节将列举并定义这些字段,重点讨论IPP IP优先级)和DSCP 3.2.1 (Diffirentiated Service Code (IP Precedence , Po五,差分服务代码点)字段。 1PP与DScP对比 IP报头定义在RFC 791中,其中定义了一个被称为ToS 型)字节的1字节字段o (rtype ofService,服务类 QoS工具可以利用TbS字节来标记数据包并进行特殊处理o TbS字节可以进行细分,其中的3个高阶比特被称为IPP字段。表3-2列出了TbS字 节中最初的3比特IPP字段的数值及相应的名称。 表3-2 1PP数值及其名称 藕 Routine(普通) 优先级O OOO Priority(优先) 优先级1 OOl lmmediate(快速) 优先级2 010 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 用于Qos的可标记字段119 3.2 续表 ′ ∵三三∴三∴三∵ 三三三三∵ 三 / Flash(闪速) 优先级3 011 Flashoverride(急速) 优先级4 100 critic/Critical(关键) 优先级5 101 lntemetworkControl(网问控制) 优先级6 110 NetworkContr゜l(网络控制) 优先级7 111 TbS字节的比特3到比特6是标记字段,表示打开或关闭特定QoS服务oRFC 791 未定义最后一个比特(比特7)。由于标记字段很少用,因而TbS字节的主要用途就是 3比特IPP字段。 后来又发布了一系列被称为Difrserv (Di跪rentiated Services,差分服务)的RFCo 由于DiffServ需要三个以上的比特来标记数据包,因而D脆Serv重新定义并标准化了 TbS字节,并将TbS字节重新命名为DS (Di跪rentiated Services,差分服务)字段o IPP也被称为DSCP的6比特字段(高阶比特0-5)所替代。后来, DS字段的2个低阶比特,用于QoS ECN (Explicit Congestion RFC3168定义了 Notification,显式拥塞 指示)特性。图3-1给出了Di鹏eⅣ字段定义前后的TbS字节的格式信息0 8比特 8比特 图3-1 1PlbS字节与DS字段对比 由于IP包通过IP网络进行转发时需要保持不变,因而C&M工具常常标记DSCP 或IPP,其他可能的标记字段则位于二层报头,意味着三层协议在执行转发操作时会 丢弃这些二层报头,因而二层报头中的标记字段无法承载超出当前跳的QoS标记0 3.2.2 DSCP的设置与术语 有些DiflServ RFC建议了一组DSCP字段值并解释了这些值的含义。例如, 攻城狮论坛(技术+生活)2群 RFC 1813097 . 120 第3章 分类与标记 3246将DSCP十进制数值46定义为EF (Expedited Forwarding,快速转发)。根据该 RFC的定义,需要为所有标记为EF的数据包提供优先队列以实现最小时延,不过需 要对这类数据包实施一定的策略控制,以免这些数据包始终占据链路,同时还要在这 些高优先级流量达到或超过接日带宽时,避免其他类型的流量穿越接口。通常将这些 建议设置以及使用每种设置时建议的关联QoS行为称为PHB 跳行为) 1. (Per-Hop Behavior,每 (前面介绍的例子就被称为快速转发PHB)0 CSPHB与DScP数值 由于DS字段只是简单地重新定义了IP报头中的原始TbS字节,因而IPP与DSCP 字段的前3个比特是重叠的。由于出现了重叠,因而RFC 值以及PHB,将这些PHB称为CS IPP的后向兼容性o (αass 2475定义了一组DSCP数 Selector,分类选择器) C&M工具可以设置CS PHB,可以实现与 DSCP值,如果其他路由器或交换机仅查 看IPP字段,那么从IPP的角度来看,这些值就是有意义的。表3-3列出了CSDSCP 的名称及数值,同时还列出了相应的IPP名称及数值。 默认及CS 表3-3 DScP数值 一 一 ★ Default(默认)/CSO* 000000 OOO Routine(普通) csl 001000 001 Priority(优先) cs2 010000 010 lmmediate(快速) cs3 011000 011 Flash(闪速) cs4 100000 100 Flashoverride(急速) cS5 101000 101 Critic/cr砧cal(关键) cs6 110000 110 lntemetworkControl(网间控制) cs7 111000 111 Netw゜rkControl(网络控制) 虽然术语“cSO”和“Default (默认) “指的都是二进制DScP数值000000,但大多数Cisco IOs命令仅允许使用 关键字“Default”来表示该数值 除了定义8个DSCP数值及其文本名称之外, 一组简单的QoS操作o CS CS PHB简单地要求CS PHB还根据这些CS数值建议了 DSCP数值较大的数据包应该比CS DSCP数值较小的数据包获得优先排队0 2. AF AFPHB与DSCP数值 (AssuredForwarding,确保转发) PHB (RFC 2597)为排队操作定义了4种类别, 而且在每个队列中都定义了3个丢弃级别。为了标记数据包并对数据包进行分类,以确 定应该将数据包放人4个队列中的哪一个队列,同时还要确定备个队列中的3个丢弃优 3.2 先级之一, AFPHB定义了12种DSCP数值及其含义o 其中, x表示4个队列之一(数值为1-4), 用于Qos的可标记字段121 AFDSCP名称的格式为: AFxy y表示3个丢弃优先级之一(数值为 1-3)o AF 例如, AF PHB建议DSCP名称AFxy中的x数值越大,那么该数据包应该越优先排队。 AF ll DSCP的数据包获得的排队处理应该劣于AF23 DSCP的数据包。此外, PHB还建议DSCP名称AFxy中的y数值越大,那么该数据包应该获得越差的丢弃 处理(数据包的丢弃处理级别越差,表明该数据包越可能被丢弃)。例如, 的数据包获得的丢弃处理应该优于AF 23 AF ll DSCP的数据包。表3-4列出了AF DSCP DSCP名 称、队列等级以及相应的丢弃概率。 AF 表3-4 DSCP数值一名称、二进制数值以及十进制数值 名称/十进制/二进制 名称/十进制/二进制 名称/十进制/二进制 1 AFll/10/001010 AF12/12/001100 AF13/14/001110 2 AF21/18/010010 AF22/20/010100 AF23/22/010110 3 AF31/26/011010 AF32/28/011100 AF33/30/011110 4 AF41/34/100010 AF42/36/100100 AF43/38/100110 AF PHB名称并不遵循“越大越优”的逻辑规则。例如,名称AFll代表DSCP 十进制数值10, AF13代表DSCP十进制数值14,但AFll “优于” AF13,这是因为 AFll和AF13的队列等级相同,但AFll的丢弃概率要低于AF130 AF DSCP数值的二进制形式显示了该数值的模式。二进制DSCP值的前3个比特 (从左到右数比特0一比特2)指定的是队列等级,接下来的2个比特(比特3和比特 4)指定丢弃优先级,因而仅支持IPP的排队工具也能处理AFDSCP数值。因此,从 排队的角度来看, 3. AF DSCP后向兼容非Difrserv节点。 EFPHB与DScP数值 RFC 2598定义了EF (Expedited Forwarding,快速转发) PHBo本节刚开始时曾 经提到过EFPHB,该RFC定义了一对非常简单的PHB操作: ■ 对EF包进行排队,使它们能够得到快速调度,从而实现低时延; ■ 对EF包进行策略控制,使它们不会消耗链路上的所有带宽或者不会让其他队 列得不到服务。 为EF定义的DSCP值就是EF,其十进制数值为46,二进制数值为1011100 122 分类与标记 第3章 3.2.3 非IP报头的标记字段 IP包穿越互连网络时,会使用备种报头来封装数据包。有时这些报头会包含QoS 字段,此时就可以利用这些QoS字段实现数据包的分类与标记0 1.以太网LANCos 虽然以太网支持3比特QoS标记字段,但是仅当以太网报头中包含802.1Q或ISL 中继报头时才存在该QoS字段o IEEE 802.1Q将QoS字段定义为2字节标签控制(Thg Control)字段中的3个最高有效比特,称为用户优先级比特o (User)字段中的3个最低有效比特,称为CoS ISL定义了1字节用户 (αassofService,服务类别)。无论是 哪种类型的中继,多数人(以及大多数IOS命令)通常都将这些字段统称为CoS字段。 图3 ̄2给出了ISL和802.1Q报头中的CoS字段的位置。 IsL用户字段(1字节) 802.1 Q/P 报头 802.1Q标记字段(2字节) 图3-2 LANcoS字段 2. WAN标记字段 虽然帧中继和ATM都支持单个可用于QoS用途的比特,但这些单个QoS比特主 要用于对丢弃概率非常严格的场合,与那些未将QoS比特设置为1的帧或信元相比, 系统将首先丢弃QoS比特被设置为1的帧或信元。通常将这些QoS比特称为帧中继 DE (Discard Eligibility,丢弃指示)比特或ATM 先级)比特。路由器、 CLP (Cell Loss Priority,信元丢弃优 ATM或帧中继交换机都可以设置这些比特,然后再配置路由器 和交换机的丢弃特性,让它们优先丢弃那些DE比特或CLP比特置位的帧或信元o MPLS定义了一个可用于QoS标记的3比特字段,称为MPLS EXP(Experimental, 试验)比特。一般来说,部署在MPLS网络边缘的C&M工具需要将DSCP或IPP值 重新映射为MPLS EXP比特值,从而在MPLS网络中提供QoS能力。 用于Qos的可标记字段123 3.2 3.标记与匹配的位置 图3-3给出了一个示例网络,图中标出了备类QoS字段的位置。 根据ExP进行排队 蠢酵一里高 霞 服务器1 根据cos进行 排队/丢弃 图3 ̄3 显示非IP可标记QoS字段的网络示意图 对于图3-3来说,虽然IP包中的IPP和DSCP字段始终保持端到端的完整性,但 某些设备可能无法查看IPP或DSCP字段,而某些设备则可能认为查看其他报头字段 更为方便。例如,可以将MPLS网络中的MPLS LSR 路由器)配置为根据MPLS标签中的MPLS (Lhoel SwitchRouter,标签交换 EXP字段做出QoS决策。但是它们无法 查看封装后的IP报头及DSCP字段,此时可能需要在边缘设备上配置QoS工具来查 看DSCP,然后再标记一个不同的字段。 由于网络中只有部分区域存在非IP报头的可标记字段,因而可以仅在适当的接口 上利用这些字段进行分类或标记。那么可以在哪些位置上使用这些非IP报头的可标记字 段(CoS、 DE、 CLP、 EXP)呢?规则如下。 ■ 分类:仅适用于人站接口,而且要求该接口支持特定的报头字段。 ■ 标记:仅适用于出站接口,而且要求该接口支持特定的报头字段。 例如,如果在Rl的鼠0/0.1 802.1Q子接口上配置了CB标记特性,那么就可以基 于CoS值分类人站帧,并根据CoS值标记出站帧。但是无法在人站接口上标记CoS, 也无法在出站接口上根据Cos对帧进行分类。与此相似,对于相同的龟0/0.1子接口 来说, CB标记特性也无法基于DE比特、 CLP比特或MPLS EXP比特进行分类或标 记,因为以太网接口根本就不存在这些报头。 表3-5总结了这些QoS标记字段的相关信息。 标记字段小结 表3-5 ー ∴ ∴ 三 ∴ lP优先级(lPP) lP报头 3比特 IPDSCP lP报头 6比特 124 3.3 分类与标记 第3章 Ds字段 IP报头 1字节 「bs字节 lP报头 1字节 cos lsL和802.1Q报头 3比特 DE 帧中继报头 1比特 cLP ATM信元头 1比特 MPLSEXP MPLS报头 3比特 CiscoMQc 经过多年的发展以及大量IOS版本的积累, Cis∞开发了大量QoS特性及功能。由于 每种QoS特性及功能都要使用自已独立的配置和执行命令,因而大量不同的QoS工具及 QoS命令使得QoS配置工作变得极为繁琐,为此Cisco开发了MQC以解决该问题o MQC 定义了一组常用的配置命令,可以在路由器或交换机上配置很多常见的QoS功能特性。 与IOS配置模式不同, MQC并不是一个全新的配置QoS的CLI,而是一种将IOS 分类、标记以及相关操作归类为逻辑组合以统一命令行接口的方法o 下定义了一组新的配置命令,这些命令的输人方式与IOS MQC在配置模式 CLI相同。不过在理解了 MQC之后,通常只需要学习一条新命令,就可以掌握如何配置基于MQC的QoS工 具了。大家可以根据工具的名称来识别基于MQC的工具,这些工具都以短语 “Class ̄Based” WeightedFair (CB 3.3.1 (通常缩写为CB)开头,包括CB标记(CB Queuing,基于类别的加权公平队列)、 Shaping)以及CB报头压缩(CB Header Marking)、 CB监管(CB CBwFQ Policing), (CB CB整形 Compression)等0 MQc原理 MQC将QoS工具的分类功能从QoS工具希望执行的操作(PHB)中分离出来, 为此MQC包含了三个非常重要的命令以及其他一些常规命令‥ ■ 由class-map命令定义匹配参数,从而将数据包分类到不同的服务类别中; ■ 由policy-maP命令定义PHB操作(标记、排队等); ■ 由service■POIicy命令在接口上启用策略映射。 图3-4给出了这些命令的通用流程。 图3-4所示网络的QoS策略要求将数据包分成两类进行差异化处理,称为QoS 服务类别(为了突出通用流程以及主要命令的协作方式,图中并没有显示实际归人 每种类别的数据包的类型)。为了将数据包分成两类,需要使用class-maP命令。每 条class-maP命令后面都要配置定义实际参数的match子命令。利用这些参数来比对 3.3 CiscoMQc 125 置 配 类 分 在接口上 T{ 操作/PHB配置 ∫lIL 帧头/包头内容,从而匹配数据包并进行分类。 启用Qos策略 图3-4 MQc命令及其相互关系 对于每种服务类别来说,都要执行一定的QoS操作(PHB),此时就需要利用 POlicy-maP命令来配置这些QoS操作。单个策略映射可以引用多个类别。图3-4就显 示了两种类别: myClassl和myclass20在单个策略映射(称为mypolicy)内部,可以 在每种类别(myclassl和myclass2)下配置独立的QoS操作。例如,可以为myclassl 和myclass2中的数据包应用不同的标记。最后,在接日上应用了service-POlicy命令 之后,就可以在接口的人站或出站方向启用QoS功能特性。 下一节将详细分析利用分类映射(class 策略映射(policy 3.3.2 map)实现数据包分类的相关内容。有关 map)的大多数内容请参见本章后面的CB标记的配置部分0 利用分类映射进行分类 基于MQC的QoS工具在MQC分类映射内部使用match子命令进行数据包分类。 分类映射匹配并分类数据包的规则如下: ■ match命令在匹配数据包时可以提供多个选项,包括QoS字段、 ACL以及 MAC地址; ■ 分类映射的名称区分大小写; ■ match protocoI命令表示IOS使用NBAR (Network-Based Application Recognition,基于网络的应用识别)来执行匹配操作; ■ match any命令可以匹配任何数据包,也就是说,可以匹配任意以及全部数据包。 例3-1给出了简单的cB标记配置示例,并给出了分类配置的注释信息。例中的 分类映射名称以及匹配逻辑都与图3-4完全匹配。 励3-1基榴cB席姑示励 !CEFis required for !configurationwould CBMarking.Withou亡i亡,亡he be allowed,but∴亡he class service-P゜1icy map andpolicymap cormandwould be rejec亡ed. 攻城狮论坛 126 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 分类与标记 第3章 ip cef ! The ! 32767 firs亡 ! second rtp The ! implies Set ! The is all UDP/RTP added亡O ma亡Ches any and the all packe亡S firs亡∴亡O Wi亡h UDP ge亡∴亡he por亡S end of be亡Ween the 16384 range.) and The packets. myclassl 16384 map 16383 myclass2 calls 亡ha亡∴亡he P゜1icy-maP get map matCh-a11 policy PHB each is 亡he of marking, 亡WO Class maps for matching. meaning 亡hat∴this is a CB leaving in亡erface faO/0. The Marking set c〇rmand config. myPOlicy myclaggl dgcp clasg matches any ! clagg map number matCh-al| ip Class-maP macch 2nd class Class-maP match Class (the 叠F myclagg2 dscp default policy interface map processes packe亡S FastethernetO/O SerVice-P゜1icy output mypolicy 对于例3 ̄1来说,每个离开接口龟0/0的数据包都将被匹配到两个类别之一。由于 策略映射在每个类别中都使用了set dscp命令,并且所有数据包都会被匹配到myclassl 或myclass2,因而离开该接口的每个数据包都会被标记DSCPEF (十进制46)或默认 值(十进制0)。如果匹配逻辑不同,导致某些数据包既不匹配myclassl,也不匹配 myclass2,那么将不标记这些数据包,仍保留它们已有的DSCP数值0 1.使用多条match命令 在某些情况下,分类映射可能需要检查数据包中的多项内容以确定该数据包是否 属于指定类别。此时分类映射可以使用多条match命令,甚至可以将分类映射嵌套到 其他分类映射中,从而获得期望的逻辑组合。有关这些复杂匹配选项的关键要求如下。 ■ 每条match cos、 matCh precedence、 matCh dscp命令最多可以列举4个(CoS 和IPP)或8个(DSCP)数值。如果在数据包中发现这些数值中的任意数值, 那么就表示匹配。 ■ 如果分类映射中包含多条match命令,那么class-maP命令中的match-any 或match-aII (默认)参数定义的则是在match命令之间使用逻辑OR运算或 逻辑AND运算(默认)。 ■ match class栅″re命令通过名称来引用其他分类映射,从而嵌套被引用的分类 映射的匹配逻辑。如果被引用的分类映射匹配了,那么就认为match class 硼″舵命令也匹配了。 例3-2给出了一些复杂的匹配逻辑示例,并在注释中解释了分类映射在何种情况 下才能匹配数据包。 励3-2 街历分类臃射铂复杂匹馏 !class-maP !packe亡S eXamPleluses tha亡 are ma亡Ch-alllogic(defaul亡),SO permit亡edby 亡his class mapma亡Ches ACLlO2,and that∴als〇 have anlP precedence 攻城狮论坛(技术+生活)2群 of 1813097 5. CiscoMQC 3.3 Class-maP matCh-all match accegg-group match precedence ! class-maP ! are Class-maP 5 by accegg-group match dgcp class-maP ! cormands ! meaning ! class-maP dgcp l single matCh-any o ma亡Ches logical matCh-all match logic, DSCP S〇 亡his AF21, Or class map matches packe亡S 亡hat both. class-maP ! i-am-neSted matCh-all a゜cegg-group match precedence cog mus亡 how 亡O them have due to due DSCP COrreCtly a to O cormon 亡he and ma亡Ch 亡WO mis亡ake一亡he default DSCP l, ei亡her match-all Which DSCP O is or matCh argument, impossible. l. eXamPle4 refers The logic 亡O is Class-maP explained i-am-neSted after 亡he through the match c|ass example. i-am-neSted lO2 5 matCh-any match packets, between example3 cormand. match class no packet shows i-am-neSting match AND l ! Class-maP have lO2 eXamPle4 o Class-maP a 亡ha亡∴a dgcp dgcp Or eXaII吗Ie2 eXamPle3 use match Class-maP ma亡Ch-any lO2, AF21 ! match uses ACL matCh-any match ClaBS-maP examplel lO2 eXamPle2 permi亡亡ed 127 i-am-neSting i-am-neSted 5 例3 ̄2中最复杂的匹配逻辑就是嵌套式分类映射(如例3-2末尾所示)o chss-map i-am-neSting在两条match命令之间使用了逻辑OR,意思是“如果CoS为5,或者 Class-maP i-am-neSting匹配该数据包或者两者均满足,那么就匹配” 如果再结合分类映射i-am-neSting的match-all 。 (匹配全部)逻辑,那么该匹配逻 辑将匹配如下数据包/帧: “被ACLlO2允许且标记为优先级5的数据包”或“CoS为5的帧”0 2.使用NBAR进行分类 NBAR通常负责对那些很难进行分类的数据包进行分类。例如,某些应用程序使 用动态端口号,使得静态配置的用于匹配特定UDP或TCP端口号的match命令无法 对这类流量进行分类。而NBAR可以越过UDP或TCP端口号,直接查看HTTP请求 中的主机名、 度包检测)o URL或MIME类型(通常将这种深人检测数据包内容的功能特性称为深 NBAR还能越过UDP或TCP报头,识别特定应用信息。例如, NBAR可 以识别不同的Citrix应用类型,并且可以在URL字符串中搜索特定内容o NBAR可以用于多种不同的场合。与QoS功能无关,可以将NBAR配置为记录流量 类型的种类以及每种类型流量的数量。对于QoS来说, 匹配难以匹配的数据包,只要使用了MQC的match NBAR来匹配数据包。表3-6列出了match CB标记功能可以利用NBAR来 protocol命令,那么IOS就会使用 protocol命令以及NBAR的常见应用。 128 分类与标记 第3章 CB标记功能使用NBAR时可以匹配的常见应用 表3-6 RTP使用16384-32768之问的偶数UDP端口号,奇数UDP端口号则被RTcP用于呼叫控制 RTP音频与视频 流量oNBAR可以仅匹配奇数端口呈,这样就可以将语言信令与语言净荷分类成不同的服务类别 c恤x应用 NBAR可以识别已发而的各种citrix应用 NBAR可以利用基于正则表达式的匹配逻辑来匹配URL字符串以及主机名和MIME类型 主机名、URL字符串、 MIME类型 点到点(P2P)应用 3.4 NBAR可以识别大量文件共享应用,如KaZaa,Morpheus.Grokster以及Gnute∥a 分类与标记工具 这是本章关于CB标记特性最重要的内容,此外还将介绍一些不太常用的标记工具0 3.4.1 cB标记的配置 与其他名称前带有短语“αass-Based”的QoS工具一样,也可以使用MQC命令 来配置CB标记特性。有关CB标记的配置及匹配逻辑的要点如下。 ■ CB标记要求启用CEF ■ 根据MQC分类映射中的匹配逻辑来分类数据包。 ■ MQC策略映射使用class (使用全局命令ipcef启用CEF)。 c/cus一阴ap-硼″re命令引用一个或多个分类映射,对 数据包进行分类之后再进行标记。 ■ 使用MQC的接口子命令service-POIicy in l outpr/ky一朋ap一栅″re在接口的人站 方向或出站方向启用数据包标记功能。 ■ 按序处理CB标记的策略映射。数据包与某个类别相匹配之后,将会根据该 类别定义的set命令来标记该数据包。 ■ 可以在每个类别中配置多条set命令以设置多个字段,如同时设置DSCP和CoSo ■ 如果数据包未显式匹配已定义的类别,那么就认为该数据包匹配一个被称为 class-default ■ (默认类别)的特殊类别。 如果策略映射中的特定类别未配置set命令,那么将不对该类别的数据包实施 标记操作。 表3-7列出了CB标记的set命令语法格式,并给出了大家已经熟悉的CB标记可 以设置的字段信息。表3-8则给出了CB标记可用的一些重要show命令。 表3-7 CB标记特性的set配置命令参考 3.4 分类与标记工具129 续表 章 如果未使用参数ip,那么将标记IPv4和IPv6数据包的IPDScP数值;如 Set[ip]dscpfO-dscp-Va/∥e 果使用了参数ip,那么将仅标记IPv4数据色 SetCOSCOS-Va′∥e 标记cos值 SetqoS-grouPg′OuP一′d 标记Qos组的组标识符 Setatm-CIp 设置ATMCLP比特 Setfr-de 设置帧中继DE比特 CB标记特性的EXEC命令参考 表3-8 / Showpolicy-maPP゜怔yJmaP-name 显示策瞬映射的配置信息 Showp゜Iicymapfrrfe′faα9-apec[inputl 显示策略映射(如果在接口上启用了策略映射)的行为统计信忌 OutPut=cIassc/ass-″ame] 1. cB标记案例 第一个CB标记案例使用的网络如图3-5所示。为了使show命令的输出结果更有 意义,该网络生成了一些常见流量。路由器R4与Rl之间完成了两次G711语音呼叫。 这两台路由器均配置了FXS 了VAD (Vbice (Foreign Activity Exchange Station,外部交换站)板卡,并且禁用 Detection,语音端点检测)功能。客户端1执行了FTP get操 作,从服务器1获取了一个大文件,并且下载了两个大的HTTP对象(分别为 importantjpg和not-SOjpg)。最后,客户端1与服务器1之间还召开了一次Microsoft NetMeeting会议,音频采用G723,视频采用H.2630 例3-3中各种流量的标记需求如下: ■ 将`bIP净荷标记为DSCPEF; ■ 将NetMeeting视频流量标记为DSCPAF41 ■ 将URL中包含字符串“important” 均标记为AF21 ■ (URL中的任意位置)的所有HTTP流量 ; 将URL中包含字符串“not-SO” 标记为AF23 ■ 3 (URL中的任意位置)的所有HTTP流量均 ; 将其他流量都标记为DSCPDefault (0)。 例3-3给出了相应的配置示例以及注释信息,同时还显示了相应的show命令输出 结果。 130 第3章 分类与标记 将VoIP标记为DscP EF 将NetMeeting标记为AF41 将U RLs中包含“lmportant”的HTTP 流量标记为AF21 将UBLs中包含“Not”的HTTP 流量标记为AF23 将其余流量标记为DScP 1001 Default 1002 3001 3002 cB标记案例的网络示意图 图3-5 cB标记案励1 励3-3 ip /含s/?Ow命令励凸结果) cef ! Class ! or map 亡he Class-maP match Class ! name ! is map rtp used for 亡he clagg-map ! one map a http http NetMeet H.263 ma亡Ch Class-maP all http-n゜t ur| url video (亡ype occurs for matCh-any 亡his rtp payload-tyPe policy-maP ! lis亡ed ! map. ip set ip clagg laundry-1ist∴calls here POlicy-maP clagg but no亡∴亡he video rela亡ed wi亡h 亡O downloading 亡ex亡 any around i亡. objects whose Similar logic is 亡he order laundry-1ist volp-rtp dgcp EF NetMeet dgcp AF41 http- impo dgcp AF21 http-n゜t sub亡ypes一One Note class 亡he for match-any G.723 logic audio so (type 亡ha亡if 4) and ei亡her is map. NetMeet prot゜C゜| ! RTP 34). match get payload, . 亡WO payload-tyPe ip audio "*not-SO*" ma亡Ches rtp clagg RTP "*important*¨ protoc゜1 get all packe亡S "impor亡ant," match clagg ma亡Ch http-not for !亡rue, ma亡Ches s亡ring class-maP prot゜COl Class 亡O http-impo protocol ! NBAR audi゜ http-impo c〇n亡ains Cla目S-maP match uSeS VOip ̄rtP pr゜toCOl ! match v゜ip-rtP s|gnaling. in 4 34 each which of 亡he 亡he class maps. class∴COrmands No亡e were 亡ha亡∴亡he added 亡○ order 亡he policy 分类与标记工具131 3.4 Set ip dscp AF23 Class c|ass-default Set ip DSCP default ! Above,亡he ! needs 亡O cormand be class 亡aken for class-default ! |n ! class, and are marked wi亡h ! packe亡S in 亡his class would 1 1 ● ● 1 1 ● ● 亡his case, PaCke亡S ma亡Ched n°亡 DSCP by 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 ● only no亡 any required explici亡Iy o亡her class Defaul亡(decima1 remain ● is are 亡ha亡 packe亡S if fall 0). some ma亡Ched ano亡her 亡he into ac亡ion nondefaul亡 by class. class-default 亡WO Withou亡∴亡hese COrmands, unchanged. 1 1 1 ● ● ● 1 1 ● ● 1 ● 1 1 ● ● 1 ● 1 ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ■ ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 ● 1 1 1 ● ● ● 1 ● 1 1 1 1 ● ● ● ● 1 ● 1 1 1 1 1 ● ● ● ● ● 1 ● 1 ● U■] ! Below,亡he interface policy SerVice-POlicy ! The R3# cormand show Policy Class Map PaCkets on faO/0. laundry-1ist P゜1icy-maP laundry-1ist simply res亡a亡es 亡he configuration. laundry-1ist 46 34 dscp dscp 18 h亡tp-nO亡 22 dscp class-default Se亡ip The ! Several dscp cormand show inpu亡 h亡亡P-impo ! R3# for laundry-1is亡 dscp Se亡ip Class enabled NetMee亡 Se亡ip Class is O/O vo|P-r亡P Se亡ip Class input sh゜w policy-maP Se亡ip Class map Fastethernet O show s亡anzas policy-maP of policy-maP ou亡Pu亡 interface Were interface lis亡S omi亡ted for fastethernet S亡a亡is亡ics rela亡ed 亡O MQC fea亡ures. brevity. O/O input Faste亡herne亡0/O Service-POlicy VOip-r亡P Class-maP‥ 35268 packe亡S, minu亡e 5 Ma亡Ch: Qos ip inpu亡‥ PrO亡OCOl rtp by亡es 59000 bps, drop ra亡e o audio marked 35268 Ne亡Mee亡(ma亡Ch-any) packe亡S, Ma亡Ch‥ 328768 offered ProtoCOl PrO亡OCOl by亡es ra亡e r亡P r亡P 19000 bps, Payload-tyPe drop ra亡e o bps 4 Payload一亡ype 34 set ip 34 dscp Packe亡S marked 817 ! omi亡ting s亡anza of ou亡Put f〇r Class http-impo ! omit亡ing s亡anza of ou亡Pu亡 for class http-not Class-maP‥ 33216 5 bps 46 dscp minu亡e Q〇s ra亡e se亡 Class-maP: 5 (ma亡Ch-all) 2609832 offered Packe亡S 817 laundry-1is亡 minu亡e Ma亡Ch: Q〇s ip Packe亡S Class-defaul亡(match-all) packe亡S, 43649458 offered ra亡e by亡es 747000 bps, drop ra亡e o bps any se亡 dscp O marked 33301 例3-3显示了多个使用match命令的不同分类选项,包括Microsoft NetMeeting 132 分类与标记 第3章 流量的匹配选项o 采用H.2630 NetMeeting视频流使用RTP,并且音频默认采用G723,视频默认 因此,为了同时匹配NetMeeting的音频和视频,需要配置一个匹配这两 种RTP净荷子类型(G723和H.263)之一的分类映射。因而名为NetMeet的分类映 射使用了match-any(匹配任意)逻辑,并且匹配RTP净荷类型4(G723)和34(H.263)。 有关RTP净荷类型的更多信息,可以参考uww.cisco.com/en仙S佃roducts佃s6616/ Products white_PaperO9 Show 1 86aoO80 policy-maP 1 1 0040.shtml o interface命令可以显示策略映射中每种类别所匹配的数据包数 及字节数。该命令的语法格式如下: Sh゜w ゜utput ] P゜1icy-maP [ interface clagg∴cJass一刀a励e i″ferf23Ce一刀c3〃e [ vc [ T4[元/] T,C'工] [ dlci cZ‘c'工] [ input l ] 例3-3的末尾给出了该命令的使用示例,列出了标记统计信息。如果还配置了其他墓 于MQC的QoS功能特性,那么该命令也会同时显示这些功能特性的统计信息。从show POIty-maP interface命令的语法格式可以看出,该命令在显示统计信息时,不但可以仅选 择一个指定接口(出站方向或人站方向) ,甚至还可以选择某个策略映射中的一个指定类别。 接口子命令Ioad-interval对于查看备种QoS工具的统计信息来说也非常有用, load血terval命令可以定义一个时间间隔,让IOS统计这段时间内指定接口上的数据包及 比特率。如果负荷间隔设置得较小,那么统计信息的变化将会非常快;如果负荷间隔设置 待较大,那么统计信息的变化将会非常慢。默认设置为5分钟,最小可以设置为30秒钟。 例3-3还显示了QoS的总体配置情况。请注意, 嚣 POHcy-maP laundry-1ist中的第一个类 别是voip一巾,由于该分类映射匹配所有RTP音频,因而也就匹配了Microsoft 音频流。这样一来, NetMeeting NetMeeting音频流就不会被后面的类别NetMeet所匹配。如果将策略 映射调用的前两个类别(voip-rtP和NetMeet)的次序颠倒过来,那么就能将NetMeeting 音频流正确匹配到NetMeet类别中,而其他音频则全部被标记为voip-rtP类别0 2. CoS和DScP的cB标记 例3-4显示了路由器所连接的LAN交换机根据CoS执行QoS操作时该路由器的 CB标记特性的配置方式。例中的R3查看到达接口faO/0的帧并根据人站CoS的设置 情况来标记DSCP值,此外还查看离开接口faO/0 报头中设置CoS值o (去往交换机)的数据包并在802.1Q R3在接日龟0/0上使用的分类与标记值如下: ■ 将到达接口的CoS值为5的帧标记为DSCPEF; ■ 将到达接口的CoS值为1的帧标记为DSCPAFll; ■ 将到达接日的CoS值为其他值的帧标记为DSCPO; ■ 将离开接口的DSCP值为EF的数据包标记为CoS53 ■ 将离开接口的DSCP值为AFll的数据包标记为CoS l; ■ 将离开接日的DSCP值为其他值的数据包标记为CoS Oo 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 分类与标记工具133 3.4 #娩入坊coS标姑DSCP,反之勿然 励3-4 ! The class clagg-map match maps each simply ma亡Ch a single CoS or DSCP value. c゜gl cog l 1 clasg-map match c゜s5 cog 5 1 clags-map match AFll dscp afll 1 clags-map match ! EF dscp This EF policy POlicy-maP map will map 亡O incoming CoS inc〇ming DSCP a DSCP value maP-COS-tO-dscp clagg∴cosl Set DSCP afll class∴cog5 Set ip Class Set DSCP EF class-default ip ! This ! value dscp default p〇licy is map no亡 POlicy-maP will map 亡O Ou亡going CoS. N〇亡e tha亡∴the DSCP Changed. maP-dscp-tO-C゜S clag自.AFll get∴c°g l clags∴叠F get cog Class get 5 c|ass-default c゜g O l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ! The p〇licy interface l l l l l ● ● ● ● ● maps l l l l ● ● ● ● are l ● l l ● ● FastEthernetO/0. encapsulation d゜tlQ ● l ● l ● l l ● ● l ● l ● 亡O l ● l ● l ● an l ● l l ● ● l l l l l ● ● ● ● ● 802.1q l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l ● l l l ● ● ● l ● l l l ● ● ● l ● l ● l ● l ● l ● l ● l ● l ● l ● 1 ● subin亡er壬ace. 1 lO2 SerVice-POlicy input SerVice-P゜1icy ゜utPut interface l applied map-COS-tO-dscp maP-dscp-tO-COS FastEthernetO/0.2 encapsulati゜n dotlQ 2 native 本例的QoS策略用到了两个策略映射。策略映射map-COS-tO-dscp负责匹配进人 R3接口faO/0.1的帧的CoS值并标记DSCP值,也就是图3-5中从右到左的数据包, 因而需要在R3接口faO/0.1的人站方向启用该策略映射。策略映射map-dscp-tO-COS 负责匹配离开R3接口faO/0.1的数据包的DSCP值并标记相应的CoS值,因而需要在 R3接日鼠0/0.1的出站方向启用该策略映射。请注意,这两个策略映射都没有应用在 WAN接口上,这是因为只有那些配置了802.1Q的接口才会接受引用了策略映射(根 据CoS进行分类或标记)的service-POlicy命令。 需要注意的是,对于引用接日faO/0.2上的CoS值的policy-maP来说,无法启用 这样的策略映射。这是因为该子接口位于本征VLAN (nativeVLAN)中,意味着未使 用802.1Q报头0 3. NBAR CB标记特性可以通过match protocol子命令来使用NBAR提供的强大分类能力。 攻城狮论坛(技术+生活)2群 1813097 134 分类与标记 第3章 例3-5给出的CB标记以及NBAR配置示例需要满足如下要求: ■ 将URL中包含字符串“important” 均标记为AF21 ■ ; 将URL中包含字符串“not-SO” 标记为Default ■ (URL中的任意位置)的所有HTTP流量 (URL中的任意位置)的所有HTTP流量均 ; 将其他流量都标记为DSCPAFllo 例3-5给出了相应的配置示例以及与NBAR相关的show命令输出结果。 基于URL铂CB标搓/硼ⅣBAR进行分类) 励3-5 ip ! cef "*" The in C|ass-maP match clasg-mp The protocol POlicy-maP get protocol policy Class url s亡ring is a wildcard meaning "O or more characters." http url "★important*" http url "*not-S゜*" http-not match ! 亡he http-impo map 亡he lis亡S 亡hree classes in order, discovery cormand may Se亡亡ing 亡he DSCP values. http http-impo dgcp AF21 1 clagg Set http-not dscp default l Class∴Class-default Set DSCP ip AFll ! The ! following interface ip nbar nbar pr゜toCOl this fastethernet SerVice-POlicy show ! prot°C゜1 ̄discovery ! independent large show t゜p-n ip ip input The !亡he may n〇t be required-See 亡he no亡es O/O protocol-discovery ! R3# or example. nbar of of only cormand 亡hose number nbar http cormand is crea亡ed op亡ions displays applied by on CB 亡he protocol-disc゜Very s亡a亡is亡ics 亡O an Marking. if 亡he in亡erface. This example Pro亡OCOI |nput Packe亡 Coun亡 nbar s亡a亡is亡ics shows several are of cormand. interface fastethernet 5 Fas亡E亡hernetO/O ip These ou亡Pu亡 Packet Count O/O stats packet-COunt 8 2 3 2 4 0 0 ⊥ 0 6 4 J 分类与标记工具135 3.4 与大多数其他IOS功能特性不同,可以在不升级到较新IOS版本的情况下直接升 级NBAR,这是因为Cisco利用了被称为PDLM (Packet Description Language Modules , 数据包描述语言模块)的功能特性来定义NBAR应该匹配的新协议。如果Cisco决定 向NBAR可识别的协议列表中增加一种或多种新协议,那么就可以创建并编辑PDLMo 从Cisco下载PDLM之后,可以将其复制到闪存中并在配置中添加ip nbar pdlm p物7tr阴″ae命令,其中的p彻一J7CJ″re就是闪存中的PDLM文件的名称,此后NBAR就 可以根据新PDLM中的协议信息来分类数据包0 3.4.2 cB标记的设计选项 CB标记的目的是简化其他QoS工具的配置工作,可以为相同类别的数据包打上 相同的QoS标记。为便于其他QoS工具使用这些标记,应尽可能地在靠近数据包的 人日点为数据包打上标记,但是最早可能打标记的点并不一定是可信设备。例如,对 于图3-5 (即例3-3和例3-4对应的示意图)中的服务器1来说,如果NIC (Netwock InterfaceCard,网络接口卡)支持中继功能,那么服务器1就可以设置自已的DSCP, 甚至是CoS,不过是否能够信任服务器1的管理员却并不一定。因此,在选择执行标 记操作的最佳位置时,应遵循如下规则: 尽可能地在网络的入口边缘执行标记操作,但是不要太靠近非可信设备打标记的 边缘位置o Cisco QoS设计指导文档不但提供了执行标记操作的位置建议,而且还为备种类 型流量提供了建议的CoS、 IPP及DSCP值(如表3-9所示)。 表3 ̄9 RFc建议的标记值 语音净荷(Vbicepayload) 5 5 EF 视频净荷(>ideopayload) 4 4 AF41 语音/视频信令(Vbice/videosignaling) 3 3 cs3 关键任务数据(Mission-Criticaldata) 3 3 AF31.AF32、AF33 事务数据(Transactionaldata) 2 2 AF21,AF22,AF23 1 1 AFll.AF12,AF13 尽力而为型(Besteffort) O O BE 清道夫型(Scavenger)(优先级低于尽力而为型流量) 0 O 2,4,6 批量数据(Bulkdata) 注: Cisco建议不要为数据流童使用4种或5种以上不同的服务类别,这是因为使用多种服务类别时,不同类别之问的 行为差异不够明显。同样,也不要将高优先级服务赋予过多的数据服务类别 3.4.3 利用监管器进行标记 流量监管器(policer)会测量数据进人或离开指定接口的流量速率,目的是确定 136 分类与标记 第3章 是否超出了事先配置好的流量合约。流量合约通常包含两个组件:流量速率(单位是 比特每秒)和突发大小(单位是字节数)。如果流量位于合约范围内,那么就认为所有 数据包均遵从该合约;如果流量速率或突发大小超出了合约范围,那么就认为某些数 据包超出了合约,此时就可以对这两类流量执行QoS操作。 最简单的监管形式就是强制流量严格遵从合约的规定,仅转发遵从合约的数据包, 而丢弃超出合约范围的数据包。但是IOS监管器允许采取一种折衷处理方式,也就是 将超出合约范围的数据包标记为低优先级数据包,而不是丢弃这些数据包。为了降低 这些数据包的优先级,监管器需要重新标记它们的QoS字段(通常是IPP或DSCP), 使得这些数据包更有可能在下游被丢弃。例如,监管器可以将超出合约范围的AFⅡ 数据包重新标记为新的DSCP值AF13,而不是直接丢弃这些数据包,这样一来,这 些数据包仍能通过路由器,但是如果这些数据包在后面的传送过程中遇到了拥塞情况, 那么与未超出合约范围的数据包相比,这些数据包被丢弃的概率更大(需要记住的是, Difrserv建议AF13流量的丢弃概率大于AFl流量) 。 如果CB标记能够满足标记需求,那么就应该使用CB标记功能,而不应该使用监管器。 但是如果需要根据是否遵从流量合约来标记数据包,那么就必须使用监管器。第5章将详 细讨论CB监管功能,并给出其标记数据包的配置语法示例0 3.4.4 Qos预分类 对于未加密、未封装的流量来说,路由器检查这些流量的IP报头即可匹配并标记 QoS值,然后再根据标记执行人站和出站操作。但是如果流量被加密了,那么会怎么 样呢?如果流量被封装在vPN隧道内部,那么将无法检查原始报头以及数据包的内 容,此时唯一能够处理的就是原始数据包的TbS宇节。这是因为封装数据包的时候, 会自动将TbS字节复制到隧道报头中(包括IPSec传输模式、隧道模式以及GRE隧道)。 但是, NBAR等功能特性在处理封装后的流量时将无能为力。 隧道封装的圃有特性带来的问题就是路由器无法根据加密后的流量执行出站QoS 操作。为了解决这个问题, Cis∞ IOS提供了一种被称为QoS预分类(pre-Classification) 的功能特性。在vPN端点路由器上启用该功能特性之后,路由器就可以根据原始流量 (封装之前的流量)来确定出站Qos决策,而不再仅仅根据封装后的隧道报头来确定 出站QoS决策o QoS预分类的实现方式是在内存中保存原始、未加密的流量,直到执 行了出站QoS操作为止。 可以在隧道接口配置模式、虚模板配置模式以及加密映射配置模式下,利用qos Pre-Classify命令来启用QoS预分类功能。利用show interface、 show命令可以查看QoS预分类的实施效果。 表3-10列出了使用qos pre-Classify命令的备种模式。 Show crypto-maP等 AutoQos 3.5 表3-10 使用qos 137 pre ̄Classify命令的位置 隧道接口 GRE和IPIP 接口虚模板 L2F和L2TP 加密映射 lPSec 利用策略路由进行标记 3.4.5 策略路由可以根据数据包报头中除目的IP地址之外的信息路由数据包。策略路由 利用路由映射来分类数据包o route-maP语旬中包含多条定义路由(基于下一跳IP地 址或出接口的设置情况)的set命令。 策略路由还可以在路由映射中利用set命令来标记IPP字段或整个TbS字节。利 用策略路由执行标记操作时,相应的逻辑顺序如下: 第1步‥数据包进人接日时检查数据包。 第2步‥利用路由映射来匹配数据包的子网。 第3步:利用set命令标记IPP字段或整个1bS字节。 第4步:可以配置传统的策略路由功能(利用set命令定义路由) ,但这并不是必需的。 需要注意的是,仅当CB标记功能不可用或者路由器需要使用策略路由并标记进 人相同接口的数据包时,才应该考虑利用策略路由来执行标记操作0 3.5 AutoQos AutoQoS是一个可以自动配置基于类别的QoS的宏,能够按照Cisco提供的最佳 囊 实践建议来创建并应用QoS配置o 简化QoS部署; ■ 减少操作错误(因为大多数步骤都是自动执行的); ■ 降低QoS部署成本(因为分析网络流量并确定QoS配置的工时要求更少); ■ 提高QoS部署速度(因为只要执行非常少的命令即可完成); ■ 企业无需掌握复杂的QoS知识即可部署QoSo 下面将讨论两种形式的AutoQoS: 版AutoQoS 3.5.1 AutoQoS的好处如下: ■ (AutoQoS for血e VI)IP版A山OQoS (AutoQoS for VbIP)和企业 Enteaprise) VbIP版AutoQoS 大多数Cisco路由器和交换机都支持VbIP版AutoQoS,可以为语音和视频应用提 供QoS配置功能。虽然该功能是在接口上启用的,但是却可以同时创建全局配置和接 口配置。如果在接人端口上启用该功能,那么AutoQoS将使用CDP (Cisco Discovery 138 分类与标记 第3章 Protocol, Cisco发现协议)来检测是否存在αsco电话机或软电话,并配置相应的接 日QoSo如果在上行链路或中继端口上启用该功能,那么AutoQoS将信任接收到的 CoS或DSCP值,并配置相应的接口QoSo l.交换机上的AutoQoS VblP AutoQoS假定交换机拥有两类接口:用户接人接口和上行链路接口,并且假定用 户接人接口可能连接了IP电话机,也可能没有连接IP电话机。无需在全局范围内启 用QoS,在指定接口上启用AutoQoS之后,启用命令将运行一个在全局范围内启用 QoS的AutoQoS宏,从而配置接日的人站和出站队列、配置分类映射和策略映射,并 将策略映射应用到该接口上。 对于接人接日来说,可以利用接口级命令auto Cisco-SOftphone qos voip ( Cisco-Phone l )启用AutoQoS,此后交换机将使用CDP来确定接口上是否连接了 Cisco电话机或软电话。如果没有发现电话机,那么交换机就会将所有流量都标记为 DSCPO,并接照尽力而为方式进行处理,这也是常规中继端日的默认行为。如果发现 了电话机,那么交换机就会信任其接收到的QoS标记,并在人站接口将以下流量都放 到优先级队列(priority queue)或快速队列(expedite ■ 语音和视频控制流量; ■ 实时视频流量; ■ 语音流量; ■ 路由协议流量; ■ 生成树BPDU流量。 queue) : 其余流量则被放人普通的人站队列中。在出站侧,语音会被放人优先级队列中, 其余的流量则被分发到其他队列中(具体取决于交换机或交换机模块所支持的出站队 列数及队列类型)。 对于上行链路端口来说,可以利用接口级命令auto qos voip trust启用AutoQoS, 此后交换机将信任其在二层端口上接收到的CoS值以及三层端口上接收到的DSCP值o AutoQoS宏还会在交换机上创建大量全局配置,但限于篇幅限制,这里就不再一 一列举,下面仅列出AutoQoS宏创建的主要配置内容。 ■ 全局启用QoSo ■ 创建CoS-tO-DSCP映射和DSCP ̄tO-CoS映射。流量进人交换机之后,交换机 会删除包含CoS值的帧头,并利用帧头中的CoS值为数据包分配相应的DSCP 值。如果数据包离开中继端日,那么就会将内部DSCP值重新映射回CoS值。 ■ 启用优先级或快速人站队列及出站队列。 ■ 创建Cos值到人站队列和出站队列的映射以及闹值。 3.5 AutoQos 139 ■ 创建DSCP值到人站队列和出站队列的映射以及阑值。 ■ 创建分类映射和策略映射以识别语音流量、对语音流量进行优先处理和策略 控制,同时将这些策略映射应用到接口上。 为了达到最佳效果,建议在交换机上配置其他QoS之前先启用AutoQoS,然后再 根据自已的特殊需求修改默认配置0 2.路由器上的AutoQos VbIP AutoQoS的设计人员假设路由器连接的是下游交换机或WAN,而不是用户接人 端口,因而VeIPQoS的配置相对较为简单,启用命令是auto qosvoip Itrust]。需要注 意的是,在配置该命令之前必须首先配置接口带宽。如果后来更改了接口带宽, 的配置也不会发生变化。在数据电路上运行auto qos QoS voip命令之后,该命令会创建不 同的QoS配置,具体配置取决于电路本身的带宽。对于带宽为768kbit/s及以下的链路 来说,会启用压缩和分段特性,而带宽大于768kbit/s的链路则不会启用压缩和分段特 性。此外,无论链路带宽是多少,路由器都会配置流量整形并应用AutoQoS服务策略。 在带宽为768kbitls或以下的串行接口上运行auto qos voip命令之后,路由器会将该 接口的封装方式更改为PPP,创建一个PPP多链路接口并在接口上启用LFI Fragmentation and Interleave ,链路分段与交织) (Link 。如果串行链路的配置带宽大于768kbiVs , 那么将保留该接口已配置的封装方式,此时路由器仅在接口上应用AutoQoS服务策略。 如果在auto qos voip命令中使用了关键字trust,那么路由器就会创建根据DSCP 值来组合流量的分类映射,同时将这些分类映射与已创建的策略映射相关联并分配给 接口。如果QoS标记是由可信设备分配的,那么就应该使用关键字trusto 如果没有使用关键字血ust,那么路由器就会创建匹配语音和视频数据的访问列表并 调用控制端口,同时将这些访问列表与分类映射(利用已创建的标记相应流量的策略映 射)关联起来,将所有与访问列表不匹配的流量都都标记为DSCP Oo如果到达路由器的 流量没有任何标记或者标记是由非可信设备分配的,那么就不应该使用关键字血usto 3.验证AutoQoSVblP 显示路由器的运行配置可以显示所有映射(包括分类映射和策略映射)的信息以及 由AutoQoS ■ 3.5.2 VbIP宏所创建的接口配置信息。利用下列命令可以获得更详细的配置信息。 showautoqos:可以显示接口的AutoQoS命令。 ■ showmlsqos:拥有多种命令选项,可以显示队列及CoS仰SCP映射信息。 ■ show poIicy-maP interface:可以验证每个指定接口上的策略映射的操作0 企业版AutoQoS Cisco路由器支持企业版AutoQoSo企业版AutoQoS与VbIP版AutoQoS的主要 攻城狮论坛 140 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 分类与标记 第3章 区别在于,企业版AutoQoS能够为VeIP以及其他网络应用提供自动化的QoS配置功 能,并且主要用于WAN链路。企业版AutoQoS可用于帧中继和ATM子接口(如果 它们是点对点链路)。企业版AutoQoS会检测网络流量的类型和数量,并根据检测结 果创建相应的策略,与v〕IP版AutoQoS一样,可以根据需要修改这些策略。企业版 AutoQoS的配置过程包括两个步骤,第一步是发现流量,第二步是提供推荐的QoS配置0 1. AutoQoS Enterprise发现流量 启用流量发现功能的命令是auto discovery qos Hrust PVC配置级别上运行该命令。运行该命令之前必须确定已经启用了CEF Forwarding, ],需要在接口、 (Cisco DLCI或 Express Cisco快速转发),已经配置了接日带宽,而且没有配置任何QoS特性。 如果到达路由器的流量已经有标记且信任这些标记,那么就要使用关键字trust,这是 因为AutoQoS策略将在配置阶段使用这些标记。 流量发现功能利用NBAR来获得每个接口(这些接口启用了NBAR)的流量类型 及数量。为了收集具有代表性的采样流量,需要在这些接口上运行足够长时间的 NBAR,然后路由器将采集到的流量分类到十种类别中的一种。表3-11详细列明了这 些流量类别、每种类别所映射的DSCP值(如果在命令中使用了关键字trust)以及 NBAR将映射到的每种流量的采样类型。需要注意的是,表中的流量类型虽然没有包 含所有的流量类型,但是可以让大家对每种类别的流量有一个直观的感性认识。 表3-11 路由类 AutoQoS Enterprise的流量类别及DSCP值 cs6 EIGRP,OSPF >blP类 EF(46) RTP语音媒体 交互式视频类 AF41 RTP视频媒体 流视频类 cs4 实时语音、Netshow 控制类 cs3 RTcP、H323.SIP 事务类 AF21 SAP、Citrix、Ie)lnet、SSH 批量类 AFll FTP.SMTP.POP3、Exchange 清道夫类 csl P2P应用 营理类 cS2 SNMP.SysIog.DHcP.DNS 尽力而为类 其他 其他 2.生成AutoQos配置 流量发现功能采集到足够信息之后,下一步就是在指定接口上运行auto qos命令。 该命令将运行一个宏,该宏将根据采集到的流量创建相应的模板,创建分类映射并对 流量进行分类,同时还创建策略映射以分配带宽并标记流量。然后路由器会自动将策 攻城狮论坛(技术+生活)2群 1813097 3.5 AutoQoS 141 略映射应用到指定接口上。对于帧中继DLCI来说,路由器会将策略映射应用于帧中 继映射类别,然后再将该类别应用到DLCIo作为可选项,可以利用no auto discovery qos 命令关闭NBAR流量采集功能0 3.验证AutoQoS Enterprise 与AutoQoS VbIP相似,显示路由器的运行配置可以显示所有映射(包括分类映射 和策略映射)的信息以及由AutoQoS宏所创建的接口配置信息。利用下列命令可以获 得更详细的配置信息。 ■ show ■ showautoqos:可以显示分类映射、策略映射以及由AutoQoS宏所创建的接 auto discovery qos:可以显示NBAR采集到的流量的类型和数量。 口配置信息。 ■ show policy-map interface:可以显示每个策略映射以及该策略映射对接口流 量的处理效果。 备考任务 表3-12列出了CB标记等MQC工具可以使用的备种match命令。 表3-12 用于MQC工具的match配置命令参考 match[ip]precedenceprecede″ce-Vafue torececit凯α9+ra由epreceder)α91伯而epreα亨denα尹Vafue] matchaccess屯rouP(access-g′Oaplname 如果色拿了参数ip,那么将匹配IPv4数据色中的IP优 先级;如果没有色拿参数ip,那么将同时匹配IPv4和 lPv6数据句中的IP优先级 通过编号或名称来匹配AcL access-g′Oap-r)ame) matchany 匹配所有数据色 matchclass-maPOfass-maP-r)ame 根据其他分类映射进行匹配 matchcoscos-Va/″e[cos-Va/∥eCOS-Va/∥eCOS-Va/″e] 匹配cos值 matchdestination-addressmacadd′eSS 匹配目的MAc地址 matchfr-dlcidfO广月″mber 匹配特定的帧中继DLcl matchinput-interfaceinfe′face-″ame 匹配入接口 matchipdscpl徊dy-Vafueirdsap-Vafueft){isqD-Vafue 如果包舍了参数ip,那么将匹配IPv4数据色中的 DSCP;如果没有包舍参数ip,那么将同时匹配IPv4 时dsap-Va而eusap-Wafuefrdsap-Vafuefotry-Va而eI matchiprtpsfarfing-POrf-r)umbe′POrf-ra月ge 和IPv6数据色中的DSCP 匹配RTP的UDP端口号区问,也可以仅匹配特定值 142 第3章 分类与标记 matchmpIsexperimentalr)″mbe′ 匹配MPLSEXP值 matchmpIsexperimentaltopmostva/″e 使用多个标签时,将匹配最外层标签的MPLSEXP字段 反向匹配逻辑,也就是说,与该匹配规则相匹配的流童 matchnotmafc/7-Criferia 将不匹配该分类映射 matchpacketlength(maxmax/m″m/ength-Va/″e[min m/r]′m∥m-1ength-Va/∥eHminm/n/inum一/ength-Va/″e 根据最小长度、最大长度或者两者来匹配数据色 [maxmaxwh″m一/e″gth-Va/″eI) matchprotocoIcitrixappappfroafromame-Sfwig 匹配NBARCitrix应用 matchprotocolhttp[urlu∥sfwhglhosthosfname一 匹配主机名、URL字符串或MIME类型 S!rir)glmimeM/ME-fype] matchpr°t°COIp′Ofoco+″ame 匹配NBAR协议类型 matchprotocolrtp[audiolvideoIpayload-tyPe 根据净荷类型匹配RTP音频或视频净荷,同时也允许 pay佃ad-S‘面?g] 显式指定净荷类型 matchqos-gr゜uPqoS-g′O″P-Va/∥e 匹配Qos组 matchsource-addressmacadd′eSS-desfinaffO″ 匹配源MAc地址 表3-13列出了AutoQoS及QoS验证命令。 表3-13 AutoQoS及QoS验证命令 autoqosvoip(Cisco-PhoneIciscosoftphone) 在交换机接入接口上肩用AutoQoSVdiP autoqosvoipt…St 在交换机上行链路接口上启用AutoQoSVI)lP autoqosvoip[trust] 在路由器接口上启用AutoQoSVbIP autodiscoveryqos[t…St] 为AutoQoSEnterprise肩用NBAR流量发现功能 autoqos 在接口上肩用AutoQoSEnterprise Showautoqos 显示接口的AutoQoS命令 ShowmIsq°S 显示排队及COS/DScP映射信患 Showpolicy-maPinterface 显示策略映射所引起的接口排队操作 Showautodiscoveryqos 显示NBAR采集到的流量 Showautoqos 显示Aut゜QoS宏生成的配置信患 表3-14列出了与Difrserv相关的RFC信息。 3.6 D肝Serv 表3-14 理解与记忆143 RFC 三 .'- DefinitionoftheD肝erentiatedSen′ices Field 描述IP报头中6比特DsCP字段的详细信忌 2474 (DSField)inthelPv4andlPv6Headers 3.6 2475 AnArchitectureforD肝erentiatedService 有关D肝seⅣ的核心概怠文档 2597 AssuredFon″ardingPHBGroup 定义了12种DScP值以及使用约定 3246 AnExpeditedFon″ardingPHB 为低延迟类别流量定义了单个DScP值 3260 NewTh3rmino10gyandClarificationsforDiffServ 澄清相关概怠,僵是并不替代现有的DiffservRFc 理解与记忆 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试主题, 因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试主题0 3.6.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 定义关键术语 3.6.2 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: IP优先级、 TbS字节、差分服务、 DSCP、用户优先级、 MQC、 CB标记、 DE、 NBAR、 DS字段、 CLP、 QoS预分类、 PHB、 AF、 EF、分类选择器、 CoS、 MPLSEXP比特、分类映射、策略映射、服务策略、 AutoQoS 推荐读物 3.6.3 αsco QoS Exam End-tO-End “ The QoS Certification Netwock EnteIPrise Guide Design QoS , SRND by , by Tim Wendell Szigeti Guide ” ,位于 odom and and Michael Christina Cavanaugh Ha砧ngh www.cisco.com/en/US/docs/solutions/ Enteaprise/WAN_and二MAN/QoS_SRND/QoS-SRND-Book.html 量QoS部署方案的背景及细节信息。 ,提供了现实生活中的大 本章主要讨论以下主题: ■ CBWFQ ( Class-Based Weighted 基于类别的加权公平排队) ■ ■ LLQ MDRR ( ( 额轮询) ■ WRED ( Queuing, ; Low ̄LatencyQueuing,低延迟排队) Modified Deficit Weighted Random Early Detection,加权 ; RED ( ■ WRR (WeightedRound-Robin,加权轮询) ■ SRR (ShapedRound-Robin,整形轮询) ■ RS>P ( 协议)。 ; Round-Robin,改进型差 ; 随机早期丢弃) ■ Fair Random EarIyDetection,随机早期丢弃) Resource Reservation ; ; ; Protocol,资源预留 第4章 拥塞管理与拥塞避免 拥塞管理(通常称为排队)指的是数据包或帧在等待离开设备的时候,路由器 或交换机管理这些数据包或帧的方式。对于路由器来说,等待通常发生在IP转发已 经完成的时候,因而排队通常指的是输出排队o LAN交换机通常同时支持输出排队 和输人排队,如果接收到的帧正在等待被交换到交换机的输出接口,那么就会用到 输人排队。 拥塞避免指的是排队系统出现拥塞时确定是否以及何时丢弃数据包的处理逻辑。 本章将讨论备种常见的αs∞ 一WRED 4.1 (Vfeighted IOS排队工具,同时还将讨论最常见的拥塞避免工具一 Random ″我已经知道了吗? Early Detection,加权随机早期丢弃) 0 ″测试题 表4-1列出了本章的基本主题以及与之相应的测试题。 表4-1 ″我已经知道了吗? ”基本主题与测试题对照表 Cisco路由器的排队概怠 1 排队工具:CBWFQ与LLQ 2一一3 WRED 4一-5 MDRR 6 日\N交换机的拥塞管理与拥塞避免 7-8 Rs>P 9 得分 为了提高测试评价效果,请务必严格评分。参考答案请参见附录Ao l. Cisco路由器接口上的硬件队列有何作用? a.为时延敏感型数据包提供优先服务,从而在接下来的时间内始终调度这些数 据包 b.为特定类型的流量预留最小保证带宽 146 第4章 拥塞管理与拥塞避免 c.为数据包提供队列,只要接口能够发送其他数据包,那么就可以在不中断路由 器CPU的情况下发送该数据包 d.将带宽分配给LLQ和默认类别队列之后,可以配置剩余链路带宽的百分比 2.请分析下列配置信息。假设将一个新的类别(称为class3)添加到该策略映射中, 那么下面哪些命令可以为该类别流量预留25kbⅣs带宽? POlicy-maP Class fred classI 20 Priori亡y Class class2 bandwidth in亡erface 30 seria1 bandwid亡h 0/O loo SerVice-P゜licy a. priority25 b. bandwidth C. bandwidth d. bandwidth output 25 percent Class 25 Cis∞IOS为class2预留了多大带宽? fred classI Pri〇ri亡y Class 25 remammg-PerCent 3.请分析下列配置信息o POlicy-maP fred percent 20 class2 bandwid亡h in亡erface remaining seria1 bandwid亡h 10kbit/s b. 11kbit/s c. 20kbit/s d. 21kbit/s 20 loo SerVice-POlicy a. percen亡 0/O output fred e.未提供足够配置信息 4.使用WRED时,如果当前队列深度处于最小阂值与最大阑值之间,那么下面哪一 项将影响数据包的丢弃百分比? a.接日上配置的bandwidth命令 b. MPD (Mark Probability Denominator,标记概率分母) c.指数加权常数 d.拥塞丢弃阑值 5.对于sO/0等接口来说,下列哪些命令可以启用WRED并让接口在选择默认流量配 置文件时使用IPP a. (IPPrecedence, random-detect IP优先级)? 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 4.2 6. b. random-detect precedence-based c. random-detect dscp-based d. random-detect Catalyst precedence 1 20 30 本资料仅供试读 Cisco路由器的排队概念147 40 3560交换机上的接口faO/1配置了SRR调度机制, faO/2配置了带有优先 级队列的SRR调度机制,那么下面有关接口鼠0/2的描述,哪一项是正确的? a.必须配置priorrty-queue b.命令srILqueue out命令 bandwidth c.仅CoS5的帧才能进人队列1 sharewJ w3 w4中最后的参数(w4)必须为O (快速队列) d.仅DSCPEF的帧才能进人队列1 7. w2 (快速队列) MDRR中的QV的功能是什么? a.在每次轮询队列时,设置每个队列可以发送的带宽比例 b.在每次轮询队列时,设置每个队列可以发送的绝对带宽 c.在每次轮询队列时,设置可以从每个队列提取的字节数 d.标识MDRR优先级队列 8. αsco3560交换机利用SRR和WTD进行排队和拥塞管理,那么可以在3560交换 机的每个端口上配置多少个人站队列和出站队列,以及可以在人站和出站端口上配 置多少个优先级队列? a. 1个人站队列, 4个出站队列;每侧1个优先级队列 b. 1个人站队列, 4个出站队列;出站侧1个优先级队列 c. 2个人站队列, 4个出站队列;出站侧1个优先级队列 d. 2个人站队列, 4个出站队列;每侧1个优先级队列 9.下面哪条接口命令可以配置RSVP以预留100Mbitts链路的1/4带宽,但仅允许每 个流使用1Mbit/s带宽? a. ip rsvp bandwidth b. ip rsvp-bandwidth c. rsvp d. ip bandwidth rsvp 25000 25 loO bandwidth 1000 1 2500 25 1 墓本主题 4.2 Cisco路由器的排队概念 通过特定配置,可以让Cisco路由器对正在等待离开接口的数据包执行精细化的 排队操作。例如,如果路由器在接下来的几秒钟内每秒钟都将收到5Mbi忱流量,而 攻城狮论坛(技术+生活)2群 1813097 . 148 第4章 拥塞管理与拥塞避免 且这些流量都要离开Tl串行链路,那么路由器将无法转发所有流量。因而路由器会 将这些数据包放人一个或多个软件队列中。路由器通过管理这些软件队列即可确定接 下来哪些数据包可以离开该接口以及哪些数据包将被丢弃0 4.2.1软件队列和硬件队列 虽然大多数网络工程师都知道排队的概念,但很多人都忽视了硬件队列以及与每 个物理接口相关联的软件队列背后的细节信息。软件队列指的是由备种常见排队工具 在接口上创建的队列,因为这些队列都是通过软件方式实现的。但是,当排队调度器 从这些软件队列中提取下一个数据包时,数据包并不会直接离开接口,而是由路由器 将数据包从接口的软件队列中移到每个接口上的一个小的硬件FIFO First ̄Out,先人先出)队列中o (First-1n, Cisco将这种独立的最终队列称为传输队列(Tx队列) 或传输环(Tx环),具体使用哪个名字则取决于路由器的模块类型,通常将这些队列 通称为硬件队列。 硬件队列的主要功能特性如下: 接口发送完一个数据包之后,就可以对硬件队列中的下一个数据包进行编码 ■ 并通过接口向外发送,而不需要CPU的软件中断,从而可以确保完全使用全 部接口带宽; ■ 始终使用FIFO逻辑; ■ 不受IOS排队工具的影响; ■ 如果有排队工具,那么IOS就能自动将硬件队列的长度缩小为短于默认长度; ■ 硬件队列长度短意味着数据包更有可能位于可控的软件队列中,软件队列可 以对离开接口的流量实施更多的控制机制。 对于硬件队列来说,唯一能够控制的功能就是队列的长度。例4-1显示了查看当 前队列长度以及更改队列长度的方式。 励4-1 7★饮劲长磨’查看1配更孜肠纫长磨 ! The ! router, R3# example sh°W i亡 ab〇u亡 30 ! lines ! Nex亡,亡he ! (The Tx 1ines a F|FO queue queuing leng亡h on 亡he interface. 16. O/O omi亡亡ed for brevi亡y (16) omi亡ted TX for ring smallest brevi亡y is se亡∴亡O recormended leng亡h value is l. 2.) conf∴t Enter configura亡ion R3(COnfig)# R3 only 亡O Seria10/0 亡X_limited=0 R3# with C゜ntr゜11ers∴Serial 工n亡erface ! begins defaul亡S int∴s (COn壬ig-if)# R3(config-if)# cormands, O/O tx-ring-1imit ^z l One Per line.丑nd wi亡h CNTL/Z. For 亡his 4.3 4.2.2 排队工具: CBWFQ与LLQ 149 接口排队与子接口及虚电路排队 IOS排队工具可以创建并管理与物理接口相关联的软件队列,然后数据包再流人 与接口相关联的硬件队列。此外,排队工具还可以与流量整形工具相结合,流量整形 工具可以延迟数据包以确保指定类别的数据包不会超过已定义的流量速率。延迟数据 包时,整形功能会对数据包进行排队(默认为FIFO队列)。使用不同的整形工具,就 可以配置不同的排队工具来管理被整形工具延迟的数据包。 第5章将详细讨论流量整形的相关知识,包括排队工具与整形工具的联合使用方 式,而本章讨论的排队问题主要集中在如何在物理接口上直接部署软件排队工具0 4.2.3 排队工具对比 αs∞ IOS提供了大量排队工具,本章将在后面详细讨论一些常见的IOS排队工 具,并在排队章节的最后给出了相应的总结信息。表4-2概括了大家必须记住的一些 排队工具的主要特性,并对这些排队工具做简要比较。 排队工具的关键比较点 表4-2 ∵∴∵∴∴∵∴ ∴ 分类 4.3 ∵三∴∵∴∴ 丢弃策略 在队列满了之后选择丢弃哪些数据包的规则 调度 用于确定下一个应该出列的数据色的逻辑 最大队列数 排队工具支持的数据色类别数量 最大队列长度 单个队列支持的最大数据色数童 排队工具: CBWFQ与LLQ 本章将重点介绍Cis∞ 信息,特别是CBwFQ 和LLQ 包含PQ 查看数据色头部并为每个数据包选择恰当队列的能力 IOS提供的排队工具并给出最常用的排队工具的详细配置 (Class-Based (Low-Latency (Priority Weighted Fair Queuing,基于类别的加权公平排队) Queuing,低延迟排队)。由于CCIE路由和交换考试大纲不再 Queuing,优先级排队)和CQ (Custom Queuing,定制排队)等传 统排队方法,因而本书也不再讨论这些内容。同时wFQ也不再作为一个单独的功能 特性进行讨论,仅在讨论CBwFQ时做简要介绍o Cisco利用传统排队方法(PQ、 CQ以及WFQ)中的最佳理念并增加了一些额外 的功能特性,创建了更为有效的CBwFQ和LLQo CBwFQ可以为每个队列预留带宽, 并且可以为默认(class-default)队列中的数据包应用WFQ的概念o LLQ为CBWFQ 150 第4章 拥塞管理与拥塞避免 增加了优先级队列的概念,但是与传统PQ不同, 队列。此外, CBWFQ和LLQ都利用MQC (ModularQoSCLI,模块化QoSCLI)进 行配置,意味着它们都拥有强大的分类选项,包括NBAR Recognition,基于网络的应用识别) LLQ不允许高优先级队列饿死其他 (Network-BasedApplication o CBwFQ与LLQ的配置方式非常相似,主要区别在于是否使用bandwidth命令 (CBWFQ)或priorrty命令(LLQ)来配置工具。由于这两种工具均使用MQC,因而 都利用分类映射进行流量分类并利用策略映射来创建接口上使用的一组流量类别。由 于策略映射定义的每个类别都会定义一个队列,因而在讨论CBWFQ和LLQ时,术语 队列与类别经常可以互换o CBWFQ和LLQ支持64个队列/类别,最大队列长度可以调整,最大可能值以及 默认长度值取决于路由器的模块以及所安装的内存容量o 称为class-default CBWFQ和LLQ都有一个被 (默认类别)队列的特殊队列,即使没有配置该队列,该队列也始终 存在。如果数据包没有匹配策略映射中显式配置的任何类别,那么IOS就会将该数据 包放人class-default类别/队列o CBWFQ允许对class-default队列进行配置。 接下来将依次讨论CBWFQ和LLQo 4.3.1 CBWFQ的基本特性与配置 CBWFQ调度器可以为每个类别/队列保证一个最小的链路带宽比例。如果所有的 队列都有大量数据包,那么每个队列都将获得配置所提供的带宽比例。如果某些队列 为空,并且在短期内不需要使用它们的带宽,那么就会将这些带宽按比例分配给其他 类别(Cisco没有公开CBWFQ实现该功能的细节信息)。 表4-3列出了CBwFQ的关键特性。 CBWFQ的功能及特性 表4-3 分类 根据MQc命令可以匹配的任何规则进行分类 丢弃策瞬 尾部丢弃或WRED,可以对每个队列进行配置 队列数量 64 最大队列长度 取决于路由器的模块类型及内存容量 单个队列内部的调度方式 除了Class-default队列采用FIFO或wFQ方式之外,其余的63个队列均采用FIFO 方式1 多个队列之间的调度方式 1cisco 调度器的调度结果是为每个队列都提供一个有保证的带宽比例 7500系列路由器的所有CBWFQ队列均支持FIFO或wFQ 4.3 排队工具: CBWFQ与LLQ 151 表4-4列出了第3章未涵盖的CBwFQ命令。 CBWFQ命令参考 表4 ̄4 bandwidth(ba″dnd肌一k的SIpereentpe′t)e″‘) 分类子命令;该命令可以为指定类别设置绝对带宽或带宽比例 bandwidth(remainingpercentpe′℃eut) 分类子命令;该命令可以为指定类别设置剩余带宽的比例 queue-1imitq″e∥e-∥77ff 分类子命令;该命令可以设置cBWFQ队列的最大长度 fairqueue[queue-1imitq″e″e-Va/″e] 分类子命令;该命令可以在指定类别(仅cIass-default)中启用WFQ 例4-2给出了一个简单的使用class-default队列的CBWFQ配置示例,该配置是在 图4-1中的R3上创建的,满足如下需求: ■ 将所有的Ⅵ)IP净荷流量都放人一个队列; ■ 将其余流量都放人另一个队列; ■ 为vbIP流量分配50%的带宽; ■ 为非VeIP流量应用WFQo 注:所有的旧地址均以192.168开头 客户端1 服务器1 霸「名矗严稽 霞而童矗四矗 「置酵 1.100 101 102 3.100 童露 301 图4 ̄1 励4-2 302 CBWFQ和LLQ配置示例使用的网络示意图 Vb/P流量在一个欣刃脾君余流置在c/ass-defa″″欣刃竹铂cBVVI‥:Q镭置 3.254 152 拥塞管理与拥塞避免 第4章 in亡erface Seria10/O encapsulation load-interva1 R3# show frame-relay 30 policy-maP int∴s O/O Seria10/O Service-POlicy VOip-r亡P Class-maP‥ 136435 ou亡Pu亡: packets, Ma亡Ch‥ |P Weigh亡ed (Pk亡S packe亡S, sh°w Class Number of Queues 256 drops/no-buffer drops) 15/0/0 P°licy-maP Map queue-VO|P vo|P-r亡P Fair Queueing 64 (kbps) Max Thresh〇ld 64 (PaCke亡S) class-defaul亡 Weigh亡ed 4.3.2 14/0/O (ma亡Ch-any) Hashed Bandwid亡h Flow drops) Queueing queued/亡O亡al Weighted Class 48550/3107200 by亡es 1122560 Fair Maximum (亡O亡al Policy matched) any Weigh亡ed R3# 265 dr〇PS/n〇一buffer Class-default Class-maP‥ Match‥ 16383 C〇nVerSa亡i〇n matChed/by亡es (dep亡h/亡〇亡al 1958 16384 bytes Queueing Queue: ou亡Pu亡 (ma亡Ch-all) 8731840 r亡P Fair queue-V〇|P based Fair Fair Queueing Queueing Max Thresh〇ld 64 (PaCke亡S) 定义和限制cBWFQ带宽 在以前的Cis∞ IOS软件版本中,系统会检查CBWFQ的策略映射以确保不会分 配过多带宽。如果增加了service-POlicy output命令,那么这些早期的IOS版本就会执 行该检查操作。如果策略映射为接口定义了过多带宽,那么就会拒绝该service-POlicy命 令o IOS 利用以下两个接口子命令来定义允许带宽: bandwidth命令以及由 max-reServed-bandwidth命令分配的预留带宽。非可预留带宽用于开销流量。 对于IOS 何影响, 15代码版本来说, maX-reSerVed-bandwidth命令不会对排队系统造成任 IOS甚至都不会检查策略映射的总预留参数并与max-reServed-bandwidth的 设置参数进行对比,而且这些版本的IOS甚至还会通告该事实o IOS允许策略映射根 排队工具: 4.3 据int-bw来分配带宽,也就是说,对于int-bw为256 CBwFQ与LLQ 153 (256kbit/s)的接日来说,策略 映射可以分配所有的256kbi″s带宽。 此外,还可以利用bandwidth percent或bandwidth remaining percent命令定义 带宽的百分比。使用百分比能够更容易地确保策略映射不会分配过多带宽。 ■■ 这两条基于百分比的bandwidth命令的运行效果有一些细微差异(如图4 ̄2所示) 。 接口带宽 max ̄res % ∑带宽<= maX-reS % 带宽百分比: int-bw的百分比 ¨一- 剩余带宽百分比: max.res的百分比*int-bw ∑带宽<=100 图4-2 带宽百分比与带宽剩余百分比的概念 命令bandwidth percent bw二Pe7Ce72/可以将指定类别的预留带宽设置为int ̄bw的 百分比。以例4-2为例,如果使用的是bandwidth 64命令,那么类别voiputp将使用50% 命令bandw肌h × remaining percent 50命令,而不是bandwidth 128kbit/s=64kbitis带宽。 percent bw二Pe7Ceut可以将指定类别的预留带宽设置为 剩余带宽的百分比。 需要注意的是,在单个策略映射内只能使用上述三条bandwidth命令中的一条。 表4-5列出了CBwFQ预留带宽的三种方法。 表4-5 一 CBWFQ带宽预留方式 显式带宽 就是命令中列明的带宽 max-reSXint-bw 百分比 int-bw的百分比 max-reS的设置情况 剩余百分比 可预留带宽的百分比(int-bwxmax-reS) 100 攻城狮论坛 154 bbs.vlan5.com 本资料仅供试读 拥塞管理与拥塞避免 第4章 4.3.3 #^_^# 版权归原作者所有 LLQ 从名称上来看, LLQ似乎是一种最好的排队工具,有哪个数据包不希望实现低时 延呢?事实证明,对于时延(延迟)敏感型流量来说, 具o LLQ确实是一种可选的排队工 LLQ与CBwFQ在很多方面都很相似,主要区别在于LLQ可以将某些队列配置 为低延迟队列, LLQ将这些特殊队列调度为严格优先级队列。也就是说, LLQ始终优 先服务这些优先级队列中的数据包。 术语LLQ有时存在多种使用形式。对于至少有一个低延迟队列的单个策略映射 来说,可以认为该策略映射部署了LLQo通常也将该低延迟队列称为LLQ,有时也 将该单个低延迟队列称为PQ,以便与传统的类PQ进行对比,甚至直接称之为优先 级队列。 除了在CBwFQ的基础上增加了低延迟队列之外, LLQ还能避免传统PQ出现的 队列饿死现象,这是因为LLQ按照已配置带宽对PQ进行监管。事实上,分配给LLQ 优先级队列的带宽包括最小保证带宽(guarmteed maximum) Minimum)和最大监管带宽(policed (在第3章讨论DiffServ的时候曾经说过,快速转发PHB在形式上会定义 优先级队列和监管PHB)。因此,虽然该队列中的数据包可以实现低时延,但是为了 避免饿死其他队列,该队列中的数据包也有可能会被丢弃。 图4-3显示了LLQ的调度逻辑,可以看出虽然使用的是PQ逻辑,但同时也要执 行监管检查。 图4 ̄3 LLQ调度逻辑 配置LLQ时,需要在CBWFQ配置命令的基础上增加一条命令,此时为指定类别 使用的不再是bandwidth命令,而是priorrty命令: priority ( ba刀砌话d亡力一砒妇s l percent上〕erC'e″亡a多e ) [ b″上工5亡] 该分类子命令可以为指定类别启用LLQ、保留带宽并启用监管功能。此外,还可 以利用该命令为监管器配置突发量,不过通常建议大家直接使用默认配置,即已配置 带宽的20%。 攻城狮论坛(技术+生活)2群 1813097 . 4.3 排队工具: CBWFQ与LLQ 155 例4-3给出了LLQ的配置示例(规则如下)。与例4 ̄2相似,本例中的LLQ策略 也应用在图4-1中的R3的sO/0接日上: ■ R3的sO/0接口带宽为128kbit/s; ■ 数据包已经标记了正确的DSCP值; ■ VbIP净荷已经被标记为DSCPEF,并且为其分配58kbit/sLLQ带宽; ■ 分别为AF41、 ■ 将其余流量设置为class-default类别,并采用wRED和WFQ进行调度。 AF21和AF23流量分配22kbit/s、 弟E尸庞量街居⊥⊥Q赐磨方式,弟A卢41、 励4-3 P〇licy-maP Class queue-On-dscp 58 dscp-af41 bandwid亡h Class 22 dscp-af21 bandwid亡h 20 random-de亡ec亡 Class dscp-based dscp-af23 bandwidth 8 random-detec亡 Class A尸21矽A尸23流量街伊cBwFQ沥度方式 dscp-ef Priority Class 20kbit/s和8kbit/s带宽; dscp-based class-defaul亡 fair-queue random-de亡ec亡 in亡erface dscp-based Seria10/O bandwidth 128 encapsula亡ion frame-relay load-interva1 30 R3# show policy-maP Policy ! lines R3# sh゜w Map queue一On-dscp queue一On-dscp omi亡亡ed for POlicy-maP brevity interface s O/O Seria10/0 Class-maP‥ 227428 dscp-ef packets, Weigh亡ed Fair (match-all) 14555392 Queueing by亡es output class dscp-ef 156 拥塞管理与拥塞避免 第4章 Q 4.3.4 定义和限制LLQ带宽 LLQ的priority命令在定义LLQ带宽时提供了两种语法选项,一种是简单的显式 配置带宽值,另一种是配置接口带宽的百分比(priorrty命令没有剩余带宽的配置选 项)。与bandwidth命令不同的是,在同一个策略映射内部可以同时使用priority命令 的两种配置选项,即显式数值或带宽百分比o IOS也要在LLQ策略映射中限制带宽量,要求LLQ类别的带宽(使用priorrty 命令)和非LLQ类别的带宽(使用bandwidth命令)总和不能超过max-reS X int-bwo 虽然该算式很简单,但实际细节却并非那么简单,特别是在单个策略映射中,某个 队列可能采用priority bw命令进行配置,另一个队列可能采用priorrty percent bw命 令进行配置,而其他队列则可能采用bandwidth命令的三种形式之一进行配置(如 图4-4所示)。 接口带宽 256 kbⅣs 不可预留带宽 (256一(.75★256))=64kbⅣs 192 剩余带宽的计算方式 kbⅣs Classclassl 192 Priority32 kbit/s 32 kbit/s 64 kbit/S (max-reS ★ int-bw) (Explieit) (PerCentage ★ int-bw) Classclass2 P「ioritypercent25 (256★.25=64kbiVs) 可预留带宽 Classclass3 ■ ' BandwidthremamlngPerCent75 (96kbits★.75=72kbit/s) '■■■l|ll■lIllllllllllll■ 剩余带宽 未分配带宽‥96kbit/s-72kbit/s=24kbit/s 图4-4 priority、 Priority percent以及bandwidth 图4-4显示了priorrty命令的两种形式o remaining percent命令 classl使用的是显式的priorrty 预留带宽为32kbit/s,而class2使用的是priority percent 32命令, 25命令,该命令应用于接口 排队工具: 4.3 CBWFQ与LLQ 157 带宽(256kbit/s)之后,将为class2预留64kbit/s带宽。 图4-4中最有意思的部分就是配置了priority命令之后IOS看待剩余带宽的方式o IOS会减去priority命令预留的带宽,因而从本质上来说,策略映射只能根据剩余带 宽的百分比为非优先级类别分配带宽,它们加在一起的总和是100%0 4.3.5 用于多个优先级队列的LLQ LLQ允许将多个队列/类别均配置为优先级队列,那么很自然地就会想到“应该首 先调度哪个队列呢? ”事实上, LLQ将多个LLQ中的数据包都放到单个内部LLQ中。 因此,虽然已配置的多个优先级队列中的数据包能够比非优先级队列中数据包得到优 先调度,但是需要根据这些优先级队列中数据包的到达顺序进行调度。 那么为何还要使用多个优先级队列呢?答案就是监管。可以将某个类别的流量监 管为某个速度,将另一个类别的流量监管为另一个速率,这样就能获得更加精细化的 监管能力。例如,假设需要为视频和语音流量进行调度规划,那么就可以考虑将这两 种流量分别放到一个独立的LLQ中,从而为这两类流量提供低延迟性能,同时还可以 避免视频流量耗尽为视频和语音预留的带宽,反之亦然。 4.3.6 CBWFQ/LLQ的其他内容 CBWFQ和LLQ允许策略映射为类别class-default分配带宽,也可以不为该类别 分配带宽。如果在class class-default下配置了bandwidth命令,那么就意味着为该类 别预留了最小带宽(IOS不允许在class-default中配置priorrty命令) ;如果没有在class Class-defauIt下配置bandwidth命令,那么IOS就会在所有类别之间分配所有未分配 带宽。因而class class-default可能无法获得足够带宽,除非使用bandwidth命令为该 类别配置了最小带宽量。 本章讨论的保证带宽分配问题都基于备种配置命令,但事实上,策略映射可能 不会让所有队列在同一时间都有数据包,此时队列就能获得比预留带宽更多的带宽。 IOS则根据每个有效类别的带宽预留情况接比例将这些额外带宽分配给每个有效 类别。 最后, IOS仅在出现拥塞时才使用排队机制o IOS认为硬件队列满的情况下才会 出现拥塞,而硬件队列通常是在提供的流量负荷远小于链路时钟速率时才会出现满的 情况,因而路由器可以在接口上应用service-POlicy out命令并配置LLQ,但是仅在硬 件队列满的情况下才使用LLQ调度逻辑0 4.3.7 排队工具小结 表4-6列出了本章所讨论的IOS排队工具的主要特性。 158 第4章 拥塞管理与拥塞避免 排队协议对比 表4-6 包舍严格优先级队列 否 目 刀≡ 监管优先级队列以避免饿死其他队列 否 目 刀≡ 逐个队列预留带宽 ∈己 色舍丰富的分类字段集 目 刀≡ 万≡ E≡ 刀≡ 万≡ E己 基于流进行分类 是1 Eil 刀≡ 日 支持RS>P 目 最大队列数 刀≡ 64 刀≡ 64 1wFQ可用于Class-default队列或者运行了15.3代码的2900系列路由器的所有cBWFQ队列 4.4 WRED 队列满了之后, IOS就没有空间容纳新到达的数据包,因而将丢弃这些数据包。 通常这种现象称为尾部丢弃(tail drop)。由于数据包具有突发性,因而队列满了之后, 通常会一次性尾部丢弃多个数据包。 尾部丢弃会对网络流量造成负面影响,特别是TCP流量。这是因为数据包丢失后 (无论出于什么原因) 个数据包之后, , TCP发送端都要降低数据发送速率。出现尾部丢弃且丢失了多 TCP连接会变得越来越慢。此外,大多数网络发送的TCP流量比例都 远高于mP流量,这就意味着尾部丢弃了多个数据包之后,将会严重降低网络的整体 负荷。 有趣的是,如果在数据包进人队列的时候就开始丢弃一些数据包,而不是在队列 满了之后才进行尾部丢弃,那么就能提高网络的整体吞吐量。因此,Cisco开发了WRED (WOfghted Random Early Detection,加权随机早期丢弃)特性,专门监控队列长度并按 一定的比例丢弃队列中的数据包,以提升网络的整体性能。如果队列的长度变得越来 越长,那么WRED就会丢弃更多的数据包,希望以稍微降低负荷能力为代价来避免队 列出现占满情况o WRED根据多种数值参数来确定丢弃决策。首先, WRED利用可度量的平均队列 深度来确定队列是否已经填充了足够多的数据包以至于需要开始丢弃数据包,然后 wRED再将平均队列深度与最小队列阑值以及最大队列闹值进行比较,并根据不同的 比较结果执行不同的丢弃操作(如表4-7所示)。 如果平均队列深度非常低或者非常高,那么丢弃操作相对来说还是比较直观的(虽 然表4-7中的术语“完全丢弃恤11五op]”可能会产生一些歧义)。如果平均队列深度大 于最大队列阑值,那么wRED将丢弃所有新数据包。虽然该丢弃操作看起来与尾部丢 4.4 WRED 159 弃很相似,但是从技术上来说却并非如此,这是因为此时的实际队列可能并没有满。 因此,为了更好地区分这两者, WRED将这种丢弃操作称为完全丢弃。 WRED丢弃分类 表4-7 不丢弃数据色 平均队列深度<最小队列闰值 不丢弃(nodrop) 丢弃一定比例的数据色,随着平均队列深度从最 小队列闰值增大到最大队列闰值,丢弃比例也从 最小队列闰值<平均队列深度<最大 随机丢弃(randomdrop) 队列闰值 0增大到最大比例 平均队列深度>最大队列阐值 丢弃所有的新数据色(类似于尾部丢弃) 完全丢弃(fu"drop) 如果平均队列深度介于两个阑值之间,那么wRED将丢弃一定比例的数据包。随 着平均队列深度从最小队列阑值增大到最大队列阑值,丢弃比例也将出现线性增长(如 图4 ̄5所示,该图显示了WRED针对IPPO流量的默认设置情况)。 丢弃百分比 平均队列深度 ↑ ↑ 20 40 最小队列阐值 图4-5 最大队列阐值 1PPO流量的默认WRED丢弃逻辑 影响WRED丢弃逻辑的最后一个数值参数就是MPD Denominator,标记概率分母) (Mack Probability ,图4-5中的最大丢弃比例10%就是通过该参数得到的o IOS通过简单的计算公式“1/MPD”来计算平均队列深度达到最大阑值时使用的丢弃 百分比。对于图4-5来说, MPD为10,因而1/MPD为1/10,表明平均队列深度从最 小队列阑值增大到最大队列阑值时,丢弃比例将从0%增大到10%。需要注意的是, 160 第4章 拥塞管理与拥塞避免 wRED丢弃数据包的方式是随机选择数据包进行丢弃0 4.4.1 WRED加权数据包的方式 由于WRED需要为携带不同IPP或DSCP值的数据包分配相应的优先级,因而 WRED为携带不同IPP或DSCP值的数据包使用了不同的流量配置简档(Profile)o wRED流量配置简档包含三个关键的WRED变量:最小阑值、最大闹值以及MPDo 图4-6给出了两个WRED流量配置简档示例(分别用于IPPO和IPP3流量)。 从图4-6可以看出, 先于IPP IPP 3的最小阐值大于IPP 3数据包被丢弃。此外, IPP O的最小阑值,因而IPP O流量将 3的MPD也相对较大,因而其丢弃百分比(丢 弃百分比的计算公式为1瓜僻D)较小。 平均队列深度 20 1PP 图4-6 lPP 3 1PP O 40 30 O的 最小闺值 IPP3的 最大阐值 最小阐值 1PPO和IPP3的WRED流量配置简档示例 表4-8列出了不同DSCP值对应的IOS默认wRED配置简档信息。第3章曾经 讨论过AF (AssuredForwarding,确保转发) DSCP,名称以1结尾(如AF21)的流 量应该比名称以2结尾(如AF32)的流量受到更好的WRED处理。为了实现该目 标,表4-8中列出的IOS默认WRED配置简档需要为相应的AF DSCP设置较小的 最小阑值。 表4-8 Cisco loS软件为基于DScP的WRED设置的默认WRED配置简档 AFxl 33 40 10 10% AFx2 28 40 10 10% AFx3 24 40 10 10% EF 37 40 10 10% 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 4.5 4.4.2 MDRR 161 WRED配置 由于WRED根据队列深度来管理丢包操作,因而必须针对特定的队列来配置WREDo 但是,由于大多数排队机制都不支持WRED,因而只能在以下位置配置WRED‥ ■ 在物理接口(部署了FIFO排队机制)上配置WRED! ■ 在CBWFQ策略映射内为非LLQ类别配置WRED3 ■ 为ATMVC配置WREDo 如果要在物理接口上直接使用WRED, IOS必须禁用其他排队机制并创建一个 FIFO队列,然后再由wRED管理该队列的丢包操作。对于CBWFQ来说,可以在策 略映射内的流量类别下配置WRED (与本章前面讨论过的bandwidth命令及priorrty 命令的位置相同)。 无论是在物理接口下还是在策略映射内的流量类别下,都可以通过random-detect 命令启用WRED,该命令可以让WRED使用IPP,而不使用DSCPo random-detect dscp-based命令不但可以启用wRED,而且还可以让wRED使用DSCP来确定数据 包的流量配置简档。 对于特定的IPP或DSCP来说,如果要更改默认WRED配置简档的wRED配置 信息,那么就要使用以下命令(与其他random-detect命令的位置相同) random-detect precedence j?reC′edeJ7Ce.77工刀一f.Zre,St力oJc7 [仍ar度rpr°b-d争″°奶工刀a亡°r rand゜m-detect dscp cjbcpT传JzJe J77aX- : fj2reS五c)Jc7 ] J?7_in一亡J]re王力oJc7 [仍a了☆一pr°ba上)工j上少一d圭乃°仍工刀a亡°r ”aX- fJ]res力oJc7 ] 最后,在计算移动平均队列深度时,可以配置一个被称为指数加权常数 (exponential weighting constant)的参数来影响计算结果。指数加权常数越小,意味着 早期平均值占计算结果的比重越小,导致平均值的变化越快。利用以下命令可以更改 指数加权常数的参数值(虽然并不建议更改该参数) random-detect exponential-weighting-C゜nStant : e稽〕O刀er7C 需要说明的是,前面的例4-4已经在CBWFQ配置文件中显示了某些流量类别的 基本wRED配置信息0 4.5 MDRR MDRR( Modified Deficit Round-Robin ,改进型差额轮询)是一种只能在Cisco 12000 系列路由器平台上运行的排队功能特性。由于12000系列路由器不支持CBWFQ和 LLQ,因而需要由MDRR来提供相关功能。与传统的排队方法(如优先级排队和定制 排队)相比, MDRR的主要优势在于更公平,并且支持优先级队列(类似于LLQ)。 对于CCIE路由和交换认证考试来说,必须从概念上理解并掌握MDRR的工作方式, 攻城狮论坛(技术+生活)2群 1813097 162 第4章 拥塞管理与拥塞避免 但是并不需要掌握MDRR的配置方式o 蔼键 MDRR可以将流量分类成7个轮询队列(0-6)和一个优先级队列。如果优先级 谭蕊队列中没有数据包,那么MDRR通常会以轮询方式为队列中的数据包提供服务,每个 周期都要轮询一遍所有队列。如果优先级队列中有数据包,那么MDRR将通过以下两 种方式将优先级队列包含在队列服务算法中: ■ ■ 严格优先级模式(strictpriority mode) i 交替模式(altematemode)。 对于严格优先级模式来说,只要优先级队列中有数据包,就始终为优先级队列服 撬务。当然,这种模式的好处是能够保证优先级队列中的流量始终得到优先服务,而不 用考虑其他队列中的流量,但缺点在于如果优先级队列中始终有流量,那么就会导致 其他队列出现队列饿死问题。这种模式下的优先级队列能够得到比配置带宽比例更多 的带宽,因为在每个周期中,优先级队列能够得到更多的服务。 与此相反,交替模式会在优先级队列与其他队列之间提供交替服务。假设配置了 5个队列: 0、 1、 模式的处理方式为: 0、 2、 P、 3和优先级队列(P),并且每个队列中都始终有流量,那么交替 1、 P、 2、 P、 3、 P,依此类推。由于该模式下每个队列都 能得到服务,因而非优先级队列不会出现队列饿死问题,但是与严格优先级模式相比, 该模式的缺点在于会给优先级队列中的流量带来抖动和额外的延迟。 与其他排队方法不同, MDRR使用了以下两个专用术语,从而能够有效地区别于 其他排队工具: ■ ■ |ヽ QV (quantumvalue,量值); 差额(deficit)。 MDRR支持两种调度方式,一种是使用与Cis∞ IOS路由器(除了12000系列之 蕊外的路由器)相同的传统CQ特性,即肥毗会一直移除某个队列中的数据包,直到 达到该队列的QV为止o 节计数器非常相似o QV的单位是字节数,在使用方式上与CQ调度器使用的字 MDRR会为每个队列(按照从0到7的顺序)重复该调度进程, 然后再重复该轮询进程,最终结果就是每个队列都能获得一定比例的链路带宽。 为了解决CQ调度器存在的问题, MDRR将每个周期中发送的所有“额外”字节 都视为“差额”进行处理。如果从某个队列中提取了过多字节,那么在下一次轮询队 列的时候,就要从QV中减去MDRR发送的额外宇节。也就是说,如果某个队列在本 次周期中发送的字节数多于Qv,那么就会在下一个周期中少发送上一个周期多发送 的字节,因而经过大量周期的平均化之后, MDRR调度器就能实现更精准的带宽预留 能力。 图4-7显示了MDRR的工作方式,本例中的MDRR仅使用两个队列, 1500字节和3000字节,并且所有数据包的大小均为1000字节。 QV分别为 4.5 MDRR 163 对于图4-7的讨论将有助于大家理解MDRR的工作方式,本图上半部分显示了第 一个轮询周期发生的操作情况,下半部分则显示了第二个轮询周期发生的操作情况。刚 开始时,队列1中有6个数据包(编号为Pl-P6),队列2中也有6个数据包(编号为 P7-P12) ,队列右侧的每个箭头线(指向右侧)都表示MDRR发送单个数据包的选择。 注:所有数据包的长度均为1000字节! 第1个MDRR队列轮询周期 队列1 ^ 计数器=1 500 L:一二:二二=、 P5 P6 P3 P4 P2 1【二 l Pl ′■ ̄ 队列2 P12 PlO Pll Ql结束差额 么 计数器=-500 计数器=3000 P8 P9 I口’_ P7F====丰 lQl结柬‥差额 计数器=0 第2个MDRR队列轮询周期 队列1 ^ 计数器=-500+1500 口. =1000 ._ P6 P5 P4 P3 ′■ ̄ 队列2 ■ 图4-7 P12 P¨ Ql结束:差额 A l口. 计数器=0 计数器=O+3000=3000 PloF===丰 IE二 '' ̄ lQl结柬‥差额 计数器=0 MDRR:差额处理 MDRR在队列最初填充数据包的时候,会将该队列的DC (Deficit Counter,差额 计数器)设置为该队列的QV,因而队列1的DC为1500,队列2的DC为30000从 图4-7可以看出, MDRR首先从队列1中提取一个数据包并将其DC递减至500,由 于MDRR判断此时的DC仍然大于0,因而MDRR会从队列1中提取第二个数据包 并将其DC递减至一500,此后MDRR将移到队列2,从队列2中提取出三个数据包之 后,队列2的DC将被递减至00 对这两个队列进行第一次轮询处理之后, MDRR从队列1提取了2000字节,从 队列2提取了3000字节,因而这两个队列分别占用了40%和60%的链路带宽。 在第二个轮询周期中(如图4-7下半部分所示), MDRR首先为每个队列的DC值 增加 QV,因而队列1在开始经历第二个轮询周期的时候,其DC就变为 1500+(-500)=10000在第二个轮询周期中, MDRR从队列1中提取数据包P3并将其 DC递减至0,此后MDRR将移到队列2,从队列2中提取出三个数据包之后,队列2 的DC也将被递减至00此时, 期之后, MDRR就完成了第二次轮询操作。经过这两次轮询周 MDRR从队列1提取了3000字节,从队列2提取了6000字节(两者的比例 164 第4章 拥塞管理与拥塞避免 关系与它们的QV比例完全相同)。因此, MDRR在这两个队列之间精确地实现了已 配置带宽的比例关系。 利用差额功能, 应的计算公式如下) MDRR可以在一段时间之后为每个队列都提供一个保证带宽(相 : 队列x的Qv 所有Qv之和 如果希望了解MDRR差额功能的更多应用案例,可以访问wwwcisco.comtwaap佃holic/ 63∧oc_18841.html,或者访问cisco.com并搜索“Understanding and 4.6 WRED on the Cisco 12000 Series Intemet Router” and Configuring MDRR 0 LAN交换机的拥塞管理与拥塞避免 本节将讨论Cisco 4.6.1 3560交换机的人站和出站排队特性0 Cisco交换机的入站排队 Cisco 3560交换机可以执行人站和出站排队操作,支持两个人站队列,同时可以 将其中的一个队列配置为优先级队列o (Weighted Tall Cisco 3560交换机的人站队列利用WTD Drop,加权尾部丢弃)机制来设置每个队列的丢弃阑值。 本节将详细讨论Cisco交换机的人站排队特性o Cisco 3560交换机的数据包调度器利用SRR (Shared Round-Robin,共享循环)机 制来控制数据包从人站队列发送到内部交换矩阵的速率。在共享模式下, SRR会根据 预先配置的权重,在两个队列之间共享带宽。虽然每个队列的带宽都是保证带宽,但 并不限制每个队列的实际带宽,如果其中的一个队列为空,另一个队列有数据包,那 么有数据包的队列就可以使用全部带宽o 这里的权重只是影响出队频率的比例o sRR使用的权重只是相对值,而不是绝对值, SRR的共享模式与CBWFQ非常相似, CBWFQ 配置的就是百分比,而不是绝对带宽。 如果要在交换机上配置人站排队特性,那么必须明确以下问题。 ■ 分别将哪些流量放人每个队列中?默认将COs 5的流量放人队列2,其余流 量则放人队列10 当然,也可以根据DSCP值将不同的流量映射到不同队列。 ■ 是否有流量需要优先处理?如果有,那么就需要将两个人站队列中的一个队 列配置为优先级队列。 ■ 为了满足特定的流量分割需求,需要为每个队列分配多少带宽以及缓存空间? ■ 默认的wTD阑值是否适合你的流量?默认处理方式是在队列达到100%满的 情况下才丢弃数据包。每个队列都可以设置三个不同的丢弃点或丢弃阑值, LAN交换机的拥塞管理与拥塞避免165 4.6 到达这些阑值之后就可以丢弃流量0 1.创建优先级队列 对于两个人站队列来说,可以将其中的任意一个队列配置为优先级队列。通常为 语音流量使用优先级队列,以确保语音流量能够先于其他流量得到优先转发,从而降 低延迟。如果要启用人站优先级排队,可以使用mls quewe-id bandwidth qos srr-queue input priorrty-queue we砂?‘命令。其中,参数we姆加的作用是在非优先级队列存在竟 争流量时,定义优先级队列可以使用的链路带宽百分比。 例如,假设队列2为优先级队列,并且配置了20%的带宽。如果最初只有队列1 有数据帧进人,之后队列2也开始有数据帧进人,那么调度器将停止为队列1中的当 前数据帧提供服务,并立即为队列2中的数据帧提供服务。调度器将从队列2中提取 数据帧并到达we姆加参数所配置的带宽,然后再在这两个队列之间共享剩余带宽。 例4 ̄4首先显示了默认的CoS-tO-input-queue queue (CoS到人站队列)以及DSCP-tO-input- (DSCP到人站队列)的分配关系。默认分配关系包括CoS 弃阑值为1, 5映射到队列2且丢 CoS6映射到队列1且丢弃阑值为10例4-4的后面还给出了将队列2配 置为优先级队列以及将CoS 6映射到人站队列2的配置示例。 将流量臃射勃入竭炊劲#励蛰佛先级欣砌 励4-4 SW2# show m|s qos maps Cos-inputq一亡hreshold COs‥ queue一亡hreshold: SW2# show mls qos 0 1-1 maps Dscp-inputq一亡hreshold dl :d2 cos-input-q map: 1 2 1-1 1-1 1-1 5 1-1 7 6 2-1 1-1 1-1 dscp-input-q map 1 0 4 3 ‥ 2 4 3 5 6 7 8 9 ● ● ● ● ● ● ● ● ● ● ● ● O 1 2 3 4 5 6 ● ● 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 Ⅰ. sw2# conf∴t SW2 (COnfig) SW2 (COnfig) SW2# show # # mls mls qos∴Srr-queue mls∴q°S qos c〇s‥ 接下来需要利用mls 土nput cos-maP queue priority-queue 2 6 2 bandw土dth 20 maps∴COS-input-q Cos-inpu亡q-亡hreshold queue一亡hreshold‥ Srr-queue input map: 0 1-1 qos 1 1-1 2 1-1 3 1-1 srrLqueue 4 1-1 5 2-1 input 6 2-1 7 1-1 buffers peJte#/ngeJ peroe#姆2命令定义 166 拥塞管理与拥塞避免 第4章 人站缓存的分配比例,将人站缓存分配给两个队列。默认将90%的缓存分配给队列1 将10%的缓存分配给队列20此外,还要利用mls we培加/ qos srrqueue input , bandwidth we姆砌2命令为每个队列配置带宽百分比,也就是设置调度器从这两个队列提 取数据包的频率。两个队列的默认带宽值分别为4和4,即在两个队列之间均分流量 (虽然该命令使用了关键字bandwidth,但是该参数只是相对权重,并不表示任何特定 的比特率) 。通过这两条命令,就能够确定交换机在丢弃数据包之前能够缓存和发送的 数据量。 在αsco 3560交换机上启用了QoS之后,默认的人站队列设置情况如下: ■ 队列2为优先级队列; ■ 为队列2分配10%的接口带宽; ■ 将CoS5流量映射到队列20 2. Cisco Cisco 3560交换机的拥塞避免 3560使用的拥塞避免算法是WTD (Weighted Tail Drop,加权尾部丢弃) , 在交换机上启用QoS之后就默认启用WTDoWTD会为每个队列创建三个丢弃阑值(根 据CoS值) ,在相关联的队列达到特定百分比时执行尾部丢弃操作。 由于优先级队列中的流量通常都是UDP流量,因而通常可以直接使用默认配置, 在队列达到100%满时再执行丢弃操作。但是对于其他队列来说,有可能希望更主动 地丢弃一些非关键性的业务流量。例如,可以将阑值配置为1,那么当队列达到40% 的时候就开始丢弃CoS值为0-3的流量;如果闹值为2,那么当队列达到60%的时 候就开始丢弃CoS值为4和5的流量;如果阑值为3,那么仅在队列达到100%满时 才开始丢弃CoS值为6和7的流量。需要注意的是,不能更改阑值为3的操作行为, 此时始终在队列达到100%满时才开始丢弃流量(如图4 ̄8所示)。 cos 6-7 >100%‥ ̄ ̄ ̄ ̄ cos 三 ̄ 图4 ̄8 1000 4-5 > 60% - cos .! O-3  ̄ > 40% WTD配置的图形化解释 由于可以为3560交换机中的6个队列(2个人站队列和4个出站队列)分别配置 LAN交换机的拥塞管理与拥塞避免167 4.6 wTD,因而3560能够提供非常精细化的调度配置能力(可能过于精细化了! ) 从例4-4可以看出,每种CoS及DSCP值均被默认映射为丢弃阑值10如果信任 CoS,并且信任队列流量(基于接收到的CoS值),那么就可以使用mls input cos-maP threshold zfereshO材材cost... 如果信任DSCP,那么就可以使用 砌reshoh九id cZsap/... mls qos qos srr-queue cos8命令将指定CoS值映射为特定阑值。 srr-queue input dscp-maP threshold dsap8命令将指定DSCP值映射为特定闹值。如果要为每种阑值 配置相应的尾部丢弃百分比,那么就可以使用命令mls qos srrLqueue inpu=hreshold 卿锄e-材砌雌切/卸e比助彻箩/砌雌加/(砷e砧助砌箩20例4-5在例4-4的基础上增加了 缓存、带宽以及丢弃阑值等方面的配置示例信息。 励4 ̄5 /乾置人竭欣砌缓存、 !Configure 亡he SW2 # (COnfig) buffers f〇r inpu亡in亡erface mls∴qoS∴Srr-queue 亡he !Configure SW2 ≠劳君以及丢弃÷踢符 rela亡ive mls (C〇nfig)# 亡he !threshold based WTD on its input 亡hresholds CoS queues 80 buffers l and 2 20 weigh亡S qos∴Srr-queue 亡W〇 !C〇nfigure queue input bandwidth for queue l, 3 1 and map traffic q゜S∴Srr-queue |nPut COS-maP threshold l SW2 (COnfig) # mls qos∴Srr-queue input cos-maP thresh゜ld 2 SW2 (COn壬ig) # mls q゜S∴Srr-queue input∴cos-maP thresh゜1d 3 the show qos |nPut-queue 1 Priori亡y : ‥ thresholdl : 亡hreshold2 ‥ 2 0 0 0 0 0 0 2 1 2 1 1 : bandwidth 0 0 0 8 3 0 4 6 buffers 40 configurati〇n mls Queue 1 3 |nPut∴thresh゜1d mls !Verify eaCh 5 7 qos∴Srr-queue # 2 mls (C〇nfig) 0 4 6 (COnfig)# SW2 土 60 SW2 SW2# 亡O value 从例4-4和例4-5可以看出,交换机将CoS值为5和6的流量放人队列2 为优先级队列) ,并根据其在priorrty-queue 级队列中的流量,然后再根据input (队列2 bandwidih命令中配置的权重来提取优先 bandwidth命令中配置的相对权重将流量分散到 队列1和队列2中。队列1流量的WTD阑值是40%、 60%和100%, 的流量采用阑值1,相应的WTD丢弃百分比是40%, 值2,相应的WTD丢弃百分比是60%, wTD丢弃百分比是不可配置的100%。 CoS值为0-3 CoS值为4和5的流量采用闹 CoS值为6和7的流量采用阑值3,相应的 攻城狮论坛 168 bbs.vlan5.com 第4章 4.6.2 #^_^# 版权归原作者所有 本资料仅供试读 . 拥塞管理与拥塞避免 Cisco3560交换机的出站排队 出站排队的概念与人站排队相似,每个接日都有4个出站队列(而不再是两个队 列),可以通过配置将不同的CoS值和DSCP值映射到这4个队列中,同时还可以为 每个队列配置相对权值以及丢弃阑值。虽然也可以在出站队列中配置一个优先级队列, 但是该队列必须是队列10与人站排队一样,也可以为出站队列配置wTD及阑值。 出站排队与人站排队的区别之一就在于,出站排队命令是接口命令,而人站排队命令 是全局命令。 人站队列与出站队列的一个关键区别是3560交换机可以为出站流量提供整形功 能,从而降低出站流量的速率。这样不但有助于防范某些类型的DoS (Denial ofService, 拒绝服务)攻击,而且还可以为城域以太网部署子速率速度特性提供实现机制。 由于αsco 3560交换机假设只需考虑做出转发决策之后的操作,因而Cisco 交换机使用的分类机制相对比较简单,这些交换机根据内部DSCP (intemal 3560 DSCP) 参数来确定大多数的内部QoS决策。由于内部DSCP参数是在转发帧的时候确定的, 因而在为指定帧分配了内部DSCP及出站接口之后,需要通过以下逻辑来确定应该将 指定帧放人4个输出队列中的哪一个队列0 1.将指定帧的内部DSCP与全局DSCP-tO-CoS (DSCP到CoS)映射进行对比以 确定Cos值0 2.根据已分配的CoS值,利用逐个接口的CoS-tO ̄queue (CoS到队列)映射来 确定指定帧的队列。 本节假定帧已被正确分类并放人4个输出队列中,因而将重点讨论调度器问题。 αsco 3560交换机支持两种调度器选项(这两种调度器的缩写形式都是SRR) 询(Shared Round ̄Robin)和整形轮询(Shaped Round-Robin) :共享轮 。这两种调度器的主要 区别在于除了都能避免队列饿死问题之外,整形轮询还能对队列进行限速(整形) ,因 而队列不会超出已配置的链路带宽百分比。 为了更好地解释这两种调度器之间的异同点,下面将考虑无PQ情况下的两个场 景:第一个场景是4个队列均包含大量帧;第二个场景是只有一个队列包含帧。 对于第一个场景来说, 4个输出队列均有大量帧,此时共享模式和整形模式的工 作方式完全相同。这两种模式均使用每个队列配置的权重,并根据权重按比例为4个 队列提供服务。如果要为队列配置权重,那么可以使用以下两条命令(选择哪条命令 与希望在接口上使用哪种调度类型有关) Srr-queue bandwidth Srr-queue bandwidth share shape : n/e工g力fj ”e上≦如C2 we工主冲fj we工g力fJ we工g力f2 Fve」′{如Cj we工g力C4 we工g妇C4 例如,对于共享模式来说,如果每个队列的默认权重均为25,并且假设所有的4 个队列均有帧,那么交换机将为每个队列提供平均服务。 攻城狮论坛(技术+生活)2群 1813097 4.6 LAN交换机的拥塞管理与拥塞避免169 但是,如果并不是所有队列均满,那么这两类调度器的工作方式将有所区别。对 于第二个场景来说,只有一个队列有帧,并且该队列的权重为25 (默认值)。如果采 用的是共享调度模式,那么交换机将只为该队列提供服务,并且该队列将占用所有的 链路带宽。如果采用的是整形调度模式,那么交换机就会自觉地等待为该队列提供服 务,在这期间不会通过接口向外发送任何数据,因而该队列只能获得已配置的链路带 宽。对于本场景来说,就是25%的链路带宽。 接下来考虑队列1为优先级队列时的应用场景。首先考虑第一种情况,此时队列 2、队列3和队列4均有帧,而队列1没有帧,之后开始有帧进人该出站PQo那么交 换机在完成当前帧的调度服务之后将立即为PQ提供服务,但不会饿死其他队列。在 所有队列均有帧等待离开队列的情况下,调度器会将PQ使用的带宽量限制在已配置 带宽。不过这种带宽限制并不会丢弃超出流量,而是对超出流量进行排队(对于这种 场景来说,整形模式和共享模式的工作方式完全相同)。 最后分析一下共享模式与整形模式之间的区别。假设PQ仍然有大量帧需要发送, 而队列2、队列3和队列4目前为空。对于共享模式来说, PQ将以全线速方式发送帧, 但是对于整形模式来说,交换机则会有一段时间不为PQ提供服务,因而PQ发送帧 的总速率只是为该队列配置的带宽。 希望上述案例能够帮助大家理解SRR调度器在整形模式与共享模式下的异同点, 关键内容如下: ■ 如果多个队列均有帧,那么共享模式和整形模式调度器都将按照这些队列配 置的带宽情况按比例为这些队列提供服务; ■ 如果PQ刚开始为空,后来有帧进人PQ,那么共享模式和整形模式调度器都 将立即为PQ提供服务; ■ 如果除PQ之外的其他队列有帧等待发送,那么共享模式和整形模式调度器 都将阻止PQ超出已配置带宽; ■ 整形模式调度器始终不允许任何队列(包括PQ和非PQ)超出已配置的链路 带宽百分比(即使这样会导致链路处于空闲状态)。 与人站排队相似,将DSCP或CoS值映射到特定队列也是在全局配置模式下完成 的,每个接口都属于两种出站queue-SetS (队列设置)之一。对于每种queue-SetS来说, 也是在全局配置模式下配置缓存及wTD阑值,而带宽、整形模式或共享模式以及优 先级排队则是逐个接口进行配置的。 170 第4章 拥塞管理与拥塞避免 例4-6给出了出站队列的配置示例,更改了queue-SetS WTD阑值,首先将queue-SetS bandwidth Srrqueue share l分配给一个指定接口,然后又用一条新命令srILqueue we姆加J bandwidth l的其中一个队列的缓存和 shape we语砌2 we姆船we咕确为队列2配置了共享模式,并用命令 wej妒f/ we姆砌2 wejg船we语厉∥为队列3和队列4配置了 整形模式。此外,队列1被配置为优先级队列。配置优先级队列时,交换机会忽略share 或shape命令中为优先级队列配置的任何带宽值。此外, bandwidth 3560交换机还支持srrLqueue limitpe7t,CJ7/命令,可以对接口带宽进行限速。本例默认限制接日使用75% 的带宽。 励4-6 出站欣刃馏 SW2(COnfig)# mls qos queue-Set outPut l buffers∴40 SW2(C〇nfig)# mls qos queue-Set ゜utPut l threshold SW2 (COnfig)# int∴fa queue-Set l SW2(COnfig-if)# srr-queue bandwidth share lo lo SW2(COnfig-if)# srr-queue bandwidth shape lo O SW2 priority-queue SW2# show mls # qos 2 40 30 10 60 100 100 O/2 SW2(C〇nfig-if)# (COnfig-if) 20 int fa O/2 l 20 l 20 out queueing Fas亡EthernetO/2 Pri〇rity Shaped queue weigh亡S (absolu亡e) Shared queue weigh亡S : The The 4.7 靛 矗 p〇r亡 Queue enabled Egress bandwidth p〇r亡is mapped ‥ 10 limi亡 亡〇 10 ‥ qSet 1 75 ‥ : 10 0 20 20 1 (Opera亡ional Bandwid亡h‥75.0) 1 RSVP RSVP (Resource Reservation Protocol,资源预留协议)属于IETF协议,是一种非 常独特的QoS方法,可以为数据流预留端到端的资源。到目前为止所讨论的QoS技 术都是为单个路由器或交换机接口分配带宽或区分流量的优先级,不同路由器对数据 包的实际处理方式并不相同,完全取决于数据包到达路由器时的接口拥塞情况以及每 台路由器的配置情况。前面所讨论的QoS技术关注的是如何为每个帧或数据包提供服 务质量,而不是为整个流量流提供服务质量。 使用了RSVP之后,对于路径上启用了RSVP的路由器来说,每台路由器都会在 流量流的持续时间内预留带宽并提供所请求的QoS服务。资源预留是以流为基础逐流 实现的,因而每个流都拥有自已的资源预留设置,而且资源预留也是单向的,既要从 源端到目的端预留资源,也要从目的端到源端预留资源o RSvP通常用于带宽有限且 经常拥塞的网络,适用于无法容忍大量时延或丢包的流量,如语音和视频流量。 4.7 4.7.1 RsvP 171 Rs>P进程概述 虽然有些应用和设备能够感知摊Ⅶ并发起自已的资源预留操作,但更普遍的情 况是由网关来充当设备的代理并在设备之间创建预留路径。图4-9显示了预留路径的 创建方式。预留操作是按照每个方向以及每个流分别实现的,流在RSvP中是通过目 的Ⅲ地址、协议ID以及目的端口来标识的,不但要从终结网关到发起网关创建一条 预留路径,而且还要从发起网关到终结网关创建另一条预留路径。 --- GWl 图4-9 - 流方向 > 一 BsVP GVve - BSVP GW3 - No RsvP GW4- RSVP Rs>P预留进程 图4-9中的两个端点应用均不感知RSVP,图中的RSVP资源预留创建过程如下。 第1步:路由器GWl收到需要预留资源的流中的第一个数据包之后, 目的IP地址发送一条RSVPPAilH消息o PATH消息包含了PHOP GWl会向 (Previous HOP,上 172 第4章 拥塞管理与拥塞避免 一跳)的IP地址,因而返回消息可以沿相同路径返回o D虹H消息中还描述了流量的 带宽及QoS需求。 第2步‥下一跳路由器GW2配置了RSVP,因而会记录上一跳信息并转发PATH 消息。请注意, Gw2将自已的IP地址作为PHOP插人到PATH消息中,而目的地址 则保持不变。 第3步:第三台路由器Gw3未配置RSVP,该路由器将PATH消息视为一个普通 的IP包,因而不加任何改动地将消息转发给目的端,就像转发所有的IP包一样。 第4步:第四台路由器GW4收到PATH消息之后,会向PATH消息中列出的PHOP 地址回应一条RESV (reservation,预留)消息,由RESV消息请求所需的QoSo如果 路径上有任意路由器无法提供足够的资源,那么就会返回一条错误消息并丢弃该RSvP 消息。此外, Gw4也要向GWl发起一条PAVH消息,以便在相反方向预留资源。 第5步,由于Gw3 (非RSVP路由器)再次将RESV和PATH消息视为普通的IP 包,因而只是将数据包转发给GW2, 第6步: GW3不会做任何资源预留操作。 Gw2收到RESV消息并检查其是否能够提供所请求的资源。如果检查成 功,那么就为该流创建预留资源,并将该RSv消息转发给之前收到的弘TH消息中列 出的PHOPIP地址。其他PATH消息到达后, 第7步‥ GW2将处理并发送给GWlo GWl收到RESV消息之后,就知道资源预留操作已经成功。不过,为了 为流量流提供双向QoS保证,必须在每个方向都要实施资源预留操作。 第8步: 面相同o GWl利用RESV消息响应第二条PATH消息,在网络中的处理方式与前 GW4收到RESV消息之后,就知道双向资源预留已完成,此时GW4会发送 ResvConf响应消息,以确认预留操作。 上述消息交换过程会给数据传输造成延迟o GWl收到ResvConf消息后,知道双 向资源预留已完成,此时就可以开始处理流量o RSvP则沿着呼叫路径周期性地发送 刷新消息,以便根据网络的变化情况做出动态调整0 4.7.2 配置RsVP 在逐个接口配置RSVP之前,需要确定为每个流分配多少带宽以及一共允许RSVP 使用多少宽带。需要注意的是,必须为其他使用该接口的应用留出一部分带宽。 必须在创建资源预留的所有路由器上配置RSvP,而且还要在流量穿过的每个接 口上配置RSVPo在接口配置模式下使用ip rsvp bandwidth /O彻′一亿切s s扔gfe枷w一启吻J 命令即可启用RSvPo如果没有指定要预留的总带宽,那么路由器将默认预留接口带 宽的75%。如果未指定每个流的预留值,那么任何流都可以预留整个带宽。 如果要为RSVP控制消息设置DSCP值,那么可以使用接口配置命令ip Signalling dscp cZscp-Vchre o rsvp 4.7 RsVP 173 不需要在企业内的每台路由器上都配置RSVPo 由于RSvP消息可以穿越未启用 RSVP的路由器,因而可以有选择地在部分路由器上配置RSVPo可以考虑在容易产生 拥塞的网段(如低带宽区域)启用RSvPo对于网络核心来说,由于带宽较大,因而 可以考虑利用LLQ/CBwFQ来处理流量,这样就能大大提升RSVP的扩展性,减少必 须跟踪每个会话的路由器数量,从而减少了RSvP消息交换过程所包含的路由器数量。 在图4-10所示网络中,远程站点连接在骨干IPwAN上,图中的骨干网可能是企 业自有网络,也可能是服务提供商的MPLS (MultiprotocoI Label Switching,多协议标 签交换)网络,远程站点的链路均是Tl且同时承载了语音和数据流量。远程站点路 由器的WAN接日均配置了RSVP,它们之间相互发送数据时会预留资源。当流量穿 越骨干IP WAN时,会在边缘路由器的WAN接口上基于远程站点路由器的可用资源 来预留资源。由于骨干网不参与RSVP,因而必须在骨干网部署其他QoS机制。 ° =配酣svP的接口一此处将进行资源预留 图4-10 4.7.3 在大型网络中使用RSvP 为语音呼叫使用Rs>P 虽然RSVP可以预留资源,但需要每台路由器都部署相应的QoS技术来交付这些 资源o LLQ是一种常用于语音流量的QoS机制,可以将语音流量放到优先级队列中, 并为其提供有保证且受监管的带宽资源,这属于DiflServ QoS模型的一部分。但RSVP 拥有自已的一组队列,而且默认将预留流量都放到这些队列中,虽然这些队列也拥有 较低的权重,但它们并不是优先级队列,因而现在需要做的就是通过某种方式将预留 174 拥塞管理与拥塞避免 第4章 的语音流量放到低延迟队列中o RSVP默认使用WFQ (Weighted Fair Queuing,加权公平排队)来提供QoS机制。 如果使用基于CBWFQ的LLQ,那么就需要利用接口命令ip none来禁止RSVP使用wFQo此外, 流量) ,因而需要利用接口命令ip rsvp rsvp resource-ProVider RSVP默认处理所有数据包(而不仅仅是语音 data-PaCket cIassification none来关闭该默认行 为。至于LLQ和CBWFQ,则需要按照正常方式进行配置。此后RSVP就可以为语音 呼叫预留带宽,而网关的QoS进程则会将语音流量放到优先级队列中。 例4-7给出了某接日的RSVP配置示例。由于该接口使用了CBWFQ和LLQ,因 而RSvP的配置完全正确。 乾置RSVP 励4-7 R4 (c〇nfig) # int∴sO/1/O R4(config-if)# ip rsvp bandw土dth R4(c〇n王ig-if)# ip rsvp signalling R4 (c〇nfig-if) R4 (C〇nfig-if)# R4 (C〇nfig-if) !The ! # ip rsvp rsvp data-PaCket COmmands 64 dscp 40 resource-Pr゜Vider service-P°1icy # nex亡∴亡W〇 ip 128 output 亡he verify n゜ne classification n゜ne LLQ in亡erface RSVP configura亡ion. R4# show ip in亡erface seO/1/0 R4# rsvp interface alloca亡ed i/f sh°w ip max rgvp fl〇W maX 64K 128K 0 interface Sub max O detail seO/1/O: |n亡erface Bandwidth S亡a亡e: Down : Curr alloca亡ed‥ Max. allowed (亡〇tal) Max. all〇Wed (per Max. allowed for Se亡 aside Admission Header r亡P by O bi亡S/SeC LSP policy 128K bits/sec 64K 亡unnels bi亡S/SeC using (亡Otal): O sub-POOIs: O bits/sec bi亡S/sec C〇n亡rol: Compressi〇n (36 Traffic : flow)‥ methods by亡es-SaVed), suppor亡ed: udp (20 bytes-SaVed) Con亡rol‥ RSVP Da亡a RSVP res〇urCe Classifica亡ion Packe亡 ProVider is: is OFF none Signalling‥ DSCP value used in Number of refresh Number of missed Refresh refresh in亡erval: Au亡hentica亡ion‥ RSVP msgs‥ in亡ervals 30 disabled 亡O Ox28 enforce messages‥ 4 blockade s亡ate: 4 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 理解与记忆175 4.8 备考任务 请大家仔细阅读并学习本章的“基本主题”内容,并重点复习标注“考试要点” 图标的相关内容0 4.8 理解与记忆 与所有的αsco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试 主题,因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试 主题0 4.8.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 定义关键术语 4.8.2 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案‥ CBWFQ、 LLQ、 WRR、 MDRR、共享轮询、共享模式、整形模式、 WTD、 WRR、 Qv、交替模式、尾部丢弃、完全丢弃、优先级队列、序列号、结束时间、改进型尾部 丢弃、调度器、队列饿死、严格优先级、软件队列、硬件队列、剩余带宽、最大预留 带宽、实际队列深度、平均队列深度、最小阑值、最大闹值、 快速队列、 DSCP到CoS的映射、 AutoQoS、 RSvP MPD、指数加权常数、 DSCP到阑值的映射、内部DSCP、差异化尾部丢弃、 推荐读物 4.8.3 Cisco QoS Exam Certification Guide , Second Edition, by Wendell odom and Michael Cavanaugh. Cisco Froom, Catalyst and QoS‥ Kevin Quality of Service in Campus Netwocks , by Mike Flanagan, RIchard Turek. αsco.com提供了大量与3560交换机的QoS配置相关的详细信息(包括SRR和WTD) WWW.Cisco. C On五gurati com/en/US佃artner/docs/switches/lan/catalyst3 on/guide/swqo 5 60/softwarefrelease/ 1 2.2 52 s.html 攻城狮论坛(技术+生活)2群 1813097 : se/ 本章主要讨论以下主题: ■ 标记; ■ 整形; ) ■ 监管; ■ 层次化Qos; ■ Qos故障检测与排除。 第5章 整形、监管与链路分段 流量整形工具能够降低数据包离开路由器的速率,使得总体比特率不超过已定义 的整形速率。本章将讨论CB整形(Class-Based Shaping,基于类别的整形)等IOS 流量整形机制背后的各种概念。 流量监管器可以度量数据包进人或离开接口的比特率,如果超过了已定义速率, 那么监管器就会丢弃足够多的数据包,使得速率不会超出已定义速率,或者对部分数 据包进行标记,使得这些数据包在后续处理过程中的丢弃概率更高。本章将讨论CB 监管(Class-Based 单介绍CAR ″我已经知道了吗? 5.1 Policing,基于类别的监管)背后的概念及配置方式,同时还将简 (CommittedAccess Rate,承诺接人速率)的相关内容0 ″测试题 表5-1列出了本章的基本主题以及与之相应的测试题。 表5-1 三二 〃我已经知道了吗? ”基本主题与测试题对照表 .一三 流量整形的概念 1一-2 GTs 3 cB整形 4-5 监管的概怠与配置 6-7 Qos故障检测与排除及相关命令 8 得分 为了提高每章前面的测试评价效果,请务必严格评分。参考答案请参见附录Ao l. CB整形何时向令牌桶添加令牌?如果Bc和Be均大于0,那么将添加多少个令牌? a.收到每个数据包之后,立即向令牌桶接照Bc的比例添加令牌 b.收到每个数据包之后,立即向令牌桶接照Bc+Be的比例添加令牌 c.在每个时间间隔开始的时候,向令牌桶添加与Bc值相当的令牌 d.在每个时间间隔开始的时候,向令牌桶添加与Bc+Be值相当的令牌 e.以上均不正确 178 整形、监管与链路分段 第5章 2.如果为整形特性配置的速率为128kbids、 Bc为3200比特,那么计算得到的Tb值 是多少? a. 125ms b. 125s c. 25ms d. 25s e.整形不使用T℃ f.未提供足够信息 3.下面有关GTS (GenericTra插c Shaping,通用流量整形)的描述,哪一项是正确的? a.一次性创建了GTS配置之后,可以应用于多个接口 b. ATM接口不支持GTS C.必须在需要部署整形特性的每个接口或子接口下配置GTS d.可以指定对哪些流量进行整形、对哪些流量不进行整形 e. GTS支持自适应流量整形 4.下面哪条命令在正确的配置模式下可以将CB整形配置为128kbit/s? a. shape average 128000 b. shape average 128 C● Shape d. shapepeak e● Shapepeak f. shape average peak 8000 8000 0 0 128000 128000 128 8000 0 80000 128000 5.请分析以下配置信息(将每个命令行的位置分别标记为point l. point2等)。假设 已经正确配置了实现CBWFQ的策略映射(名为queue-it),但未显示在下列配置 中。如果要为CB整形所排队的数据包启用CBWFQ,那么应该使用什么命令并且 需要在下列配置中的哪个位置运行该命令? POlicy-maP ! Shape-queStion poin亡1 clagg∴clag8-default ! poin亡 Shape ! poin亡 2 average interface ! p〇in亡 p〇in亡 serial p〇in亡 1p a. O/0 ゜utPut∴shape-queSti゜n 5 interface ! 5120 4 SerVice-PO|icy ! 256000 3 sO/0.1 point-tO-POint 6 addregg l.1.1.1 service-POlicy queue-it,在point l位置处 5.2 b. service-POIicy queue-it,在point 3位置处 C. Service-POlicy queue-it,在point 5位置处 d. shape queue service-POlicy queue ̄it,在point l位置处 e. shape queue service-POlicy queue-it,在point 3位置处 f. shape queue service ̄POlicy queue-it,在point 流量整形的概念179 6位置处 6.下面哪条命令在正确的配置模式下能够将CB整形设置为128kbit/s且没有超额突 发流量? a. police b. poHce c● 128 POlice d. conform-aCtion conform-aCtion 128000 poIice e● 7. 128000 128 POlice transmit conform ̄aCtion conform-aCtion 128k transmit exceed-aCtion transmit transmit conform-aCtion exceed-aCtion transmit exceed-aCtion exceed-aCtion transmit transmit violate-aCtion violate-aCtion drop drop drop drop exceed-aCtion drop CAR不支持下面哪种CB整形特性? a.将数据包划分为遵从、超出、违反流量合约的分类能力 b.将所有流量都监管为同一速率以及将相同流量的子集监管为其他速率的能力 c.使用MQC命令配置监管特性的能力 d.在接口上监管人站或出站数据包的能力 8.如果要检测与排除QoS故障问题,那么就需要查看接口上配置的QoS策略并确定 哪些队列已经填满数据包和正在丢弃数据包。下面哪条命令可以显示上述信息? a. b. show poIicy-maP show c. show d. show interface ha砷徊ce queue切te吻ce queue-1ist ip policy interface砌e吻ce interface jute吻ce 墓本主题 5.2 流量整形的概念 流量整形可以防止数据包离开接日的比特率超出已配置的整形速率。为此,整形 器需要监控正在发送的数据的比特率。如果超出了已配置的比特率,那么整形器就会 延迟数据包,将数据包放人整形队列(shaping queue)中,经过一段时间之后再从整 形队列中释放数据包,从而保证总体比特率不会超过整形速率。 流量整形可以解决多路接人网络中的两类常见问题。首先,如果服务提供商在流 量速率超过CIR (Committed Information Rate,承诺信息速率)时会地丢弃VC中的流 180 整形、监管与链路分段 第5章 量,那么路由器就应该不以超过CIR的速率发送流量。 流量整形可以解决的第二类问题就是出站阻塞问题。路由器向ATM发送数据时, 出站交换机将数据发送给vC对端的路由器之前必须对数据进行排队,此时就会出现 出站阻塞问题。例如,以Tl链路连接的路由器发送数据时必须以Tl速率发送数据, 如果VC对端的路由器的链路带宽为256kbit/s,那么就要在出站交换机的输出队列中 备份帧/信元。与此相似,如果拥有Tl链路的站点与20个远程站点均建立了vC连接, 并且每个远程站点均使用256kbit/s链路。如果20个远程站点均在同一时间发送数据, 那么就必须对帧/信元进行排队,等待离开wAN出站交换机并去往Tl路由器。在这 类场景下,流量整形功能可以从本质上避免出站排队问题,将数据包移到路由器的队 列中,然后利用备种有效的排队机制处理这些数据包0 5.2.1整形技术的相关术语 路由器只能以物理时钟速率从接口向外发送比特。为了在一个较低的速率上发送 数据包,路由器必须在发送数据包与静默状态之间来回切换。例如,为了按照物理链 路速度的一半来发送数据,路由器就需要在一半时间内发送数据包,在另一半时间内 不发送数据包。随着时间的推移,看起来就像一连串发送与静默状态。图5-1以图形 方式解释了上述概念,图中的路由器时钟速率为128kbit/s,整形器被配置为将流量整 形为64kbit/s 0 o 1 25 250 375 500 625 750 875 时击OOO (ms) 图5-1流量整形机制: 128kbit/s接入速率和64kbit/s整形速率 图5-1显示了发送速率以及Cis∞ IOS的整形实现方式。整形器设置了一个静态时 间间隔(称为耽),然后计算耽间隔内可以发送的比特数,从而保证每秒钟发送的比 5.2 流量整形的概念181 特数与整形速率相匹配(经过一段时间之后)。 在每个Tb内可以发送的比特数称为Bc (Committed Burst,承诺突发)。从图5-1 可以看出,在每个125ms的Tt间隔内都可以发送8000比特Bc,因而平均速率为 64kbit/so也就是说,在Tt为125ms的情况下,每秒钟就有8个Tt间隔。如果在每个 耽间隔内发送Bc个比特(8000),那么每秒钟就能发送8组8000比特,也就是 64 000bit/s o 由于必须按照时钟速率在链路上对比特进行编码,因而每个耽间隔内的8000比 特只要62.5ms (8000/128000)即可离开接口并进人链路。从图5-1可以看出:接口在 62.5ms内以线路速率(接人速率)发送数据包,然后再等待62.5ms,在等待过程中将 数据包放到整形队列中。 表5-2列出了与整形模型相关的术语信息。需要注意的是,术语CIR指的是商业 合同约定的vC的流量速率,整形速率指的是在路由器上为整形器配置的速率。 整形术语 表5-2 5.2.2 巾 可以发送Bc的时问问隔(以毫秒为单位)。利用大量整形工具的情况下,lt=Bc/cIR Bc 承诺突发大小(以比特为单位),指的是可以在巾问隔内发送的总流量,通常定义在流量合约内 clR 承诺信息速率(以比特每秒为单位),是根据商业合约定义的>c速率 整形速率 是特定配置希望对流量进行整形的速率(以比特每秒为单位),可能被设为clR,也可能不被设为clR Be 超童突发大小(以比特为单位),指的是在一段静默期之后可以发送的超过Bc的比特数 利用Be进行整形 为了调节突发数据流量,整形器引人了一个新概念,可以在一个或多个时间间隔 内发送比Bc更多的比特(接口在一段时间内发送的数据量与CIR相比都非常小),这 个概念就是Be (ExcessBurst,超量突发)。除了在每个Tb间隔内发送Bc比特之外, 整形器还可以利用Be发送额外的Be比特,根据不同的设置情况,可以在一个时间间 隔内发送这些额外比特,也可以在多个时间间隔内发送这些额外比特。图5-2与图5-1 相似,只是此时的Be也等于8000比特。从图中可以看出,经过一段静默期之后,所 有的额外Be比特都是在第一个时间间隔内发送的。 在第一个时间间隔内,流量整形能够发送16000比特(Bc+Be比特)。对于128kbit/s 链路来说,假设Tt为125ms,那么就要求在125ms内发送16000比特。对于本例来 说,经过一段静默期之后, Rl会在第一个时间间隔内连续发送数据。对于第二个时间 间隔来说,整形器仅允许发送常规的Bc比特。按照上述方式进行配置之后,整形器 在经过一段静默期之后,可以实现187.5ms的连续发送。 攻城狮论坛 182 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 整形、监管与链路分段 第5章 Bc=8000,Be=0 Bc=8000, Be=8000 静默期一本例中的Be在一个 完全静默的巾内重新填充令牌 在每个时间间隔内发送8000比特, 在第1个时间间隔内发送 16000比特 直到Be可以累积为止 发送速率 ↓ 128 0 图5-2 5.2.3 ↓ ↓ ↓ kbⅣs 1 250 25 Bc和Be 375 500 625 (经过一段静默期之后) 整形技术的底层机制 整形器采用以下公式来计算耽、 Bc和整型速率参数: 耽=Bc/整形速率 例如,对于图5-1和图5-2来说,如果配置了整形速率(64耽i忱)和Bc (8000 比特),那么整形器就可以计算出耽(8000/64000=0.125s)。同样,如果配置了耽和 整形速率,那么整形器就可以计算出Bc 特)。请注意, (Bc=整形速率*Tt=64kbit/s*0.125s=8000比 CB整形有时会使用默认值(如本章的配置示例)。 流量整形利用令牌桶模型来管理整形进程。首先考虑整形器不使用Be的应用场 景。假设令牌桶的大小为Bc,并且在每个耽间隔的开始时令牌桶都填满了令牌,每 个令牌都可以让整形器有权利发送一个比特,因而在每个耽间隔开始之后,整形器都 有能力释放所有的Bc比特。 整形器需要执行与令牌桶相关的两个主要操作。 第1步:在每个耽开始的时候都要用新令牌重新填满令牌桶。 第2步:使用令牌来获得转发数据包的权利。 第1步描述的是在每个T℃间隔开始时利用Bc令牌填充令牌桶的方式。图5-3以 图形方式给出了该进程的直观表示。请注意,如果令牌桶中还有上一个时间间隔剩下 的令牌,那么部分新令牌就会从令牌桶中溢出,从而被浪费掉。 第2步描述的是整形器发送令牌的方式。整形器必须从令牌桶中取出与待发送数 据包中的比特数相同数量的令牌,才能发送这些数据比特。例如,假设数据包大小为 1000比特,那么整形器必须从令牌桶中取出1000个令牌才能发送该数据包。如果流 量整形试图发送数据包的时候,发现令牌桶中没有足够的令牌来获得发送该数据包的 攻城狮论坛(技术+生活)2群 1813097 . 5.3 GTs 183 权利,那么流量整形功能就必须等待下一个时间间隔,直至令牌桶被重新填满。 溢出令牌 被浪费了 图5 ̄3 填充整形令牌桶的机制示意图 流量整形实现Be的方式就是将单个令牌桶设置的更大一些,而不用更改令牌桶 蓑 模型的其他设置。也就是说,仅向每个Tc添加Bc个令牌,同时也必须消耗令牌来发 送数据包。使用Be与不使用Be的主要区别在于,在时间间隔结柬后令牌桶中还剩下 部分令牌,然后在下一个时间间隔开始的时候又添加Bc个令牌,这样就使得令牌桶 中的令牌数大于Bc,从而允许在新的时间间隔内发送更多的突发比特0 5.3 GTs 早期的IOS版本中有一个GTS (Generic Tra触c Shaping,通用流量整形)的概念, GTs是大多数路由器接口都支持的一种简单的流量整形功能,但不能与流交换机制配 合使用。需要在接口或子接日上配置并应用GTSo如果采用基本配置,那么GTS将 对离开接日的所有流量都进行整形。可以使用访问列表来更改该整形行为,允许对某 些流量进行整形,而拒绝其他应该穿越该接口的未整形流量。为了更好地理解IOS Release 15的QoS实现机制,下面将首先介绍IOS Release 12中的GTS工作方式。 通过下列接口级命令可以对所有接日流量实施GTs操作: traffic-Shape rate sJZczpec7-ra亡e 该命令中的chape(九J“ie 位也是比特, [ .Bc' ] [ .Be ] [ bz/ff台r-J工仍Jc (整形速率)的单位是bit/s, ] Bc的单位是比特, Be的单 6伤广/切有(缓存门限)指的是队列缓存的最大尺寸,单位为bi忱。其中 只有chcapedrcrfe是必选参数,如果未指定Be和Bc ,那么将默认设置为整形速率的1/40 如果要限制被整形的流量类型,可以配置访问列表以允许指定流量并拒绝其他所 有流量,然后再利用如下命令应用于GTS: trafiic-ghape gr゜up a♂Ce舌王一j工舌亡一刀Z上/72在e」二上鼻石重ped-ra亡e 例5-1给出了一个GTS应用示例,需要将ICMP(Intemet ( Bc ) ( Control Be ) Message Protocol, Intemet控制报文协议)流量整形到500kbit/so实现方式是首先创建一个访问列表,然 后在接口上配置GTSo此外,本例还给出了该传统命令集的相关输出结果验证信息。 184 整形、监管与链路分段 第5章 励5-1 G7S ! Access lis亡101 access-1ist ! Generic ! is ! Bc lol Traffic associa亡ed or fa ! The ! Bc ! c〇rmand gr゜uP shaping and Be show 12 Rate shaping each. tha亡 fa show A C工R denied on the interface. of 500 kbps by defaul亡. is The access specified, lis亡 bu亡 n〇 bi亡S/in亡 ac亡ive, 亡WO a n〇亡∴currently Tc r〇uter of has ms. 24 added a This ac亡ive. show queued group: Queueing stra亡egy: Queueing s亡a亡S: Reserved Weigh亡ed 2/3/32 15, 10.2.2.2, shown in Packe亡S By亡es Delayed 10252 Shaping Ac亡ive 14523964 yes FastE亡herne亡O/O fair (Size/max∴total/亡hresh〇ld/drops) 500 O/0 allocated) kilobi亡S/sec dr〇PS/n〇-buffer |P, |P, des亡ina亡i〇n‥ dr〇PS/in亡erleaves) 1eng亡h‥ id: OxO14D,亡亡l: drops/in亡erleaves) length‥ 4/32384/0/0/O 1514 10.1.1.4, drops/no-buffer link亡ype: ac亡ive/max∴total) (all〇Ca亡ed/max destina亡ion‥ (dep亡h/weigh亡/亡O亡al Conversati〇n on (ac亡ive/max link亡ype‥ 10.2.2.2, is 101 Bandwid亡h 16, informa亡ion queue queue 10/1000/64/0 (dep亡h/weight/亡○亡al Conversa亡ion Bytes 14753352 Conversa亡ions Available queue statistics Delayed shaping C〇nVerSa亡ions and Active (by亡es) 1500 24 s亡a亡is亡ics Packe亡S traffic-Shape shape |ncremen亡∴Adapt (ms) 12000 the 10542 in |n亡erval bi亡S/int COrmands. 24 Traffic SOurCe‥ is Excess 12000 3000 Queue Router# S°urCe‥ Shaping the 亡ha亡 No亡e Calcula亡ed als〇 O/0 traffic-Shape 101 Traffic verified. has Sus亡ain Lis亡 Depth FaO/0 is 1亡 By亡e is following Acc. 5.4 configured Limi亡 500000 Rou亡er# I/F kb Sh〇WS Targe亡 lo1 Once is FaO/O Lis亡 the 亡raffic 500000 configura亡i〇n of als〇 Access ! is o亡her any shaping. lo1 traffic-Shape Interface ! Shaping with亡he All any O/O traffic-Shape VC icmp Be. interface R3# |CMP. permi亡S permit 255, PrO亡‥ 1 6/32384/0/0/O 1514 10.1.1.3, id‥ OxO204,亡tl‥ 255, Prot: 1 cB整形 CB整形(Class-Based Shaping ,基于类别的整形)是Cisco推荐的流量整形配置方式o CB整形特性可以一次性地创建分类映射和策略映射,然后在多个接口上重复使用,而不 需要在每个接口下面都重复进行整个配置过程,从而大大降低了操作人员的差错或输人 错误概率。此外,与其他QoS操作相比, CB整形还提供了更为精细化的控制手段o CB整形不但可以实现本章已经讨论过的所有关键功能,而且还具备很多其他重 要功能。首先, CB整形特性允许对被整形进程延迟的数据包应用多种Cis∞ 工具,同时还允许在接口的软件队列中使用备种排队工具。其次, IOS排队 CB整形支持数据 包分类,可以将某种类型的数据包整形为某个速率,将另一种类型的数据包整形为另 cB整形185 5.4 一种速率,同时还可以不对第三种类型的数据包进行任何整形操作。 配置CB整形特性的唯一一个新MQC命令就是shape命令(有关该命令的详细 配置信息可参考表5-10) shape [ average l : peak ] /77ea月一raCe H ,Z)ZJZ15'C-S工ze ] [ exc'eSS-bz/ZSC-S+ze H CB整形只能用于输出数据包,可以关联整个物理接口,也可以关联子接口。 如果要启用CB整形特性,可以在接口或子接口下配置service-POlicy output命令 (在该命令中引用包含shape命令的策略映射)。 例5-2给出了一个简单的CB整形配置示例,相应的配置规则如下: ■ 接口时钟速率为128kbit/s; ■ 将所有流量的速率均整形为64kbit/s; ■ 为耽使用默认设置; ■ 对离开子接口sO/0.1的流量进行整形; ■ 接口SO/0上的软件排队机制使用wFQ ■ 整形队列使用FIFO (默认)。 砌居CB整形衔雄将离二开接口SOO. 励5-2 ! P〇licy ! all ! uni亡S map are POlicy-maP Class in All Shape bi亡S/SeC〇nd, 亡raffic be 64000 S〇 亡he in亡O 亡O shaped means 64 an class-defaul亡 aVerage of 64 Class, kbps. ma亡Ching No亡e 亡he kbps. 64000 average ! configured physical in亡erface Below, interface by Sh〇W亡he wFQ fair-queue for COrmand, in亡erface sO/0/O bu亡i亡is s〇ftware queuing. Shaping has been enabled f〇r all packe亡S forwarded ou亡 SO/0/0.1. seria10/0/0.1 SerVice-POlicy 亡〇 show n〇亡 implemen亡ing 128 CB in亡erface Refer will defaul亡, serialO/0/O bandwidth R3# all will Shape-all The ! packets 1铂流量钧整形为64kb′腑 class-default ! ! places shape-al| packets. (默认); 亡he ou亡Put text policy-maP Shape-all after 亡his interface example for m〇re eXPlana亡i〇nS Of 亡his nex亡 COrmand. sO/0/0.1 Seria10/0/0.1 Service-POlicy Class-maP: Shape-all Class-defaul亡(ma亡Ch-any) 1 packe亡S, 5 minu亡e Match‥ ou亡Pu亡: 328 bytes offered ra亡e oooo bps, dr〇P rate oooo bps any Queueing queue limit (queue (Pk亡S Shape 亡arge亡 64 packe亡S dep亡h/亡〇亡al drops/n〇-buffer Ou亡Pu亡/by亡es (average) Shape outpu亡) cir ra亡e 64000, drops) 0/0/0 1/328 bc 256, be 256 64000 CB整形的配置相对比较直观,策略映射shape-all通过单个类别(class ̄default) 匹配所有数据包并应用于接口sO/0.1 ,因而所有离开sO/0.1的数据包均被整形为已定 186 第5章 整形、监管与链路分段 义速率64kbi仍。 虽然show poHcy-maP interface 概念的配置情况,但使用的术语稍有不同, sO/0/0.1命令的输出结果显示了大家所熟悉的所有整形 CB整形将Bc和Be均设置为默认值256比特o CB整形特性的shape命令需要设置整形速率,不过可以省略Bc和Be,而且也无 法直接设置耽o CB整形特性会计算其中的部分或全部参数,但计算方式与整形速率 是否超过320耽i″s而有所不同(如表5-3所示)。 cB整形特性计算默认变量的方式 表5 ̄3 「∵干即薯 Bc 8000比特 Bc=整形速率*巾 Be Be=Bc=8000比特 Be=Bc 巾 巾=Bc/整形速率 25ms 5.4.1利用LLQ和小巾对语音流量进行整形 例5-2给出了接口软件队列的默认设置(WFQ)以及整形队列的默认设置(FIFO)。 例5-3则给出了针对语音流量的一种优化配置方式,即为被整形的语音流量使用LLQ, 并且强制将耽减小到10ms,意味着每个数据包在等待一个很短的时延之后即可等到 下一个耽间隔。与默认耽设置相比,将耽设置为一个很小值,应用于被整形数据包 的LLQ就不必等待几乎是数据包从PQ出列所需的那么长时间。 与例5 ̄2相比,例5-3修改后的配置目标如下: ■ 启用LLQ以支持G729语音呼叫; ■ 整形到96kbit/s一低于时钟速率(128kbit/s),但大于VC的CIR; ■ 将耽调整到10mso 在R3上部署cB整形铅烙,整形建率为96肋/i詹并崭整形欣刃馏L⊥Q 励5-3 Class-maP ma亡Ch ! ma亡Ch-all ip r亡P queue-V゜ip POlicy-maP vo|P-r亡P 16384 16383 implemen亡S a PQ f〇r 亡raffic 0r 960/96000 POlicy map POlicy-maP Class Shape lo ms. AIso queue ̄VOip 亡O 亡0 no亡e all 亡raffic, and 96000 average 960 queue-VO|P seria10/0.1 SerVice-POlicy outpu亡 kbps, Shape-all With Bc service-P゜1icy packe亡S Shape-all SerVice-policy 96 亡he class-defaul亡 in亡erface Vo工P uses WFQ in the defaul亡 Class. queue-VO|P Shaped by of 960. Tc queue-V゜ip 亡he shape is calcula亡ed cormand. cormand. This as applies 5.4 ! No亡e ! are R3# the |n亡erval is now lis亡ed as lo ms. AIso, listed a亡∴亡he end of 亡he cormand. also sh゜w P゜1icy-maP interface nO亡e the detailed cB整形187 s亡a亡S for LLQ O/0.1 seria| Seria10/0.1 Service-POlicy 30 packets, second Ma亡Ch: Shape-all Class-defaul亡(ma亡Ch-any〉 Class-maP‥ 5189 ou亡Pu亡‥ 927835 offered by亡es rate Traffic bps, drop rate o bps shaping Target/Average Rate By亡e Limit Adapt∴Queue Ac亡ive 4623 ip Weigh亡ed rtp Fair ou亡Put Queue‥ 566 30 32 yes 25000 bps, dr〇P ra亡e o bps Burs亡 24 800 ma亡Ched) drops) (By亡es) 3528/225792 0/O Class-defaul亡(match-any) second 631963 offered bytes ra亡e 65000 bps, drop ra亡e o bps any Weigh亡ed FIow 831630 4002 Conversa亡ion (kbps) drops/by亡es packets, Ma亡ch‥ Shaping Ac亡ive 16383 ma亡Ched/bytes Class-maP: Bytes Delayed Queueing pri〇ri亡y (to亡al Packe亡S by亡es rate 16384 S亡rict (Pk亡S 120 (match-all) 295872 offered Bandwid亡h (bytes) 10 queue-VO|P packe亡S, Ma亡Ch‥ 910975 VOip-r亡P second 30 : bi亡S/in亡(ms) 960 Delayed 5172 Class-maP: By亡es |ncremen亡 工nterval Excess 960 Packe亡S Dep亡h 17 Service-POlicy Sus亡ain bits/in亡 1200 96000/96000 Fair Based Maximum (亡O亡al 91000 any Queueing Fair Number queued/total Queueing of Hashed drops/no-buffer Queues drops) 16 17/0/0 从例5-3可以看出,通过在service-POlicy命令中调用LLQ策略映射,就可以利 用LLQ来处理被CB整形特性整形的数据包。需要注意的是,虽然该命令的语法 (service-POlicy queue-VOip)并没有包含关键字output,但出站方向却是隐含在内的。 图5 ̄4给出了该配置的实际处理过程。 从左至右分析图5-4可以看出,数据包被路由出子接口的时候, 做出一个整形决策o CB整形特性必须 CB整形需要首先确定整形功能是否处于激活状态,如果处于激 活状态,那么CB整形就会把数据包放到整形队列中,如果处于非激活状态,那么数 据包就会进人相应的接日软件队列中。仅当数据包超出流量合约的约定时才会启动整 形操作,一旦整形队列中的流量全部出列,那么就会重新处于非激活状态。 假设需要利用CB整形特性延迟某数据包,那么policy-maP queue-VOip的LLQ 逻辑就要确定应该将数据包放到两个整形队列中的哪一个。此后, 定释放下一个数据包的时候(通常是在下一个耽开始的时候) , CB整形特性在确 LLQ将确定接下来应 188 整形、监管与链路分段 第5章 该提取哪个数据包。由于本例只有两个队列,其中一个是LLQ队列,因而只要LLQ 队列中有数据包,那么就始终从LLQ队列中提取数据包。 图5-4 整形策略映射shape-a∥与排队策略映射queue-VOip之问的交互关系 数据包离开两个整形队列之一后,会进人接日软件队列。对于同一个物理接口存在 大量VC的路由器来说,不同的VC之间会竟争可用接口带宽。例5-1和例5-2都默认在 接口上使用WFQ,请注意, LLQ和CBwFQ除了可以用于整形功能之外,还可以直接用 在接口上,只要在接口SO/0下运行命令service-POhey 5.4.2 output pofroy-maP-name即可。 利用带宽百分比配置整形 Shape命令允许将整形速率配置为接口或子接口bandwidth设置的百分比。虽然 按照bandwidth命令设置值的百分比来配置整形速率比较简单,但在根据接口带宽的 百分比配置shape命令时必须记住以下要求: ■ shape percent命令使用的接口或子接口带宽是启用了整形特性的接口或子接 口的带宽; ■ 由于子接口并不继承物理接口的带宽设置,因而如果没有通过bandwidth命 令设置子接口带宽,那么默认值为1544; ■ 将Bc和Be数值配置为毫秒数,但相应的数值却会被计算为在已配置的整形 速率以及已配置的时间周期内能够发送的比特数; ■ 耽被配置为Bc值,单位为毫秒。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 监管的概念与配置189 5.5 例5-4给出了利用带宽百分比配置CB整形特性的示例,并给出了相应的解释。 砌5-4 墓于崭君百分佑铂整形绍置 With sO/0.1 bi亡S Can No亡e 亡ha亡∴the (shown) Tc was or bandwid亡h sen亡in ms Be 128,亡he 125 ra亡e configured Shown), ms,亡he in 亡he shape Otherwise exac亡 is 125-mS Value * 50% 亡ime cormand 亡he 128, Or interval is cormand configured 64 kbps. (64000 required is for ★ af亡er rejec亡ed. No亡 At 64 kbps, 0.125 the = 8000 8000). Bc Shown‥ The Bc. PerCen亡一亡es亡 class-default Shape average in亡erface percent 50 125 ms Seria10/1 bandwid亡h 128 SerVice-POlicy 5.4.3 of 亡he parame亡er (no亡 set∴亡0 P〇licy-maP Class be PerCen亡一亡es亡 ou亡Pu亡 将cB整形配置为峰值速率 虽然到目前为止所有的配置示例使用的都是shape 以使用shape peak 时的配置方式上稍有不同o #reC7#一rCrfe命令,与shape shape peak average命令,但实际上也可 average命令相比,两者在配置相同速率 ″re仍-rCJte命令的主要配置规则如下: ■ 该命令计算Bc、 ■ 该命令在每个时间间隔都要重新填充Bc+Be个令牌(而不仅仅是Bc个令牌)。 因此, Be以及Tb的方式与shape average命令完全相同,默认值也相同; CB整形特性有权在每个时间周期内发送承诺突发流量以及超量突发流量, 实际的整形速率为: 整形速率=配置速率× 以命令shape (1+Be侣c) peak 64000为例,如果Bc和Be均为默认值8000比特,那么实际 的整形速率将为128kbi忱,计算公式为‥ 64× 5.4.4 (1+8000/8000) =128 自适应整形 与前面所说的配置方式相比,自适应整形配置方式相对比较简单,只要在shape 命令下增加命令shape adaptive ′砌-7Ufe即可(如例5-5所示)。 励5-5自.窗应cB蛊彩蹬 POlicy-maP Class 5.5 Shape-all class-default Shape average Shape adap亡ive 96000 9600 32000 监管的概念与配置 与Cisco路由器IOS提供的早期可选监管器(称为CAR[Committed 诺接人速率])相比, CB监管(Class-Based Access Rate,承 Policing,基于类别的监管)特性的内部处理 攻城狮论坛(技术+生活)2群 1813097 . 190 整形、监管与链路分段 第5章 过程完全不同。本节将详细讨论CB监管的相关知识,包括CB监管的概念及其配置方式0 5.5.1 cB监管的概念 CB监管特性不但适用于进人或离开接口的数据包,而且也适用于进人或离开子 接口的数据包o CB监管特性会监控或计量数据包的比特率。当数据包的计量速率超 过监管速率时,监管器就会对数据包采取相应的操作,最具主动性的操作就是丢弃数 据包。作为可选方式,监管器也可以简单地重新标记数据包中的QoS字段。虽然第二 种操作选项允许数据包通过,但是如果在后面的传输过程中出现了拥塞,那么这些被 重新标记为低优先级的数据包将很有可能被丢弃。 表5-4列出了配置监管器操作时用到的备种关键字。 表5 ̄4 cB监管特性中用到的监管操作 drop 丢弃数据色 Set-dscp-tranSmit 设置DSCP并传输数据包 Set-PreC-tranSmit 设置IP优先级(0-7)并发送数据色 Set-qoS-tranSmit 设置QoS组ID(1-99)并发送数据包 Set-CIp-tranSmit 设置ATMCLP比特(仅ATM接口)并发送数据句 transmit 发送数据色 CB监管特性首先将数据包分成两类或三类(取决于监管类型) 应用上述监管操作。这里所说的数据包类别包括遵从( Conforming ,然后再对每类数据包 )数据包、超出(Exceeding 数据包和违约(VIolating)数据包。根据不同的监管类型, ) CB监管特性对进人特定类别的 数据包实施的监管操作也有所不同,下面将详细说明CB监管特性的监管类型0 1.单速率双色监管(单令牌桶) 单速率双色监管是一种最简单的CB监管选项,该监管方法仅使用无超量突发的 单一监管速率,监管器仅使用两种类别(遵从和超出)并对每种类别的数据包定义不 同的监管操作:遵从操作通常是传输数据包,超量操作则是丢弃数据包或将数据包标 记为低优先级。 虽然通常都将这类监管逻辑称为单速率双色监管,但有时也将其称为单令牌桶双 色监管,这是因为该监管方法仅使用一个令牌桶进行内部处理。与整形特性使用令牌 桶的方式一样,监管器的主要逻辑也要用令牌填充令牌桶,然后再消耗令牌,经过一 段时间之后,监管器再按照监管速率重新填充令牌桶。例如,在监管速率为96kbit/s 的情况下,经过1秒钟时间之后,向令牌桶添加的令牌数为12000个(一个令牌对于 5.5 监管的概念与配置191 监管器来说表示1个字节,因而12000个令牌就相当于96000比特)o CB监管特性并不基于时间间隔来重新填充令牌桶,而是通过向令牌桶中填充预 估数量的令牌来响应数据包的到来。令牌数的预估公式如下: (当前数据包到达时间一前一个数据包到达时间) ×监管速率 上述计算公式很简单,从本质上来说,就是在监管每个数据包之前先填充少量令牌, 最终结果就是以监管速率填充令牌。例如,如果监管速率为128胁Ⅳs,那么监管器就应该 每秒钟填充16000个令牌。如果上一个数据包到达之后已经过了1秒钟,那么CB整形特 性将向令牌桶填充16000个令牌。如果上一个数据包到达之后已经过了0.1秒钟,那么 CB整形特性将向令牌桶填充0.1秒钟对应的令牌数(即1600个令牌) 。如果上一个数据 包到达之后已经过了0.01秒钟,那么CB整形特性将向令牌桶填充160个令牌。 接下来监管器需要将新到的数据包分类成遵从流量合约或超出流量合约,并将数 据包的字节数(表示为Xp,其中p表示“数据包”)与令牌桶中的令牌数(表示为Xb, 其中b表示“令牌桶”)进行对比。表5-5列出了监管器的决策逻辑以及监管器是否消 耗或从令牌桶中删除令牌。 表5 ̄5 单速率双色监管方式的数据包分类逻辑 遵从 如果Xp<=Xb xp个令牌 超出 如栗Xp>Xb 无 只要整体比特率不超出监管速率,那么所有数据包都是遵从数据包。如果比特率 超过了监管速率,由于需要为每个遵从数据包从令牌桶中删除令牌,因而令牌桶最终 会为空,导致部分数据包超出流量合约。经过一段时间之后,令牌又被添加到令牌桶 中,使得这部分数据包又成为遵从数据包,在比特率低于监管速率的情况下,所有数 据包又重新遵从流量合约了0 2.单速率三色监管(双令牌桶) 如果希望监管器按照指定速率来监管数据包,但同时又支持Be,那么监管器就可 以使用两个令牌桶,同时还要采用三类数据包的分类方式一遵从、超出和违约。将 这些概念组合在一起,通常就这类监管方式称为单速率三色监管。 与以往一样, CB整形特性也要在数据包到达之后填充令牌桶(由于没有合适的 192 整形、监管与链路分段 第5章 术语,因而此处将第一个令牌桶称为Bc令牌桶,因为该令牌桶的大小为Bc,而将另 一个令牌桶称为Be令牌桶,因为该令牌桶的大小为Be),其填充Bc令牌桶的方式与 单令牌桶模型相似,但如果Bc令牌桶中还剩有一些令牌,那么就会有部分令牌产生 溢出,这些溢出的令牌将填充Be令牌桶(如图5-5所示)。 一旦数据包到达,就重新填充字节, 其公式为: (新数据包到达时间一上一个数据包 到达时间) *监管速率/8 溢出令牌进 入令牌桶2 图5 ̄5 利用cB整形特性重新填充双令牌桶 填充完令牌桶之后,监管器会确定新到数据包的类别(如表5-6所示)。其中, Xbc表示Bc令牌桶中的令牌数量, 表5-6 Xbe表示Be令牌桶中的令牌数量。 单速率三色监管方式的数据色分类逻辑 . 遵从 Xp<=Xbc 从Bc令牌桶中取出Xp个令牌 超出 Xp>Xbc且Xp<=Xbe 从Be令牌桶中取出Xp个令牌 违约 Xp>Xbc且Xp>Xbe 无 3.双速率三色监管(双令牌桶) 第三种主要的CB监管选项使用两种独立的监管速率,低监管速率就是前面讨论 过的CIR,高监管速率就是PIR (Peak Information Rate,峰值信息速率) 。数据包速率 低于CIR的表示遵从流量合约,数据包速率超过CIR但低于PIR的则表示超出流量舍 约,数据包速率超过PIR的则表示违反流量合约。 单速率与双速率三色监管器的主要区别在于双速率监管方式允许持续性的超量突 发流量。对于单速率三色监管器来说,虽然也存在超量突发流量,但突发流量只能持 续到Be令牌桶耗空为止。而对于双速率监管方式来说, Be令牌桶并不依赖于填充Bc 令牌桶时溢出的令牌(如图5-6所示)。请汪意,有时也将双速率监管方式中的令牌桶 称为CIR令牌桶和PIR令牌桶。 5.5 根据到达时间和Bc 根据到达时间和Be 按比例重新填充 按比例重新填充 溢出令牌 被浪费了 图5 ̄6 监管的概念与配置193 溢出令牌 被浪费了 重新填充clR和PIR双令牌桶 根据两种不同的速率重新填充两个令牌桶是非常重要的。例如,假设CIR被设置 为128kbit/s (16KB/s) , PIR被设置为256kbit/s (32KB/s)。如果在下一个数据包到达 之前经过了0.1秒钟,那么CIR令牌桶将被填充1600个令牌(1秒钟的1/10所对应的 令牌数,以字节为单位),而PIR令牌桶将被填充3200个令牌,因而与CIR令牌桶相 比, PIR令牌桶拥有更多的可用令牌。 接下来双速率三色监管器会对数据包进行分类。表5-7列出了该监管器与单速率 三色监管器的主要区别,尤其表现在遵从数据包消耗令牌的处理方式上。 双速率三色监管方式的数据包分类逻辑 表5-7 ? / 遵从 Xp<=Xbc 从Bc令牌桶中取出Xp个令牌,并从Be令 牌桶中取出xp个令牌 超出 Xp>Xbc且Xp<=Xbe 从Be令牌桶中取出Xp个令牌 违约 Xp>Xbc且Xp>Xbe 无 虽然表5-7概括了每种类别的处理细节,但是可能还很难从表中看出底层的处理 逻辑。事实上,按照较高的PIR来填充Be令牌桶,同时从Be令牌桶中为遵从较低 CIR的数据包取出令牌,这样Be令牌桶中就有了反映两种速率之差的令牌数量0 5.5.2 cB监管配置 CB监管特性采用大家熟悉的MQC命令进行配置,因而策略映射可以使用传统的 Class-default类别监管所有数据包,也可以将流量进行分类,为不同类别的流量应用不 同的监管参数,甚至可以简单地不监管某些类别的流量。 利用police命令即可在策略映射内部配置CB监管特性。使用police命令时,需 要以bitls为单位定义监管速率,以字节为单位定义Bc和Be,此外还要为每种类别的 194 整形、监管与链路分段 第5章 流量定义相应的操作方式: POlice [ j21'S bz/上15’f-r7C)上777aJ j措Z℃f一刃aJX.. COnform-aCtion ‘3C'CJo刀eXCeed-aCtion ac'C工o刀 violate-aCtion∴ac仁工o刀] 1.单速率三色监管所有流量 例5 ̄6给出了监管所有流量的配置示例,相应的规则如下‥ ■ 创建一个单速率三色监管配置; ■ 在人站方向将所有流量均监管为96kbi忱; ■ 允许1秒钟Bc所对应的流量; ■ 允许0.5秒钟Be所对应的流量; ■ 遵从、超出和违约流量的操作方式分别为转发、标记为低优先级DSCP O以 及丢弃。 砌居单毖率三色cB.给管挥姓将流置监第为96kb/腑 励5-6 ! The ! ac亡ions. police POlicy-maP Class ! cir p゜1ice 96000 cormand bc viola亡e-aC亡ion ra亡e (in bps), Bc and Be (in by亡es), and 亡he three wraps be around 6000 亡O a SeCOnd conform-aC亡ion line. transmi亡exceed-aCtion set-dscptransmit drop frame-relay SerVice-POlicy sh゜w 1SP-edge井 12000 Seria11/O encapsula亡i〇n The 亡he POlice-all no亡e:亡he in亡erface ! sets class-defaul亡 POlice o cormand input COrmand sh°w police-all below lis亡S P゜licy-maP S亡atis亡ics interface s for each of 亡he 亡hree ca亡egories. l/O Seria11/O Service-P°licy Class-maP: 8375 30 inpu亡: Class-defaul亡(ma亡Ch-any) packe亡S, second Ma亡ch: POlice-all 1446373 offered by亡es ra亡e l13000 bps, drop ra亡e 15000 bps any POlice‥ Cir 96000 COnformed bps, COnform-burs亡12000, 8077 packe亡S, exceeded 29 Violated 269 COnformed packets, packe亡S, 95000 bps, 1224913 17948 by亡es; 203512 eXCeed bps 6000 aC亡ion:亡ransmit aC亡ion‥ bytes; o eXCeSS-burst bytes; Se亡一dscp一亡ransmit aC亡ion‥ viola亡e o drop 20000 bps 虽然police命令定义了单速率,但该例配置的却是三色监管,而不是双色监管, 因而初看起来并不是很明显。为了配置单速率三色监管器,需要配置违约操作或者将 Be显式配置为大于0的值0 2.监管流量的子集 CB监管特性的一个好处就是能够对每种类别的流量分别实施监管操作。例5-7 所示的CB监管配置将HTTP流量从其他流量中分类出来并采用了不同的监管操作, 相应的规则如下: 5.5 监管的概念与配置195 在去往ISP边缘路由器的人站方向将Web流量监管为80kbit/s,传输遵从流 ■ 量和超出流量,但是丢弃违约流量; 在去往ISP边缘路由器的人站方向将其他流量均监管为16kbit/s,将超出流量 ■ 和违约流量标记为低优先级DSCP O3 对于这两类流量来说,分别将它们的Bc和Be设置为1秒钟和0.5秒钟所对 ■ 应的令牌数。 硼CB二整形筋解/SP边绕酪由荔必将Ⅵ倍b浇董篮臂为8仍b脆,将蕉余流置篮管为1创由脆,循超出 蠢励5-7 流量鸦毡教流置标记为伤徒先级DScP Class-maP ma亡Ch ! The ! ma亡Ch ma亡Ch-all pr〇亡OCOl new POlicy-maP match-Web ht亡P policy all Class O map o亡her uses 亡he new class to ma亡Ch http, and class-default 亡O 亡raffic. POlice-Web ma亡Ch-Web POlice cir bc 80000 loooo be 5000 conform-aC亡ion transmi亡 exceed-aC亡ion be looo conform-aC亡ion 亡ransmi亡 exceed-aCtion 亡ransmit Viola亡e-aC亡ion class drop class-default POlice cir 16000 Se亡一dscp-tranSmit interface bc 2000 violate-aC亡ion se亡一dscp一亡ransmi亡 0 Seria11/O encapsula亡ion SerVice-POlicy 3. o frame-relay inpu亡 POlice-Web CB监管特性的Bc和Be默认值 如果未在police命令中配置Bc值,那么CB监管特性将为Bc配置一个默认值, 等于1/4秒钟内按照已定义监管速率可以发送的字节数。计算公式如下: Bc= C腑×0.25秒 CIR 32 8比特/字节 公式中唯一可能不太明显的部分就是除式中的8,其目的就是简单地将比特转换 为字节,该公式最后简化为CIⅣ320此外,如果该公式的计算结果小于1500,那么 CB整形将使用1500作为Bc值。 如果未在pohee命令中配置Be值,那么默认的Be值将取决于监管类型(如表5-8 所示)。 表5 ̄8 设置cB监管特性的默认Bc和Be值 ∫ 、 ー 单速率双色监管 未配置Violate-aCtion Bc=CIR/32;Be=0 单速率三色监管 配置了Violate-aCtion Bc=CIR/32;Be=Bc 双速率三色监管 配置了PIR Bc=CIR/32;Be=PIR/32 攻城狮论坛 196 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 整形、监管与链路分段 第5章 4.配置双速率监管 配置双速率CB整形特性也需要使用类似的MQC命令,但police命令的语法形 式有所不同: POlice [ ( Cir∴c工r ) conform-aCtion [ bc co刀fb上17?一bzJZ15f ac'亡Jo月[ ] exceed-aCtion ( Pir f?工r ac'f÷o刀[ ) [ be j?ea,r-bzJr首f vio|ate-aCtion ] ac'C工c)刀] H 由于大括号表示该参数是必选参数,因而在配置该命令时需要同时配置CIR和 PIRo此外该命令还可以配置Bc和Be值,并且提供了遵从、超出和违约操作的配置 选项。例如,如果希望执行双速率监管操作,且CIR为96kbit/s、 么只要简单地配置命令poIice cir 96000 pir PIR为128kbit/s,那 128000即可,同时还可选配置Bc和Be值, 以及为三类流量分别配置不同的处理操作0 5.多操作监管 如果CB监管只是重新标记数据包,而不是丢弃数据包,那么设计方案就可能需 要标记数据包中的多个字段。通常将利用CB监管特性标记同一个数据包中的多个字 段称为多操作监管(multi-action policing) o POIice命令实现多操作监管的配置语法稍有不同。通过在命令中省略监管操作, POlice命令可以将用户放到监管子配置模式下,从而可以通过单独的命令 (conform-aCtion、 eXCeed-aCtion和violate-aCtion命令)来配置备种监管操作。为了配 置多操作监管特性,需要多次使用这三个action命令中的某个命令(如例5-8所示) 本例将违反流量合约的数据包标记为DSCP O并设置FR , DEo 多捞佐篮管 励5-8 R3# conf En亡er t configura亡ion R3(config)# R3(config-PmaP)# !This cormands,One policy-maP Perline. End wi亡h CNTL/Z. teStP゜11 class∴C|ass-default cormandimplemen亡S R3(COnfig-PmaP-C)# dua1-ra亡e police128000 policing as well,buti亡is no亡 required 256000 R3(COnfig-PmaP-C-POlice)# violate-aCtion R3(COnfig-PmaP-C-POlice)# violate-aCtion∴Set set -dgcp-trangmitO -frde-tran8mit 6.基于百分比的监管 与shape命令相似, Cis∞ IOS支持按链路带宽百分比的方式配置监管速率o Bc 和Be值被配置为毫秒数(IOS根据所配置的毫秒数内能够发送的比特数来计算实际的 Bc和Be值)。例5-9给出了使用percentage选项的双速率监管配置示例。 励5 ̄9 R3# /鲍置基子百分佑铂给管 showrunning-COnfig !Portions POlicy-maP Class omi亡ted for Brevi亡y 亡es亡一P〇16 class-defaul亡 攻城狮论坛(技术+生活)2群 1813097 5.5 POlice cir 亡ransmi亡 in亡erface percen亡 ! Bc R3# ! Be, show lines ou亡Pu亡 below ou亡Pu亡 and p|r PerCen亡 50 500 be ms conform亡ransmit exceed 256 SerVice-POlicy The ms drop seria10/O bandwid亡h ! 500 bc 25 Viola亡e 监管的概念与配置197 Wi亡h 亡he po|icy-maP omit亡ed 亡es亡-PO16 shows the configured calcula亡ed interface for values percen亡age for irmedia亡ely 亡he rate and the time f〇r below. sO/0 brevi亡y P〇lice: ! 5.5.3 lines Cir 25 Cir 64000 Pir 50 Pir 128000 bc % % be ms 500 bps, 4000 bc 500 ms bps, be bytes 8000 bytes omi亡ted cAR CAR可以实现单速率双色监管。与CB监管特性的相同选项相比, CAR与CB监管 之间拥有很多相似之处,两者都能监管进人或离开接口/子接口的流量,都能根据分类逻 辑对流量的子集进行监管,都按照bitls设置监管速率,并且Bc和Be均配置为字节数o CAR与CB监管特性之间的主要区别表现在以下4个方面: ■ CAR使用rate-1imit命令,该命令不属于MQC命令集; ■ CAR支持级联或嵌套式rate-1imit命令,可以在一个接口上配置多条rate-1imit 命令并处理相同的数据包; CAR支持Be,但即便如此, ■ CAR仍然仅支持遵从和超出类别,不支持第三 类数据包类型(违约类别); 如果配置了Be,那么CAR用于确定数据包属于遵从类别或超出类别的内部 ■ 逻辑与CB整形特性不同o CAR的大部分配置参数都在rate-1imit命令里,需要在接口或子接口下配置该命令: ra亡e-1imit bz/Z二Sf ( input -仍aJr l output ) COnf゜rm-aCtion [ access-grouP [ co刀fbz切?一aC'亡工o刀 rate-1imit ] ac'J一工月CfeJY eXCeed-aCti゜n ] fa?S bzJ_Z℃f一月O上一777aJ eJXCeeC7-aCYC上o刀 例5 ̄10给出了CAR配置示例,相应的配置规则如下: ■ 在去往ISP边缘路由器的人站方向上将所有流量均整形为96kbit/s; ■ 允许1秒钟Bc所对应的流量; ■ 允许0.5秒钟Be所对应的流量; ■ 丢弃超出流量合约的流量; ■ 转发遵从流量合约的流量并将其IP优先级重置为00 励5-10 在/SP边绩锗白嚣处硼cAR雅二流置」给篇矽96kb′据 !The rate-1imit cormand !ma亡Chingparameters,SO !o壬 亡he in亡erface options omits 亡he access-gr゜uP allpackets simplyma亡Ch the are requirements. Seria11/0.1poin亡一亡○一POin亡 OP亡ion,meaning c〇nSidered 亡O ma亡Ch 亡ha亡it 亡he has no cormand.The res亡 198 第5章 整形、监管与链路分段 |P address ! no亡e:亡he 192.168.2.251 rate-1im土t 96000 ra亡e-1imi亡inpu亡 exceed-aC亡i〇n frame-relay ! The 12000 below show wraps 18000 ar〇und a 亡〇 SeC〇nd conf〇rm-aCtion line. se亡一PreC-tranSmi亡 O drop interface-dlci ou亡Pu亡 工SP-edge# 255.255.255.0 cormand lO3 confirms 亡he interfaces∴S parame亡ers, l/0.1 including ma亡Ching all 亡raffic. rate-1imit 工npu亡 ma亡Ches: all COnf〇rmed exceeded last las亡 traffic 96000 ParamS‥ bps, 2290 230 packe亡: Cleared 12000 packe亡S, 1imi亡, 430018 packets, 67681 Oms Curren亡 ago, oO:02:16 对流量进行分类时, ago, ex亡ended 18000 by亡es; by亡es; aC亡ion‥ burs亡‥ COnformed aC亡i〇n‥ 13428 25000 limi亡 Se亡一PreC-tranSmi亡 bytes bps, eXCeeded 3000 CAR可以使用常规ACL,也可以使用限速ACL ACL)。限速ACL可以匹配MPLS O drop EXP比特、 bps (rate-1imit IP优先级或MAC地址。如果要匹配其 他字段,那么就必须使用IPACLo从例5-11可以看出, CAR通过ACL来匹配流量并 对流量的三种不同子集进行监管,同时限制了整体流量速率。本例的配置规则如下(请 注意, CAR仅支持8kbitts整数倍的监管速率) : ■ 在接口上将所有流量均监管为496kbit/s,但是需要在发送流量之前; ■ 将所有Vveb流量均监管为400kbit/si ■ 将所有FTP流量均监管为160kbit/s; ■ 将所有VAIP流量均监管为200kbit/s3 ■ 配置相应的Bc和Be,要求Bc能够发送1秒钟流量,而Be则不在Bc的基 础上提供额外的突发能力。 励5一∥ 劳有子分薯矽CAR面e-∥7咐命令 ! ACL lol ma亡Ches all HTTP ! ACL lO2 matches all FTP ! ACL lO3 ma亡Ches all Vo|P in亡erface s 亡raffic 亡raffic 亡raffic O/O ra亡e-1imi亡inpu亡 496000 ra亡e-1imi亡inpu亡 access-gr〇uP exceed-aC亡ion c〇nform-aCti〇n COn亡inue exceed-aCtion dr〇P 400000 50000 50000 conform-aCtion transmi亡 access-grouP lO2 160000 20000 20000 conform-aC亡i〇n 亡ransmi亡 lO3 200000 25000 25000 conform-aC亡ion 亡ransmi亡 drop ra亡e-1imi亡inpu亡 exceed-aC亡ion 62000 IO1 drop ra亡e-1imi亡inpu亡 exceed-aC亡ion 62000 access-grouP drop CAR配置通过引用皿ACL来分类流量,本例就使用了三个不同的IPACLo其中, lol匹配所有的Wch流量, ACL lO2匹配所有的FTP流量, ACL ACL lO3匹配所有的VI)皿流量。 本例在子接口SO/0.1下使用了4条rate-1imit命令。第一条rate-1imit命令的作用 是为所有流量设置监管速率并丢弃超出496kbit/s的流量,但遵从操作是“continue” , 表明遵从该语旬的数据包将与接下来的rate-1imit语句进行对比。如果与某条语句相 匹配,那么就采取相应的监管操作。例如, Web流量匹配第二条rate-1imit命令,因 5.6 而相应的监管操作为士ransmit (传输)”或“drop (丢弃)∴ HQF 199 VbIP流量在与最后一条 rate-1imit命令相匹配之前需要与接下来的三条rate-1imit命令进行对比。因此,所有 流量均被监管为496kb出s.而且流量中的三个特殊子集被阻止占用全部链路带宽o cB脱管特性还可以利用嵌套式策略映射,对流量子集实现相同的监管效果。 5.6 HQF .. 到目前为止,已经讨论了利用MQC部署QoS机制的实现方式o MQC为所有类型及 协议的QoS配置工作提供了通用性的命令行接日。由于MQC可以为排队和整型特性配 置HQF (Hierarchical Queuing Framework,层次化排队框架).因而MQC非常重要o HQF是支持QoS功能特性的逻辑引擎. HQF的层次化结构是通过策略映射构建 的树状结构。如果接日部署了HQF,那么数据穿越该接日之后就会被分类并沿着该树 的树枝进行传送。数据到达树顶之后会被分类到某个树叶上,然后沿层次化结构(树) 向下传递,直到从位于根部(树干)的接日传送出去为止。 例5-12解释了QoS层次化结构的构建方式。 励5●12 00S层次您绪矽 p〇一一C.∵二二ap∴C_ClsS T.a摹s C. Oa∴d、上dt上1÷ C_dSS∴c2 ba∴dw主dL土1C p〇一∵CT ̄∵dp∴干ap. C_aSS∴C_aSs-d〔三二a二∴L ÷.群〕e 三C: 64COO 社.′e二a♀e ∵:CC一工〇. ℃c一一二丁 ̄二dp 】C∵ C、a∴;s 二dp∠ C一主Ss∴C.dss-`αe‥主∵.∴ s二卒pe clverdge ∵dT一(∵dsS ♀6CCC 三ra‥二e-re_d∵ sc∵∵.Ce-p〇正cγ 二aO-C.ass 〇工p∴ ∵a三上 三 ̄d二C∴:r三 ser∵÷Ce-p〇三c于 〇∴p∴ 二二 ̄c∵∵∴主C丫ヽ∴s(三:三u..ゞ C二C`dp÷;二一d÷ ▲○二 二二主二∈一‥e_dy  ̄∵<三s∴‥ 三∵ r rap2 . 二三d二e三 ̄e_a∵ _∴∴c÷二acc-c_C一 二rd二C一主(∴a∵∴三∴÷C:三ac〔ゝ-α_(∵. ÷三c;ss 一b 一 . :∵三 例5-12中的命令行创建了结构化的QoS机制应用.其结构的本质如图5-7所示。 理解了层次化结构之后.需要分析该结构的主要忧点o QoS层次化排队框架不但 能够在大规模网络中更快地部署QoS排队和整型特性,而且还能实现一致性的排队行 为。可以在所有主要的αs∞ IOS软件版本上使用相同的MQC命令,使得QoS部署 200 整形、监管与链路分段 第5章 操作更为简单.而且完全透明,与所用的αs∞IOS软件版本无关。 图5-7 目QF树状结构 HQF支持分布式部署方式和非分布式部署方式,可以在所有的软件转发硬件上实现 一致的QoS功能,使得QoS部署操作更为简单,而且完全透明,与所用的平台无关。这 里所说的QoS行为一致性能够加快不同αs∞ 功能在不同硬件平台上的分发。此外, IOS软件版本中的增强型功能及新型QoS HQF的优点还包括多级数据包凋度能力,支持集 成式CB整形与排队,并且能够以类别为基础应用公平排队和丢弃策略。能够在HQF环 境中实现上述忧点的主要原因就在于引人了大量新功能特性,这些功能特性包括在HQF 结构中的每个层级上都部署层次化策略及排队特性,从而能够将CB排队特性应用于层次 化策略的父级或子级中的所有流量.同时为不同的会话或用户创建独立的服务等级。 从例5」3可以看出. parent-C2类别的流量比parent-Cl类别的流量拥有更多的调 度时间。 励5●?3 歇佐OoS p〇∴二CY ̄Tap C⊥aSs C-aSs C_ 〇a:二α∵二d二h C、ass 二: C∠ Oa二α厅∴c二∴ po三c丫一干ap .广 叮ap二 p〇三广y一二ap∴广土三< C二d←;s C上二_α一C_ :)a∴d出二d∴卜 C◆aSs ba二dwid÷h. p〇1icy-map Class ∵二,二 C、h三d-C2 4C〔〕 pare‥「二 parent-Cl bandwidch. 100C Serv_Ce-p〇二∴cy Class c十三三d parent-C2 barヽαwid二h. 2CCC Service-p〇三cゝ′ C∴三d 5.6 HQF 201 HQF拥有多种处理行为的变化形式,这些也是有别于传统MQC的地方,下面将 详细讨论这些变化形式0 5.6.1在class-default中支持基于流的公平排队 class-default类别的公平排队行为基于流,这一点与前面所说的wFQ有一些变化。 对于基于流的公平排队来说, Class-default类别中的流队列按照公平方式进行调度,而 不是根据IP优先级比特的权重进行调度0 5.6.2 class-default的默认排队实现 如果没有在策略映射中显式配置class-default类别,那么其默认排队行为就是 FIFOo可以在class ̄default类别中配置bandwidth、 fairqueue或service-POlicy命令, 从而获得不同的排队行为0 5.6.3 class-default与带宽 分配给class-default类别的带宽是接口的未用带宽,也就是其他用户定义的类别 未使用的带宽。在默认情况下, 5.6.4 Class-default类别能够得到最小为接口带宽1%的带宽0 整形类别的默认排队实现 在指定类别中配置shape命令时,整形队列的默认排队行为是FIFO,而不是WFQo 可以在整形类别中配置bandwidth、 fair-queue或service-POlicy命令,从而获得不同 的排队行为0 5.6.5 策略映射与接口带宽 HQF中的策略映射最多可以预留100%的接口带宽。如果没有为class-default类别 指定明确的保证带宽,那么最多可以为用户自定义类别分配99%的接口带宽,而将剩 下的1%带宽分配给class-default类别。 如果正在迁移到Cis∞ IOS Release 12.4(20)T并配置策略映射,希望将100%的接 口带宽分配给用户自定义的类别,那么在启动HQF映像之后,控制台将会显示一条错 误消息,该消息表明分配的带宽超过了可允许带宽,将拒绝该服务策略。此时必须在 HQF中重新配置策略映射,至少要为class-default类别分配1%的保证带宽,然后才可 以将服务策略应用到接口上0 5.6.6 公平队列中的逐流队列门限 如果在HQF中启用了公平排队机制,那么默认的逐流队列(per-flow queue)门 202 整形、监管与链路分段 第5章 限就是分类队列门限的1/40如果没有在类别中启用队列门限,那么默认的逐流队列 们限就是16个数据包(64的1/4)0 在逻辑接口上支持多个策略的超额配置 5.6.7 如果将整形策略关联到多个逻辑接日(包括子接日) ,并且整形速率之和超出了物 理接日带宽,那么就会在物理接日上产生拥塞,从而给每个逻辑接口策略造成反向压 力,这种反向压力会导致每个策略都将输出速率降至平均分配的接口带宽0 整形GRE隧道 5.6.8 在HQF中可以利用层次化服务策略在隧道封装完成之后对GRE (Generic Routing Encapsulation,通用路由封装)隧道进行整形,整形速率取决于隧道封装和二层封装 后的数据包。 在应用于隧道接口的父策略中配置整形特性时,可以仅使用class-default类别, 不能在父策略中配置用户自定义类别。 对于某些QoS配置方案所包含的服务策略来说,既可以携带应用于隧道接口或虚 接口的排队特性,也可以携带应用于物理接口的排队特性。在实际应用中,可以将携 带排队特性的服务策略仅应用于其中的某类接口上0 用于子策略的嵌套式策略及参考带宽 5.6.9 对于HQF来说,如果在父整形类别下配置携带子排队策略的嵌套式策略,那么子排队 策略的参考带宽取自以下最小值:父整形器速率、父类别的隐式/显式保证带宽。如果没有 为父类别定义带宽,那么就会将接口带宽平均分配给所有父类别,作为其隐式保证带宽0 5.6.10 在配置了策略映射的接口上处理流量拥塞 如果配置了策略映射的接日被大量流量占满,那么隐式定义的监管器将仅允许每 种流量类别的bandwidth命令所定义的流量。只要接口出现流量拥塞状况,监管器就 会被激活0 5.7 Qos故障检测与排除及相关命令 QoS故障可能是所有管理员都会遇到的故障问题,产生的原因主要有: ■ 缺乏针对自身网络QoS需求的事前规划,导致QoS配置不恰当; ■ 未及时跟踪网络应用及网络流量的变化,导致QoS配置不合时宜; ■ 缺乏良好的网络文档(或者在网络中增加设备或应用之前未检查网络文档)。 本节将重点讨论基于Cis∞ IOS的QoS工具(不仅仅是大家已经熟知的一些常见工 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 5.7 具) 本资料仅供试读 . Qos故障检测与排除及相关命令 203 ,同时还将针对日常可能遇到的QoS故障提供相应的故障检测与排除指南。对于CCIE R&S实验考试来说,大家会遇到大量故障检测与排除场景,要求必须掌握快速、有效及 全面的故障检测与排除技巧,而笔试则要求掌握备种故障检测与排除投巧(主要是面向 αsco路由器和交换机的故障检测与排除技术的相关知识,并且能够理解备种show命令 以及可能的debug命令的输出结果) 。有时大家也可能会遇到附有故障描述的案例,这时 候就需要将故障范围快速缩小到可能的解决方案并最终找出正确的解决方案。 对于CCIE考试来说,一般并不存在最简单或最直接的故障解决方案,在排障过 程中定位大多数故障根源的最简单方式通常都是show rm命令或者该命令的备种变 体,因而本节将讨论一种“无showrm”规则,强制大家使用本节讨论的备种更深人 的Cis∞ IOS故障检测与排除命令。 此外需要注意的是,笔试过程中遇到的故障问题通常都需要使用多条命令才能正 确隔离并解决0 5.7.1应用晌应慢的故障检测与排除 虽然在网络中启用了QoS策略,但用户还在抱怨特定应用的响应很慢。因而首先 检查QoS策略以确定是否为该应用分配了足够的带宽,然后再检查该应用的带宽、延 迟及丢包要求,并检查网络文档以确定QoS策略是否能够满足这些需求。 如果一切都没有问题,那么就可能需要利用皿SLA (Service Level Agreement,服务 等级协议)来验证该应用的响应时间(有关ⅢsLA的详细信息请参见第1卷第5章。在 最靠近流量源端和目的端的路由器和交换机上安装IP 后在show ip sla SLA,然后调度并运行皿SLA,最 statistics命令的输出结果中验证检查结果。如果响应时间确实很慢,但 网络文档显示已经正确设置了QoS策略,那么就需要检查网络中每跳设备上的QoS策略 配置信息。对于大型网络来说,需要通过相应的管理工具来检查QoS的配置及运行情况, 如果需要采用手工方式进行检查,那么就可以利用show 策略映射,利用show class-maP命令显示相关联的分类映射o policy-maP命令来显示已配置的 show poHcy-maP interface 命令是显示每个接口上应用了哪些策略以及这些策略所执行的操作信息的最佳方式。 例如,假设用户正在抱怨Ci血x响应太慢,而且网络文档显示已经在网络中配置 了如下QoS策略。 ■ 语音队列:优先调度并分配带宽。 ■ Citrix队列:为典型的Citrix端口(如1494和2512)分配带宽。 ■ web队列:为端日80和443分配有限带宽。 ■ 默认队列:为其他流量分配带宽。 最初网络运行正常,直到后来网络中出现了一种新的使用端口80的互联网视频, 创建该QoS策略的网络管理员没有意识到Citrix也使用端日80和4430从show 攻城狮论坛(技术+生活)2群 1813097 204 整形、监管与链路分段 第5章 POlicy-maP interface命令的输出结果可以看出, Web队列已满,导致Citrix流量与普 通互联网流量一样被延迟或者被丢弃,因而只要打开NBAR (Network-Based Application Recognition,基于网络的应用识别)即可识别穿越接口的流量类型,进而 发现该问题,利用show ip nbar protoco1-discovery命令即可查看已经发现的流量类型。 对Citrix流量进行分类的一种方法就是NBAR,而不是端口号。有关利用NBAR 分类流量的相关信息请参见第3章0 5.7.2 语音与视频故障检测与排除 在网络中引人IP语音或IP视频是很多企业部署QoS特性的主要动因, αsco提 供的AutoQoS功能可以让语音QoS策略的部署工作变得非常简单。在网络中增加视 频服务相对比较棘手,这是因为视频不但有类似于语音流量的延迟要求,而且还必须 提供更高的丢包要求,此外,流式单向视频占用的带宽与交互式视频也不相同,因而 QoS策略必须全面考虑上述需求。 如果网络中出现了语音和视频质量劣化的情况,那么就可以在交换机和路由器上 检查以下与QoS相关的信息: ■ 验证是否启用了QoS以及配置的是AutoQoS还是手工策略,利用show mls qos命令的输出结果即可查看是否启用了QoS; ■ 利用show poIicy-maP和show class-maP命令的输出结果检查QoS策略映射 与分类映射,以确定QoS策略的配置是否正确; ■ 利用show ■ 可能还需要在多对设备之间使用IPSLA以缩小故障范围。 policy-maP interface命令的输出结果检查服务策略; 与交换机相关的故障检测与排除要点如下。 ■ 确定已经为人站和出站流量启用了快速(优先级)队列。为人站队列使用show mls ■ qos input-queue命令,为出站队列使用show mls qos frofe吻ce 确定将正确的流量映射到正确的队列中。为人站队列使用show COS-input-q命令, 3560交换机默认将CoS mls queueing命令。 qos maps 5映射到人站队列20因此,如果 队列1是优先级队列并且没有更改默认映射,那么就会产生问题。为出站队 列使用show mls qos maps cos-OutPut-q命令,对于出站队列来说, CoS 5被 默认映射为出站队列10 ■ 确定CoS值是否已被正确映射为DSCP值,反过来DSCP值也要被正确映射 为CoS值。为CoS-tO-DSCP映射使用show DSCP-tO-CoS映射使用show mIs qos mls qos maps maps cos-dscp命令,为 dscp-COS命令(有关交换机排队的 相关信息以及这些命令的输出结果示例,可以参见第4章)。 与路由器相关的故障检测与排除要点如下。 5.7 ■ 205 与交换机相比,查看路由器的CoS-tO-DSCP映射信息较为简单,因为只要使 用show ■ Qos故障检测与排除及相关命令 mls qos maps命令即可。 如果在wAN接口上启用了流量整形,那么就需要确定是否已经将时间间隔 (耽)调小为10ms,否则就有可能引人过量延迟,导致语音和视频质量劣化。 利用show ■ traffic-Shape命令即可检查Tt的设置情况; 如果wAN服务提供商拥有不同的服务等级,那么就需要确定是否已经正确 标记了语音和视频流量并映射到相应的队列中0 5.7.3 其他Qos故障检测与排除技巧 即使网络配置了正确的QoS策略,也仍有可能出现QoS问题,至少有可能与QoS 有间接关系。特别是网络中的用户及办公室经常出现变化,如果缺乏网络文档或者网 络管理员没有检查网络文档,那么就很有可能会出现QoS故障问题。 例如,假设网络中有一台交换机专门接人用户端口,但有些用户后来搬到了其他 位置,现在需要为打印机和服务器提供部分端口。假设所有交换机端口都针对语音流 量设置了AutoQoS,并且配置了人站和出站快速队列,如果网络管理员只是将一台打 印机或服务器连接到其中的某个交换机端口上,那么将无法实现最优性能。由于只有 一种类型的流量流经这些端口,因而只要一个人站队列和一个出站队列即可。此外, 不存在人站CoS映射到队列所引人的延迟(即使很小),因而最好的处理方式就是将 端日重新配置为只有一个队列的数据端日。删除接口上所有配置信息的快捷方式是使 用全局命令default interface rfu砷归ceo 随着网络应用的不断发展变化,当前运行良好的QoS配置可能并不适用于未来, 因而必须随时监控网络流量及其对Qos的影响情况,同时还要周期性地检查监控结 果。需要记住的是,在网络中引人一种新应用或者升级现有应用之前,必须考虑是否 有必要调整QoS策略0 5.7.4 Qos故障解决方案 我们将在本章的最后一节以表格方式列出一些常见的QoS故障类型及解决方法, 包括相应的Cis∞IOS命令(如表5-9所示)。 Qos故障检测与排除方法及命令 表5 ̄9 在路由器或交换机上检测与 排除可能的Qos配置错误(两 验证是否肩用了Qos Showmlsqos 验证分类映射的配置信患 ShowcIass-maP 验证策皑映射的配置信忌 Showpolicy-maP 验证服务策皑的运行情况 Sh゜WPOlicy-maPinterfecewhe′face 者的命令相同) 206 第5章 整形、监管与链路分段 Showmlsqosinput-queue Sh゜Wmlsqosinterfece′nfe′facequeueing 利用sh°w命令确定接口的入站 Showmlsqosmapscosinput-q 和出站排队的配置信患 Showmlsqosmapscos°utPut-q 可能的交换机Q゜s配置错误 Showmlsqosmapscos-dscp Showmlsqosmapsdscp-COS 利用show命令确定队列的配置 Showmlsqosmaps 信患 Showtra栅c-Shape 可能的路由器Qos配置错误 备考任务 表5-10列出了与CB整形相关的命令。 表5-10 cB整形以及通用整形特性的命令参考 tra恫c-Shaperateshaped二rafe[Bc]lBe][b″ife广∥7J肺 Shapelaveragelpeak]mean-rateHb∥rs+s亿e] 该接口命令可以肩用GTs 分类配置模式;该命令可以为指定类别肩用整形特性 [excess-b″rS←sAzeH Shape[averagelpeak]percentperoeutHb∥rs!一S亿e】 该命令可以基于带宽百分比启用整形特性 [excess-b″rsf-S唐eⅡ Shapeadaptivemin一面e 该命令可以为自适应整形肩用最小速率 Shapefecn-adapt 该命令可以在收到FEcN之后回送BECN比特 接口或子接口配置模式;该命令可以在接口上雇用cB整 Service-P゜licy(inputloutput)po″cy-maP-name 形特性 Shapemax-buffersr)″mbe广Ofb∥ifers 该命令可以为默认FIFO整形队列设置最大队列长度 该命令可以列出与基于MQc的QoS工具相关的配置 Showpolicy-maPPO咋yJmaP一月ame 信患 Showpolicy-maP″7!e′face-apec 该命令可以列出与基于MQC的QoS工具相关的统计 [inputl°utPut][classcfass-r)ame] 信忌 5.8 理解与记忆 207 表5-11列出了与CB监管相关的命令。 cB监管特性的命令参考 表5 ̄11 PO"cebpsb″rsf-″Orma/b″rs←maxconform-aCtion P°licy-maP分类子命令;该命令可以为指定类别肩甫监 acf/O″eXCeed-aCtionacf/or)[violate-aCtionacf/or)] 誓特性 POlicecirperoentperoenf【bcαan胁77]Lb∥stinmsecI[pir POIicy-maP分 类子命令; 该命令可以利用带宽百分比启 peroe巾PertX凯!∥bepeakburs助rmsee∥゜Onfomaction 用监管特性 acfldr][exceediaCtionacfon[violateiaCtionactfonm POlice(Circir)[bccor)form-b″rsf](Pirpir)[be POlicy-maP分 类子命令; 该命令可以启用双速率监管 Peak-b″rsfⅡconform-aCtionac!fO可exceed-aCtion 特性 acfrO″[violate-aCtionac“゜nⅢ 该命令可以在接口或子接口上肩用cB监管特性 Service-POlicy(inputloutput)po脆yJmaP一″ame 5.8 理解与记忆 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试 主题,因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试 主题0 5.8.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 5.8.2 定义关键术语 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: Tt、 应整形、 Bc、 BECN、 Be、 GTS整形速率、整形速率、令牌桶、 ForeSight、 ELMI、 Bc令牌桶、 Be令牌桶、自适 mincir、分类映射、标记为低优先级、单速率双 色监管器、单速率三色监管器、双速率三色监管器、遵从、超出、违约、流量合约、 双令牌桶、 5.8.3 PIR、嵌套式策略映射、多操作监管 推荐读物 αsco QoS Cis∞ IOS Exam Certi五cation Quality of Service Guide , by Solutions docs/ios/qos/configuration/guide/ 1 Wendell odom Configuration 2_4/qos」 and Guide 2_4二book.html Michael , Cavanaugh WWW.Cisco.com/en/US/ 本章主要讨论以下主题: ■ HDLc; ■ PPP; ■ 以太网WANo 第6章 wAN 本章将讨论WAN 议的相关细节信息‥ 6.1 (Vide-AreaNetworks,广域网)中最常用的两种数据链路层协 PPP (Point-tO-PointProtocol,点对点协议)和以太网WANo ″我已经知道了吗? ”测试题 表6-1列出了本章的基本主题以及与之相应的测试题。 表6-1 ″我已经知道了吗? ”基本主题与测试题对照表 PPP 1-3 PPPoE 4-5 城域以太网 6 得分 为了提高每章前面的测试评价效果,请务必严格评分。参考答案请参见附录Ao l.假设PPP链路出现故障且刚刚被重新恢复,那么最后协商的是下面哪一种特性? a. CHAP认证 b. RTP头压缩 c.环回链路检测 d.链路质量监控 2.假设接口SO/0、 SO/1和sl/0均处于up状态且均属于连接其他路由器的多链路PPP 绑定,同时将多链路接口带宽设置为15360如果有一个1500字节的数据包被路由 出该多链路接口,那么下面哪一项将确定该数据包从哪一条链路流出? a.当前CEFFIB以及CEF负载均衡方法 b.当前快速交换缓存 c.数据包将按照循环调度算法从某个接口发送出去 d.这三条链路都会发送一个分段 攻城狮论坛 210 bbs.vlan5.com 第6章 #^_^# 版权归原作者所有 本资料仅供试读 . Ⅵ′AN 3. Rl和R2通过一条专线连接,并且连接接口均使用各自的sO/1接口。如果将CHAP 配置为使用本地定义的用户名和密码,那么下面关于这两台路由器的配置命令及配 置模式的描述,哪些是错误的? a.接口子命令encapsulation b.接口子命令ppp ppp authentication C.在Rl上配置全局命令usemame jZ/ d.在R2上配置接口子命令usermame R2 chap password password so朋apasSWOrd stz朋apasSWOrd 4.作为最低要求,为了支持客户端的远程连接,必须在PPPoE服务器上配置哪条 命令? a. b. ip address C● no d. ip e● 5. ipdhcp ip Virtua1-reaSSembly unnumbered peer default ip address PPPoE报头会给每个帧增加多少额外开销? a. 4字节 b. 6字节 c. 8字节 d.不增加开销 6.下面哪一项架构需求不属于VPLS转发操作? a.自动发现提供商边缘路由器 b.用于连接vSI的伪线信令 c.环路避免 d.提供商边缘路由器的静态配置 e. MAC地址撤销 墓本主题 6.2 二层协议 点到点链路中最常见的两种二层协议就是HDLC 高级数据链路控制)和PPP (High-Level (Point-tO-Point Data Link Control , Protocol,点对点协议)。由于ISO制定的 较老的HDLC标准没有类型(rtype)字段,因而Cisco在HDLC实现中增加了Cisco 专有的2字节类型字段,以便在HDLC链路上支持多协议o Cisco路由器将这种Cisco 攻城狮论坛(技术+生活)2群 1813097 6.2 二层协议 211 专有的HDLC版本作为其默认的串行接口封装方式0 6.2.1 HDLC αsco路由器的默认串行接口封装方式是Cisco 爵 HDLC,由于不需要在路由器上显 式配置CiscoHDLC,因而配置中也不会显示该封装类型。 对于背靠背的串行连接来说,连接电缆DCE (Data Communications Equipment, 数据通信设备)端的路由器为串行链路提供时钟信号。在接口配置模式下使用 CIockrate命令即可让电缆DCE端的路由器(即本例中的Rl)为串行链路提供时钟信 号。运行show controllers命令即可确定电缆的哪一端连接在串行接口上。 从例6-1可以看出,电缆的DCE端连接至Rl, DTE (DataLerminalEquipment, 数据终端设备)端连接至R2,目前的时钟速率属于串行接口的默认配置,将自动应用 于该串行链路。不过需要注意的是,大家可以根据不同的应用场景控制时钟速率,具 体取决于设备所安装的环境。 励6-1 ∥D⊥c/配置 ! First ! and we "no will Rl(COnfig〉# apply 亡he shut" the ip address 亡O Rl in亡erface interface serialO/O Rl(config-if)# ip address Rl(config-if)# no shut lO.1.12.1 255.255.255.O Rl(COnfig-if)# ! Now R2# R2 we will do the same for R2 conf∴t (COnfig)# 土nterface serialO/O R2(COnfig-if)# ip address R2(COnfig-if)# no shut lO.1.12.2 255.255.255.O 只要利用以下命令即可验证上述配置: ■ show controllers命令; ■ ping命令; ■ showinterface命令。 例6-2的输出结果显示了这三条命令针对上述示例配置的运行结果。 验土匠∥DLC 励6-2 !Sh〇W Rl# C〇n亡rollers show Interface on Rl‥ contro11ers∴Seria10/0 Seria10/0 Hardwareis DCE /配置 GT96K 530,Clock ra亡e 2000000 !-一一一Ou亡Pu亡Omi亡ted一一一一 !Now for 亡he Ping l Rl# pinglO.1.12.2 tes亡 l fromRl亡O R2‥ 212 第6章 WAN Type escape 亡O sequence Sending 5, Success ra亡e 100-by亡e is ab〇r亡. ICMP loo 亡〇 Ech〇S 10.1.12.2,亡ime〇u亡is percen亡(5/5〉, r〇und一亡rip sec〇nds‥ 2 = min/avg/max ms 1/2/4 Rl# ! Las亡Iy Rl# show we will l〇Ok interface Seria10/O is Hardware up, is GT96K In亡erne亡 address by亡es, Encapsula亡ion 亡ha亡 Keepalive CRC inpu亡 clearing ou亡Pu亡 queue: above 5 minu亡e ou亡Pu亡 packe亡S ou亡Put O unkn〇Wn O ou亡Pu亡 O carrier 6.2.2 Rl‥ l/255 Se亡 inpu亡, 亡ha亡 We are running HDLC Encapsula亡i〇n O Pr〇亡OCOl buffer hang o O/0 8280 ac亡ive/max (allocated/max To亡al ou亡Pu亡 dr〇PS: O 亡〇亡al) all〇Ca亡ed) kil〇bi亡S/sec O bi亡S/sec, CRC, never neVer fair bi亡S/SeC, Ou亡Put, err〇rS, Ou亡Pu亡 c〇unterS (Size/max∴t〇亡al/thresh〇ld/drops) O packe亡S/SeC O by亡es, br〇adcas亡s, O 00‥00‥02, (ac亡ive/max l158 o ra亡e errors, packe亡S DCD=uP O/1/256 ra亡e 124 O n〇亡 rXIoad (Size/max/dr〇PS/flushes); Weigh亡ed Bandwid亡h inpu亡 133 on usec, 20000 DLY l/255, interface" C〇nVerSa亡ions minu亡e input Ou亡Pu亡 0/1000/64/0 5 O c〇rmand sec) 0/75/O/0 queue‥ Received 0/O up ou亡Pu亡indica亡es "sh〇W of Conversa亡ions 129 is Kbi亡/SeC, loopback s亡rategy‥ Available seria1 lO.1.12.1/24 1544 00‥00:01, Reserved in亡erface enabled Last 工npu亡 is se亡(10 Last Queueing show O/O pro亡〇C〇l HDLC, checking 亡he Serial BW 亡he 〇f ou亡Pu亡 255/255,亡Xl〇ad reliabili亡y No亡ice serial line MTU 1500 a亡∴亡he O packe亡S/sec n〇 run亡S, O buffer gian亡S, O frame, O overrun, 8665 by亡es, O underruns c〇llisions, 7 in亡erface O O thro亡亡Ies ignored, O abort rese亡S drops failures, O ou亡Pu亡 RTS=uP CTS=uP buffers swapped ou亡 transi亡ions DSR=uP DTR=uP PPP PPP定义在RFC 1661中,包含一个协议(Protocol)字段和大量功能特性。表6-2 列出了HDLC与PPP的主要对比信息。 表6-2 HDLC与PPP对比 E己 目 差链检测? 刀≡ 刀≡ 差错恢复? 否 是★ 标准的协议类型字段? 否 是IOs串行链路的默认配置? 支持同步和异步链路? ℃isco 目 刀≡ 否 loS默认不使用该可靠的PPP特性,该特性允许PPP执行差错恢复功能 ∈己 刀≡ 否 目 刀≡ 6.2 二层协议 213 PPP成帧(RFC 1662)使用简单的HDLC报头和报尾作为PPP帧格式的大部分字 段(如图6-1所示)o PPP成帧只是在原始的HDLC成帧的墓础上简单地增加了协议字 段和可选的填充(Padding)字段(填充字段允许PPP帧长度始终保持为偶数字节)0 地址 标记 HDLc 1-2 1 1 ↓ 标记 地址 7E FF 图6-1 1 Fcs 标记 (专有) ↓ 控制 协议 03 (标准) 数据和填充 Fcs 变长 2或4 1-2 1 1 1 4 数据 控制 类型 ↓ 变长 2 标记 7E 1 HDLC与PPP成帧对比 1. PPP链路控制协议 PPP标准可以分为两大类,一类是与任何特定三层协议都无关的功能特性,另一 类是与特定三层协议相关的功能特性o PPP LCP (Link Co血01 Protocol,链路控制协 议)负责控制与任何特定三层协议均无关的功能特性。对于PPP支持的每种三层协议 来说, PPP都会定义一个NCP IPCP (Intemet (Network ProtocoI Control Control Protocol,网络控制协议)。例如, Protocol, PPP Intemet协议控制协议)就为IP定义了相应 的PPP功能特性,如动态地址分配o PPP串行链路刚刚启动时(例如,路由器侦听到CTS[Clearto DSR[Data Send Read,数据发送读取]以及DCD[Data 后就会在物理层启动) , Carrier Send,清除发送]、 Detect,数据载波检测]之 LCP就开始与链路对端进行参数协商。例如, LCP将控制协 商采用何种认证方式、遵照何种认证顺序以及允许何种认证协议(如CHAP[Challenge Handshake Authentication Protocol,挑战握手认证协议])来完成认证操作。如果所有 的LCP协商过程均成功完成,那么LCP就处于up状态,此后PPP将开始启动三层控 制协议。 表6-3列出了LCP的关键功能特性,后面将详细描述其中的一些关键LCP功能特性。 表6-3 PPP LCP功能特性 一 LQM(LinkQualityMonitoring,链 LcP负责交换接收到的无错帧的比例统计信患,如果比例低于配置值,那么 路质量监控) 将丢弃该链路 每台路由器都会生成并发送一个随机选择的魔术字,如果躇由器收到了自己的 环路检测 魔术字,那么就表明该链路是环路并记录下来 214 第6章 wAN MLP(MuItitlinkPPP,多链路PPP)将每个帧进行分段,为每条链路分配一 二层负载均衡 个分段并由每条链路发送一个分段,从而实现流量均衡 认证 支持cHAP和PAP 2.基本的LcP/PPP配置 利用最少数量的命令即可完成PPP的配置工作,只要在链路两端的路由器上运行 encapsulation ppp命令即可。例6-3给出了一个基本的PPP封装示例,同时可选配置 LQM以及CHAP认证特性。例中的路由器R3与R4均通过接口SO/1/0与对方互连。 色含LQ∥矽PPP铂PPP蹬 励6-3 interface ip interface 1P R3# Seria10/1/O address SerialO/1/0 address show 255.255.255.0 lO.1.34.3 int∴s Seria10/1/O Hardware is is O/1/O up, line GT96K 工nternet address MTU by亡es, 1500 255.255.255.0 lO.1.34.4 reliabili亡y pro亡OC〇l is up Serial is BW lO.1.34.3/24 1544 Kbi亡, 255/255,亡Xload DLY 20000 l/255, * * l l 1 1 1 1 * ApApAp 14:48:14.795‥ SeO/1/O PPP‥ 14:48:14.795‥ SeO/1/O LCP: 14‥48:14.795‥ SeO/1/O LCP: usec, rXIoad Phase l/255 is [Closed] Au亡hPro亡O id 186 1en (OxO305C22305) 23 6.2 二层协议 215 3.多链路PPP 多链路PPP (MultilinkPPP)可以缩写成MPL、 层将多条并行的串行链路组合在一起的方法o 三层负载均衡特性的ISDN MP或MLPPP,定义了一种在二 MPL的最初目标是组合多条不需要任何 B通道,但MLP可以为任何类型的点对点串行链路提供负 载均衡功能o MLP实现流量均衡的方式是将每个数据链路层帧进行分段(可以根据并行链路的 数量或者根据已配置的分段时延进行分段) ,然后再通过不同的链路发送这些分段。例 如,假设有三条并行链路,那么MLP就会将每个帧都分为三个分段并通过这三条链 路各发送一个分段。为了能够在接收端重组这些分段, MLP需要为每个分段增加一个 报头(4字节或2字节) Number)字段和标志(Flag) ,报头中包含一个序列号(Sequence 字段,其中,标志字段可以标明分段的起始和结束。 可以使用多链路接口或虚模板来配置MLPo例6-4显示的MLP多链路接口拥有 两个底层串行接口,该配置示例显示了路由器R4向路由器R3经MLP连接发起的ping 测试后的接口统计信息。 励6-4 ∴石∥君多链路接口勉置∥LP以及棺佑铂豺拜篇帛一一-R3 216 第6章 wAN 4. MLP链路分段与交织 术语LFI IOS (Link Fragmentation and Interleaving ,链路分段与交织)指的是一种Cisco QoS工具,该工具可以避免小的延迟敏感型数据包必须等待较大的延迟非敏感型 数据包按串行方式从接口发送出去。为此, LFI工具需要对较大的数据包进行分段, 只要发送了原始大数据包的部分分段之后就可以发送延迟敏感型数据包o LFI的关键 组件包括分段(可以在不同数据包的分段之间进行交织的能力)和排队调度器(负责 交织数据包)。从图6-2中可以看出, 1500字节的数据包被分成了多个分段,而且排 队调度器将60字节的数据包交织到了前两个分段之后。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 6.2 二层协议 217 1500字节的数据 色到达,其后是 一个60字节的数 据包 MLPLFl的概念 图6-2 MLP支持LFI,相应的关键信息如下: ■ 接口子命令ppp ■ 命令ppp mul俐ink multilink interleave的作用是让路由器支持交织功能; fragment-delay x的作用是间接定义分段大小(根据如下 公式进行计算)。需要注意的是,由于延迟参数的单位是毫秒,因而必须对接 口带宽的单位进行相应的转换: 分段大小〒x X带宽 ■ MLPLFI可用于单条链路或多条链路; ■ 多链路接口上的排队调度器负责确定下一个将要发送的数据包,因而很多实 现都利用LLQ,始终在分段之间交织延迟敏感型流量。 例6-5给出了例6-2的更新配置示例,例中启用了LFI特性。 励6-5 剁居LLQ交:约著音流置铂∥LP 5. ⊥尸/ PPP压缩 PPP可以协商使用二层净荷压缩、 TCP头压缩以及/或RTP头压缩功能。每种类 型的压缩功能都备有利弊,具体与所压缩的内容有关(如图6-3所示)。 攻城狮论坛(技术+生活)2群 1813097 218 第6章 wAN 净荷压缩 `---丫......--...J TCP报头压缩 RTP报头压缩 ▲ ′- 图6-3 ` 压缩功能所压缩的字段 净荷压缩与头压缩相比,净荷压缩适合长度较长的数据包,而头压缩则适合长度 较短的数据包。头压缩利用报头的可预测性,报头字段的压缩率能够达到10‥1至20:10 但是,如果数据包内的数据长度远大于报头长度,那么头压缩所节省的字节数可能只 占到总体带宽需求很小的一部分,此时净荷压缩更具吸引力0 6. PPP二层净荷压缩 Cisco Stacker) , IOS软件支持三种类型的PPP净荷压缩选项,分别为LZS MPPPC (Microsoft Point-tO-Point Stacker和MPCC均使用相同的底层LZ Compression (Lempel-Ziv ,微软点对点压缩)和Predictoro (Lempel ̄Ziv)压缩算法,而Predictor则使用 称为Predictor的压缩算法。与Predictor算法相比, LZ使用的CPU更多但内存消耗较 少,而且LZ通常能够获得更高的压缩比。 表6-4列出了净荷压缩的关键信息。需要注意的是,这三种压缩选项中只有LSz 同时支持帧中继和HDLC链路。此外,使用ATM到帧中继业务互通(ATM土O-Frame Relay Service Interwocking)时,如果要启用净荷压缩功能,那么必须使用MLPo因此, 对于PPP所支持的所有净荷压缩类型来说, 表6-4 ATM到帧中继业务互通也都支持。 PPP净荷压缩工具:功能特性对比 一 使用Lz算法? E己 ∈己 刀≡ 刀≡ 使用Predictor算法? 否 否 HDLC支持? PPP支持? 帧中继支持? 支持ATM以及ATM到帧中继业务互通(使用MLP) 目 刀≡ 否 否 E≡ 刀≡ 否 E己 目 目 页≡ 刀≡ 刀≡ 否 否 目 刀≡ 目 目 E己 刀≡ 刀≡ 刀≡ 配置净荷压缩特性时,只要在链路两端的备个接口下配置相匹配的compress命令 并为每种类型的压缩功能配置相匹配的参数即可。配置了压缩功能之后, PPP就会启 6.2 动CCP (Compression Control 二层协议 219 Protocol,压缩控制协议,属于另一种NCP)来执行压 缩协商操作并管理相应的压缩进程0 7.头压缩 PPP支持两种类型的IP头压缩方式: 两种压缩方式的报头示意图) TCP头压缩和RTP头压缩(图6-3给出了这 。 语音流和视频流使用图6-3底部所示的RTP压缩。语音流(特别是低比特率编解 码器)的数据字段非常短。例如, G729数据包通常是60字节, 60字节中的40字节 为IP几rDP瓜TP报头,而RTP头压缩能够将IP几JDP瓜TP报头(40字节)压缩为2-4 字节,因而在使用G729的时候, RTP头压缩能够将带宽需求降低50%以上o TCP头压缩可以将IP和TCP报头(40字节)压缩为3-5字节,因而对于净荷较 小的TCP包来说,带宽节省量非常可观,计算结果与前面的RTP压缩示例相似。但 是,从CPU和内存消耗的角度来看, TCP头压缩可能并不适用于长度较长的数据包。 例如,对于1500字节的数据包来说,即使将报头从40字节压缩为3字节,也只能将 数据包大小降低2%左右。 配置头压缩功能时,既可以使用两个传统的头压缩命令,也可以使用MQC (Modular QoS header-COmPreSSion CLI,模块化QoS [ passive ]和ip CLI)命令。两个传统的头压缩命令分别为ip rtp header-COmPreSSion [ passive ] tcp ,需要在链路每 端的串行接日(PPP)或多链路接口(MLP)下配置这两条命令。配置完头压缩功能 之后, PPP就会使用IPCP来协商启用每种类型的头压缩功能(如果配置了关键字 PaSSive,那么路由器就会等待其他路由器发起IPCP协商操作) 。按照这种方式配置之 后,所有使用该链路的TCP流以及/或RTP流均会被压缩。 例6-6给出了另一种可选的配置方法,即利用MQC策略映射来创建基于类别的 头压缩。由于本例仅为类别为Telnet的流量应用了TCP头压缩功能,因而将TCP头 压缩应用到了最可能从TCP头压缩受益的数据包上,而没有将CPU和内存资源浪费 在压缩长数据包上(由于Ttlnet仅在每个TCP报文段中发送一次击键信息,因而除非 配置了service nagle命令,否则Telnet在默认情况下是非常低效的) ∥Qc基于粪励铂头伍缩 励6-6 P゜1土cy-maP class Cb-C゜mPreSSion volce bandwidth 82 clagg∴critical bandwidthllO l 。 220 第6章 WAN interface Multilinkl bandwidth 6.2.3 256 PPPoE PPPoE (PPP over Ethemet,以太网上的PPP)可以通过简单的桥接设备将网络上 的主机连接到远程汇聚集中器上o PPPoE是宽带网络领域非常重要的一种接人协议, 通常是以软件栈的方式安装在终端客户(用户)的PC上o PPPoE软件允许网络服务 提供商“拥有”客户,就像从客户PC向服务提供商网络运行的PPP会话一样o PPPoE通过共享介质(通常是DSL服务提供商提供的宽带汇聚网络)提供了一种 仿真的(且可选认证的)点对点链路。事实上,一种非常常见的应用场景就是在客户 侧运行PPPoE客户端,然后连接到ISP侧的PPPoE服务器并从服务器获得配置信息0 1.服务器配置 例6-7给出了ISP侧必须实施的第一个配置步骤,即创建一个BBA (Broadband Aggregation,宽带汇聚)组以处理即将到来的PPPoE连接。为使于讨论,我们将该 bba ̄grouP命名为BBA-Group,并将其绑定到后面即将创建的虚模板上。 励6 ̄7 虚横杨鲍置 |SP(C〇nfig)# bba-gr゜uPPPP°e BBA-GROUP virtual-temPlatel 工SP(C〇nfig-bba-grouP)# 另外一个有用的配置选项就是部署PPPoE会话数限制,从而作为一种保护手段。如 果要限制基于关联MAC地址建立的PPPoE会话数,那么就可以按下例输人相应的命令: 工SP(config-bba-grouP) # sessions per-maC limit 2 对于本应用场景来说,我们将会话数限制为2,这样一来,在前一个会话被丢弃 或等待超时的情况下,就能立即建立一个新会话。 接下来的一个重要步骤就是创建虚模极(如前所述) ,虚模板将为面向客户端的接 口提供服务: ISP(c〇nfig) # interface virtua1-temPlate l 如果PPPoE客户端向路由器发起了一个会话,那么该路由器就会动态创建一个虚 接口,该接口将作为由该进程建立的点对点连接的人口。 为了保证正确操作,必须为虚模板配置两个组件‥ IP地址以及向客户端发布协商 地址的IP地址池。该进程(如例6-8所示)是创建一个可运行的PPPoE进程的必备基 础操作。 励6-8 PPPoE基鹤馏置 |SP(c〇nfig-if)#ip ISP(c〇nfig-if)# addresslO.0.0.1255.255.255.0 peer defaultip address pooIPPO叠_POOL 二层协议 6.2 221 接下来需要定义IP地址池的地址范围。如果要利用IP地址空间的起始地址和结 束地址来配置名为PPPOE_POOL的本地IP地址池,那么就可以在全局配置模式下输 人以下命令: 工SP(config)# ip local pooI PPPOE_POOL lO.0.0.2 10.0.0.254 最后一步就是在面向客户端的接口上启用PPPoE组(如例6-9所示)。 PPPoE启居PPPoE 励6 ̄9 j组 fO/0 |SP(COnfig)#interface |SP(COnfig-if)# no 工SP(C〇nfig-if)# pppoe |sP(C〇nfig-if)# no address 土p enable MyGroup group shutd゜rm 请注意,该接口没有配置IP地址,本例将由前面配置的虚模板发布地址信息0 2.客户端配置 与服务器配置相比,客户端的配置非常简单。首先创建一个拨号器接口来处理 PPPoE连接,然后再与用来提供传输通道的物理接口进行关联。 创建PPPoE拨号器接口的配置方式如例6-10所示。 PPPoE搓号嚣姥口 励6-10 dialerl CPE(COnfig)#interface CPE(COnfig-if)# dialerpo゜11 CP耳(COnfig-if)# encapsulationppp address∴neg゜tiated CPE(config-if)#ip 命令ip address negotiated的作用是让客户端使用PPPoE服务器提供的IP地址。 作为该进程的一部分, 的以太网MTU PPP报头会给每个帧增加8字节开销。如果数据包大小与默认 (1500字节)非常接近,那么该开销就有可能会产生问题。为了解决这个 问题,需要将指定拨号器接口的MTU减小到1492,以免出现可能的分段问题。例6-Ⅱ 给出了相应的配置示例,同时还显示了将ISP接口分配给新创建的PPPoE拨号组的方式。 PPPoE会窟僚制 励6-∥ CPE(config-if)# mtu CPE(COnfig-if)# exit CPE(COnfig)# 1492 interface n° CPE(COnfig-if) # pppoe-Client CPE(c〇nfig-if) # no l l l ● ● ● l ● l l ● ● !!!|f ! l ! l l l l l l ● ● ● ● all l l l ● ● ● is l l l l l l l l l l l l l l l ● ● ● ● ● ● l l l address l l l l ● ● ● ● you l ● l ● l l l l l l l l %LINK-3-UPDOWN‥ |n亡erface %L工N且PROTO-5-UPDOWN: uP l ● l l l ● ● ● l ● l ● l l l ● ● ● see l l ● ● a l l l l l l l l l l l l l ● ● ● ● ● ' ● ● ● ● ● ● ● no亡ifica亡ion l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● l ● l ● l ● l ● l ● indica亡ing∴亡he l l l l l l ● ● ● ● ● ● PPPoE l l l l l l l l ● ● ■ ● ● ● ● ● session l l l l ● ● ● ● has formed: l 工n亡erface 亡O l Sh〇u|d %D|ALER-6-B|ND‥ S亡a亡e dial-POOl-number shutdown we||, !successfully l ip fO/O CPE(COnfig-if)# Line l l l l Vil l l l l l l l bound l l 亡O l l l l Vir亡ual-Accessl, pr〇亡OC〇l on l l l l Profile l l l l l l l l l l l l l l l l l l l l l l l l l l Dil Changed 工n亡erface s亡a亡e to up Virtual-Accessl, Changed l l l l l l l l l l 222 第6章 WAN 从例6-12可以看出,接口Dialerl已经通过例中的配置命令从ISP路由器协商到 了一个IP地址。 PPPoE验量臣 励6-12 CPE# sh゜w ip interface brief |P-Address In亡erface Fas亡E亡herne亡0/O OK? unass|gned Me亡hod Y耳S [...] Vir亡ual-Accessl Dialerl l l l l l l l ● ● ● ● ● ● ● !!! !! l l ● ● l ● l ● ● sh〇W ! l l ● ● l ● l l l l l l l l ● ● ● ● ● ● ● ● PPPOe DialerO, l l ● ● SeSSi〇n Via l l l l l l l ● ● ● ● ● ● ● Sh〇WS l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 工D ● l l ● ● l l ● ● l ● ' l l l l l l l l l ● ● ● ● ● ● ● ● ● ● PPPoE l ● session l l l l l ● ● ● ● ● l ● up up l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● |SP 亡he wi亡h up l ● l ● l ● l l l l l l l l l l l l ● ● ● ● ● ● ' ● ● ● ● ● 亡erminated rou亡er l ● l 1 ● ● on l l ● ● l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l ● l ● l ● l l ● ● l ● l ● l ● l ● l ● l ● l l ● ● l ● l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● SeSSion PPPoE RemMAC S工D N/A 工PCP up SeSSi〇n clien亡 Uniq ppp゜e l up unse亡 YES Our l show YES Pro亡OC〇l up FastE亡herne亡0/0‥ ● CPE# l l unass|gned lO.0.0.2 S亡a亡us manual Por亡 FaO/O caoO.4843.0008 16 Source LocMAC VA VA-st Dil Caol.4843.0008 Vil UP UP 3.认证 此时我们还需要考虑一个问题,那就是任何人都能通过PPPoE连接ISP网络,这 是一种不太令人满意的状态,因为我们需要将接人权限限制为可信客户端。为此需要 配置认证机制,这可能是目前最明智的做法。如前所述, PPP可以使用PAP或CHAP 来认证客户端,而且通常优选CHAP认证。为了说清楚PPPoE环境下的认证问题,下 面将利用用户名为PPP、密码为PPPpassword的本地用户账号配置ISP路由器(如 例6-13所示)。 PPPoE以J臣 励6-13 工SP l ● l ● ! l ● (C〇nfig) l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ! l ● We Nex亡 enforce l l l ● ● CHAP passw゜rd l ● ● l l l l l l l l l l I l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● # interface l ● ● l l l ● ● ● l l l l l ● ● l ● l ● l ● l ● l l ● ● l ● l ● l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l 亡erminate l l l l l l l l l l our l l l l ?D工ALER-6-UNBIND:工n亡erface %LINK-3-UPDOWN: l l l l l l l l ● ● ● ● ● ● ● ● ● l ● l ● l ● l ● authenticati゜n ' will PPPpassw゜rd l |n亡erface %L工NEPROTO-5-UPDOWN‥ l ● l ● l ● l ● l ● l ● l ● l ● ● l l l Vil l l l ● l ● l ● l ● l ● ● l l l ● ● ● ● l l l l l l l l l l l l ● ● ● ● ● ● ● ● l l ● ● ● l ● l ● l ● l ● l ● l ● l l l l l l l l l l l l l l l l 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l l l l l l ● ● ● ● ● ● ● ● ● l l l l l l l l ● ● ● ● ● l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l ● l l ● ● l ● l l l l l l l ● ● ● aS l l from l We l l l Can l l l l profile Changed |n亡erface on l 亡empla亡e l l ● l ● ● callin l unbound pr〇亡OCOI l vir亡ual l Vir亡ual-Accessl, Line l our SeSSion, clien亡 l l l ● l Chap l l on virtual-temPlate ● This l ppp # l au亡hentica亡ion l l l l ● !!! l ● l ISP(con壬ig-if) ● l ● 工SP(COnfig) l PPP l ● ! ● username # l ● See l l l l fr〇m l l l l l 亡he l l l l l ● l ● l l l l l l l ● logs ● ● ● on l l l ● CPE‥ l l l l l Dil 亡O s亡a亡e down Vir亡ual-Accessl, Changed 亡O s亡ate d〇wn l ● l ● l ● l ● !!! !!! l l l l l l ● ● ● To l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● reestablish l l l l ● ● ● ● the l l l l l l l ● ● ● ● ● ● ● l ● l ● l ● l ● connec亡ion l l ● ● l ● l ● l ■ from l l l l l ● ● ● ● ● CPE, l l l l l l ● ● ● ● ● ● We'll l l l l l ● ● ● ● ● need l l l ● ● ● 亡O l l l l l l ● ● ● ● ● ● en亡er l ● l l ● ● l ● the l ● l l l l l l l l l l l l l 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l l l proper credentials: l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l 以太网wAN 6.3 土nterface CPE(config)# CPE(config-if) l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● !!! ! We ! ! ! ! ! l l l l ● ● ● ● should see 亡O l l ● ● l ● l ● l l ● ● ′ ● l ● l l ● ● l l l l l l ● ● ● ● ● ● PPP‥ Using l ● l l ● l ● ● l ● l l ● ● l ● MyPassword l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● session au亡hen亡ica亡ing. l l l l ● ● ● ● vpn 亡he l l l l ● ● ● ● CHAP l l l l l ● ● ● ● ● Call se亡 PPP50 PPP: Trea亡ing PPP50 PPP‥ Session PPP50 PPP: Au亡horiza亡ion PPP50 CHAP‥ O PPP50 CHAP‥ I debug id PPP: Sent PPP: Received LOGIN Vil.1 PPP: Sen亡 AUTHOR Sen亡IPCP Vil.1 LCP‥ Vil.1 1PCP: Received Vil.1 CHAP‥ O Received l l PPP50 LCP LOG|N l l l l l ● ● ● ● ● as len len a few ● l l ● ● l l ● ● l ● seconds authenticati゜n Can l l ● ● ′ l l l l ● ● ● ● ● la亡er be l ● l l l l l ● ● ● ● ● l ● l ● l l l l 1 ● ● ● ● ' l l l ● ● ● af亡er used 亡he on |SP ● l l l l ● ● ● ● l ● l ● l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l ● l ● l ● l l ● ● l ● l ● l ● l l l ● ● ● l ● 1 ● callin Session id[50] from from "ISP" "CPE" PASS Reques亡 Reques亡 Response AAA∴AUTHOR l 24 24 Reques亡 AUTHOR id l a Response AAA∴AUTHOR SUCCESS ppp up l required RESPONS且id CHAP back ● direc亡ion connection CHALLENGE come l exchange: handle[E800003A] PPP50 PPP: l password PPP〇E moni亡Or PPP50 dialer chap the successfully rou亡er Vil.1 6.3 ppp # 223 len PASS Response PASS 4 以太网WAN 大家花时间研究一下以太网技术的备种功能及特性之后,就不会惊讶于业界已经 成功地将以太网技术从常规的局域网部署环境推向了广域网部署环境。十年前, 技术的协议及特性短名单中还包含帧中继、 Network,同步光网络) ATM、 SONET (Synchronous wAN Optical ,但如今随着地理上相互隔离的网络环境之间的带宽需求越来 越大,逐渐催生了一种新的网络互连解决方案。该解决方案利用以太网以及备种以太 网特性作为骨干网,这些技术包括但不限于VPLS 专用LAN服务)、 MPLS (Any-Transport 或QnQ (VIrtual (Multi-ProtocoI over MPLS , Label MPLS上的任意传输) 、 Tunel)以及城域以太网(Metro-Ethemet) 这些技术为我们创造了“无边界网络” Private LAN Services,虚拟 Switching,多协议标签交换)、 QnQ隧道(DotlQ-in-DotlQ ATOM Turmels 。 ,也就是可以在任何地方、任何时间提供服 务的网络。此外,这些技术还提供了通常仅在总部机构才能实现的类似于LAN的用 户性能,所有的这些都是通过EWAN (EthemetWide-AreaNetworks,以太网广域网) 投术来实现的。 以太网从最初的LAN技术逐步发展为适用于备种商业规模环境的可扩展的、性 价比高的、可管理的wAN解决方案。与传统的wAN解决方案相比,以太网能够节 约大量建设和运营成本,以太网wAN不但具有二层以太网的高带宽和简单性,而且 扁平化的网络设计使得所连接站点看起来就像单个逻辑网络一样,大大简化了远程站 点上连总部站点以及远程站点之间的互连问题。 为了便于讨论,下面将首先介绍VLPS (VPLS的设计目的是将二层连接传递到 攻城狮论坛 224 bbs.vlan5.com 第6章 #^_^# 版权归原作者所有 本资料仅供试读 . wAN EwAN配置中的所有端点) ,然后再介绍另一种被称为城域以太网的服务类型。人们 通常将这两种技术简称为二层VPN,而且这两类技术通常都将MPLS作为使能技术0 6.3.1 >PLs 运营商可以利用VPLS技术将备种WAN连接(IP或MPLS网络上的WAN连接) 整合为单一的逻辑以太网,从而可以在逻辑以太网中定义相应的QoS等级,以确保语 音和视频应用获得所需的带宽资源。 简而言之, VPLS就是一种允许MPLS网络提供多点以太网LAN服务(通常称为 TLS[Transparent 许CE (Customer LAN Service,透明LAN服务])的体系架构。多点网络服务指的是允 Edge,客户边缘)端点或节点与关联到该多点服务的其他所有CE 节点进行直接通信的一种服务。与此相反,使用点对点网络服务(如ATM)时,端用 户通常要指定一个CE节点成为中心站点,所有的分支站点都要连接到该中心站点上。 如果某个分支站点需要与其他分支站点进行通信,那么就必须通过中心节点。可以看 出,这种场景会引人额外的传输延迟。 为了提供多点以太网能力, IETF VPLS草案提出了利用MPLS PW (Pseudo-Vires, 伪线)连接虚拟以太网网桥的方案o VPLS在二层转发以太网帧的时候,其操作特性 与IEEE VPLS可以自主学习源MAC地址到端口的关联关系, 802.1网桥完全相同, 并且基于目的MAC地址转发帧。如果目的MAC地址未知或者是广播地址或多播地 址,那么就会将该帧泛洪到与虚拟网桥相关联的所有端口。虽然VPLS的转发操作相 对比较简单,但VPLS的体系架构要求必须具备以下功能: ■ 自动发现与特定VPLS实例相关联的其他PE (Provider Edge,提供商边缘) 设备; 6.3.2 ■ 支持PW信令以互连VPLS ■ 避免环路; ■ 撤销MAC地址0 VSI (VIrtual SwitchInstance,虚拟交换实例) ; 城域以太网 虽然MAN 以太网、 Dark (Metropolitan-Area MPLS上的以太网(E血emet Fiber) Network,城域网)环境中的以太网可以被用作纯 overMPLS)或裸光纤上的以太网(Ethemet over ,但无论采用哪种传输介质,我们都必须认识到在需要中等距离的骨干连 接或城域(同一个城市)连接的网络部署方案中,这种以太网wAN技术都是最佳方 案。为什么会有这么多不同的城域以太网解决方案呢,这是因为每种解决方案都有备 自的优缺点。例如,墓于纯以太网部署方案成本较低,但可靠性和扩展性较差,而且 通常仅限于小规模或实验部署环境。墓于裸光纤的部署方案对于拥有现成基础设施的 攻城狮论坛(技术+生活)2群 1813097 6.3 以太网wAN 225 场景来说很有用,而基于MPLS的部署方案虽然成本较高,但可靠性和扩展性很好, 通常用于大型企业网络环境。 下面将简要讨论基于MPLS的城域以太网部署方案,这是因为MPLS技术是CCIE R&S笔试学习中的常见投术。墓于MPLS的城域以太网在服务提供商网络中使用的是 MPLS,用户得到的以太网接口是铜线接口(如100BASE-TX)或光纤接口(如 100BASE-FX)。客户的以太网数据包经MPLS网络进行传输,服务提供商的网络也将 以太网作为底层技术来传输MPLSo因此,基于MPLS的城域以太网实际上是E血emet over MPLS LDP over Ethemeto (Latel 签(VC标签)和RSVP-TE Distribution (Resource Protocol,标签分发协议)信令协议不但可以为内部标 Reservation Protocol-Tra雕c Engineering,资源 预留协议一流量工程)提供站点到站点的信令功能,而且还可以为外层标签提供网络 信令功能。 此外需要注意的是,典型的城域以太网系统都是星型网络或网状拓扑结构,路由 器或服务器都是通过电缆或光纤介质进行互连的,这一点对于检测与排除城域以太网 故障来说非常重要。 备考任务 表6-5列出了本章所涵盖的主要协议。 表6-5 第6章的协议与标准 ∴ ー Point-t゜-PointProtocol(PPP) RFc1661 PPPinHDLc-1ikeFramIng RFc1662 PPPlntemetProtocolcontr゜IProtocol(lPCP) RFc1332 旧HeaderCompressionoverPPP RFc3544 PPPMu怕∥nkProtocol(MLP) RFc1990 PPPoE RFc2684 >irtualPrivate日\NService(>PLS) RFc4762 Metro-Ethemet(GMPLS) RFc6004 表6-6列出了与本章讨论过的串行链路有关的常用Cis∞ IOS命令。 226 第6章 WAN 表6-6 第6章的命令参考 全局模式;该命令可以为MLP创建虚模板接口并将用户移到虚 interfacevirtua1-temPIatenumbe′ 模板配置模式中 PPPa山hentication(P′Ofo∞″[p′Ofoco亿.」) 接口模式;该命令可以定义认证协议(FIAP.CHAP.EAP)以 [ifrleeded∥ife←nameldefauIt∥callin] 及其他参数 [oneJtime∥optionalI PPPmultⅢnk[bap] 接口模式;该命令可以在接口上肩用MLP PPPmultilinkfragment-delayde佃y-maX 接口模式;该命令可以根据延迟及接口带宽定义分段大小 PPPmultilinkgroupg′OuP一删mber 接口模式;该命令可以将物理接口关联到多链躇接口 接口模式;该命令允许在排队调度时将数据色交织到其他数据色 PPPmuItilinkinterleave 的分段之间 COmPreSS[predictorlstaclmppc 接口模式;该命令可以配置净荷压缩 [ignore-Pfc]] iprtpheader-C゜mPreSSion[passive] 接口模式;该命令可以虐用RTP头压缩 iptcpheader-C゜mPreSSion[passive] 接口模式;该命令可以雇用TcP头压缩 分类配置模式;该命令可以在MQc分类中启用RTP或TcP头 COmPreSSionheaderip[rtpltcp] 压缩 PPPqualftyperoe″fage 接口模式;该命令可以接照配置的百分比肩用LQM监控特性 debugpppnegotiati゜n 该命令可以启用调试功能,显示PPP协商的不同阶段 有关class-maP、 6.4 POlicy-maP以及service-POlicy命令的详细信息,请参见第5章0 理解与记忆 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试 主题,因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试 主题0 6.4.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查。 理解与记忆 6.4 6.4.2 227 定义关键术语 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: PPP、 压缩、 MLP、 LCP、 TCP头压缩、 NCP、 RTP头压缩、 IPCP、 VC、 CDPCP、 PVC、 PPPoE、 SVC、 LFI、 DTE、 CHAP、 PAP、二层净荷 DCE、接人速率、接人链 路、业务互通(使用MLP) 6.4.3 推荐读物 WWW http Cisco. com/c/enfusftd/docs/ios-XmⅥos他bds :∥ooIs. ietf l/con五guration/ orgthtml/draft-ietf12vpn-VPIs-1dp-09 1 5 -mⅥ〕ba- 1 5 -mt-bobk.html 本章主要讨论以下主题, ■ ′P多播。 第7章 ■P多播概述 IP多播的概念及协议是CCIR路由和交换笔试中的重要内容。基于IP多播的网络 应用在过去的几年中迅速增长,如今几乎所有的主要计算机园区网络都部署了某种形 式的多播机制。本章将首先分析多播的需求原因,然后说明多播编址的基本原理,最 后讨论如何在LAN中分发和控制多播流量0 7.1 ″我已经知道了吗? ”测试题 表7-1列出了本章的基本主题以及与之相应的测试题。 表7-1 〃我已经知道了吗? ”基本主题与测试题对照表 ∴ 为何需要多播? 1 多播IP地址 2一-4 利用IGMP管理多播流量的分发 5一-6 日\N多播优化 7 得分 为了提高每章前面的测试评价效果,请务必严格评分。参考答案请参见附录Ao l.一对多应用程序使用IP多播的原因有哪些? a.多播应用使用面向连接的服务 b.多播比单播使用的带宽更少 c.多播包可以从一个源端发给多个目的端 d.多播消除了冗余流量 2.下面关于多播地址的描述,哪一项是正确的? a.使用地址范围为223.0.0.0-239.255.255.255的D类地址 b.使用取值范围为8-24比特的子网掩码 c.可以是永久地址或暂时地址 d.仅当路由器配置了多播机制之后,才能在路由器的接口上输人多播地址作为 230 第7章IP多播概述 IP地址 3.下列哪些多播地址是预留地址且多播路由器不转发这些地址? a. 224.0.0.1和224.0.0.13 b. 224.0.0.9和224.0.1.39 c. 224.0.0.10和224.0.1.40 d. 224.0.0.5和224.0.0.6 4.对于下列三层多播地址对来说,哪一对多播地址使用相同的以太网多播MAC地址 OxoloO.5e4d.2643? a. 224.67.26.43和234.67.26.43 b. 225.77.67.38和235.77.67.38 c. 229.87.26.43和239.87.26.43 d. 227.77.38.67和238.205.38.67 5.下面有关IGMP查询消息与IGMP报告消息的描述,哪些是正确的? a.主机、交换机和路由器可以发起IGMP成员报告消息 b.主机、交换机和路由器可以发起IGMP查询消息 c.主机发起IGMP查询消息,路由器发起IGMP成员报告消息 d.主机发起IGMP成员消息,路由器发起IGMP成员查询消息 e.主机和交换机发起IGMP成员消息,路由器发起IGMP成员查询消息 6.假设某多播LAN网络中有7台主机使用IGMPv2,主机5、 6、 7是多播组226.5.6.7 的成员,其他4台主机不是该多播组的成员。如果主机7发送了多播组226.5.6.7 的IGMPv2离开消息,那么下面关于路由器响应方式的描述,哪些是正确的? a.向多播目的地址224.0.0.1发送一条IGMPv2通用查询消息 b.向多播目的地址224.0.0.1发送一条IGMPv2特定多播查询消息 c.向多播目的地址224.5.6.7发送一条IGMPv2特定多播查询消息 d.首先向多播目的地址224.5.6.7发送一条IGMPv2特定多播查询消息,然后向多 播目的地址224.0.0.1发送一条IGMPv2通用查询消息 7.下面有关CGMP和IGMP监听的描述,哪些是正确的? a. b. cGMP和IGMP监听用于限制多播流量在LAN交换机中的泛洪 CGMP是αsco专有协议,使用周知的二层多播MAC地址OxOloO.Ocdd.dddd c. 1GMP监听适用于多厂商混合环境,但是如果在纯二层交换机上部署该特性, 那么将会导致交换机性能大幅下降 d. CGMP的部署很简单,对于CGMP来说,仅需要路由器发送CGMP消息,交 换机只要侦听CGMP消息即可 e.以上答案均正确 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 7.2 为何需要多播 231 墓本主题 7.2 为何需要多播 相拉图的《理想国》中的谚语“需求是发明之母”也完全适用于技术领域。在20 世纪80年代后期, Steve Deering博士从事的一项研究工作要求其从一台计算机通过三 层网络向一组计算机发送消息。仔细分析了多种路由协议之后, Deering博士认为可以 扩展现有的路由协议以支持“三层多播”功能。在对该概念做了进一步研究之后, Deering博士在1991年发表了名为“Multicast Routing in a Data′gran Netwock”的博士 论文,定义了IP多播的概念、功能以及每种功能之间的相互关系。 有关IP多播的最基本的定义如下: 从单个源端通过三层网络在单个数据流中向多个选定的目的端发送消息。 如果需要从一个源端向一个目的端发送消息,那么就可以发送一条单播消息。如 果希望从一个源端向本地网络中的所有目的端发送消息,那么就可以发送一条广播消 息。但是,如果希望从一个源端通过路由式网络在单个数据流中向多个选定的目的端 发送消息,那么最有效的方法就是IP多播。 现如今,多播应用的需求随着下列应用的大量出现而变得越来越强烈:音频和视 频Web内容,通过Intemet广播TV节目、无线电节目以及音乐会,向经纪人发送股 票报价,向员工发送企业消息以及从集中式仓库向大量零售店传送数据等。一对多多 播应用的成功催生了第二代被称为“多对多”和“多对少”的多播应用。这些应用都 存在多个多播流量源,如在内联网或互联网上玩游戏,或者召开交互式音视频会议等。 本章和下一章将主要讨论部署一对多多播应用时的相关概念及技术0 7.2.1单播和广播存在的问题 为什么不使用单播或广播方式从单个源端向多个目的端发送消息呢?如图7-1所 示,图中的视频服务器作为视频应用的源端,发送给一组接收端(H2、 H3和H4)的 视频数据需要通过wAN链路经过两跳之后才能到达接收端。 单播要求视频应用向每个组成员的单播地址都发送一份数据包拷贝。如果要支持 全动态、全屏观看,那么每个接收端的视频流需要的带宽约为1.5Mbit/so如果只有少 数接收端(如图7 ̄1所示),那么单播方式还可以接受,但所需的带宽量也达到了nx l.5Mbit/s,其中的n是接收端主机的数量。 如图7-2所示,如果接收端的数量达到了几百或几千个,那么服务器创建和发送 攻城狮论坛(技术+生活)2群 1813097 . 232 第7章IP多播概述 相同数据的负荷也将大大增加,而且重复的单播传输过程将消耗网络中的大量带宽资 源。如果有100个用户(如图7-2左上角所示),那么发送单播数据的带宽需求将达到 150Mbit/s;如果用户数达到1000个,那么带宽需求将急剧增大到1.5Gbit/so 视频 服务器 二三二■ 霸 > 1.5 Mbit/sx 3 = 4.5 Mbit/s i童萨 /心 疆 疆毒 疆 图7-1单播 视频 服务器 > > > > ∴ 墅毒 图7-2 疆毒 i童蘸 圈隅 墅≒ …墅≒ 单播无法扩展到大量接收端 从图7-2可以看出,单播方法的扩展性很差。虽然图7-3所示的广播方法只需要 发送一次数据,但广播也同样存在一些严重的问题。首先,如果接收端与发送端不在 7.2 为何需要多播 233 同一个广播域中,那么路由器就要转发广播流量。但转发广播流量可能是最差到一种 解决方案,因为如果网络中只有少量主机需要接收数据包,那么在网络中广播数据包 会浪费大量带宽资源,而且还会增加所有网络设备的处理负荷。 视频 服务器 二≡≡≡壬 霸 > 1.5 MbⅣs 矗昆 疆占 我没有请求该流量 为何还要处理该流 量呢? 图7 ̄3 7.2.2 广播会浪费大量带宽并增加cPU的处理负荷 多播提供可扩展可管理解决方案的方式 如果要在路由式网络上支持多播特性,那么必须满足以下基本需求。 ■ 必须指定一定范围的三层地址,这些地址仅供多播应用使用。网络管理员需 要利用指定地址空间内的三层多播地址在多播服务器上安装多播应用。 ■ 多播地址只能用作目的IP地址,绝不能用作源IP地址。与单播IP数据包不 同,多播数据包中的目的IP地址并不指定单个接收端的地址,而是表示该数 据包携带了指定多播应用的多播流量。 ■ ■ 网络中所有需要接收该多播应用发送的多播流量的主机都必须安装多播应 用。安装多播应用时,必须使用与多播服务器所用三层多播地址相同的多播 地址,通常将该过程称为启动多播应用或加人多播组。 连接在LAN上的所有主机都必须使用标准方法将三层多播地址计算为二层 多播地址,并分配给备自的NIC (Network Interface Card,网络接口卡)。例 如,如果多台路由器都连接在一个以太网网段上,而且均使用OSPF Shortest Path First,开放最短路径优先)路由协议,除了BIA (Open (Buned-1n 234 第7章IP多播概述 Addresses,固化地址)之外,所有路由器都还在备自的以太网接口上侦听二 层多播地址OxOloO.5eoO.0005 ,该二层多播地址OxOloO.5eoO.0005是从三层多 播地址224.0.0.5计算得到的(该三层地址是OSPF路由协议的预留地址)。 ■ 主机必须能够通过某种机制告诉其连接的路由器,是否希望接收已安装的多 播应用的流量o IGMP (Intemet Group Management Protocol, Intemet组管理 协议)就为连接在相同子网上的主机与路由器提供了相应的通信机制o (Cisco Groxp Management Protocol, CGMP Cisco组管理协议)或IGMP监听(IGMP Snooping)能够帮助交换机了解哪些主机请求接收特定多播应用的流量以及 这些主机都连接在哪些交换机端口上。 ■ 路由器必须能够通过某种多播路由协议将多播流量从多播服务器转发给主 机,而不会过度使用网络资源。常见的多播路由协议主要有DVMRP Vector open Multicast Shortest Independent (ProtocoI Routing Path Protocol , MOSPF First,多播开放最短路径优先)以及PIM-DM Multicast Independent ,距离矢量多播路由协议) (Distance Dense Multitast (Multicast (Protocol Mode协议无关多播一密集模式)和PIM-SM Sparse Mode ,协议无关多播一稀疏模式) 。 本章将讨论前面的5个需求,有关多播路由协议的详细信息请参见第8章。 图7-4显示了多播流量在三层网络中的转发方式,该示意图的目的是从总体上让 大家了解多播流量的转发方式以及特定主机的接收方式。 视频 服务器 氰 > 上5 MbⅣs ≡酵…≡甄 MM‥ OxOl oO.5eO5.0505 MM=多播MAc地址 图7-4 多播将流量转发给特定用户的方式 墓≒ MM. OxOl oO.5eO5.0505 …≡甄 MM: OxOl oO.5eO5.0505 7.2 为何需要多播 假设安装在视频服务器上的视频多播应用使用的三层多播地址是255.5.5.5 1-50 235 ,主机 (通过wAN链路进行连接)目前不希望接收该多播应用的流量,而主机51- 100希望接收该多播应用的流量,并在各自的PC上启动了该多播应用。主机启动了多 播应用后,就能加人该多播组,意味着主机希望接收发送到255.5.5.5的多播包。主机 51-100加人了多播组255.5.5.5,并通过IGMP告诉R2希望接收该多播应用的流量。 多播应用根据三层多播地址255.5.5.5计算出二层多播地址OxoloO.5eO5.05050主机 51-100的NIC除了侦听备自的BIA之外,还将侦听该二层多播地址o Rl和R2都配置了多播路由协议,因而可以转发多播流量o R2通过一条wAN 链路连接到帧中继网络上,同时还提供两条以太网链路连接了两台交换机(Sw2和 Sw3) o R2知道这两条以太网链路上都有主机希望接收多播组255.5.5.5的多播流量, 因为这些主机都已经通过IGMP告诉R2希望接收该多播组的流量o SW2和SW3通 过CGMP或IGMP监听特性也能知道哪些端日上有主机希望接收该多播应用的多播 流量。 视频服务器将多播包经以太网链路传输到Rl之后, WAN链路发送给R20 Rl将多播包的一份拷贝经 R2在WAN链路上收到目的地址为255.5.5.5的多播包之后,会 生成该多播包的拷贝,并通过每条以太网链路转发一份拷贝。由于该多播包是多播组 (多播应用) 255.5.5.5 的多播包,因而R2 计算出的二层目的多播地址是 OxOloO.5eO5.0505 ,并将该地址用作其转发给两台交换机的每个多播包的目的MAC地 址。交换机收到多播包之后,会通过相应的端口将这些多播包转发主机。主机收到这 些多播包之后, NIC将目的MAC地址与它们正在侦听的多播MAC地址进行比较, 由于这两个地址完全匹配,因而通知上层协议处理这些多播包。 从图7-4可以看出,多播流量经wAN链路发送一次之后,请求接收多播流量的 所有主机均收到了该多播流量。即使还有其他主机希望接收相同的多播流量,也不会 对多播服务器或网络资源造成任何额外负担(如图7-5所示)。 假设主机1 -50也通过IGMP告诉R2希望接收多播组255.5.5.5的流量。由于R2 已经将多播流量转发给了两台交换机, CGMP或IGMP监听机制能够帮助SW2 (如 图7-5所示)获知主机1-50也请求接收该多播组的多播流量,因而Sw2可以在相应 的交换机端口上将多播流量转发给主机1 -500这样一来新增的50个用户也能收到该 多播流量,但多播服务器的负荷、其他网络设备的负荷以及wAN链路的带宽需求都 没有发生任何变化。图7-5中sw2的负荷增加的原因是必须生成50份多播流量拷贝 并通过50个交换机端日转发给50个用户,不过此时Sw2的负荷也只是与另一台交换 机相同而已。因此可以看出, IP多播具有很好的扩展性。 虽然多播有很多优点,但同样也有一些缺点。多播基于mP,因而不够可靠,而 且缺乏TCP的窗口机制和“慢启动”机制,很容易产生拥塞。此外,某些多播协议机 236 第7章IP多播概述 制偶尔也会产生重复的数据包,而且发送的数据包也会出现失序问题。 -≡再童疆酵-=于萤蜜 多播数据包 ._ 目的地址‥225.5.5.5 l二乡 源地址:209.165.20上1 霸L..一围疆 疆霸罗 ̄  ̄叠酵 MM 图7 ̄5 7.3 叠毫…叠毒 =多播MAC地址 多播具有很好的扩展性 多播IP地址 多播应用始终使用多播地址,这里所说的多播地址表示多播应用,被称为多播组。 与单播IP地址唯一标识单个IP主机不同,用作IP数据包目的地址的多播地址表示该 数据包携带了去往指定多播组的流量。例如,如果目的地址为225.5.5.5的多播包在网 络中进行传输,那么就意味着其正在告诉网络设备“我携带了使用多播组地址255.5.5.5 的多播应用的流量,谁希望接收这些流量? ”请注意,不能将多播地址分配给网络设 备,因而多播地址始终不可能是源地址,多播包(或者任何IP包)的源地址必须是单 播地址0 7.3.1多播地址范围及结构 蒜 IANA (IntemetAssignedNumbers 址分配给了多播应用o Authority’互联网编号分配机构)将D类IP地 D类地址的第一个八位组的前4个比特始终是1Ⅱ00 址的范围是224.0.0.0-239.255.255.2550 IP多播地 由于这些多播地址表示的是多播组(应用) 而不是主机,因而多播地址不需要子网掩码(因为它们不是层次化地址)。也就是说, 多播地址只有一个要求,那就是第一个八位组的前4个比特必须为1Ⅱ0,后面的28 ′ 7.3 多播IP地址 237 个比特没有任何特殊的结构要求0 7.3.2 周知多播地址 IANA负责分配IP多播地址。为了有效利用多播地址, IANA通常不愿意为新的 多播应用分配独特的IP多播地址,除非拥有强有力的技术理由。不过, IANA已经为 很多流行的网络协议分配了独特的IP多播地址。 目前IANA已经因为某些特殊原因分配了特定的IP多播地址范围: ■ 永久多播组的多播地址范围是224.0.0.0-224.0.1.255; ■ sSM使用的多播地址范围是232.0.0.0-232.255.255.255; ■ GLOP地址范围是233.0.0.0-233.255.255.255; ■ 私有多播地址范围是239.0.0.0-239.255.255.2550 本节将讨论上述4类保留的IP多播地址,其余多播地址则被称为临时组(transient group)的多播地址,详细内容将在本章“临时组的多播地址”一节进行讨论0 1.永久组的多播地址 IANA预留了两段永久多播IP地址,这两个地址范围的区别在于第一个多播地址范 围用于不由路由器转发的数据包,而第二个多播地址范围用于由路由器转发的数据包。 用于本地(非路由)用途的多播地址范围是224.0.0.0-224.0.0.255,大家在本书 前面讨论过的路由协议中可能已经对这类地址有了一定的了解。例如, OSPF使用的 IP地址224.0.05和224.0.06就属于该多播地址范围。其他的IP多播地址案例还有 224.0.0.1 ,该地址表示本地网段上的所有具备多播功能的主机都要检查该数据包。与 此相似,如果数据包的IP多播目的地址是224.0.0.2,那么就表示本地网段上所有具备 多播功能的路由器都要检查该数据包。 可路由数据包使用的永久多播地址范围是224.0.1.0-224.0.1.255,该地址范围包 含224.0.1.39和224.0.1.40 ,这两个地址是Cisco专有Auto ̄RP (Auto-Rendezvous Point, 自动聚合点)协议(参见第8章)使用的地址。表7-2列出了永久组地址范围中的部 分周知地址。 表7-2 部分保留的周知多播地址 / 224.O.O.1 盒部多播主机(A∥multicasthosts) 224.0.O.2 全部多播路由器(AIImuIticastrouters) 224.O.O.4 D>MRP路由器(DVMRProuters) 224.O.O.5 全部OSPF路由器(A"OSPFrouters) 224.O.O.6 OSPF指派路由器(OSPFdesignatedrouters) 攻城狮论坛 238 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 第7章IP多播概述 224.0.0.9 RIPv2路由器(RIPv2routers) 224.0.0.10 EIGRP路由器(EIGRProuters) 224.0.0.13 PIM路由器(PIMrouters) 224.0.0.22 lGMPv3 224.0.O.25 RGMP 224.0.1.39 CiscoRP宣告(Cisco-RP-Announce) 224.0.1.40 ciscoRP发现(cisco-RP-Discovery) 2. ssM应用及协议的多播地址 IANA将多播地址范围232.0.0.0 -232.255.255.255分配给了SSM (Source-Specific Multicast,指定源多播)应用及协议,这类应用的目的是允许主机为多播组选择源端o SSM可以提高多播路由的效率,允许主机选择质量更好的源端,同时还能帮助网络管 理员尽量减小多播DoS 3. (Denial ofService,拒绝服务)攻击的影响0 GLOP编址的多播地址 IANA为试验目的预留了一个特殊的多播地址范围223.0.0.0-233.255.255.255 (RFC 3180) ,称为GLOP编址。任何拥有注册ASN (Autonomous SystemNumber,自 治系统号)的个人或组织都可以利用该地址范围创建由该实体拥有并使用的256个全 局多播地址。基于相似的原因,每个自治系统都应该使用一个已分配的唯一的ASNo 只要在第一个八位组使用233,在第二个和第三个八位组使用ASN,单个自治系 统就能创建GLOP编址RFC所定义的全局唯一的多播地址。例如,假设某自治系统使 用已注册的ASN5663,那么就可以将ASN5663转换为二进制(0001011000011111)。 前8个比特(00010110)等于十进制22,最后8个比特(00011Ⅱ1)等于十进制31, 将前8个比特和后8个比特分别映射到233多播地址范围中的第二个八位组和第三个 八位组,那么为拥有ASN 5663 的实体自动分配的地址范围就是233.22.31.0- 233.22.31.2550 4.私有多播域的多播地址 本节提到的最后一个保留多播地址范围是管理范围地址(administratively addresses)o IANA将地址范围239.0.0.0-239.255.255.255 攻城狮论坛(技术+生活)2群 (RFC scoped 2365)分配给私有多 1813097 . 7.3 播域,与RFC 多播IP地址 239 1918 中定义的IP单播地址空间(即10.0.0.0/8、 172.16.0.0/12及 192.168.0.0/16)非常相似。 IANA不将管理范围地址分配给任何其他协议或应用,网 络管理员可以任意使用该地址范围内的多播地址。需要注意的是,必须配置多播路由 器,以确保该地址范围内的多播流量不会离开其多播域边界0 7.3.3 临时组的多播地址 如果企业希望使用全局唯一的单播地址,那么就需要从ISP或IANA获得一段地 址。但是,如果企业希望为全局多播应用使用多播地址,那么就可以使用不属于周知 永久多播地址的任何多播地址。通常将剩余的这些多播地址称为临时组或临时多播地 址,表示整个互联网都必须共享该临时多播地址,必须根据需要动态分配这些地址, 同时还要在用完之后释放这些地址。 由于不会将这类地址永久分配给任何多播应用,因而将这些地址称为“临时”地 址。任何企业都可以使用这些地址,而不用注册或得到IANA的许可,但是要求企业 在用完之后必须释放这些多播地址。截至本书写作之时,还没有使用临时地址的可用 标准方法。但目前IETF正在开展相关研究工作,希望为动态分配的多播地址定义并 部署一种标准化的方法0 7.3.4 多播地址范围小结 表7-3列出了各种不同的多播地址范围及其用途。 表7-3 224.O.O.O-239.255.255.255 多播地址范围及其用途 该地址范围表示整个IPv4多播地址空间,保留给多播应用使用 该地址范围属于永久组的一部分,lANA将该地址范围的地址分配给本地网段上 224.O.O.0一-224.O.0.255 的网络协议,路由器不转发目的地址属于该地址范围的数据色 该地址范围属于永久组的一部分,lANA将该地址范围的地址分配给转发到整个 224.O.1.O-224.O.1.255 网络范围的网络协议,路由器转发目的地址属于该地址范围的数据色 232.O.O.0-232.255.255.255 该地址范围用于ssM应用 该地址范围称为GLOP地址,可以为拥有注册ASN的企业自动分配256个多 233.O.O.O-233.255.255.255 播地址 239.O.O.O一-239.255.255.255 该地址空问用于私有多播域,这些地址被称为管理定界的多播地址 这些地址范围内的地址被称为临时组,任何企业都能从临时组中为拿局多播应 多播地址空问中的剩余地址范围 用分配多播地址,但是必须在用完之后释放这些地址 240 第7章IP多播概述 7.3.5 将IP多播地址映射为MAc地址 为多播组(应用)分配了三层多播地址之后会自动生成二层多播地址。图7-6给 出了从三层多播地址得到多播MAC地址的计算方式,该多播地址的构成方式为‥首 先是IEEE注册的OU1 计算方式与以太网和FDDI 01115E,然后是二进制0,接着是23比特的多播IP地址。该 (Fiber Distributed Data Interface,光纤分布式数据接口)完 全相同。 多播IP地址 二进制形式 ①1110 的IP地址 ②十六进制 01  ̄00 ̄5E 01  ̄OO-5E ⑥ 图7-6 01 -00-5E-OA-1 8-05 从多播目的IP地址计算多播目的MAC地址 为了更好地理解上述计算过程,下面将按照图7 ̄6中的步骤进行解释。 第1步:将IP地址转换为二进制形式。请汪意前4个比特,所有多播IP地址的 前4个比特均为1Ⅱ00 第2步:将IP地址的前4个比特1Ⅱ0用6个十六进制数字(或24比特)01 ̄00 ̄5E 代替,作为多播OUI,放到多播MAC地址的12个十六进制数字(或48比特)中。 第3步:将二进制IP地址中接下来的5个比特替换为多播MAC地址中的一个二 进制数字00 第4步:将二进制IP地址的最后23个比特复制到多播MAC地址的最后23个比 特中。 第5步:将多播MAC地址的最后24个比特从二进制形式转换为6个十六进制 数字。 第6步:将前6个十六进制数字01-00-5E与后6个十六进制数字(第5步计算结 7.4 利用IGMP管理多播流量的分发操作 241 果)合在一起,就可以得到完整的12个十六进制数字显示的多播MAC地址。 不幸的是,该方法并不能为每个多播IP地址提供一个唯一的多播MAC地址,这 是因为只有IP地址的最后23个比特映射到了MAC地址。例如, IP地址238.10.24.5 与228.10.24.5生成的MAC地址完全相同,都是OxOl-00-5E-OA-18 ̄050事实上,由于 IP地址的5个比特始终映射为0,因而25 址都相同o (32)个不同的D类IP地址生成的MAC地 IETF指出,同一个LAN中的两个多播应用生成完全相同的MAC地址的 几率非常低。如果碰巧出现这种情况,那么就可以在三层识别来自其他IP多播应用的 数据包并丢弃该数据包。不过,网络管理员在部署多播应用时还是应该小心谨慎,避 免使用可能产生相同MAC地址的IP地址0 7.4 利用IGMP管理多播流量的分发操作 如图7-4所示,假设R2开始接收来自服务器的多播流量。由于R2必须对如何在 以太网链路上转发多播流量做出决策,因而必须知道以下问题的答案。 ■ 是否有连接在我的以太网链路上的主机对于接收该多播流量感兴趣? ■ 如果没有主机对于接收该多播流量感兴趣,那么我为什么要在以太网链路上 转发该流量,从而浪费带宽呢? 如果有主机对于接收该多播流量感兴趣,那么它们位于何处?它们是否连接 ■ 在我的某条以太网链路上或者同时连接在我的两条以太网链路上? 由此可以看出,主机与本地路由器之间需要通过某种机制进行相互通信, IGMP 就被用来为路由器与其所连接的主机提供该通信机制。 不仅路由器需要知道应该通过哪个LAN接口转发多播流量,交换机也需要知道 应该通过哪个LAN接口转发多播流量。在默认情况下,如果交换机在某个端口上收 到了多播帧,那么就会在整个vLAN中泛洪该多播帧。这一点与广播帧或未知单播帧 的处理方式相同,其原因在于交换机无法在其CAM (Content Addressable Memory, 内容可寻址内存)表中找到多播MAC地址,因为多播地址始终不可能被用作源地址。 如果交换机决定泛洪多播帧,那么就意味着即使vLAN中只有部分主机请求接收 该多播组的流量,也会导致同一vLAN中的其余主机也会收到该多播流量(无论是否 请求接收该多播组的流量) 。该操作行为与多播设计的初衷完全相悸,多播的设计初衷 是希望仅将多播流量发送给请求接收多播流量的主机,从而最大化地提高带宽利用率。 为了更有效地转发图7-4中的流量, ■ SW2和SW3必须知道以下问题的答案。 我应该在本vLAN中的所有端口上转发该多播流量,还是应该在特定端口上 转发该多播流量? ■ 如果我应该在本vLAN的特定端口上转发该多播流量,那么我如何发现这些 端口号呢? 242 第7章IP多播概述 CGMP、 IGMP监听(IGMP Snooping)以及RGMP等三种工具就可以回答上述问 题,从而帮助交换机优化它们的多播转发逻辑。有关这些工具的详细信息将在本章后 续内容进行讨论。目前本节主要关注路由器和主机如何利用IGMP来确定路由器是否 知道应该通过路由器的LAN接口向外转发多播流量0 7.4.1加入多播组 在主机能够接收多播流量之前,必须在主机上安装多播应用。通常将安装并运行 多播应用的过程称为启动多播应用或加人多播组。主机加人多播组之后,主机软件会 首先计算多播MAC地址,然后NIC除了侦听BIA之外,还会开始侦听该多播MAC 地址。 在主机(或用户)加人多播组之前,用户需要知道有哪些可用多播组以及如何加 人这些多播组。对于企业范围内的多播应用来说,用户可以很容易地在网页上找到相 关链接并点击这些链接,然后就会提示用户的多播客户端应用程序以正确的多播地址 开始工作(完全隐藏了多播地址的细节信息)。作为可选方式,对于内部开发的多播应 用来说,可以在客户端应用程序上预先配置多播地址。例如,可能要求用户登录服务 器并提供用户名和密码进行认证。如果用户通过了认证,那么就在用户的PC上自动 安装多播应用程序,意味着该用户已经加人了多播组。如果用户不再希望使用该多播 应用,那么就必须退出该多播组。例如,用户只要简单地关闭该多播应用程序即可离 开该多播组。 在上述过程中,发现需要侦听的多播IP地址以及加人多播组都具有一定的挑战 性,特别是针对互联网上的多播流量。此时与家里安装了卫星电视或数字有线电视系 统一样,虽然家里可能拥有数千个电视信道,但是找到自已想看的电视节目却需要花 费大量的时间来测览节目单。对于IP多播来说,用户需要发现自己可能感兴趣的多播 应用以及这些多播应用的多播IP地址。虽然该领域还有大量工作有待完成,但目前已 经有了一些可选方式。例如,在线电视节目指南和基于w屯b的时间表将利用多播组推 送事件通告,并且指定相应的联系人(如果希望查看该事件、讲座或音乐会)o (Session Description Protocol,会话描述协议)与SAP (Service Advertising SDP Protocol, 服务宣告协议)等工具也可以描述并通告多播事件,但是有关这些方法的细节信息以 及它们的限制条件和使用流程等内容都超出了本书的写作范围,本节的后续内容将假 设主机已经通过某种方式了解了多播组0 7.4.2 1GMP IGMP来源于Steve Membership Protocol) Deering博士发表的博士论文中提到的主机成员关系协议(Host ,从最初的IGMPvl (RFC ll12)逐步发展到IGMPv2 (RFC 2236) 7.4 以及目前最新的IGMPv3 IP协议号是2,且IP 值的缘故, (RFC TTL 3376)o 利用IGMP管理多播流量的分发操作 243 IGMP消息通过IP数据报进行发送,相应的 (Time ̄Tb ̄Live,生存时间)字段设置为10由于TTL字段 IGMP数据包只能在LAN中进行传送,路由器不转发IGMP数据报。 IGMP的两个主要目标如下: ■ 告知本地多播路由器,主机希望接收指定多播组的多播流量; ■ 告知本地多播路由器,主机希望离开指定多播组(也就是说,主机不再希望 接收该多播组的流量) 。 多播路由器利用IGMP为每个路由器接口维护下列信息:应该转发哪些多播组流 量,以及哪些主机希望接收这些多播流量。 下一节将详细解释IGMPv2并说明IGMPv3的重要功能特性。请注意, IGMP操 作方式示意图中都没有显示二层交换机,这是因为IGMP是为路由器和主机提供通信 机制的,本章将在后面的“CGMP”和“RGMP”两节详细讨论二层多播的操作方式。 在路由器上配置了多播路由和PIM之后,就可以自动启用IGMPo可以逐个端口 更改IGMP的版本,目前的默认版本是版本20 7.4.3 1GMPv2 图7-7给出了长度为8个八位组的IGMPv2消息格式。 8 16 未用 校验和 8 版本 类型 组地址 图7-7 1GMPv2消息格式 IGMPv2消息包含以下四个字段。 ■ 类型(rype)字段: 8比特字段, IGMPv2定义了4种消息类型。 一成员查询(MembershipQuery)消息(类型代码=Oxll):多播路由器利用 该消息发现子网中的组成员。通用成员查询(General 消息将组地址(Group Membership Query) Address)字段设置为0.0.0.0,指定组查询 (Group ̄Specific Query)消息将组地址字段设置为被查询组的地址。路由 器收到主机发送的IGMPv2离开组(Leave Group)消息之后就会发送成 员查询消息。 一版本1成员报告(version l MembershipReport)消息(类型代码=Ox12): 244 第7章IP多播概述 IGMPv2主机通过该消息实现IGMPvl的后向兼容; 一版本2成员报告(Version 2 MembershipReport)消息(类型代码=Ox16): 组成员发送该消息以告诉路由器目前子网中至少还有一个组成员。 一离开组(Leave Group)消息(类型代码=Ox12):如果某组成员是组中最 后一个成员,那么该组成员在离开组之前就会向路由器发送该消息。 ■ MRT (MaximumResponseTime,最大晌应时间)字段: 询消息包含该字段。单位为1/10秒,默认值为100 1-255 ■ 8比特字段,仅查 (即10秒),取值范围为 (即0.1-25.5秒); 校验和(Checksum)字段:携带源端计算出的16比特校验和。虽然IGMPv2 消息的长度仅为8字节,但IGMP检验和是对整个IP净荷进行计算得到的, 而不仅仅对前8个八位组进行计算。 ■ 组地址(GroupAddress)字段:通用查询消息中的该字段被设置为0.0.0.0, 指定组查询消息中的该字段被设置为组地址。成员报告消息携带的是该字段 所报告的组地址,而离开组消息携带的是该字段剩下的组地址o IGMPv2完全后向兼容IGMPvlo IGMPv2的类型代码Oxll和Ox12与IGMPvl的 成员查询消息及成员报告消息的类型代码完全匹配。因此,如果网络中存在IGMPvl 主机或路由器,那么IGMPv2主机和路由器也能识别IGMPvl消息。 制定IGMPv2的一个主要原因是提供更好的离开机制,以缩短IGMPvl的离开延 迟o IGMPv2的主要功能特性如下。 ■ 离开组消息‥为主机提供了一种可以告诉路由器其希望离开多播组的方法。 ■ 指定组查询消息:允许路由器发送针对指定多播组(而不是所有多播组)的 查询消息。 ■ 最大晌应时间字段:是查询消息中的一个字段,允许路由器指定MRTo主机 成员关系报告(Host Membership Report)消息可以利用该字段调节响应时间。 如果子网中存在大量活跃的多播组且希望降低响应时间的突发性(通过在更 长的时间段分摊响应时间) ■ ,那么该特性将非常有用。 查询路由器选举进程:如果多台路由器都连接在同一个子网上,那么就可以 通过该特性为查询消息的发送选择优选路由器o IGMPv2允许网络管理员更改查询响应间隔(Query Response Interval) 有效减少主机为响应IGMPv2查询消息而发送的IGMPv2请求报告(Solicited ,从而能够 Report) 消息的突发性。将MRT值(取值范围为0.1-25.5秒)设置为稍大于10秒,可以将 主机发送的大量IGMPv2请求报告消息分摊到更长的时间段内,从而更均匀地使用子 网带宽和路由器资源。需要注意的是, 设置为3秒钟,那么就应该设置为300 MRT的单位是0.1秒。例如,如果要将MRT 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 利用IGMP管理多播流量的分发操作 7.4 245 多播主机在响应查询消息时,可以发送IGMP报告消息,或者仅仅发送报告消息 (如果主机第一次启动该多播应用) o IGMPv2路由器充当IGMPv2查询路由器的角色, 每60秒发送一条IGMP通用查询消息。有关IGMPv2通用查询消息及报告消息的操作 方式将在后面介绍0 1. 1GMPv2主机成员关系查询功能 从图7 ̄8可以看出,多播路由器通过LAN接口向外发送IGMPv2主机成员关系查 询消息以确定多播组成员是否在接口上。路由器每隔一个查询周期(默认为60秒钟) 就要发送这些主机成员关系查询消息。主机成员关系查询消息使用的目的IP地址和 MAC地址分别为224.0.0.1和01-00-5e-00-00-01 器的接口IP地址和BIAo为了避免路由这些数据包, ,源IP地址和MAC地址分别是路由 IGMPv2查询消息使用的TTL 为10 侦听以下MM: 侦听以下MM: MMl MM2 ① -00-5e-00-00 ̄01 01 01-00-5e-Ol-01-01 01 01 -00-5e-00-OO-01 -00 ̄5e-01  ̄01 -01 10.1.1.O/24 lGMPv2主机成 员关系查询消息 “有人希望接收那 些多播视的流量吗?” `■_ ② .10 '■ ̄ 堑占 FaO/1 图7-8 疆占 1GMPv2主机成员关系查询进程 IGMPv2主机成员关系查询进程的步骤如下。 了蒜 第1步:主机Hl和H3加人多播组226.1.1.10这些主机准备接收发送给226.1.1.1 谭意(已加人的多播组)和224.0.0.1 (IGMPv2查询消息将要发往的地址)的消息o加人多 播组之后,这两台主机会计算出两个MM (Multicast MAC,多播MAC)地址: 01-00-5e-01-01-01 (从226.1.1.1计算得到)和01-00-5e-00 ̄00-01 (从224.0.0.1计算得 到),然后再侦听发送给这两个MM的帧。 第2步: Rl周期性地通过每个LAN接口向外发送IGMPv2主机成员关系查询消 攻城狮论坛(技术+生活)2群 1813097 246 第7章IP多播概述 息,以查找是否有主机希望接收多播组的多播流量。发送完IGMPv2查询消息之后, Rl期望已加人多播组的主机应答IGMPv2报告消息。 此时路由器Rl还不知道是否有主机希望接收多播流量。下一节将讨论主机利用 IGMP报告消息告知路由器Rl希望接收多播流量的方式0 2. 1GMPv2主机成员关系报告功能 主机使用IGMPv2主机成员关系报告消息作为IGMP查询消息的应答消息,并告 知本地路由器希望接收哪些多播组的多播流量。 对于IGMPv2来说,主机会在下列两种情况下发送主机成员关系报告消息。 ■ 主机收到来自本地路由器的IGMPv2查询消息之后,需要发送IGMPv2主机 成员关系报告消息,以说明自已希望接收哪些多播组的多播流量。此时将该 报告消息称为IGMPv2请求主机成员关系报告(Solicited Host Membership Repo巾)消息。 ■ 主机加人一个新的多播组之后,会立即发送一条IGMPv2主机成员关系报告 消息,以告诉本地路由器其希望接收刚加人的多播组的多播流量。此时将该 报告消息称为IGMPv2 非请求主机成员关系报告(Unsolicited Host Membership 3. Repofty消息。 1GMPv2请求主机成员关系报告功能 图7-9给出了IGMPv2请求主机成员关系报告及报告抑制(Report Suppression) 机制的操作过程。图7-9中的示例基于图7-8,其中的路由器Rl已经发送了一条 IGMPv2查询消息。 如果大量主机都启动了多播应用并且都响应了主机成员关系查询消息,那么就需 要花费大量无谓的带宽及路由器资源来处理这些冗余的报告消息,多播路由器只要在 每个LAN接口上收到每个多播应用的一条报告消息即可。因为对于特定多播组来说, 无论接口上有1个用户还是200个用户,路由器都要在该接口上转发多播流量。 报告抑制机制可以解决这个问题。该机制利用IGMPv2 MRT (Maximum Response Time,最大响应时间)定时器来抑制大量不必要的IGMP报告消息。通常将该定时器 称为查询响应间隔(Query Response Interval) 。也就是说,主机收到IGMPv2查询消息 之后,如果希望接收该多播应用的多播流量,那么最多需要等待已配置的MRT时间 才能发送报告消息。每个主机都要在0-MRT之间选择一个随机时间,定时器到期之 后,主机就会发送一条主机成员关系报告消息一但是仅在该主机没有听见其他主机 7.4 利用IGMP管理多播流量的分发操作 247 发送该多播组的报告消息的情况下才会发送成员报告消息。通常将该过程称为报告抑 制机制,其功能就是减少冗余的报告消息。 ≡二≡二≡[ MRT=最大响应时间(以秒为单位) 图7-9 ,由主机随机选择 1GMPv2请求主机成员关系报告及报告抑制进程 下面的三个步骤描述了图7-9所示的IGMPv2请求主机成员关系报告及报告抑制 机制的事件处理顺序。 第3步:假设Hl和H3收到了IGMPv2查询消息(如图7-8中的第2步所示)。 由于Hl和H3都加人了多播组226.1.1.1 ,因而它们需要发送IGMPv2请求主机成员关 系报告消息。此外,假设Hl和H3随机选择的MRT值分别为3秒钟和1秒钟。 第4步: H3的定时器在1秒钟之后到期,需要重复发送TTL值为1的IGtwⅡly2请求 主机成员关系报告消息o H3使用的目的皿地址是226.1.1.1,源IP地址是10.1.1.3,从三 层地址226.1.1.1计算得到的目的MAC地址是01-00 ̄5e-01-01-01,并且将BIA作为其源 地址o H3通过组地址226.1.1.1告诉多播路由器“我希望接收多播组226.1.1.1的多播流量” 第5步:主机Hl、 。 H2及路由器Rl看到了IGMPv2请求主机成员关系报告消息, 而且Hl和Rl处理了该报告消息。由于H2没有侦听该多播MAC地址,因而丢弃了 该帧o Hl意识到H3的报告消息针对的是同一个多播组226.1.1.1,因而Hl抑制了自 已的报告消息,不再发送报告消息。 此时Rl已经在请求多播组226.1.1.1流量的faO/0接日上收到了IGMPv2请求主机 成员关系报告消息,但是没有在鼠0/1接口上收到主机成员关系报告消息。从图7-10 可以看出, Rl已经开始在鼠0/0接口上转发多播组226.1.1.1的多播流量了。 1 0.2.2.0/24 多播流量 目的地址‥226.1.1.1 图7-10 4. Rl在FaO/0接口上转发多播组226.1.1.1的多播流量 1GMPv2非请求主机成员关系报告功能 对于IGMPv2来说,主机不需要等待路由器发送的主机成员关系查询消息。主机 可以在用户启动多播应用的时候直接发送IGMPv2非请求主机成员关系报告消息,该 特性可以减少主机接收多播组流量的等待时间。例如,图7-11中的用户在H4上启动 了一个使用组地址226.1.1.1的多播应用, H4发送了一条IGMPv2非请求主机成员关 系报告消息,然后Rl就开始在龟0/1接口上转发多播组226.1.1.1的流量。 ① 非请求主机成 员关系报告消息 “我希望接收226.1.∥ 的多播流量” 通过Fa″1向外转发未 O/O 来的226.1工1的多播流量 .10 壹窒臼o ■l ← ←疆臣 FaO/1 10.2.2.O/24 图7-11 H4发送IGMPv2非请求主机成员关系报告消息 ↓ →疆慕 量量巨 利用IGMP管理多播流量的分发操作 7.4 5. 249 1GMPv2离开组消息以及指定组查询消息 IGMPv2离开组消息可以大帽降低离开延迟,而IGMPv2指定组查询消息则可以 在主机离开多播组的时候,防止路由器错误地停止在LAN上转发多播包。对于IGMPv2 来说,主机离开多播组的时候,会发送一条IGMPv2离开组消息o IGMPv2路由器收 到离开消息之后,会立即发送一条针对该多播组的指定组查询消息,指定组查询消息 会询问是否还有别的主机希望接收该多播组的数据包,因而路由器能够快速了解是否 需要继续转发该多播组的流量。 与IGMPvl相比,IGMPv2的主要优点在于IGMPv2大大缩短了离开延迟,IGMPvl 路由器默认需要3分钟才能确定子网上的最后一台主机已经离开多播组,且子网上已 经没有任何主机希望接收该多播组的流量。与此同时, IGMPvl路由器会在子网上继 续转发该多播组的流量,从而无谓地浪费带宽。而IGMPv2路由器只需要3秒钟即可 确定子网上没有任何主机希望接收多播组的流量,并且停止在子网上继续转发该多播 组的流量。 图7-12给出了IGMPv2离开组进程以及IGMP指定组查询进程的操作情况。图 7-12中的主机Hl和H3目前是多播组226.1.1.1的成员, 下面的三个步骤描述了Hl离开多播组时, Hl希望离开该多播组。 IGMPv2离开组机制的事件处理顺序 (如图7-12所示)。 第1步: Hl发送IGMPv2离开组消息(目的地址是全部多播路由器的周知地址 224.0.0.2) ,目的是告诉子网上的所有路由器“我不希望继续接收多播组226.1.1.1的多 播流量了”。 第2步: Rl发送指定组查询消息。只要该多播组的成员处于活跃状态,路由器就 不会跟踪属于该多播组成员的主机。由于Hl决定离开226.1.1.1, Rl需要确定该接口 所连接的主机中没有其他主机仍然需要接收多播组226.1.1.1的数据包。因而Rl需要 发送指定组查询消息,将226.1.1.1作为数据包的目的地址,因而只有属于该多播组成 员的主机才能收到并响应该消息o Rl利用该消息可以询问子网上的其余主机“是否还 有主机希望接收多播组226.1.1.1的多播流量? 第3步: H3发送成员报告消息o ”。 H3收到指定组查询消息之后会响应IGMPv2成 员报告消息,从而告诉子网上的路由器它仍然是多播组226.1.1.1的成员,并且仍然希 望接收多播组226.1.1.1的多播流量。 250 第7章IP多播概述 1 0.2.2.O/24 多播流量 目的地址:226.1.1.1 图7-12 指定组查询消息与IGMPv2离开进程的协同工作方式 IGMPv2路由器每次收到离开组消息之后都要重复上述的第2步。在图7-13所示 的案例中, H3是子网中的多播组226.1.1.1的最后一个成员。如果H3也希望离开该多 播组,那么相应的处理过程如图7-13所示。 10.1.1.0/24 ② 指定组查询消息 ③“没有人在该接口发送 “有人希望接收226.1.「.1 的多播流量吗”? 226.1.1.1的报告消息, I .10 FaO/O因而我将停止转发流量” ヽ FaO/1 . 多播流量. 多播流量 目的地址:226.1工1 图7-13 -一一一→ .10 +→ 目的地址:226.1士1 1GMPv2离开进程一指定组查询消息无响应 10.2. 疆占 疆昆 .0/24 7.4 下面的三个步骤描述了H3离开多播组时, 利用IGMP管理多播流量的分发操作 251 IGMPv2离开组机制的事件处理顺序 (如图7-13所示)。 第1步: H3发送IGMPv2离开组消息(目的地址是224.0.0.2),目的是告诉子网 上的所有路由器“我不希望继续接收多播组226.1.1.1的多播流量了” 第2步: 。 Rl收到H3发送的离开组消息之后,会发送指定组查询消息,以确定是否 还有其他主机属于多播组226.1.1.1的成员, Rl将226.1.1.1作为该数据包的目的地址。 第3步:由于此时该子网已经没有多播组226.1.1.1的成员,因而Rl未收到指定 组查询消息的响应消息,因此Rl将停止通过鼠0/0接口向外转发多播组226.1.1.1的多 播流量。 本例中的第3步很好地描述了最后一个成员查询间隔(Last Interval)与最后一个成员查询计数(Last Member Query Member Query Count)的概念。这些值决定 了路由器需要花费多长时间才能确信LAN上的所有主机都已经离开指定多播组。路 由器默认为指定组查询消息使用的MRT为10 (1秒钟)。由于路由器应该在这段时间 内收到指定组查询消息的响应消息,因而路由器将MRT值用作最后一个成员查询间 隔值。因此,路由器的处理过程如下。 蘑蘸 谭蠢 第1步:发送指定组查询消息以响应IGMP离开组消息。 第2步‥如果在最后一个成员查询间隔内未收到报告消息,那么就重复第1步。 第3步:重复第1步的次数是由最后一个成员查询计数值定义的。 最后一个成员计数是路由器在确定子网上没有指定多播组的任何活跃成员之前, 路由器连续发送的指定组查询消息的数量。最后一个成员计数的默认值为2,因而离 开延迟通常小于3秒钟,而IGMPvl的离开延迟最大为3分钟0 6. 1GMPv2查询路由器 IGMPv2定义了一个查询路由器选举进程,在多台路由器都连接在同一个子网时 就需要使用该进程。所有的IGMPv2路由器启动时,都要向周知的全部多播主机地址 224.0.0.1发送一条IGMPv2通用查询消息o IGMPv2路由器收到通用查询消息之后, 会将该通用查询消息的源IP地址与自已的接日地址进行对比。子网上IP地址最小的 路由器将被选举为IGMP查询路由器,非查询路由器将不再发送查询消息,只是监控 查询路由器发送IGMPv2通用查询消息的频度。如果选举出来的查询路由器在连续两 个查询间隔加上半个查询响应间隔的时间段内都没有发送查询消息,那么就认为该查 询路由器已经失效,需要重新选举一个新的查询路由器o 其他查询路由器存在间隔(Other Querier Present RFC 2236将该时间间隔称为 Interval) 。其他查询路由器存在间隔 的默认值为255秒钟,这是因为IGMPv2通用查询间隔的默认值为125秒钟,而查询 响应间隔的默认值为10秒钟。 攻城狮论坛 252 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 第7章IP多播概述 7.4.4 1GMPv2定时器 表7-4列出了IGMPv2使用的一些重要定时器以及相应的用法及默认值。 重要的IGMPv2定时器 表7-4 查询间隔 路由器发送两条通用查询消患之间的时间周期 60秒 查询响应问隔 主机响应周期性通用查询消忌的最大响应时间 10秒;取值范围为O.1-25.5秒 如果路由器在该时问段内都没有收到IGMP报告 消患,那么该路由器将确定子网上已经没有该多 组成员问隔 260秒 播组的成员 如果IGMPv2非查询路由器在该时问段内都没 其他查询路由器存在问隔 有收到查询路由器发送的IGMP查询消患,那么 255秒 非查询路由器将确定查询路由器已经失效 由IGMPv2路由器插入到指定组查询消患之问 最后一个咸员查询问隔 的最大响应时问以及发送给相同多播组的两条 1秒 连续指定组查询消忌之问的时问段 如果IGMPv2主机在该时间段内都没有收到 版本1路由器存在超时 lGMPvl查询消患,那么IGMPv2主机将确定不 400秒 在在IGMPvl主机并开始发送IGMPv2消患 7.4.5 1GMPv3 2002年10月发布的RFC 3376定义了IGMPv3规范,该规范是IGMP协议的一个 重要修订版本。如果要使用IGMPv3的新功能特性,那么就必须更新最后一跳路由器, 修改主机操作系统,并对多播应用进行针对性地设计与开发。本节不讨论IGMPv3的 细节信息,仅描述IGMPv3的主要功能特性。 对于IGMPv2来说,主机请求加人多播组之后,无论数据包的源IP地址是什么, 多播路由器都会将该多播组的流量转发给子网。对于超大型网络(如互联网广播)来 说,这种处理方式会产生一定的问题。例如,假设正在召开多媒体会议,但某个组成 员决定向该多播组发送谈话或音乐来恶意地干扰该会议,虽然多媒体会议允许用户关 闭任意成员的声音,但无法阻止非期望流量传送给主机。此外,如果黑客决定使用该 公司员工已经加人的多播组地址来发送伪造的大带宽数据,从而泛洪该企业的网络, 那么就会发起DoS攻击,从而阻塞该公司的低速链路o IGMPvl和IGMPv2都没有相 应的机制来防范这类攻击行为。 攻城狮论坛(技术+生活)2群 1813097 7.4 1GMPv3提供了SSM (Source-Specific 利用IGMP管理多播流量的分发操作 253 Multicast,指定源多播)特性,允许主机 根据希望接收的数据包的源IP地址过滤人站流量。利用SSM机制,主机可以向指 定的多播地址发送消息,以表达自已仅希望从指定源地址接收数据包,或者从指定 源地址之外的其他所有地址接收数据包。图7-14给出了IGMPv3成员报告进程的基 本操作过程。 _ 霸 < 多播流量 目的地址:226士1.1 源地址:209.165.202.130 lGMPv3成员关系报告消息 加入:226.1.1.1 源:lNCLUDE-209.165.201.2 图7-14 1GMPv3成员报告 从图7 ̄14可以看出,可以从两个源端获得多播组226.1.1.1的多播流量, 同时收到这两个源端的流量o Hl使用目的地址224.0.0.22 Rl可以 (该地址是IANA专门为 IGMPv3成员报告消息分配的地址)准备了一条IGMPv3成员报告消息,该消息的类 型代码是Ox22 (定义在RFC 3376中),附带的注释信息为“Source-ENCLUDE- 209.165.201.2”,表示“我希望加人多播组226.1.1.1,但是仅希望接收来自源 209.165.201.2的多播组流量”。 在IGMPv3多播应用程序可用且操作系统完全更新之前, Rendezvous Directory, (URL URL聚合目录)和IGMPv31ite功能,有关URD及IGMPv31ite 的详细信息已经超出了本书的写作范围。最后, 兼容。 Cisco提供了URD IGMPv3与IGMPvl和IGMPv2完全 254 第7章IP多播概述 7.5 1GMPvl与IGMPv2的互操作性 IGMPv2被设计为与IGMPvl后向兼容,RFC 2236定义了一些特殊的互操作规则, 下面两节将详细解释以下互操作场景。 ■ IGMPv2主机与IGMPvl路由器:该场景定义的是IGMPv2主机与IGMPvl 路由器存在于同一个子网中时, ■ IGMPvl主机与IGMPv2路由器:该场景定义的是IGMPv2路由器与IGMPvl 主机存在于同一个子网中时, 7.5.1 IGMPv2主机的操作方式。 IGMPv2路由器的操作方式0 1GMPv2主机与IGMPvl路由器 主机发送消息类型为Ox16的IGMPv2报告消息(IGMPvl未定义该消息)时, IGMPvl路由器会将Ox16视为无效的消息类型,从而忽略该消息。因而在IGMPv 路由器处于激活状态时, l IGMPv2主机必须发送IGMPvl报告消息,但问题是IGMPv2 主机如何检测子网中存在IGMPvl路由器呢? IGMPv2主机根据周期性的IGMP查询消息中的MRT字段值来确定查询路由器到 底是IGtw皿Iyl还是IGMPv2路由器o IGMPvl查询消息中的MRT字段值为0,而IGMPv2 查询消息中的MRT字段值不为0,表示的是MRT值o IGMPv2主机收到IGMPvl查 询消息之后,就知道子网中存在IGMPvl路由器,因而将该接口标记为IGMPvl接口, 此后IGMPv2主机将不再发送IGMPv2消息o IGMPv2主机在任何时候收到IGMPvl查询消息之后,都会启动一个400秒的版 本1路由器存在超时(version l Router Present Timeout)定时器。只要收到IGMPvl 查询消息,就会重置该定时器。如果该定时器超时,那么就表明子网中不存在IGMPvl 路由器, 7.5.2 IGMPv2主机将开始发送IGMPv2消息0 1GMPvl主机与IGMPv2路由器 IGMPv2路由器只要根据是否有主机发送IGMPvl报告消息(类型代码为Ox12) 或IGMPv2报告消息(类型代码为Ox16) 主机。与IGMPvl路由器相似, ,即可很容易地确定LAN上是否有IGMPvl IGMPv2路由器也要发送周期性的IGMPv2通用查询 消息。由于IGMPv2通用查询消息与IGMPvl查询消息的格式非常相似(除了第二个 八位组,而IGMPvl主机会忽略该差异),因而IGMPvl主机通常会响应该查询消息。 因此, 主机。 IGMPv2路由器检查了所有报告消息之后,就可以发现LAN中是否存在IGMPvl 7.6 1GMPvl、 IGMPv2路由器知道LAN中存在IGMPvl主机之后, IGMPv2与IGMPv3对比 255 IGMPv2路由器将忽略离开 组消息以及收到离开组消息之后触发的指定组查询消息。这一点非常必要,这是因为 如果IGMPv2路由器以指定组查询消息来响应离开组消息,那么IGMPvl主机将无法 理解该消息,从而忽略该消息。如果IGMPv2路由器没有收到其指定组查询消息的响 应消息,那么就可能会错误地认为已经没有主机希望接收该多播组的多播流量,从而 停止在子网上转发该多播流量。因此,如果子网中有一个或多个IGMPvl主机正在侦 听特定多播组,那么IGMPv2路由器就会暂停降低离开时延的优化功能o IGMPv2路由器将一直忽略离开组消息,直至IGMPvl主机存在递减计数 (IGMPvl ̄Host-Present Countdown)定时器超时。根据RFC 2236定义, IGMPv2路由 器收到IGMPvl报告消息之后,必须设置一个IGMPvl主机存在递减计数定时器。该 定时器应该等于组成员间隔。其中, IGMPvl和IGMPv2的组成员间隔默认值分别为 180秒和260秒(如果路由器在组成员间隔所定义的时间段内未收到IGMP报告消息, 那么路由器就会认为子网中不再有该多播组的成员) 7.6 1GMPvl、 0 IGMPv2与IGMPv3对比 表7-5列出了IGMPvl、 表7-5 IGMPv2以及IGMPv3的一些重要功能特性。 1GMPvl、 IGMPv2与IGMPv3对比 查询消患的第一个/\位组值 Oxll Oxll Oxll 通用查询消忌的组地址 O.0.0.O O.O.0.0 O.0.0.O 通用查询消息的目的地址 224.O.O.1 224.O.0.1 224.O.O.1 默认查询问隔 60秒 125秒 125秒 报告消忌的第一个/\位组 Ox12 Ox16 Ox22 报告消患的组地址 加入的多播组地址 加入的多播组地址 加入的多播组地址和源地址 报告消忌的目的地址 加入的多播组地址 加入的多播组地址 224.O.O.22 报告抑制机制是否可用? E己 E己 刀≡ 刀≡ 否 是否可以配置MRT? 否,圃定为10秒 是,O-255秒 是,O-53分钟 否 目 E己 刀≡ 刀≡ 主机是否可以发送离开组消忌? 256 第7章IP多播概述 离开组消忌的目的地址 224.O.O.22 224.0.0.22 路由器是否可以发送指定组查询 否 目 目 刀≡ 刀≡ 否 否 刀≡ 消患? 主机是否可以发送指定源和指定 目 组报告消患? 选举查询路由器的规则 子网中IP地址最小的路由器 无(取决于多播路由协议) 子网中IP地址最小 是否与其他版本的IGMP相兼容 7.7 的路由器 是,仅与IGMPvl 是,与IGMPvl和IGMPv2均 兼容 兼容 否 LAN多播优化 本章最后一节将介绍三种可以优化LAN多播流的常用工具,分别为: ■ ■ ■ 7.7.1 CGMP (Cisco Group ManagementProtocol, αsco组管理协议) ; IGMP监听(IGMPsnooping); RGMP (Router-Port Group Management Protocol,路由器端口组管理协议) 0 CMGP 虽然IGMP可以帮助路由器确定多播流量的分发方式,但是IGMP工作在第三层, 因而交换机无法理解IGMP消息。交换机默认将多播流量泛洪到整个广播域中的所有 主机,这样就会浪费大量带宽资源(如图7-15所示)。 主机Hl、 H2、 H3、 H4以及路由器Rl均位于同一个广播域VLAN5中,下面的 三个步骤(如图7-15所示)描述了H3发送IGMP加人(Join)消息之后的处理过程。 第1步: H3发送多播组226.6.6.6的IGMP加人消息。 第2步: Rl将该多播组的流量转发给SWlo 多播帧的目的MAC地址是 OxOloO.5eO6.06060 SWl无法在自已的CAM表中找到该MAC地址(因为从来没有设 备将该地址作为源地址),因而SWl开始将该多播流量转发给Hl、 该多播流量属于VLAN5的)。与此相似, H2和SW2 (因为 SW2也将该多播流量转发给H3和H40 第3步:所有主机(Hl-H4)都收到该多播流量,但只有H3请求了该多播流量o H3请求了该多播流量也确实收到了该多播流量,但Hl、 流量,它们仅仅是被交换机泛洪了该多播流量。 H2和H4并没有请求该多播 7.7 LAN多播优化 257 一一-→226.6.6.6的IGMP加入消息 一一→226.6.6.6的多搭流量 图7-15 交换机泛洪多播流量 本例中的vLAN5广播域中只有4台主机。如果是一个扁平化广播域,域中可能 会包含几百台主机,那么将会出现什么情况呢?如果单台主机加人了某个多播组,那 么所有的主机都会被泛洪该多播组的流量(无论这些主机是否请求了该多播流量) 。但 多播的设计初衷却是仅向请求了多播流量的主机发送多播流量,从而最大化地利用带 宽资源。 下面两种方法可以帮助二层交换机确定如何将多播流量分发给主机: ■ CGMP,属于αsco专有协议,将在本节的后面讨论; ■ IGMP监听,将在下一节讨论o CGMP属于二层协议,需要在αsco路由器和交换机上都配置该协议o CGMP允 许路由器将其从IGMP学到的二层信息与交换机进行沟通。多播路由器通过IGMP与 主机进行通信,知道多播主机的MAC地址、它们所侦听的多播组等信息o CGMP的 目标是让路由器能够通过CGMP消息将这些信息通告给交换机,这样一来,交换机就 可以动态地修改它们的CAM表项。只有路由器能够生成CGMP消息,交换机只是侦 听CGMP消息。由于路由器和交换机都必须知道如何使用CGMP,因而必须在连接路 由器与交换机的链路(CGMP就运行在该链路上)两端均启用CGMPo 三层交换机(如αsco3560)可以充当CGMP的路由器角色,仅作为CGMP服务 器。对于这些三层交换机来说,可以仅在连接二层交换机的三层接口上启用CGMPo 利用下列命令即可为路由器或三层交换机的接口配置CGMP: in亡 1p fa O/1 Cgmp 258 第7章IP多播概述 对于三层交换机来说,在启用CGMP之前必须先运行接口命令no switchporto CGMP消息中的目的地址始终是周知CGMP多播MAC地址OxOloO.Ocdd.ddddo 在CGMP消息上使用多播目的MAC地址可以强制交换机在所有端口上泛洪该消息, 使得网络中的所有交换机都能收到该CGMP消息o CGMP消息中最重要的信息就是下 列MAC地址对: ■ ■ GDA (GroupDestinationAddress,组目的地址) USA (Unicast ; SourceAddress,单播源地址)o CGMP的通用处理流程主要包括以下五个步骤(后面将通过一个具体案例加以解释) 。 第1步:具备CGMP功能的路由器连接到交换机上之后,会发送一条GDA为0 且USA为自身MAC地址的CGMP加人(Join)消息。具备CGMP功能的交换机收 到路由器发送的CGMP加人消息之后,就知道收到CGMP消息的端日上连接了一台 多播路由器。路由器每隔60秒钟就重复发送一次该消息。此外,路由器还可以发送 GDA为0且USA为自身MAC地址的CGMP离开(Leave)消息,以告诉交换机其不 再参与CGMPo 第2步:主机加人多播组之后,会发送IGMP加人消息。通常情况下,多播路由 器仅检查CGMP加人消息中的三层信息,而不处理任何二层信息。但是如果在路由器 上启用了CGMP,那么路由器还会检查IGMP加人消息中的二层目的MAC地址和二 层源MAC地址,其中,源MAC地址是发送IGMP加人消息的主机的单播MAC地址。 然后路由器会生成一条CGMP加人消息,其中包含了与多播IP地址相关联的多播 MAC地址(CGMP加人消息的GDA字段)以及主机的单播MAC地址(CGMP消息 的USA字段) ,并将周知CGMP多播MAC地址OxOloO.Ocdd.dddd作为目的地址发送 该CGMP加人消息。 第3条:交换机收到CGMP加人消息后,会在CAM表中查找与USA字段中列 出的主机MAC地址相关联的端口号。然后交换机会为CGMP加人消息中GDA字段 列出的多播MAC地址创建一条新的CAM表项(如果以前已经创建了该表项,那么 就使用现有表项),同时将与USA字段中列出的主机MAC地址相关联的端日号添加 到该CAM表项中,并在该端口上转发多播流量。 第4步:主机离开多播组的时候会发送一条IGMP离开消息。路由器会学到该主 机的单播MAC地址(USA)以及该主机刚刚离开的IP多播组。由于离开消息是发送 给全部多播路由器MAC地址OxOloO.5eoO.0002的,而不是该主机刚刚离开的多播组 的地址,因而路由器需要根据主机刚刚离开的IP多播组计算多播MAC地址(GDA) , 然后生成一条CGMP离开消息,复制刚刚在CGMP离开消息的GDA字段中计算出来 的多播MAC地址以及在USA字段中计算出来的单播MAC地址,并将其发送给周知 CGMP多播MAC地址。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 7.7 LAN多播优化 259 第5步:交换机收到CGMP离开消息之后,会再次查找与USA字段中列出的主 机MAC地址相关联的端口号,然后从CAM表项中为CGMP离开消息中的GDA字 段列出的多播MAC地址删除该端口,并停止在该端口上转发多播流量。 因此, CGMP可以帮助交换机仅将多播流量发送给希望接收的主机,从而避免浪 费带宽资源。 图7-16、图7-17以及图7-18显示了路由器和交换机利用CGMP响应主机加人多 播组然后又离开多播组的整个处理过程。图7-16首先显示了路由器对IGMP报告消息 的响应情况(向LAN中的交换机发送CGMP加人消息)。以下两个步骤描述了H3发 送IGMP加人消息之后的处理过程(如图7-16所示)。 cGMP加入消息 “将GDA Ol 映射为UsA oO.5eO6.0606 OOO6.7c¨.∥03” sz<﹂> ▲ⅠⅠⅠⅠⅠⅠII IGMP加入226.6.6.6 目的MAc 源MAc oloO.5eO6.0606 ooO6.7c∥.¨03 j ̄圈 v… ■甜昭■rFaO/4 图7-16 面量 董胃罗 CGMP加入消息的处理过程 第1步:H3发送多播组226.6.6.6的IGMP加人消息oH3在二层将OxOloO.5eO6.0606 (与多播IP地址226.6.6.6相关联的多播MAC地址)作为该帧的目的MAC地址,并 将自已的BIAOxOOO6.7cll.1103作为源MAC地址。 第2步: Rl生成CGMP加人消息。具备CGMP功能的路由器收到IGMP加人消 息之后,会生成一条二层CGMP加人消息,该帧的目的地址是周知多播MAC地址 OxOloO.Ocdd.dddd 设置为组 MAC地址 (只有Cisco交换机能够理解,其余交换机则转发该帧)o OxOloO.5eO6.0606,将USA 设置为 H3 Rl将GDA 的 MAC 地址 OxOOO6.7cll.1103,从而告诉交换机“USA为OxOOO6.7cll.1103的主机请求GDA为 OxOloO.5eO6.0606的多播流量,请据此映射你们的CAM表”。图中的两台交换机都能 收到该消息。 攻城狮论坛(技术+生活)2群 1813097 260 第7章IP多播概述 Swl和Sw2查找备自的CAM表项,发现USA为OxOOO6.7cll.1103的主机分别 位于它们的端口faO/20和faO/3上。从图7 ̄17可以看出, SWl和SW2已经分别将GDA OxoloO.5eO6.0606映射到它们的端口鼠0/20和鼠0/3上了。 M=GDA 图7 ̄17 OxOl oO.5eO6.0606的多播流量 交换机将GDA映射到端口号,因而不会在广播域中泛洪所有主机 Rl将GDAOxOloO.5eO6.0606的多播流量转发给SWl的时候(如图7-17所示) , SWl查找其CAM表后发现应该仅在端口faO/20上转发该流量,因而只有SW2能够 收到该多播组流量。与此相似, Sw2查找其CAM表后知道应该仅在端口faO/3上转 发该多播组流量,因而只有H3收到了该多播组流量o CGMP还能优化IGMP流量的转发过程。假设Hl发送了一条多播组226.6.6.6的 IGMP加人消息(图中未显示), Rl将发送另一条CGMP加人消息, SWl也将GDA OxOloO.5eO6.0606映射到端日faO/1上。路由器发送IGMP通用查询消息时,交换机会 将这些查询消息转发给已经加人多播组的主机成员(如Hl和H3)。主机发送IGMP 报告消息时,交换机会将这些报告消息转发给多播组的成员以及路由器。 本例的最后一步(如图7 ̄18所示)解释了H3离开多播组时的处理过程,请注意, Hl也加人了同一个多播组。 下面三个步骤描述了H3发送IGMP离开消息之后的处理过程(如图7-18所示)。 第1步: H3发送多播组226.6.6.6的IGMP离开消息o H3在二层将全部多播路由 器MAC地址OxOloO.5eoO.0002作为该帧的目的MAC地址,并将自已的BIA OxOOO6.7cll.1103作为源MAC地址。 7.7 “ GDA为01 为UsA LAN多播优化 261 00.5eO6.0606的主机不希望接收 OOO6.7c¨.1103的流量” 面量 董影③ lGMP离开226.6.6.6 目的MAc 源MAc oloO.5eoO.0002 ooO6.7c∥.¨03 ③CGMP离开消息 图7-18 CGMP离开消息的处理过程 第2步‥ Rl生成CGMP离开消息。具备CGMP功能的路由器收到IGMP离开消 息之后,会生成一条二层CGMP离开消息,该帧的目的地址是周知多播MAC地址 OxOloO.Ocdd.ddddo Rl根据三层多播IP地址226.6.6.6.计算多播组MAC地址 OxOloO.5eO6.0606并将GDA设置为该值,同时将USA设置为H3的单播MAC地址 OxOOO6.7cll.1103 ,从而告诉交换机“USA为OxOOO6.7cll.1103的主机不希望接收GDA 为OxOloO.5eO6.0606的多播流量,请据此更新你们的CAM表”。图中的两台交换机都 能收到该消息。 第3步:交换机更新它们的CAM表项o SWl和SW2查找其CAM表项后发现, USA为OxOOO6.7cll.1103的主机位于它们的端口faO亿0和faO/3上。从图7-18可以看 出, SWl 和 Sw2 已经分别从它们的端口 faO/20 和 faO/3 上删除了 GDA OxoloO.5eO6.06060 由于Hl仍然是多播组226.6.6.6的成员,因而Rl继续将GDA为OxOloO.5eO6.0606 的流量转发给SWl (如图7-18所示)o SWl查找其CAM表后发现仅应该在端口faO/1 上转发该多播组流量,因而只有Hl收到了该多播组流量。 进一步分析该案例,假设Hl发送了多播组226.6.6.6的IGMP离开消息, Rl将发 送226.6.6.6的指定组查询消息。由于此时该多播组已经没有主机成员,因而Rl收不 到该多播组的任何IGMP成员报告消息o Rl发送GDA为该多播组MAC地址且USA 为0的CGMP离开消息,从而告诉交换机“没有主机希望接收MAC地址为 OxOloO.5eO6.0606的多播组流量,请删除与该多播组相关的所有CAM表项”。 262 第7章IP多播概述 表7-6列出了CGMP消息中备种可能的GDA与USA的组合及其含义(前五条消 息已经讨论过了)。 CGMP消息 表7-6 加入 组MAc地址 主机MAc地址 将UsA端口添加到组中 离开 组MAc地址 主机MAc地址 从组中删除UsA端口 加入 O 路由器MAc地址 了解哪个端口连接至cGMP路由器 离开 O 路由器MAc地址 释放CGMP路由器端口 离开 组MAc地址 0 从cAM表中删除该多播组 离开 O O 从cAM表中删除所有多播组 路由器利用表7-6中的最后一条离开消息(Delete 实现特殊的维护功能。例如,在路由器上运行clear All ip Groups[删除所有组])可以 cgmp命令以清除交换机上的所 有CGMP表项之后,路由器将发送GDA为0且USA也为0的CGMP离开消息。交 换机收到该消息之后,就会从CAM表中删除所有的多播组表项0 7.7.2 1GMP监听 如果网络中存在非Cisco交换机,那么该怎么办呢?由于CGMP是Cisco专有协 议,因而无法在网络中使用CGMP,此时可以在多厂商交换式网络环境中使用IGMP 监听功能,在二层控制多播流量的转发操作。 IGMP监听要求交换机软件监听多播主 机与路由器之间的IGMP会话,交换机通过检查IGMP消息即可了解多播路由器和组 成员的位置。 下面三个步骤描述了IGMP监听功能的通用处理过程(后面将详细解释这些 步骤)。 第1步:检测是否有多台路由器都连接在同一个子网上o Cisco交换机通过监听以 下路由协议消息来确定这些路由器都连接在哪些端日上。 ■ GDA为01-00-5e-00-00 ̄01的IGMP通用查询消息。 ■ GDA为01-00-5e-00-00-05或01-00 ̄5e-00-00-06的OSPF消息。 ■ GDA为01-00-5e-00-00-02的PIMvl 协议无关多播版本1 议) )和HSRP HeⅡo消息。 (ProtocoI (Hot Independent Standby Routing Multicast Version l , Protocol,热备份路由协 7.7 ■ GDA为01-00-5e-00-00-Od的PIMv2 ■ GDA为01-00-5e-00-00-04的DVMRP LAN多播优化 263 He110消息。 (Distance Vedtor Multicast Routing Protocol,距离矢量多播路由协议)探测(Probe)消息。 交换机在VLAN中检测到路由器端口之后,就会将这些端口都添加到该VLAN 所有GDA的端口列表中。 第2步:交换机在端口上收到IGMP报告消息之后, CPU会查看GDA、在CAM 表中为该GDA创建一条表项并将该端日添加到表项中,此后就可以在该端口以及路 由器端日上转发该多播组流量了。如果其他主机也发送了IGMP报告消息,那么交 换机就会将这些端口添加CAM表的多播组表项中,并在这些端口上转发该多播组的 流量。 第3步‥与此相似,交换机在端日上收到IGMP离开消息后, CPU会查看GDA、 从CAM表的该多播组表项中删除该端日,并停止在该端口上转发该多播组的流量。 交换机会检查该端口是否是该GDA的最后一个非路由器端口。如果不是该GDA的最 后一个非路由器端口(意味着该vLAN中至少还有一个希望接收该多播组流量的主 机) ,那么交换机就会丢弃该离开消息,否则交换机会将该离开消息发送给路由器。 因此, IGMP监听功能可以帮助交换机将多播组流量仅发送给希望接收的主机, 从而避免浪费带宽资源。 为了提高操作效率, IGMP监听要求交换机支持硬件过滤能力,从而可以区分 IGMP报告消息与实际的多播流量。交换机的CPU需要查看IGMP报告消息(以及多 播路由协议消息),这是因为IGMP监听进程需要用到CPUo但是,交换机转发多播 帧时并不需要CPU,只需要交换机的转发ASICo早期的交换机(特别是不感知三层 功能的交换机)无法识别IGMP数据包,必须将所有的多播包都发送给CPU,因而会 给这些交换机的CPU造成严重负担。目前的大多数交换机都支持足够的三层功能,能 够识别IGMP包,因而IGMP监听功能不会给CPU带来严重负担。 不但CCIE路由和交换实验室考试中用到的Cisco 3560交换机默认启用IGMP监 听功能,而且大多数三层交换机也都默认启用该功能,这样就能精确控制所要监听的 VLAN,而且还能精确控制定时器。以下配置示例假设已经禁用了IGMP监听功能, 需要重新启用IGMP监听功能,在VLAN 20上禁用IGMP监听,同时将最后一个成 员查询间隔从默认值1000秒减小为500秒。此外,由于VLAN20仅连接了主机,因 而交换机在收到IGMP离开消息之后将立即删除相应的端口。请注意,以下命令均在 全局模式下输人: SW2 (COnfig)# ip n゜ SW2(config)# igmp ip snoop土ng igmp snooping SW2 〈config) # ip igInP SnOOPing SW2 (config)# ip igmp snooping vlan 20 |ast-member-query-interva1 vlan 22 irmediate-1eave 500 264 第7章IP多播概述 图7-19给出了IGMP监听过程的示例。 下列三个步骤描述了Hl和H2发送IGMP加人消息之后的处理过程(如图7-19 所示)。 第1步: Hl发送多播组226.6.6.6的IGMP加人消息, OxOloO.5eO6.0606 (多播组226.6.6.6的MAC地址)作为目的MAC地址,并将自已的BIA OxOOO6.7cll.1101作为源MAC地址o SWl在端口faO/1上收到该多播包之后,发现这是 一个IGMP包,因而将该数据包转发给交换机的CPU, CPU利用这些信息建立了一条多 播转发表项。从CAM表可以看出,该表项包含CPU的端日号0、 的端日号80请注意, Hl在二层将多播MAC地址 Hl的端口号1以及Rl CAM表为同一个目的MAC地址OxOloO.5eO6.0606列出了两条表 项,一条是面向端口0的IGMP帧,另一条是面向端口1和端口8的非IGMP帧。交换 机的CPU要求交换引擎不将任何非IGMP帧转发到端日0 第2步‥ (该端口连接的是CPU)。 H2发送多播组226.6.6.6的IGMP加人消息o 址OxOloO.5eO6.0606作为目的MAC地址,并将自已的BIA MAC地址o H2在二层将多播MAC地 OxOOO6.7cll.1102作为源 SWl在端口faO/2上收到该多播包之后,由交换引擎检查该数据包,按照 第1步描述的过程分析数据包之后,更新其CAM表项(如图7-19所示)。 多播流量 GDA: ① lGMP加入 226.6 OxOl oO.5eO6.0606 lGMP加入 6.6 226.6.6.6 感知三层功能的交换机 目的地址 01-00 ̄5e-06-06-06 01-OO-5e-06-06-06 图7-19 色类型 L3.1GMP 非IGMP 01-OO-5e ̄06-06-06 L3-1GMP 01-OO ̄5e ̄06-06-06 非IGMP 端口 O 1,8 O 1,2,8 利用IGMP监听功能加入多播组的过程以及相应的CAM表项信息 7.7 LAN多播优化 265 第3步:路由器Rl转发该多播组流量oRl收到多播组226.6.6.6的多播流量之后, 将该多播流量转发给Swlo SWl开始在端口faO/8上收该多播流量。交换引擎将检查 该数据包并确定这是一个非IGMP包,因而查找其CAM表并确定应该在端口faO/1和 龟0/2上转发该数据包。 与CGMP相比, 可以看出, IGMP监听功能在维护多播组信息方面的效率较低。从图7-20 Rl周期性地向全部主机组224.0.0.1 通用查询消息, (GDAOxOloO.5eoO.0001)发送IGMP SWl监听到这些通用查询消息之后需要在VLAN 5中的所有端口上转 发这些消息。而对于CGMP来说,由于可以通过CGMP消息与路由器进行通信,因 而交换机可以确切地知道多播主机都连接在哪些端日上,从而只要在这些端日上转发 IGMP通用查询消息即可。此外,对于IGMP监听来说,主机发送IGMP报告消息之 后,交换机必须监听这些消息并在CAM表中维护GDA信息,因而主机无法收到彼此 的IGMP报告消息,从而破坏了报告抑制机制,强制每台主机都要发送IGMP报告消 息,但交换机仅为每个多播组向路由器发送一条IGMP报告消息。而对于CGMP来说, 交换机不需要监听IGMP报告消息(因为在交换机中维护多播组信息并不依赖于检查 来自主机的IGMP包),而仅使用来自路由器的CGMP消息。 多播流量 GDA: OxOl oO.5eO6.0606 lGMP离开 lGMP离开 226.6.6 226.6.6.6 6 感知三层功能的交换机 目的地址 图7-20 包类型 端口 01-OO-5e-06-06-06 L3-1GMP O 01-00-5e-06-06 ̄06 非IGMP 2,8 01-00-5e-06-06 ̄06 L3-1GMP O 利用IGMP监听功能离开多播组的过程以及相应的cAM表项信息 图7-20给出了IGMP监听功能的离开过程。 下列三个步骤描述了Hl和H2发送IGMP离开消息之后的处理过程(如图7-20 所示)。 攻城狮论坛 266 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 第7章IP多播概述 第1步: Hl发送多播组226.6.6.6的IGMP离开消息,但本例中SWl并不将该消 息转发给路由器Rlo Hl在二层将全部多播路由器MAC地址OxOloO.5eoO.0002作为 目的MAC地址,并将自已的BIA OxOOO6.7cll.1101作为源MAC地址o faO/1上收到IGMP离开消息之后,由交换引擎检查该数据包o SWl在端口 SWl在端口faO/1上发 送一条IGMP通用查询消息以确定该端日上是否还有其他属于该多播组成员的主机 (该功能可以保护通过集线器连接到同一个交换机端口上的其他主机)。如果在端口 faO/1上收到了IGMP报告消息,那么SWl将丢弃从Hl收到的IGMP离开消息。对 于本例来说,由于端口faO/1仅连接了一台主机,因而SWl不会收到任何IGMP报告 消息,从而从CAM表项中删除端口龟0/1 (如图7-20所示)。连接在端口鼠0/2上的 H2仍然是该多播组的成员,其端日号也在CAM表项中,因而SWl不会将该IGMP 离开消息转发给路由器。 第2步:路由器Rl继续转发该多播组的流量。由于Rl并不知道Hl已经离开了 多播组,因而Rl继续将多播组226.6.6.6的多播流量转发给Swlo从图7-20显示的更 新后的该多播组CAM表项信息可以看出,此时的SWl仅在端日faO/2上转发该多播 流量。 第3步: H2发送多播组226.6.6.6的IGMP离开消息,但本例中SWl并不将该消 息转发给路由器Rlo H2在二层将全部多播路由器MAC地址OxOloO.5eoO.0002作为 目的MAC地址,并将自已的BIA OxOOO6.7cll.1102作为源MAC地址。同样, 在端日faO/2上收到IGMP离开消息之后,由交换引擎检查该数据包o SWl SWl在端日faO亿 上发送一条IGMP通用查询消息以确定该端口上是否还有其他属于该多播组成员的主 机。对于本例来说,由于端口faO/2仅连接了一台主机,因而SWl不会收到任何IGMP 报告消息,从而从CAM表项中删除端日faO/20 SWl删除了该端口之后,意识到该端 口是OxOloO.5eO6.0606的CAM表项的最后一个非路由器端口,因而SWl将删除该多 播组的CAM表项(如图7-20所示),并将该IGMP离开消息转发给路由器Rlo Rl 将发送IGMP指定组查询消息,由于没有任何主机响应该消息,因而Rl将停止向SWl 转发多播组226.6.6.6的流量。 如果存在多台多播路由器,并且大量LAN交换机都通过高速中继链路进行互连, 那么IGMP监听过程将变待非常复杂。此外, CGMP和IGMP监听功能只能为主机所 连接的端口分发多播流量时提供控制机制,而不能为路由器所连接的端口提供任何控 制机制。下一节将简要介绍RGMP,该功能可以帮助交换机在路由器所连接的端口上 分发多播流量时提供相应的控制机制0 7.7.3 RGMP RGMP是一种二层协议,路由器可以通过RGMP与交换机进行通信,表达自已希 攻城狮论坛(技术+生活)2群 1813097 . 7.7 LAN多播优化 267 望或不希望从交换机接收哪些多播组的流量。由于RGMP可以限制交换机转发给路由 器的多播目的地,因而能够大大降低路由器的开销。事实上, RGMP的设计初衷就是 在路由器连接到高速LAN骨干网的时候降低路由器的开销。在接口配置模式下使用 ip rgmp命令即可启用RGMPo 虽然RGMP是Cisco专有协议,但奇怪的是,RGMP无法与Cisco专有协议CGMP 同时工作。如果在路由器或交换机上启用了RGMP,那么就会默认禁用CGMP;如果 在路由器或交换机上启用了CGMP,那么就会默认禁用RGMPo此外,由于RGMP 是一种专有协议,因而发布在信息性的RFC 3488中o RGMP能够与IGMP监听功能很好地协同工作。事实上, IGMP监听功能通常通 过侦听IGMP和多播路由协议流量来了解所有多播路由器的端口。在某些情况下,某 些路由器可能不希望接收所有多播流量,因而RGMP提供了一种控制机制来减少非期 望的多播流量。在使用了IGMP监听特性的情况下,部署RGMP的关键需求就在于实 现IGMP监听的如下重要功能: IGMP监听功能可以帮助交换机在连接了多台主机的端口上控制多播流量的分发 行为,但是无法帮助交换机在连接了多播路由器的端口上控制多播流量的分发行为。 例如,以图7-21所示网络为例, SW2通过IGMP监听功能知道了路由器R3和 R4,因而将发送给所有多播组的多播流量都转发给R3和R40 组A的源端 组A的接收端 IGMP监听 组B的源端 图7 ̄21无RGMP时的IGMP监听 从图7-21可以看出, R3仅需要接收多播组A的流量, R4仅需要接收多播组B的 流量,但IGMP监听功能却让交换机将所有多播包都发送给了每台路由器。为了解决这 个问题,路由器可以利用RGMP告诉交换机自已仅希望接收特定多播组的数据包。例 如,图7-22所示网络结构与图7-21相同,但图7 ̄22部署了RGMP监听功能,本例在 路由器和交换机上都启用了RGMP加人(Join)消息,相应的处理结果如图7-22所示。 268 第7章IP多播概述 组A的接收端 组A的源端 lGMP监听 组B的源端 图7-22 在IGMP监听特性的基础上增加RGMP功能之后转发效率更高 图7-22给出了三个主要步骤,第1步显示的是携带RGMP加人消息的RGMP功 能o RGMP加人消息允许路由器标识其希望接收流量的多播组。 第1步: R3发送多播组A的RGMP加人消息, R4发送多播组B的RGMP加人 消息,因而Sw2知道应该仅将多播组A的流量转发给R3,仅将多播组B的流量转发 给R40 第2步:多播源分别向多播组A和B发送数据包。 第3步‥ SW2仅将多播组A的流量发送给R3,仅将多播组B的流量发送给R40 虽然图7-22仅显示了一种RGMP消息,但RGMP实际上包含四种不同的消息, 所有的RGMP消息都是由路由器生成并发送给多播IP地址224.0.0.25的。四种RGMP 消息如下。 ■ 在路由器上启用了RGMP之后,路由器默认每30秒钟发送一条RGMPHe110 消息。交换机收到RGMPHello消息之后,就会停止在收到He110消息的端口 上转发所有多播流量。 ■ 如果路由器希望接收指定多播组的流量,那么就会向交换机发送RGMPJoin G (加人多播组G)消息,其中的G表示多播组地址。交换机收到RGMP加人消 息后,就开始在收到He110消息的端口上转发路由器所请求的多播组流量。 ■ 如果路由器不希望继续接收前面通过RGMP已加人的指定多播组的流量,那 么就会发送RGMP Leave G (离开多播组G)消息,其中的G表示多播组地 址。交换机收到RGMP离开消息后,就停止在收到Hello消息的端口上转发 该多播组的流量。 ■ 在路由器上禁用了RGMP之后,路由器就会向交换机发送RGMPBye (再见) 7.7 日\N多播优化 269 消息。交换机收到RGMP再见消息后,就会在收到Hello消息的端口上转发 所有的IP多播流量0 7.7.4 1GMP过滤 如本章前面所述, IGMP监听是一种在二层学习并维护多播组成员的协议o IGMP 监听功能需要检查IGMP流量以确定哪些端日允许从指定多播源接收指定多播组的多 播流量。利用该信息就可以将多播流量仅转发给期望端口。 IGMP监听功能的最大好 处就在于能够减少数据包的泛洪问题。 可以与IGMP监听功能协同工作的一个增强型功能就是IGMP过滤o 功能允许用户在SVI (SwitchVIrtual IGMP过滤 Interface,交换机虚接口)上配置过滤器,能够以 每个端口或者每个端口每个VLAN为基础控制IGMP流量在网络中的传播。通过管理 IGMP流量, IGMP过滤功能可以提供IGMP监听特性的管理能力,反过来又可以优化 多播流量的转发行为。 收到IGMP包之后, IGMP过滤功能利用用户配置的过滤器来确定是否应该丢弃 该IGMP包,或者由已有的IGMP监听代码来处理该IGMP包。对于IGMPvl包和 IGMPv2包来说,将丢弃整个数据包。对于IGMPv3包来说,将重写该数据包,以删 除过滤器所拒绝的消息元素。 丰萤靛 IGMP流量过滤器可以控制端口对多播流量的访问行为,通常基于以下规则来限 ≒捶盘制访问行为。 ■ 基于可以在给定端口上加人的多播组或频道进行限制。请记住,只有指定了 多播组以及多播流量源的IGMPv3主机才能加人频道。 ■ 基于指定端口或接口上允许的多播组或频道的最大数量进行限制(与请求该 服务的主机数量无关) ■ 。 基于IGMP协议版本进行限制(例如,不允许所有的IGMPvl消息)。 配置了IGMP过滤命令之后,就会在三层SVI接口、二层端口或二层中继端口上 的指定vLAN上应用用户策略。这里的二层端口可以是接人端口,也可以是中继端口。 如果要使用IGMP过滤功能,那么就必须启用IGMP监听功能(在接口上启用或者在 全局范围内启用)。因此需要记住的是, IGMP过滤特性只是IGMP监听的辅助功能, 而不是一个独立的功能选项。 通常在连接终端用户设备的接人交换机上应用IGMP过滤器。目前支持三种不同 类型的IGMP过滤器: IGMP组及频道访问控制、多个IGMP组及频道限制以及IGMP 最低版本。可以在以下不同类型的端日上配置并运行这些过滤器: ■ 逐个SvI; ■ 逐个端口; 270 第7章IP多播概述 ■ 在中继端口上逐个vLANo 可以为穿越中继端口的每个VLAN配置独立的IGMP过滤器0 7.7.5 1GMP代理 IGMP代理允许UDLR 撬 (UniDirectional Link Routing,单向链路路由)环境中的主 机(不直连下游路由器)加人源自上游网络的多播组。 图7 ̄23给出了一个简单的UDLR场景拓扑结构示意图。 矗昆 LAN B 疆护 图7-23 UDLR场景示意图 在具体分析该优化机制改善多播性能的方式之前,必须弄清楚什么是mL路由 场景。对于标准的多播和单播路由协议来说, mL路由场景通常会产生一定的问题, 因为这些路由协议都在收到路由协议信息的接口上转发数据。对于我们已经讨论过的 绝大多数路由协议来说,该模型只适用于双向链路,但某些网络使用的是广播卫星链 LAN多播优化 7.7 271 路,这些链路在本质上属于单向链路。对于使用广播卫星链路的网络来说,如果要通 过广播卫星链路实现双向通信,那么采用传统路由协议(如OSPF或EIGRP)发现和 共享网络拓扑结构信息就会出现一定的问题,从而影响PIM (ProtocoI Independent Multicast,协议无关多播)的正常运行,因为PIM依赖于这些传统的路由协议。 具体而言,对于单播路由来说,路由器在接口上收到某前缀的更新消息后,会通 过同一个接日将数据向外转发给与该前缀相匹配的目的地,这就是EIGRP等距离矢量 路由协议的应用场景。与此相似,对于多播路由来说,路由器在接口上收到某多播组 的加人消息之后,就会通过同一个接口向外转发去往该多播组的数据拷贝。根据上述 原理,现有的单播及多播路由协议都无法支持UDLo UDLR的设计目的就是能够在不 改变路由协议的情况下,让这些路由协议能够运行在mL之上。 图7-23给出了一个包含UDL的拓扑结构示意图,要求在该场景中使用多播和 IGMP,为此需要部署墓于IGMP代理的多播优化方案。 对于不直连下游设备的主机来说,如果希望加人源自上游网络的多播组,那么就 必须启用IGMP代理机制,此时的处理过程如下。 第1步:用户1发送IGMP成员报告消息,请求加人多播组Go 第2步:路由器C以逐跳方式向RP (路由器B)发送PIM加人消息。 第3步:路由器B收到PIM加人消息后,为LANB上的多播组C增加一条转发 表项。 第4步‥路由器B周期性地检查其多播路由表并通过互联网链路将IGMP成员报 告消息代理给上游的UDL设备; 第5步‥路由器A在UDL上创建并维护一条转发表项。 为了保证上述IGMP代理机制的正常工作,需要在UDL的两端都进行相应的配 置操作。 首先按照如下方式配置上游设备: SW2 (COnfig) # SW2(COnfig)# SW2 sw2 SW2 (config)# (config) interface ip gigabitethernet address ip pim lO.1.1.1 O/0/O 255.255.255.O dense-m゜de #! (COnfig) # SW2(C〇nfig)# interface ip SW2 (COnfig) # ip SW2 (COnfig) # ip sw2 (COnfig)#! SW2 (c〇nfig) # SW2(COnfig)# pim lO.2.1.1 l/0/O 255.255.255.O dense-mode igmp unidirecti゜nal-1ink interface ip gigabitethernet address address gigabitethernet lO.3.1.1 2/0/O 255.255.255.0 然后再按照如下方式配置下游设备‥ SW3(COnfig)# ip SW3(COnfig)# access-1ist SW3 (COnfig)#! SW3 (COnfig) SW3(config)# # pim rp-address interface ip address 5 lO.5.1.1 permit l゜OPback 5 239.0.0.0 0.255.255.255 o lO.7.1.1 255.255.255.0 272 第7章IP多播概述 SW3 (COnfig)# SW3 (C〇nfig) # ip ip igInP SW3 (COnfig) # ip igmp sw3 (COnfig)#! SW3 (COnfig) # SW3(COnfig)# pim address SW3 (COnfig) # ip SW3 (config) # ip (COnfig)#! SW3 (c〇nfig) # SW3(COnfig)# SW3 (COnfig)# (config) pim # interface SW3 (COn壬ig) ip o gigabitethernet O/0/O 255.255.255.O lO.2.1.2 gigabitethernet lO.5.1.1 l/0/O 255.255.255.O sparse-m゜de ip (coniig)#! ethernet unidirectional-1ink address ip udl dense-m゜de igmp # sw3 SW3(COnfig)# pim interface ip SW3 helper-address proxy-SerVice interface ip SW3 dense-m゜de igmp mr゜ute-ProXy address l゜OPback gigabitethernet lO.6.1.1 o 2/0/O 255.255.255.0 备考任务 表7-7列出了与IGMP相关的一些重要协议及信息。 表7-7 第7章的协议与标准 GLOPAddressingin233/8 RFC3180 AdministrativelyScoped旧Multicast RFc2365 lGMPversionO RFc998 H゜StExtensionsforlPMu怕casting[lGMPvlI RFcll12 lntemetGroupManagementProtocol,Version2 RFc2236 lntemetGroupManagementProtoc゜l,Version3 RFc3376 Multicast日StenerDiscovery(MLD)forlPv6 RFC2710 ciscoSystemsRouter-PortGroupManagementProtocol(RGMP) RFc3488 在Cisco路由器上配置多播相对较为容易。首先需要在αsco路由器上配置多播 路由协议。有关多播路由协议的详细信息将在下一章进行讨论,同时将在“备考任务” 中提供所有的重要配置命令。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 参考文献 7.9 7.8 273 理解与记忆 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试 主题,因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试 主题0 7.8.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 定义关键术语 7.8.2 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: 多播、多播地址范围、多播地址结构、永久多播组、指定源地址、 管理范围地址、临时多播组、多播MAC地址、加人多播组、 机制、 IGMPv2主机成员关系查询消息、 IGMPv2主机成员关系报告消息、 IGMPv2离开消息、 SSM、查询路由器选举、 MRT、报告抑制 IGMPv2指定组查询消息、 CGMP、 IGMP监听、 RGMP 推荐读物 7.8.3 Beau 7.9 IGMP、 GLOP编址、 Vi11ianson, Deve/apzJ7g JP A4ir扔ccrs‘ jvetwords , Vblune I, Cisco Press, 2000 参考文献 “Multicast in a Campus Netwock: CGMP and IGMP Snooping (Docunent WWW.Cisco.com/en/US佃roductsthw/switches佃s708佃roductsJech note-09 ID 1 lO559),” 86aoO800bO87 1.shtml Router-Port fe “ C ature/gui Configurmg Onfigurati Group Management de/dtrgmp. htm Unidirectional on/guide伯pr_C/ Protocol, WW.Cisco.com/en/US/docs/ios/12 1t/12 1t5/ l 1 c Link Routing, WW.Cisco.com/c/en/us/td/docs/ios/1 2_2/ip/ fudlr.html 攻城狮论坛(技术+生活)2群 1813097 本章主要讨论以下主题: ■ PIM-sM; ■ MSDP; ■ 域问多播路由; ■ PIMAuto-RP,单播RP以及BSR; ■ 部署多播工具和功能特性以及ssM; ■ lPv6多播操作。 第8章 ■P多播路由 第7章讨论了多播路由器与主机之间的通信方式以及是否在子网上转发或停止转 发多播流量的确定方式。但多播路由器是如何接收多播组流量的呢?多播流量又是如 何从源端转发到所有多播用户的呢?本章将一一解答这些问题。 本章首先通过解释单播路由与多播路由之间的差异来引出多播路由问题,然后讨 论多播路由协议的墓本设计概念,并说明如何解决多播路由问题。接下来将分别讨论 PIM-SM (ProtocoI Independent Multicast Sparse PIM-DM (Protocol Independent Multicast Dense 路由协议。最后,本章还将介绍DVMRP 距离矢量多播路由协议)、 (Distance MOSPF Vector Mode,协议无关多播一稀疏模式)和 Mode,协议无关多播一密集模式)多播 Multicast Routing Protocol, (MulticastoSPF,多播OSPF)以及IPv6多播操作 的墓本知识0 8.1 ″我已经知道了吗? ″测试题 表8-1列出了本章的基本主题以及与之相应的测试题。 表8-1 ″我已经知道了吗? ”基本主题与测试题对照表 多播路由基础 1 密集模式路由协议 2-4 稀疏模式蹿由协议 5一-8 lPv6多播PIM 9一-10 得分 为了提高每章前面的测试评价效果,请务必严格评分。参考答案请参见附录Ao l.多播路由器收到多播包之后,将首先执行下列哪项操作? a.检查数据包中的IP多播目的地址,查找多播路由表以确定下一跳地址,并通 过相应的接口转发该多播包 b.取决于所配置的多播路由协议,要么在所有的接口上转发该多播包,要么在选 276 第8章IP多播路由 定的接口上转发该多播包(收到该多播包的接口除外) c.确定路由器用来将数据包发送给该多播包源端的接口,并确定该多播包到达的 是否是该接口 d.如果路由器没有任何直连的组成员或者任何直连的有效下游路由器,那么就会 向上游邻居发送剪除(Pmne)消息 2. PIM路由器在LAN接口上收到PIM宣称(Assert)消息之后,有关该路由器响应 操作的描述,哪些是正确的? a.路由器不采取任何操作 b.如果路由器配置了PIM-DM路由协议,那么就处理该宣称消息,否则将忽略该 消息 c.如果路由器配置了PIM-SM路由协议,那么就处理该宣称消息,否则将忽略该 消息 d.路由器将发送PIM宣称消息 3. PIM-DM路由器向下游路由器发送剪除消息之后,如果从下游路由器收到了同一多 播组的嫁接(Gr乙脆)消息,那么下面有关该路由器响应操作的描述,哪些是正确的? a.路由器将向下游路由器发送嫁接消息并向上游路由器发送剪除消息 b.路由器将向下游路由器发送剪除消息并向上游路由器发送嫁接消息 c.路由器将与上游路由器重新建立邻接关系 d.路由器将向上游路由器发送嫁接消息 4.在路由器Rl上运行命令show 显示(S,G)表项的如下信息: ip mroute Seria12, 239.5.130.24之后,将在出站接口列表下 Prune仰ense, 00‥01‥34/00:01‥26,那么下面有 关该信息的解释哪一项是正确的? a.路由器Rl已经在1分34秒之前通过seha12接口向其上游路由器发送了剪除 消息 b.路由器Rl将在1分26秒之后通过Seria12接口向其上游路由器发送嫁接消息 c.路由器Rl已经在1分34秒之前通过Seria12接口收到其下游路由器发送的剪 除消息 b.路由器Rl将在1分26秒之后通过Seria12接口收到其上游路由器发送的剪除 消息 e.路由器Rl将在1分26秒之后通过Seria12接口转发该多播组的流量 5.下面有关PIM-SM RP路由器何时向第一跳DR发送单播PIM 注册)消息的描述,哪些是正确的? a.如果RP不需要该流量 b.如果RP已经收到了该共享树的流量 Register-Stop (停止 8.1 6. c. RP开始从多播源接收多播流量的时候 d. RP通过SPT向下游路由器发送多播流量的时候 “我已经知道了吗? ”测试题 277 PIM-SM路由器Rl向其上游邻居发送了一条(S,G)RP-bit剪除消息。假设网络中的 所有PIM-SM路由器使用的都是Cisco默认的spt-threshold值,那么下面有关 PIM-SM网络中不同路由器的当前状态的描述,哪些是正确的? a.根路径树与最短路径树在Rl位置处分叉 b. Rl从最短路径树切换到根路径树 c. Rl从根路径树切换到最短路径树 d. (S,G)表项的RPF邻居与(*,G)表项的RPF邻居在Rl位置处不同 7.对于使用Auto-RP的PIM-SM Cisco-RP-Amounce (αsco LAN网络来说,假设某台路由器被配置为发送 RP宣告)消息和Cisco-RP-Discovery (Cisco RP发现) 消息,所有的路由器均显示所有接口都拥有正确的处于稀疏模式下的PIM邻居,但 是网络管理员发现很多路由器显示的RP映射信息不一致,某些路由器能够显示正 确的RP映射信息,但很多叶子路由器却无法显示任何RP映射信息。那么出现该问 题的最可能原因是什么? a.叶子路由器与映射代理之间的链路出现了拥塞 b.所有路由器的所有接口都配置了ip pim sparse-mode命令 c.使用override选项为叶子路由器配置了静态RP地址 d.叶子路由器的RPF检查失败 8.对于PIM-SM路由器Rl的多播路由表来说,在多播组227.7.7.7的(*,G)表项中列 出了两个接口‥ sO/0和鼠0/00假设接下来的10分钟之内(*,G)表项都没有出现任何 变化,那么下面哪一项是正确的? a. Rl正在向RP发送PIM加人消息 b.只要RP继续将多播组227.7.7.7的多播流量转发给Rl, Rl就不需要向RP发 送PIM加人消息 c. Rl正在从sO/0和faO/0中的一个接口接收PIM加人消息 d. Rl正在从接日faO/0接收IGMP报告消息 e.虽然RP一直周期性地向Rl发送PIM剪除消息,但Rl一直在应答PIM拒绝 .(R句ect)消息,因为Rl仍然希望接收该多播组的数据包 9. MLD使用下面哪三类消息? a.查询(Query) b.空(Null) c.报告(Report) d.完成(Done) 278 第8章IP多播路由 10.下面哪个IPv6地址在IPv6中用来表示嵌人式RP地址? a. FE7E:0240:2001:2:2:2:0:1 b. F17E:0240:2001:2:2:2:0:1 c. FF7E:0240:2001:2:2:2:0:1 d. FO7E:0240:2001:2:2:2:0:1 墓本主题 8.2 多播路由基础 所有路由协议的主要功能都是帮助路由器在正确的方向上转发数据包,让数据包 持续靠近期望目的端并最终到达目的端。转发单播包时,路由器需要检查数据包的目 的地址、从单播路由表中找到下一跳地址并通过适当的接口转发数据包。单播包始终 沿着从源端到目的端的单条路径进行转发。 从图8-1上半部分可以看出,路由器只要查找其单播路由表就可以很容易地做出 单播包的转发决策。但是,如果路由器收到的是多播包(如图8-1下半部分所示),由 于单播路由表中不存在多播IP地址,因而路由器无法转发多播包。此外,路由器还经 常需要通过多个接口向外转发多播包并到达所有接收端。从这些需求可以看出,多播 转发进程比单播转发进程要复杂得多。 ‘我知道如何处理这个数据包” Router# Gateway lO.0.0 单播包 show of last 0/24 1S is ip ro山e resort is not Subnetted, c lO.1.1.O R lO.1.6.0 [120/1] directly c lO.1.4.O ls via 3 set subnets connected, lol.4.3, FastEthemetO/O 00:00:10, directlyconnected, Sieria10/1 Seria10/1 单播色 目的地址10.1.6.3 目的地址10士6.3 源地址10工上10 源地址10士上「0 多播色 目的地址226.1.1.1 源地址10士上10 图8-1多播路由问题 从图8-1可以看出,路由器收到了目的地址为226.1.1.1的多播包。由于该目的地 址表示的是一个接收端不断动态变化的多播组,而不表示任何一个接收端的地址。那 8.2 多播路由基础 279 么路由器如何找到这些用户的位置呢?路由器应该将该多播包转发到哪里呢? 下面通过一个例子来帮助大家更好地理解多播路由的难点。假设希望通过邮件发 送聚会邀请函,但是仅制作了一份邀请函,而不是一打邀请函。在发送这些邀请函之 前,需要写上邮件地址以及“本信封包含了我的聚会邀请函”,并将邮件投送到邮筒中。 邮政系统检查了信封上的地址信息之后,应该如何投递该邮件呢?由于只有一份邀请 函,邮政系统需要制作多分拷贝吗?而且邮政系统如何知道需要将这些拷贝投递到哪 些地址呢?与此相比,如果IP多播就是邮局,那么就需要知道你希望邀请哪些人参加 聚会,知道他们都住在哪里,同时还要制作多份拷贝并将这些拷贝投递到正确的住址。 后面将详细讨论多播流量的转发解决方案以及在路由式网络中控制多播流量分发 的解决方案0 8.2.1多播路由协议概述 路由器可以利用密集模式多播路由协议或稀疏模式多播路由协议来转发多播包。 本节将讨论利用密集模式多播路由协议转发多播包、 RPF (Reverse Pa血Forwarding, 反向路径转发)检查以及利用稀疏模式多播路由协议转发多播包的相关概念,利用这 些技术可以解决上面提到的多播路由问题0 1.使用密集模式的多播转发 密集模式多播路由协议假定多播组应用非常普遍,以至于网络中的每个子网都至 少有一个接收端希望接收该多播组流量。因而密集模式多播路由协议要求路由器在所 有已配置的接口上都转发多播流量,但是避免产生环路的接口除外。例如,要求永远 也不能通过收到多播包的接口向外转发该多播包。图8-2显示了密集模式多播路由协 议在某接口上收到多播包之后通过其他所有接口转发该多播包拷贝的处理过程。 IP路由表摘录: C lO工1.O is directly 多播包 目的地址:226.1.1.1 源地址‥10士1.10 图8-2 Rl利用密集模式多播路由协议转发多播包 connected, FastEthemetO/0 攻城狮论坛 280 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 第8章IP多播路由 图8-2显示了Rl的密集模式处理逻辑, Rl将多播包拷贝从所有接日(收到该多 播包的接口除外)泛洪出去。虽然图8-2仅显示了一台路由器,但其他路由器也能接 收这些多播包并重复该处理过程,所有子网都将收到一份原始多播包的拷贝。 虽然密集模式协议假设所有子网都需要接收多播包的拷贝,但密集模式协议允许 路由器询问不希望接收哪些特定多播组的流量。如果满足以下两个条件,那么密集模 式路由器通常就不希望接收指定多播组的多播包: ■ 该路由器下面没有任何有效的下游路由器希望接收该多播组的数据包; ■ 该路由器不知道直连子网中有任何主机已加人该多播包。 如果满足上述两个条件,那么路由器就需要通知其上游路由器,不要向其发送指 定多播组的流量,此时就需要用到一种被称为剪除(Pmne)的特殊消息。有关密集模 式路由器之间如何通信的机制将在本章后面的PIM-DM一节详细讨论o DVMRP、 PIM-DM以及MOSPF都是本章讨论的密集模式多播路由协议,但重点 讨论的是PIM ̄DMo 2. RPF检查 如果路由器在收到多播包之后只是简单地通过其他所有接日向外转发多播包拷 贝,那么就很难避免多播包在互连网络中的来回传播。为了避免这类环路问题,路由 器不在收到多播包的接口上向外转发多播包。多播路由器利用RPF检查机制来避免环 路问题, 厂蒜 RPF检查为密集模式路由器的转发逻辑增加了以下处理步骤。 查看多播包的源IP地址。如果匹配该源IP地址的路由列出的出站接口是收到该 裤霹多播包的实际接口,那么多播包就通过了耻F检查,否则将不复制也不转发该多播包。 在图8-3所示案例中, 机1发送了一个多播包, R3对同一个多播包的两份独立拷贝实施了RPF检查。主 Rl将其泛洪给R2和R30 R2收到多播包拷贝后也进行泛洪, 因而R3会从这两台路由器收到相同的多播包:在接口SO/0上收到来自R2的多播包, 在接口SO/1上收到来自Rl的多播包。如果没有RPF检查机制,那么R3将转发从Rl 和R2收到的多播包,从而出现多播包环路问题。与此类似, Rl和R2也将一直重复 上述过程。这种重复操作就会形成多播路由环路并产生多播风暴,从而浪费大量带宽 及路由器资源。 除非多播包通过了RPF检查,否则多播路由器将不转发任何多播包。从图8 ̄3可 以看出, R3必须确定是否应该接受来自Rl和R2的多播包o R3利用RPF检查机制即 可做出该决策,具体过程如下。 第1步: R3检查每个人站多播包的源地址,对于本例来说就是10.1.1.100 RPF 检查过程的第2步将用到该源地址。 第2步: R3根据其将数据包转发到10.1.1.10的路由来确定反向路径接口。对于 攻城狮论坛(技术+生活)2群 1813097 8.2 多播路由基础 281 本例来说,就是匹配R3去往10.1.1.0/24的路由。该路由列出的出站接口是sO/1,因 而sO/1成为IP地址10.1.1.10的RPF接口。 矗昆 多播流量 目的地址226士上1 源地址10士上10 RPF检查 “我如何反向回到源地址?” R3# R show ip route l 10士上0¨20/1]vla include lO工上O 10士4士00‥00:10, Seria10/1 矗昆 图8-3 R3执行RPF检查 第3步: R3将第2步确定的反向路径接口与收到多播包的接口进行对比,如果匹配, 那么就接受并转发该多播包,否则将丢弃该多播包。对于本例来说,耻在接口sO/1上收到 来自Rl的多播包之后泛洪了该多播包,但是忽略了在接口sO/0上收到的来自R2的多播包。 根据RPF检查策略,路由器将接受通过最短路径到来的数据包,而丢弃通过较长 路由到来的数据包。多播路由协议无法使用目的地址来帮助路由器转发数据包,这是 因为多播地址表示的是多播流量,因而多播路由协议需要利用RPF检查机制来确定数 据包是否通过从源端到该路由器的最短路径路由到达的路由器。如果是,那么多播路 由协议将接受并转发该多播包,否则将丢弃该多播包,从而避免产生路由环路以及多 播包重复问题。 不同的多播路由协议确定其RPF接口的方式也不同: ■ DVMRP维护一个独立的多播路由表并利用该多播路由表进行RPF检查; ■ PIM和CBT (Core-BasedTree,核心树)通常使用单播路由表进行RPF检查 (如图8-3所示); 282 第8章IP多播路由 ■ PIM和CBT也可以使用DVMRP路由表、 Gateway MP-BGP (MultiprotocoI Border Protocol,多协议边界网关协议)路由表或静态配置的多播路由进行 RPF检查; ■ MOSPF不使用RPF检查机制,因为MOSPF利用Dijkstra算法同时计算转发 及反向最短路径源根树(source-rooted tree) 0 3.使用稀疏模式的多播转发 密集模式路由协议在多播应用非常普遍以至于几乎需要将多播流量分发给网络中 的所有子网时非常有用。但是,如果多播用户仅位于少量子网中,那么密集模式路由 协议仍在整个互连网络中泛洪多播流量,此时将会浪费大量带宽及路由器资源。在这 种情况下,稀疏模式路由协议(如PIM-SM)将有助于减轻网络资源的浪费情况。 密集模式与稀疏模式多播路由协议的主要区别在于它们的默认行为。密集模式路 由协议默认持续转发多播组流量,除非下游路由器发送消息称不再希望接收该多播组 流量。稀疏模式路由协议则不将多播组流量转发给任何其他路由器,除非收到其他路 由器发送的消息称希望接收发送到指定多播组的数据包拷贝。下游路由器请求接收多 播包的原因只有以下两者之一: ■ 该路由器从下游路由器收到希望接收该多播包的请求; ■ 直连子网上的主机发送了该多播组的IGMP加人消息。 图8-4给出了主机(即本例中的H2)在收到主机Sl发送给多播组地址226.1.1.1 的多播包之前的PIM ̄SM处理过程o (Rendezvous 的是, PIM-SM首先将多播包转发给被称为RP Point,聚合点)的指定路由器,多播流量到达RP之后,与密集模式不同 RP并不自动将该多播组流量转发给任何路由器,除非路由器明确请求接收该多 播组流量。 在解释图8-4中带编号的操作步骤之前,需要先考虑该互连网络的状态。所有路 由器均配置了PIM ̄SM,Rl被选举为RP,在这三台路由器当中,Rl的IP地址172.16.1.1 被静态配置为RP地址。通常将环回接口地址配置为RP地址并在单播路由协议中宣告 该环回网络,这样一来所有的路由器都能知道如何定位RPo至此, Rl (充当RP)能 够接收发送给226.1.1.1的多播包,但并不转发该这些多播包。 图8-4中的操作步骤如下。 第1步:主机Sl向RP发送目的地址为226.1.1.1的多播包。 第2步‥ Rl忽略该多播包,因为没有路由器或本地主机告诉RP 该多播包的拷贝。 (Rl)希望接收 8.2 多播路由基础 283 疆 多播包稀疏模式 不从sO/0 和sO/1向外转发 圈匪 田圈 蜀晕罕 lGMP加入226.1.1.1 匪 图8-4 Rl利用PIM-SM路由协议转发多播包 第3步:主机H2发送多播组226.1.1.1的IGMP加人消息。 第4步: 第5步: R3向RP (Rl)发送多播组226.1.1.1的PIM加人消息。 Rl的处理逻辑此时发生了变化, Rl将通过接日sO/1将原本发送给 226.1.1.1的多播包都转发给R30 第6步:主机Sl向226.1.1.1发送多播包, Rl将该多播包通过接口SO/1转发给R30 对于PIM-SM网络来说,非常关键的一点就是所有路由器都必须以某种方式了解 到RP的IP地址。如果是小型网络,可以考虑在每台路由器上静态配置RP的IP地址。 本章将在后面的“动态发现RP与使用冗余RP”一节讨论路由器动态发现RP的IP地 址的方式。 从例8-4可以看出,使用了稀疏模式路由协议(如PIM-SM)之后确实节省了网 络资源。由于R2没有在其LAN接口上收到任何IGMP加人消息,因而R2不会向RP 发送任何转发该多播组流量的请求。因此, 带宽, Rl不会浪费从Rl到R2的链路上的链路 R3也不会将多播组流量转发给R20 圭:图8Jl中的R3将首先刺甩RP的旧地址(而不是多播包的源端IP地址)执轩RPF检查 逮盘因为R3正在接收来宜RP的寄播纽流蔓。如桑RPF检查通过.那么R3将在其日\N上转发 蔼事播辑蒲膏 284 第8章IP多播路由 8.2.2 多播定界 出于管理、安全或策略原因,利用多播定界(multicastscoping)机制可以将多播 流量的转发范围限制在一组路由器之内。也就是说,多播定界是一种定义多播流量能 够在网络中传播边界的机制。接下来将讨论以下两种多播定界方法: ■ TTL定界; ■ 管理性定界0 1. TTL定界 对于TTL定界来说,路由器会将多播包中的TTL (Time TbLive,生存时间)值 与每个出站接口上配置的TTL值进行对比。仅当接口配置的TTL值小于或等于多播 包的TTL值时,路由器才在这些接口上转发多播包。事实上, TTL定界机制会在路由 器丢弃多播包的位置将TTL值从0重置为一个较大值。在图8-5所示案例中,多播路 由器在其接口上配置了不同的TTL阑值。 目的地址2262.2.2 TTL=1 8 < 多播TTL阐值=8 转发数据包 EO 多播TTL闺值=32 不转发数据包 多播TTL阐值=0 转发数据包 图8-5 利用TTL闽值的多播定界 从图8-5可以看出,多播包到达sl接日时的TTL为18,路由器将该多播包的TTL 值减1得到170假设该路由器在所有的四个接口上均配置了密集模式路由协议且RPF 检查成功,也就是说,该路由器希望在每个接日上都转发该多播包拷贝。为此,路由 器需要将多播包的剩余TTL值(目前为17)与每个出站接口的TTL阑值进行对比。 如果多播包的TTL大于或等于接日TTL,那么就在该接口上转发多播包,否则就不转 发多播包。对于αsco路由器来说,所有接日的默认TTL值均为00 对于图8-5中的接日SO和s2来说,网络管理员将它们的TTL值分别配置为8和 8.3 密集模式路由协议 285 320由于接口SO和eO的TTL阑值小于17,因而路由器将在接口SO和eO上转发该多 播包。但是,由于接口S2的TTL阑值32大于17,因而路由器将不在接日S2上转发 该多播包o TTL定界方式也有一定的缺点。首先,很难在大型复杂网络中部署该方式,因为 在大量路由器和大量接口上估算正确的TTL阑值,使得网络能够正确地将期望会话限 制在预期范围内是一件非常庞大的工作量。其次,在接日上配置的TTL阑值将应用于 所有多播包,如果希望为某些多播会话提供一定的灵活性,那么就必须控制多播应用 在多播包离开服务器的时候更改TTL值0 2.管理性定界 第7章曾经说过,管理性定界的多播地址是范围在239.0.0.0-239.255●255.255的 私有地址。可以利用这些地址设置管理边界,从而限制将多播流量转发到域边界之外。 管理性定界需要采取手工配置方式,可以在路由器接口上配置并应用过滤器,使得组 地址位于该私有地址范围内的多播流量不会进人或离开该接口。 8.3 密集模式路由协议 目前存在以下三种密集模式多播路由协议: ■ PIM-DM (ProtocoI Independent Multicast Dense Mode,协议无关多播一密集模 式); ■ DVMRP ■ MOSPF (Distance Vector Multicast Routing Protocol,距离矢量多播路由协议) ; (MulticastoSPF,多播OSPF)。 本节将重点讨论PIM-DM,同时简要描述DVMRP和MOSPFo 8.3.1 PIM-DM操作 PIM定义了一系列协议消息及操作规则,路由器可以据此有效地转发多播IP包。 虽然PIM通过RFC 2362、 RFC 3446和RFC 3973发布为试验性协议,但最初的PIM 属于Cisco专有协议。这些PIM规范详细说明了本章前面案例提到的各种规则(类似 于RPF检查), PIM密集模式采取泛洪多播包的处理逻辑,直到路由器发送剪除消息 为止,而PIM稀疏模采取不转发任何多播包的处理逻辑,直到路由器发送加人消息为 止。本节将详细描述PIM-DM的处理规则o PIM的名称来源于其使用单播IP路由表进行RPF检查,但是与使用何种单播IP 286 第8章IP多播路由 路由协议构建单播路由表项无关。事实上,名称“PIM”是与其他两种密集模式协议 (DVMRP和MOSPF)相比而言的,这两种密集模式协议都不使用单播IP路由表进行 RPF检查,而是构建自已独立的路由表。而PIM则是简单地使用单播IP路由表执行 RPF检查,不过与何种单播IP路由协议在路由表中构建特定表项无关0 1.利用PIMHe∥o消息建立PIM邻接性 与大多数路由协议相同, 似的机制建立邻接关系o PIM路由器也要与邻居PIM路由器基于相似的原因和相 PIMv2 (当前的PIM版本)在每个配置了PIM的接口上每 30秒钟发送一条Hello消息。在同一个接日上收到Hello消息后,路由器就可以发现 邻居、建立邻接关系并维护邻接性o 播目的地址224.0.0.13 PIMv2 Hello消息使用IP协议号103及保留的多 (该地址被称为全部PIM路由器多播地址)o 一个保持时间(Holdtime)值,通常是发送方的PIM Hello消息中包含 Hello间隔的3倍。如果接收方 在该保持时间内未收到发送方的HeⅡo消息,那么就认为发送方邻居已失效。 在后面的章节中,大家将会看到与直连邻居建立和维护邻接性对于PIM的正常运 行来说至关重要o PIM路由器仅在其已知存在有效PIM邻居的接口上发送其他PIM 消息0 2.基于源的分发树 密集模式路由协议适用于密集拓扑结构,这类网络中的多播组成员占到所有主机 的绝大多数o PIM ̄DM路由器收到多播包之后,将首先执行RPF检查。如果RPF检 查成功,那么路由器就将该多播包拷贝转发给所有PIM邻居(收到该多播包的邻居除 外)。每个PIM-DM路由器都重复上述过程并在整个网络中泛洪该多播组流量,最终 将多播包泛洪到所有无下游PIM邻居的叶子路由器。 事实上,上述处理逻辑描述的是被PIM称为基于源的分发树( tree)的概念,有时也将其称为SPT Ⅱee) source ̄based distribution (Shortest-PathThee,最短路径树)或有源树(Source 。这里所说的树定义了发起多播包的源主机与需要接收该主机发送的多播包拷贝的 所有子网之间的路径,将源端作为树根,将路由器作为树中的节点,将连接在路由器上 的子网作为树枝和树叶。有关sPT的概念可以参考本章前面讨论过的图8-30 图8-3 中的三台路由器的配置很简单:只要在每台路由器上添加全局命令ip multicast-rou血g并在所有路由器的所有接口上添加接口命令ip 对于每种源和多播帧组合来说, 藕 pim densermode即可。 PIM-DM都可能有一棵不同的基于源的分发树, 这是因为SPT与源端位置以及侦听每个多播组地址的主机位置相关。记号(S,G)表示一 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 8.3 本资料仅供试读 . 密集模式路由协议 个特定SPT或者属于特定SPT的单台路由器,其中的S表示源端的IP地址, 287 G表示 多播组地址。例如,如果将图8-3中的示例按照记号(S,G)来表示的话,那么就可以写 成(10.1.1.10, 226.1.1.1)。 例8 ̄1给出了R3的部分(S,G)SPT表项,即图8-3中的(10.1.1.10,226.1.1.1)SPTo 主机Sl正在向226.1.1.1发送多播包,主机H2发送了多播组226.1.1.1的IGMP加人 消息。例8-1给出了R3的多播配置信息以及该多播路由表的部分表项(如show mroute命令的输出结果所示) ip 。 励8-1多擂招置皮虏由表贺 R3 (COnfig) R3(COnfig)# R3 # ip int (COnfig-if)# R3(COnfig-if)# R3 R3# (COnfig-if)# show |P multicast-routing faO/O ip pim int ip dense-mode sO/1 pim dense-mode mroute Inc〇ming in亡erface: 0u亡going in亡erface Fas亡E亡hernetO/0, Seria10/1, RPF nbr lO.1.4.1 lis亡: Forward/Dense, 00:00‥12/00‥00‥00 例8-1给出的多播路由信息如下。 ■ 阴影部分信息表明(10.1.1.10, 226.1.1.1)的(S,G)表项处于Up状态的时间已经 达到12秒,如果R3在2分48秒之内还未转发(S,G)包,那么将超时o R3每 次利用该表项转发数据包之后,就会将该定时器重置为3分钟。 ■ 标志C表明R3拥有一个直连的226.1.1.1组成员,标志丁表明该(S,G)流量是 在最短路径树上转发的。 ■ 多播组226.1.1.1的人站接口是sO/1, RPF邻居(即去往源地址10.1.1工0反方 向的下一跳IP地址)是10.1.4.10 ■ 通过接口龟0/0向外转发多播组流量,该接口处于转发状态的时间已经达到 12秒。第二个定时器显示为00:00:00,这是因为该定时器对于PIM-DM来说 不能超时(因为该接口必须持续转发多播组流量,直至被剪除)。 接下来的两节将介绍PIM-DM路由器利用学自IGMP的信息来动态扩展和压缩基 于源的分发树以满足组用户需求的实现方式0 3.剪除消息 PIM-DM会在源端第一次向一个新的多播地址发送多播包的时候创建一个新的 SPTo该SPT包含除RPF接口之外的所有接口,这是因为PIM-DM假设所有的主机都 攻城狮论坛(技术+生活)2群 1813097 288 第8章IP多播路由 需要接收每个多播包的拷贝。不过某些子网可能并不希望接收这些多播包拷贝,因而 PIM-DM定义了一种进程,允许路由器利用PIM剪除消息从SPT中删除特定接口。 以图8-3为例,主机Hl和H2希望接收发送给226.1.1.1的多播包拷贝,不过从 图中可以看出, R2从Rl获得多播包之后,会将多播包转发给R30事实上, R3正在 丢弃来自10.1.1.10且发送给226.1.1.1的多播流量,因为这些多播包都没有通过R3的 RPF检查。在这种情况下, R3可以向R2发送剪除消息,从而让R2从出站接日列表 中删除其接口SO/10这样一来, R2就不会向R3发送该多播流量,从而解决了带宽浪 费问题。 更为正式的PIM剪除消息的定义如下: PIM剪涂消息是由一台路由器发送给第二台路由器并让第二台路由器从特定(S,G) SPT中删除收到该剪除消息的链路。 图8-6显示了与图8-3相似的互连网络示意图,区别在于R3向R2发送了剪除消息。 我的sO/1接口已被剪 除,不要再将多播包 转发给R3 > 多播包:源地址= 目的地址= 10士上0, 226士上1 墅 图8 ̄6 R3向R2发送剪除消息 8.3 R3向R2发送剪除消息之后, R2将从(10.1.1.10, 密集模式路由协议 226.1.1.1) 289 SPT中剪除其接口 sO/10例8-2给出了图8-6的路由器R2的多播路由表项,并且以阴影方式显示了剪 除状态。 R2关于多耪纽226. 励8-2 1. 1.1铂多播锗由表贺 (10.1.1.10/32,226.1.1.1),00‥00:14/00‥02‥46,flags:CT Incomingin亡erface‥ SerialO/0,RPF nbrlO.1.2.1 Ou亡goingin亡erfacelist‥ Fas亡Etherne亡0/0,F〇rWard/Dense,00:00:14/00:00‥00 例8-2显示的大多数信息都与例8-1相似,请注意出站接口列表下面显示的 Seria10/1信息。该信息表明该接口在8秒钟之前已经被剪除,这是因为R3向R2发送 了剪除消息,意味着此时的R2不会在其接口SO/1上转发多播组26.1.1.1的流量。 由于PIM-DM的本质是在整个互连网络中泛洪多播流量,因而被剪除的接口SO/1 (如例8-2所示)将在2分52秒钟之后重新回到转发状态。对于PIM-DM来说,路 由器在接口上收到剪除消息之后,会启动一个(默认) 3分钟剪除定时器并开始递减 计数至00如果下游路由器不希望接收该多播流量,那么就可以再次发送剪除消息。 利用该功能特性,下游路由器能够始终知道可以通过上游邻居的特定接日访问该多 播流量。 洼: P删v2提供了一种更好的维护接口剪除抹态的解决方案.即使用状态刷新( s睁咆啪sh ) 肖息。有关这些消息的详细信息请泰若本宰后面的“稳定状态提件与状态瑚新消息"一节 对于多播路由器来说,出站接口列表中可以有多个接口,但是人站接口列表中却 只能有一个接口。路由器从指定源接收并处理多播流量的唯一接口就是RPF接口。此 时路由器仍然需要执行RPF检查,在show ip mroute命令输出结果起始部分的人站接 口信息表示的就是RPF接口及邻居信息0 4. PIM-DM:对故障链路的晌应 链路出现故障或者其他原因导致单播IP列表出现变化后, PIM-DM都需要根据新 的单播IP路由表更新RPF接口。由于RPF接口会发生变化,因而(S,G)表项也需要在 出站接口列表中列出不同的接口。本节将通过案例来说明这种情况下PIM-DM的响应 方式。 如图8-7所示, Rl与R3之间的链路(最初显示在图8-6中)出现了故障。单播 路由协议收敛完成后,R3需要将其RPF邻居的IP地址从10.1.4.1 (R2)。此外,例中的Hl已经发送了一条IGMP离开消息。 (Rl)更新为10.1.3.2 290 第8章IP多播路由 矗昆 ←一一-一一一一 226.1.1.1的IGMP 离开消息 > 多播流量 目的地址226士上1 源地址10工上10 矗占 图8 ̄7 Rl与R3之问的直连链路出现故障且主机Hl发送了IGMP离开消息 例8-3显示了图8-7中R3的多播路由表项信息。请注意,此时的RPF接口及邻 居IP地址已经更改为指向R20 励8-3 R3关于多撤226.1J.1 ,的多招路白表贺 (10.1.1.10/32,226.1.1.1),00‥02‥16/00‥01‥36,flags:CT Outgoingin亡erfacelis亡: Fas亡E亡herne亡0/0,Forward/Dense,OO:02‥16/00:00‥00 例8-3显示了从R3角度看到的(10.1.1.10, R2已经从该SPT中剪除了接口SO/1 更改为(10.1.1.10, 226.1.1.1) 226.1.1.1) (如图8-6所示),因而R2需要重新将接口SO/1 SPT的转发状态,此时R2中的(10.1.1.10, 由表项信息如例8-4所示。 励8-4∴R2关于多绚10. 1上10, 226. 1上″铂多解确表 (10.1.1.10/32,226.1.1.1),00‥03‥14/00‥02:38,flags:T Incomingin亡erface‥ Seria10/0,RPF Ou亡goinginterfacelis亡‥ SPT变化情况。不过,由于 nbrlO.1.2.1 226.1.1.1)多播路 8.3 密集模式路由协议 291 请注意例8-4中R2的出站接口列表,目前R2已经从出站接口列表中删除了接口 faO/0并停止在该接口上转发多播流量,由于R2没有收到多播组226.1.1.1的IGMP指 定组查询消息的响应消息,因而R2还要从其(10.1.1.10, 志C 226.1.1.1)多播表表项中删除标 (C表示“直连”)。此外,由于R3仍然在接口龟0/0上转发多播流量,而且没有 向R2发送剪除消息,因而R2还需要通过接日sO/1向R3转发该多播流量0 5.剪除规则 本节将解释PIM-DM路由器在确定何时可以请求剪除消息时所必须遵循的两条重 要规则。在学习PIM ̄DM路由器如何响应互连网络变化的其他案例之前,需要首先定 义一些新的多播术语。为了简化起见,下面将从名为Rl的路由器的角度来定义上游 路由器和下游路由器: ■ Rl的上游路由器指的是Rl收到特定SPT多播包的路由器; ■ Rl的下游路由器指的就是Rl将特定SPT多播包转发至的路由器。 例如,对于图8 ̄7中sl发送给226.1.1.1的多播包来说, 对于同样的多播包来说, Rl是R2的上游路由器。 R3是R2的下游路由器(因为R2将这些多播包发送给R3)o PIM-DM路由器发送剪除消息的原因有很多,我们已经在前面的图8-6解释了其 中的一种原因,这些原因归纳如下: ■ 在非RPF接口上收到多播包; ■ 路由器发现以下两项均正确: 一指定多播组中无任何本地直连主机侦听该多播包; 一无下游路由器侦听该多播组。 本节将解释发送剪除消息的第二种原因背后的处理逻辑。在解释图8-6和图8 ̄7 的时候,需要接收发送给226.1.1.1的多播包的唯一一台主机就是H20如果H2离开了 该多播包,那么网络中的PIM-DM路由器将如何处理?图8-8就给出了这样的示例, 例中的H2发送了多播组226.1.1.1的IGMP离开消息。图8-8给出了PIM-DM路由器 利用该信息动态更新其SPT的处理过程。 图8-8显示了三个操作步骤,虽然第2步和第3步的逻辑很相似,但是却非常 重要。 第1步: H2通过IGMP离开消息离开了多播组。 第2步: R3通过IGMP查询消息确认了LAN上已经没有其他主机仍然要接收多 播组226.1.1.1的流量,因而R3通过其RPF接口向R2发送一条关于(10.1.1.10, SPT的剪除消息。 226.1.1工) 292 第8章IP多播路由 > sO’0 ←古肃sO‘0 多播流量 目的地址226.上1.1 源地址10士1.10 .矗昆 R3和R2发送剪除消息 图8-8 第3步: R2目前已经没有任何本地直连主机仍在侦听多播组226.1.1.1,其唯一的 下游路由器已经发送了源地址为10.1.1.10且组地址为226.1.1.1的SPT的剪除消息, 因而R2不再需要发送给226.1.1.1的多播包。为此, 一条关于(10.1.1.10, 剪除操作完成后, 226.1.1.1) R2将通过其RPF接日向Rl发送 SPT的剪除消息。 R3和R2将不再转发由源端10.1.1.10发送给226.1.1.1的多播 流量。从这些路由器的show ip mroute命令输出结果可以看出,它们都使用了标志P (剪除),表示该路由器已经将自已从指定的(S,G)SPT中剪除了。 例8-5显示了R3的showipmroute命令输出结果,可以看出出站接口列表已经 为空。 励8-5 R3关于多搁226.1.1.1铂多耪锗白哀贸 (10.1.1.10/32,226.1.1.1),00:03‥16/00:01:36,扛茧g喜:押 Incomingin亡erface:Seria10/0,RPF nbrlO.1.3.2 图8-8中的所有步骤均完成之后,Rl也不再需要转发由10.1.1.10发送给226.1.1.1 的多播包。这是因为Rl收到R2发送的剪除消息之后, Rl会更新其出站接口列表, 可以看出此时只有一个出站接口且处于剪除状态(如例8-6所示)。 8.3 励8-6 密集模式路由协议 293 Rl关于多耪纽226.1J.1铂多j筋路白袁贺 (10.1.1.10/32,226.1.1.1),00:08‥35/00:02‥42,耽载昏轰;、等甘 有趣的是,虽然例8-6输出结果中的Rl也设置了标志C,但Rl的C标志并不表 示其拥有直连的组成员。对于本例来说,标志C与RPF邻居0.0.0.0合在一起表示直 连设备是该多播包的源端。 在实际使用过程中,并不存在独立的剪除消息和加人消息, PIM-DM和PIM-SM 使用的都是单一的加人/剪除消息。剪除消息实际上就是在剪除字段列出组地址的加人 /剪除消息,而加人消息实际上就是在加人字段列出组地址的加人/剪除消息0 6.稳定状态操作与状态刷新消息 如本章前面所述, PIM ̄DM中的接口默认仅在剪除状态保持3分钟。剪除消息列 出了指定的源端和多播帧,即指定的(S,G) 的(S,G) SPTo路由器收到剪除消息后,会找到匹配 SPT表项并将收到剪除消息的接口标记为“prmed (剪除)”。此外还会设置剪 除定时器(默认为3分钟),因而接口将在3分钟之后重新进人转发状态。 那么PIM-DM以及被剪除链路都发生了些什么呢?实际上就是剪除了必需的链 路,然后又在3分钟之后重新添加了这些被剪除链路。在剪除了更多的多播流以及 链路之后,又再次将这些链路恢复正常,如此往复。因此, 布在试验性的RFC Cisco在开发PIMv2 3973中)的时候,增加了状态刷新(State (发 Refresh)功能,以解 决PIMvl产生的剪除(pruning)接口然后又自动去剪除(unpruning)接日的低效处 理行为。 图8-9所示案例的网络状态与上一节结束时的状态相同, 及R2与R3之间的链路已被剪除, Rl与R2之间的链路以 3分钟之后,由于剪除定时器已经超时,因而这些 链路又重新被添加到SPT中。 在邻居的剪除定时器超时之前,可以发送PIM状态刷新信息,从而让接口保持在 剪除状态。图8-9中的处理过程如下。 第1步‥ R3监控其向R2发送最后一条剪除消息之后已经过去的时间。在剪除定 时器即将超时之前, 第2步: R3决定向R2发送状态刷新消息。 R3向R2发送关于(10.1.1.10,226.1.1.1)sPT的状态剧新消息。 第3步: R2的响应方式是在收到状态刷新消息的接口上重置该接口的剪除定时器。 第4步:由于R2也向Rl发送了剪除消息而剪除了自已,因而R2也要向Rl发 送状态刷新消息,告诉Rl让其sO/0接口保持在剪除状态。 攻城狮论坛 294 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 第8章IP多播路由 我收到了状态刷新消 息一重置sO/1的剪除 定时器 . > 2 ▲于IIIIl 多播流量 目的地址: 源地址‥ 226士1」 10.1士10 我的关于(10士上10,226士上1), 且接口sO/0的剪除定时器即将 超时,因而发送状态刷新消息 矗昆 图8 ̄9 PIM ̄DMv2使用状态刷新消息的方式 只要R3在上游路由器(R2)的剪除定时器超时之前始终发送状态刷新消息,那 么SPT就可以保持稳定,也就不会周期性地多次泛洪(S,G)树的多播流量。需要注意的 是,状态剧新定时器的默认值为60秒,因而状态刷新消息的发送与剪除定时器的超时 并没有字面上隐含的关联关系0 7.嫁接消息 新的主机加人多播组之后,路由器可能需要更改特定(S,G)表项的当前SPTo对于 PIM-DM来说,一种方式就是等待剪除链路超时。以图8-9为例, 发送状态剧新消息,并且最多在3分钟之内, 是等待(默认的) R3将重新收到特定(S,G)的多播包。但 3分钟剪除定时器超时属于效率非常低下的做法。为了让路由器“去 剪除”先前从SPT剪除的接口, 蒜 R3只是简单地停止 PIM-DM引人了嫁接消息,定义如下: 路由器向上游邻居(也就是该路由器曾经向其发送剪除消息的邻居)发送嫁接消 盘息,从而让上游路由器重新将链路状态更改为转发状态(针对特定的(S,G)SPT)。 图8-10给出了一个与前面示例网络相同的例子。在图8-10显示的处理过程中, 初始状态就是上一节最后所描述的状态,即主机Hl和H2都没有加人多播组226.1.1.1 而且R2和R3也都完全从(10.1.1.10, 226.1.1.1) , SPT中剪除了。从例8-10可以看出, 攻城狮论坛(技术+生活)2群 1813097 . 8.3 Rl的接口SO/0已经从(S,G) 密集模式路由协议 295 SPT中剪除了,因而R2和R3没有收到服务器Sl发送给 226.1.1.1的多播流量。此后例中的主机H2又再次加人多播组226.1.1.10 ④我的(10士上10, 226 1士1) 表项列出RPF接口及邻居分别 为sO/0和10士2.1一向这里 发送嫁接消息! sO’0 我的(10.1士10, ←苞÷ sO’0 226.1.1.1) 表项列出RPF接口及邻居分别 为sO/0和1 0士3.2一向这里发 送嫁接消息! 图8-10 R3和R2发送嫁接消息 如果没有嫁接消息,那么主机H2在接收该多播组流量之前必须最多等待3分钟, 但是按照图8 ̄10所示步骤, H2可以在几秒钟之内就收到该多播组流量。 第1步:主机H2发送IGMP加人消息。 第2步: Rl查找RPF接口以确定多播组226.1.1.1的(S,G)状态信息(如例8-5所 示),可以看出该多播组的人站接口为sO/0、 第3步: RPF邻居为10.1.3.20 R3通过接口sO/0向R2发送嫁接消息。 第4步:此时R2知道其需要接收由10.1.1.10发送给226.1.1.1的消息,但R2的 (S,G)表项也显示了标志P,表明R2已经将自已从该SPT中剪除了,因而R2在其(S,G) 表项中找到RPF接口以及RPF邻居的IP地址(分别是接口SO/0和路由器Rl)。 第5步: R2向Rl发送嫁接消息。 此时Rl可以立即将接口sO/0重新放到出站接口列表中(与R2一样),而且H2 也已经可以接收多播包了。请注意,图中的Rl向R2发送了嫁接确认(GraftAck)消 息以响应嫁接消息,同时R2也向R3发送了嫁接确认消息以响应R3的嫁接消息。 296 第8章IP多播路由 8.3.2 PIM-DM以及PIM-SM与LAN相关的问题 本节将讨论以下三个与PIM在LAN中应用的相关操作问题: ■ 剪枝覆盖(Pruneoverride)i ■ 宣称(Assert)消息; ■ 指派路由器(Designatedrouter)0 1.剪除覆盖 对于PIM-DM以及PIM-SM来说,多路接人网络中的剪除进程操作方式与点到点 链路上的剪除进程有所不同,出现差异的原因在于路由器在多路接人网络中发送剪除 消息时,其他路由器可能不希望上游路由器剪除链路。图8-11给出了问题示例,同时 还给出了相应的解决方案,即使用被称为剪除覆盖的PIM加人消息。从图中可以看出, Rl正在其FaO/0接日上转发239.9.9.9的组流量, 该组流量, R2和R3则在它们的EO接口上接收 R2没有任何直连组成员,而且其出站接口列表为空。下列步骤列表解释了 图8-11中的处理过程,其中R3需要发送剪除覆盖消息。 成员 图8-11剪除覆盖 第1步: 列表为空)。 R2发送多播组239.9.9.9的剪除消息(因为R2关于该多播组的出站接口 8.3 第2步‥ 密集模式路由协议 297 Rl虽然在多路接人网络上收到了R2发送的剪除消息,但Rl知道网络 中的其他路由源可能还需要接收该多播组的流量,因而Rl并没有立即剪除收到剪除 消息的接口,而是设置了一个3秒钟定时器,仅在定时器超时之后才剪除该接口。 第3步:由于剪除消息是以多播方式发送给All ̄PIM ̄Routers (全部PIM路由器) 组地址224.0.0.13的,因而R3也收到了R2发送的剪除消息。但是由于R3仍然需要 接收239.9.9.9的流量,因而R3在其接日EO上发送加人消息。 第4步(未显示在图8-11中): Rl在出站接口列表中删除其LAN接口之前收到 了R3发送的加人消息,因而Rl决定不剪除其FaO/0接口。 由于R3覆盖了R2发送的剪除消息,因而将上述过程称为剪除覆盖进程。剪除覆 盖实质上就是一条加人消息(本例由R3发送) ,该消息本身与普通的加人消息并无不 同。只要Rl在3秒钟定时器超时之前收到了R3发送的加人消息, R3就可以不受中 断地持续接收多播流量0 2.宣称消息 本章讨论的最后一条PIM-DM消息就是PIM宣称消息。如果同一个LAN连接了 多台路由器,那么就可以利用宣称消息防止出现无谓操作。为了避免在LAN上发送 每个多播包的多份拷贝, PIM宣称消息允许路由器之间进行协商,协商获胜的路由器 就有权负责在LAN上转发多播包。 图8-12说明了宣称消息的必要性。图中的R2和R3都连接在同一个LAN上, 多播组227.7.7.7的有效成员, R2和R3都在接收227.7.7.7 组227.7.7.7的成员 图8-12 R2和R3发送宣称消息 Hl是 (源端为10.1.1.10)的组流量。 298 第8章IP多播路由 宣称消息的目的是将在LAN上转发组流量的职责分配给最靠近源端的路由器o R2和R3在备自的SO接日上收到了来自源端的组流量之后,将在EO接口上转发该组 流量, R2和R3都将SO接口放在人站接口列表中,同时将EO接口放在出站接口列表 中。此时R2和R3在各自的EO接日上都收到了该多播组的数据包,因而都需要发送 宣称消息来解决谁将成为转发路由器的问题。 宣称进程需要选出一个胜出路由器,其依据就是路由协议以及到达源端单播地址 的路由的度量值。对于本例来说,就是要比较R2或R3到达10.1.1.10的路由o R2和 R3发送及收到的宣称消息中都包含了它们备自路由协议(利用该路由协议学到匹配 10.1.1.10的路由)的管理距离以及所用路由的度量值o LAN上的路由器会将自已的路 由协议管理距离以及度量值与宣称消息中包含的对应参数进行对比,决定宣称进程获 胜方的规则如下。 第1步:比较路由器宣告的路由协议(学到匹配路由的路由协议)的管理距离, 管理距离最小的路由器胜出。 第2步:如果第1步相同,那么比较路由器所宣告的匹配路由的路由协议度量, 度量值最小的路由器胜出。 第3步:如果前两步均相同,那么LAN中IP地址最大的路由器胜出0 3.指派路由器 PIM 由器)o Hello消息也被用来在多路接人网络中选举DR (Designated Router,指派路 IP地址最大的PIM-DM或PIM-SM路由器将成为链路上的DRo这一点很容 易记忆,因为该选举方式与OSPF选举RTD (RouterID,路由器ID)最大的路由器为 DR路由器的方式非常相似。 通常仅在使用IGMPvl的场景下才会用到PIM 蠢 DR的概念,这是因为IGMPvl没 有选举查询路由器的机制。也就是说在LAN上存在多台路由器的情况下, IGMPvl没 有办法确定应该由哪一台路由器发送IGMP查询消息。因此使用IGMPvl的时候,需 要将PIMDR用作IGMP查询路由器。由于IGMPv2能够直接选出一台查询路由器(即 IP地址最小的路由器),因而在使用IGMPv2的情况下,不将PIM DR用作IGMP查 询路由器。 请注意, LAN上的某台路由器可能会在特定(S,G) 一台路由器则有可能成为IGMP查询路由器(IGMPvl的PIM SPT的宣称进程中胜出,而另 DR, IGMPv2的IGMP 查询路由器)。宣称进程胜出的路由器将负责在LAN上转发多播包,而IGMP查询路 由器则通过在LAN上发送IGMP查询消息而负责管理IGMP进程。此外还需要注意 的是, IGMPv2查询路由器的选举进程将选择IP地址最小的路由器,而宣称进程则选 择IP地址最大的路由器,因而通常由不同的路由器来分别承担这两种功能。 8.3 4. 密集模式路由协议 299 PIM-DM消息小结 本节将对PIM-DM做一个简要总结。表8-2列出了本章讨论过的主要PIM-DM消 息以及相应的定义。 PIM-DM消息小结 表8-2 ∫ 利用该消患与其他PIM路由器构建邻居邻接性,通过监控从每个邻居收到的He∥o消忌来维 He∥o 护邻接关系。此外,He"o消忌还用于在多路接入网络中选举PIMDR 利用该消患请求邻居路由器删除指定链躇(即剪除消息从邻居路由器指定(S,G)SPT的出站 剪除 接口列表发送出来所经过的链蹿) 下游路由器利用该消息(通过RPF接口发送给上游路由器)让上游路由器重置其剪除定时器, 状态刷新 从而允许下游路由器维持链路的剪除状态(对于指定(S,G)SPT而言) 在多路接入网络中利用该消患可以确定有枚在LAN上转发多播包的路由器(对于指定(S,G) 宣称 sPT而言) 日\N上的路由器能够以多播方式向其上游路由器发送剪除消忌,同一日\N上的其他路由器如 果希望阻止上游路由器剪除该LAN,那么就会立即发送一条关于该(S,G)SPT的加入消忌(剪 剪除覆盖(加入) 除覆盖进程实际上并不是一条剪除覆盖消息,而是一条普通的加入消患,这是RFc3973在 PIM-DM中定义加入消息的唯一目的) 如果希望将被剪除链蹿重新添加到指定(s,G)SPT中,那么蹿由器就可以向其RPF邻居发送 嫁接/嫁接确认 嫁接消患,RPF邻居将发送嫁接确认消忌作为确认操作 下面两节将简要介绍另外两种密集模式多播路由协议: 8.3.3 DVMRP和MOSPFo D>MRP DVMRP有很多版本, RFC lO75定义的是DVMRPvl o DVMRP的操作与PIM-DM 很相似,主要区别如下。 ■ Cis∞IOS没有完整实现DVMRP的所有功能,但是能够连接DVRMP网络。 ■ DVMRP使用自已的距离矢量路由协议(类似于RTPv2),每60秒钟发送一次 路由更新,并且将32跳视为无穷大。与PIM-DM相比,由于DVMRP使用 自已的路由协议,因而DVMRP的操作开销更大。 ■ DVMRP通过向All-DVMRP-Routers (全部DVMRP路由器)组地址224.0.0.4 发送探针(Probe)消息来发现邻居。 ■ DVMRP使用删减后的广播树,类似于剪除了部分链路的SPTo 300 第8章IP多播路由 MOSPF 8.3.4 MOSPF定义在RFC 1584 “Multicast Extensions 单播路由协议的扩展。由于MOSPF的RFC MOSPFo ■ to oSPF”中, MOSPF是OSPFv2 1584已处于历史状态,因而目前很少部署 MOSPF的基本操作特性如下。 MOSPF使用组成员关系LSA ftype 6 (Link-StateAdvertisement,链路状态宣告) ,即 LSAo该类型LSA会在发起方路由器的区域中进行泛洪。与单播OSPF 相同,同一区域内的所有MOSPF路由器都必须拥有完全相同的链路状态数 据包,这样区域内的每台MOSPF才能计算相同的SPTo ■ SPT采用“按需”方式计算,在特定多播组的第一个多播包到达时才计算SPTo ■ 通过sPT计算,所有路由器都知道哪些地方连接了组成员(根据组成员关系 LSA)。 ■ SPT计算完成后,相应的表项就成为每台路由器的多播转发表。 ■ 与单播OSPF相似, MOSPF的SPT也是无环路的,而且每台路由器都知道上 游接日和下游接口,因而不需要RPF检查机制。 ■ 很明显, MOSPF只能与OSPF单播路由协议协同使用o MOSPF适用于小型 网络。如果网络中有大量主机发起多播流量,那么路由器就必须执行大量的 Dijkstra算法计算过程,这将对路由器的CPU资源带来严重挑战。 8.4 稀疏模式路由协议 目前存在以下两种稀疏模式多播路由协议: ■ ■ PIM-SM CBT (ProtocoI Independent Multicast Sparse Mode,协议无关多播一稀疏模式) ; (Core-BasedTree,核心树)。 本节将重点讨论PIM-SMo 8.4.1 PIM-sM操作 虽然PIM-SM与PIM ̄DM的协议机制并不完全相反,但PIM-SM的操作策略却与 PIM-DM完全相反o PIM ̄SM假定没有主机希望接收多播包,除非这些主机特别要求 接收多播包,因而在子网中的主机请求接收特定多播组的多播包之前,路由器始终不 会将该多播流量转发到子网中。对于PIM-SM来说,下游路由器必须利用PIM加人消 息请求接收多播流量。此外,下游路由器收到多播流量之后,还需要不断向上游路由 器发送加人消息,否则上游路由器将停止转发多播流量并将该链路设置为剪除状态。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 8.4 这一点与PIM-DM完全不同, 本资料仅供试读 稀疏模式路由协议 301 PIM-DM的默认行为就是泛洪多播包,下游路由器必须 持续发送剪除消息或状态刷新淌息,才能将链路保持在剪除状态、 仅当网络中只有很小比例的子网需要接收多播组的数据包时, 1. PIM-SM才最有意义0 PIM-DM与PIM-SM的相似点 PIM-SM与PIM-DM之间存在很多棚似点。与PIM-DM相似, PIM-SM也利用单 播路面表执行RPF检查,而且也与使用何种单播路由协议构造路由表无关(与PIM-DM 一样, PIM缩写中的“协议无关”也来源于PIM-SM与任何特定的单播IP路面协议无 关)。此外. PIM-SM也使用以下与PIM-DM榔似的操作机制: ■ 通过交换He¨o淌息来发现PIM邻砧; ■ 单播胳由表发生变化后需要重新计算RPF接日; ■ 在多路接人网络中选举DR,如果网络使用的是IGMPvl,那么DR将执行所 有的IGMP进程; ■ 在多路接人网络中使用剪除覆盖机制; ■ 在多路接人网络中利用宣称消息选举指派转发路由器,宣称进程胜出的路由 器将负责在子网上转发单播包。 注:经Jeff Doyle和Jennifer DeHaven Carro"授权,上述列表来源于其专著Ro″fing Tcfy/P, wlume"。 有关上述机制的详细过程可以参考本章前面的平IM-DM操作”一节.此处不冉 赘述0 2.源端向RP发送多播包 PIM-SM通过下列西步骤进程将特定源端的多播包发送给等待接收这些多播包的 主机.后来对这些步骤做了进一步完善o 重漱 第1步:源端将多播包发送给被称为RP PM-SM转发多播包的步骤如十。 (RendezvousPoint,聚合点〉的路由器。 ≒丰帛 本节将描述这两个步骤巾的第一个步骤,即源端将多播包发送给RPo为此,连接 在与源主机相同子网上的路由器必须注册到RP上o RP仅在知道那些需要接收多播包 拷贝的路由器或主机时,才会接受它们的注册申请。 图8-13给出了该注册过程的示例,图中的RP知道当前没有任何主机希望接收发 攻城狮论坛(技术+生活)2群 1813097 . 旧多播路由 第8章 302 送给多播出228.8.8.8 命令ip (无论哪个源端)的IP多播包。所有路巾擦均配置了柏同的全帕 muIticast-routing, jf:lL有所有物理接口上均配吊了接日命令ip SParSe-modeo此外.所有路山器都通过全出命今ippim 念刚世为RP (也包砧R3. rp-address pim 10.Ⅱ0.3将R3静 hi一果路山擦发现共接Il地∫止被列为RP地上山 邦么就知道 rl」定RP)。通常将部中t接Il地址出作RP地出。出广啤播胳山协议宣生了R3的环回 同络10士10.3,/32.四面听有的胳山擦都知通加何到达RPo例8-7给出TR3的配置示 制。共他路山擦的多播刚击也写此柏似.何是法有环同接Il的刚击。 多播济罩 ′↑O「 1 10 228888) ③单播注册终止消息 图8-13 励8-7 RP在未收到任何PIM-SM路由器发送的多播组请求时的源注册进程 在R3上铅置篇硫模二封多篇〃及R产 厨璃 | 国8-13中的三个步骤栅述T RP在末收到任何PIM-SM路由器发送的多播组请求 (因为此可还法有工机加人该多播组)可∴源注册进程的处理过程。 8.4 稀疏模式路由协议 303 第1步:主机Hl向228.8.8.8发送多播包,由于Rl连接在同一个LAN上,因而 Rl收到了这些多播包。 第2步:作为响应操作, Rl向RP发送单播PIM注册(Register)消息。该注册 消息是以单播方式发送给RPIP地址(即本例中的10.1.10.3)的。 第3步‥由于R3知道其不需要转发发送给228.8.8.8的多播包,因而R3向Rl发 送单播注册终止(Register-Stop)消息。 本例中靠近源端(Rl)的路由器正试图注册到RP,但RP告诉Rl不要再打扰它, 因为没有人希望接收这些多播消息o Rl此时还没有转发任何多播消息,这是因为Rl 始终遵循PIM-SM的多播包转发策略,即不转发多播包,除非主机要求接收这些多播 包。不过,图8-13的PIM注册消息中封装了第一个多播包。从图8-14可以看出,封 装的多播包将被RP转发给所有希望接收发送给该多播组的数据包的发送方。 由于源主机可能一直在发送多播,因而Rl需要一直尝试注册到RP上,以免最终 有主机请求接收这些多播包。因此, Rl收到注册终止消息后,会启动一个1分钟的注 册抑制(Register-Suppression)定时器o Rl会在定时器超时前5秒钟发送另一条设置 了空注册(Nu11-Register)比特标志的注册消息,但是不封装任何多播包。发送了该额 外注册消息之后,将会出现以下两种情形之一: ■ 如果RP知道此时仍然没有主机希望接收这些多播包,那么就会向Rl发送另 一条注册终止消息, ■ Rl则重置其汪册抑制定时器; 如果RP知道至少有一台路由器/主机需要接收这些多播包,那么就不应答这 条更简洁的注册消息,这样一来在注册抑制定时器超时之后, R3 Rl就会再次向 (RP)发送多播包(封装在PIM注册消息中)0 3.加入共享树 到目前为止已经解释了PIM-SM注册进程的起始部分,即靠近多播包源端的路由 器注册到RP上。不过在结束这些讨论之前,还需要解释多播组的共享树(Shared 概念,有时也将共享树称为RPT (Root-PathTree,根路径树)。如前所述, Thee) PIM-SM按 照两步骤进程发起多播传送操作:首先将多播包从源端发送给RP;然后再由RP将这 些多播包发送到希望接收这些多播包的主机所在的子网中o PIM-SM在该进程的第2 步中使用的就是共享树o RPT是一棵以RP为树根的树,定义的是通过哪些链路将多播转发给所有需要的 路由器。对于互连网络中的每个有效多播组来说,都有一棵这样的树,因而在将源端 发送出来的多播包转发到RP之后, RP将使用该多播组的RPT来确定应该将这些多 播包发送到何处。 所有的PIM-SM路由器都通过向RP发送PIM加人消息来共同创建RPT树。 304 第8章IP多播路由 PIM-SM路由器通常会在以下两种情况下发送加人消息: ■ PIM-SM路由器在任意接口(将数据包路由给RP的接口除外)上收到了PIM 加人消息; ■ PIM-SM路由器收到了直连子网上的主机发送的IGMP成员关系报告消息。 图8-14给出了PIM-SM加人进程示例,该例使用的网络与图8-12相同,但Hl 正在加人多播组228.8.8.80路由器响应IGMP加人消息的方式是向RP发送加人消息, 从而成为共享SPT (*,228.8.8.8)的一部分。 ●将接口sO设置为 (★, 228.8.8.8)的转 发状态 RP IO.上10.3 重窒主 10.上6.0/24 一--------一一-→ PIM-SM加入 (★, 228.8.8.8) ▲ :① l lGMP加入 228.8.8.8 l l 矗占 图8-14 创建(*,228.8.8.8)的共享树 图8-14给出了Hl创建共享树(*,228.8.8.8)的方式,步骤如下。 第1步: 第2步: Hl发送多播组228.8.8.8的IGMP加人消息。 R4意识到需要请求RP的帮助,特别是需要RP转发去往288.8.8.8的多 播包。因而R4向RP发送关于多播组228.8.8.8的共享树的PIM加人消息,同时R4 也将其EO接日设置为多播组228.8.8.8的RPT的转发状态。 8.4 第3步: 305 R5在Sl接口上收到了加人消息,因而R5将sl接口设置为该共享树[表 示为(*,228.8.8.8)]的转发状态。此外, 第4步: 第5步: 稀疏模式路由协议 R5也知道需要将该加人消息转发给RPo R5向RP发送加人消息。 R3 (RP)将自已的SO接日设置为共享树(*,228.8.8.8)的转发状态。 上述进程完成后, RP知道至少有一台主机希望接收发送给228.8.8.8的多播包, 而且通过R3的SO接日、R5的Sl接口以及R4的EO接口成功构建了多播组228.8.8.8 的RPTo 4.完成源注册进程 到目前为止的PIM-SM讨论内容中,源10.1.1.10向多播组228.8.8.8发送了多播 包(如图8-13所示),但此时还没有任何人关心该多播包,因而RP不转发该多播包。 接下来发现有一台主机希望接收该多播包,网络中的路由器做出响应并创建了该多播 组的RPTo本节将解释上述进程的完成方式,说明RP在知道有主机希望接收这些多 播包时响应PIM注册消息的方式o RP收到关于有效多播组的注册消息之后(也就是说, 该多播组的数据包), RP相信其应该转发发送给 RP的响应方式并不是发送注册终止消息(如图8-13所示),而 是解封装多播包并转发多播包o RP响应注册消息的行为指出了注册消息的第二个重要功能。注册消息的两个主要 功能如下: ■ 允许路由器告诉RP,自已拥有特定多播组的本地源端; ■ 允许路由器将多播包(封装在单播包内)转发给RP,直至注册进程结束。 图8-15以示例方式给出了完整的源注册过程,例中的主机Hl已经加人了多播组 228.8.8.8 (如图8-14所示)。下列步骤描述了图8-15的处理过程。需要注意的是,第 3步表示转发在第2步被封装到注册消息内的多播包。 第1步:主机Hl向228.8.8.8发送多播包。 第2步:路由器封装这些多播包,然后将这些封装到注册消息中的多播包发送给 RP(R3)。 第3步: Hl R3知道其需要转发该多播包,因而解封装多播包并将这些多播包发送给 (该操作允许Rl和R3在注册进程结束后分发多播包)o R5将多播流量转发给R4, 306 第8章IP多播路由 然后R4再在LAN上转发该多播流量。 多播流量 (10士1 10, 228.8.8.8) ⑥单播注册终止消息 图8-15 RP需要接收发送给多播组的数据色时的源注册进程 第4步:R3加人源端为10.1.1.10且多播组为288.8.8.8的sPT,即向源端10.1.1.10 发送组(10.1.1.10, 第5步: 228.8.8.8)的PIM-SM加人消息。 Rl和R2收到R3请求接收该源端发送的多播组流量的PIM-SM加人消 息之后,开始向RP转发多播组流量。此时, R3 (RP)目前已经在SPT上收到了源端 的多播组流量,但Rl仍然向R3发送封装了多播包的注册消息。 第6步‥R3向Rl发送单播注册终止消息oRl收到R3发来的注册终止消息之后, 停止向R3发送封装后的单播注册消息。 虽然上述进程看起来有些繁琐,但进程结束后,就已经将多播传送到了正确位置。 该进程用到了从源端到RP的高效SPT以及从RP到希望接收多播组流量的子网的共 享树(*,288.8.8.8)。 8.4 需要注意的是, 稀疏模式路由协议 307 PIM协议也可以让靠近多播源的路由器(如本例的Rl)继续将多 播包封装在单播注册消息中,但是这种让Rl封装每个多播包、让R3解封装每个多播 包、再由R3转发这些流量的方式非常低效,因而PIM-SM设计了RP (即本例的R3), 让RP加人指定(S,G)的特定多播组树0 5.共享分发树 通常将图8-15中多播组流量所流经的从RP 分发树(shared distribution (R3)到R5再到R4的路径称为共享 tree)。由于该树以RP为根,因而有时也将该树称为RPT (Root-PathTree,根路径树)。如果同一个多播组在网络中存在多个源端,那么来自所 有源端的流量将首先传送到RP (如图8-14所示的主机Sl发送的流量),然后再沿着 该共享RPT向下传送到所有接收端。由于多播组中的所有源端都使用同一棵共享树, 因而使用通配符记号(*,G)来表示RPT,其中的“*”表示所有源端, “G”表示多播组 地址,因而图8-14中多播组228.8.8.8的RPT可以表示为(*,288.8.8.8)。 例8-8给出了图8-15中R4的多播路由表项, Show ip mroute命令可以在Cisco 路由器上显示多播路由表项。 励8-8 R4关于多解纽228.8.8.8铂多播路由表贸 (*,228.8.8.8),00:00‥08/0眺摊咱肆,RPlO.1.10.3,flags:SC |nc〇mingin亡erface:Seria10,RPF nbrlO.1.6.5 Outgoingin亡erfacelis亡: E亡hernetO,Forward/Sparse,00‥00‥08/00:02‥52 例8 ̄8显示的主要信息如下。 ■ 第一行显示多播组288.8.8.8的表项(*,G)是在8秒钟之前创建的,如果R4在 2分52秒内使用该表项转发多播包,那么该表项将超时o R4每次转发多播包 时,都会将定时器重置为3分钟。创建该表项的原因是R4收到了Hl发送来 的IGMP加人消息。 ■ 该多播组的RP是10.1.10.3 (R3),标志S表明该多播组使用的是PIM ̄SM路 由协议,标志C表明R4有一个直连的多播组288.8.8.8的成员。 ■ 表项(*,288.8.8.8)的人站接口是sO, 于SPT来说, RPF邻居是10.1.6.50需要注意的是,对 RPT接口的选择依据是到达RP的路由,而不是到达指定源端 的路由。 ■ 通过E血emetO接口向外转发组流量。由于本例在EthemetO接口上收到了Hl 发送的IGMP报告消息,因而将E血emetO接口添加到出站接口列表中。该接 口处于转发状态的时长已经达到8秒钟。剪除定时器表明如果在接下来的2 分52秒钟内未在该接口上收到IGMP加人消息,那么就会从出站接口列表中 删除该接口。 攻城狮论坛 308 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 第8章IP多播路由 6.通过持续发送加入消息实现稳定状态操作 为了维持接口的转发状态, PIM ̄SM路由器必须周期性地发送PIM加人消息。如 果路由器未能周期性地发送加人消息,那么PIM-SM就会将接口设置为剪除状态o PIM-SM路由器依据以下两个条件来维持链路的转发状态: ■ 下游路由器持续发送指定多播组的PIM加人消息; ■ 本地直连主机始终利用指定多播组的IGMP报告消息来响应IGMP查询消息。 在图8-16的示例中, R5就墓于上述两个原因将去往R3的链路维持在转发状态o H2也加人了228.8.8.8的共享树, Hl则在更早时间加人了该共享树(如图8 ̄14和图 8-15所示)。 多播流量 (10士上10, 228.8.8.8) 叠署 (★, 228.8.8.8) (★, .4 5 周期性地PIM加入消息 ▲丁ⅠⅠⅠⅠⅠ. 周期性地PIM加入消息 228.8.8.8) --------一一--→ ▲ l周期性地IGMP报告 周期性地IGMP报告 : 228.8.8.8 228排.8 矗占: 图8-16 主机H2发送IGMP加入消息 例8-9显示了图8-16中R5的多播路由表项信息,其中,有两个接口处于转发状态。 励8-9 R5关于多耪绝288.8.8.8铂多撅酵白表贺 (*,228.8.8.8),00:00:05/00:02‥59,RPlO.1.10.3,flags:SC 工ncomingin亡erface:Seria10,RPF nbrlO.1.5.3 Outgoinginterfacelist: 攻城狮论坛(技术+生活)2群 1813097 . 8.4 稀疏模式路由协议 309 Seria11,Forward/Sparse,00‥01:15/00‥02:20 E亡herne亡0,F〇rWard/Sparse,00‥00:05/00‥02‥55 从例8-9可以看出,出站接口列表中列出了两个接口。列出接口sl的原因是R5 收到了R4发送的PIM-SM加人消息。对于PIM-SM来说,下游路由器每隔60秒钟就 要持续向上游路由器发送PIM-SM加人消息o R5在接口Sl上收到R4发送的另一条 PIM-SM加人消息之后,就将其剪除定时器重置为默认值3分钟。如果R5在接口Sl 的的剪除定时器超时之前仍未收到R4发送的PIM-SM加人消息,那么R5就会将其接 口sl置人剪除状态,同时停止在该接口上转发该多播组流量。 相比之下,在出站接口列表中列出R5的接口eO的原因是R5收到了H2发送的 IGMP加人消息。第7章曾经说过,多播路由器需要在LNA接口上每隔60秒钟发送 一条IGMP通用查询消息,而且必须收到至少一条该多播组的IGMP报告/加人消息作 为响应,否则将停止在接口上转发该多播组流量o R5在其接口eO上收到另一条IGMP 报告消息之后,则将该表项的剪除定时器重置为默认值3分钟。 请注意, R5在收到R4发送的PIM加人消息或者在接口eO上收到IGMP报告消 息之后,都会触发R5向RP发送PIM加人消息0 7.检查RP的多播路由表 对于当前的示例来说(如图8-16所示状态), 的多播组228.8.8.8, RP (R3)已经加人了源端为10.1.1.10 RP也成为多播组288.8.8.8的共享树的树根。例8-10显示了R3 多播路由表中的两个表项。 励8-10 ∴R3关于多擂纽288. (*′228●8●8●8)′ 8.8.8铂多孺锗白表贺 00:02:27/00‥02:59′ RPlO●1●10●3′ 抖耙事撬∵赛 Ou亡goingin亡erfacelis亡: Seria10,Forward/Sparse, 00:02:27/00‥02‥33 (10.1.1.10/32,228.8.8.8), Ou亡goingin亡erfacelist: Outgoingin亡erfacelis亡:Null 第一个表项显示了共享树(从标记S可以看出来)。由于R3 的树根,因而人站接口为空(Null)。基于同样的原因, (即RP)是该共享树 RPF邻居也显示为0.0.0.0,也 就是说,多播组288.8.8.8的共享树流量源自该路由器,而且该共享树的流量不依赖于 其他任何路由器。 第二个表项显示了R3关于多播组288.8.8.8 (源端为10.1.1.10)的SPT表项。标 志丁表明该表项是一个SPT,并且该行的起始部分列出了源端(即10.1.1.10)。此外, 人站接口为sl,源端地址为10.1.1.10的RPF邻居是10.1.3.20 可以看出, RP利用RPT将多播组流量从源端拉给自已,并使用共享树将多播组 310 第8章IP多播路由 流量向下推送给请求该多播组流量的PIM-SM路由器0 8. sPT切换 PIM-SM可以通过PIM-SM两步骤进程持续转发多播包,由源端将数据包发送给 RP,再由RP利用RPT将数据包发送给所有的其他路由器o PIM-SM操作中最独特的 地方在于每台PIM ̄SM路由器都能在自已与多播组的源端之间构造SPT,并利用源端 到该路由器的最有效路径传送数据包。如图8-16所示,R4正通过路径Rl-R2-R3-R4-R5 从源端接收多播组流量,但是很明显,如果R4直接在R4的sl接日上从Rl接收该多 播组流量将更加有效。 在本章前面的“完成源注册进程”一节中曾经说过, PIM-SM的设计方式允许RP 在自已与直连源端的路由器(也称为源DR)之间构造SPT以拉取多播组流量。与此 相似,PIM-SM的设计方式也允许其他PIM-SM路由器在路由器与源DR之间构造SPT, PIM-SM路由器可以利用该特性避免使用低效路径(如图8-16中R4使用的路径)。此 外,路由器通过SPT开始接收多播组流量之后,可以向共享树的上游路由器发送剪除 消息,以停止转发该多播组的流量。 那么问题在于路由器应该何时从RPT切换到SPT呢? PIM ̄SM的RFC 2362规定, “建 议的切换策略是在指定的时间间隔内,路由器从特定源端收到具有重要意义数量的数据 包之后切换到SP树”。那么什么样的量算作具有重要意义的数量呢?该RFC并没有明确 说明, αsco路由器默认从共享树收到第一个数据包之后就从RPT切换到指定源的SPTo 既然路由器要切换到SPT,那么为何还要先加人RPT呢?对于PIM-SM来说,路 由器必须从多播组的源端收到至少一个数据包之后,才知道源端的IP地址。路由器在 RPT上收到一个数据包之后,就知道了源端的IP地址,从而切换到该(S,G)的SPTo 对于默认的Cisco PIM-SM操作来说,多播包通过共享树到达R4的sO接口后, R4会试图切换到源10.1.1.10的SPT (如图8-17所示)。 图8-17的前三个步骤如下。 第1步:源端(Sl,10.1.1.10)将多播包发送给第一跳路由器Rlo 第2步: 第3步: Rl将多播包转发给RP (R3)。 RP通过共享树将多播包转发给R40 路由器R4在第3步知道多播组228.8.8.8的源地址是10.1.1.10,因而除了在第3 步转发多播包之外, 228.8.8.8的SPT R4还可以利用该信息通过图8-17中的以下步骤加人多播组 (源端为10.1.1.10): 8.4 稀疏模式路由协议 311 多播流量 霸 (10.1士10, 228.8.8.8) RP 霞 lO.1.10.3 ② ⑤ (群莆220矾。, (篱孺嚣即 PIM-sM加入 (10.1.1.10, 228.8.8.8) ③ 多播流量一RPT (*, 图8-17 228.8.8.8) R4通过向Rl发送PIM-SM加入消息发起从RPT到SPT的切换过程 第4步‥ R4查找单播路由表,找到去往源端10.1.1.10的第一跳地址和出站接口, 并通过该接口(sl)向Rl发送PIM-SM加人消息。该PIM-SM加人消息明确要求加 人(10.1.1.10,228.8.8.8)的SPTo经过逐跳传送后该加人消息到达源DRo 第5步:发送了加人消息之后, Rl将sl接口设置为(10.1.1.10,228.8.8.8)SPT的转 发状态,此后Rl就可以通过其sl接口将多播包从10.1.1.10转发给228.8.8.80 此时的R4已经有了该SPT的路由表项(如例8-11所示)。 励8-∥ 尺4关于多招纽228.8.8.8铂多凝络白表项 (★,228.8.8.8),OO:02‥36/00:02:57,RPlO.1.10.3,flags‥ sC占 〇utgoingin亡erfacelis亡‥ EthernetO,F〇rWard/Sparse,00‥02:36/00‥02:13 (10.1.1●10/32′ 228.8.8●8)′ 00‥OO:23/00‥02‥33′ Ou亡goingin亡erfacelis亡‥ Etherne亡0,Forward/Sparse,00‥00‥23/OO:02‥37 制载g登;栅中 312 第8章IP多播路由 从例8-11可以看到该多播组的两个多播路由表项,这两条表项的标志J (加人) 表示多播流量已经从RPT切换到了SPT,目前将使用该(S,G)表项来转发多播组的多播 包。请注意,表项(*,G)与表项(S,G)的人站接口是不同的0 9.剪除共享树 PIM-SM路由器加人一个更高效的SPT之后,就可能不再需要通过RPT接收多播 包了。例如,图8 ̄17中的路由器R4发现其正在通过RPT和SPT接收多播组流量, 因而可以要求(也应该要求) RP停止发送该多播组流量。 为了让RP停止向共享树的下游路由器转发多播组流量,下游路由器必须向RP 发送PIM-SM剪除消息,剪除消息需要指定该(S,G) SPT (标识源端的IP地址)。从本 质上来说,该剪除消息对RP的含义如下: 请停止从列出的源IP地址向列出的组地址沿RPT向下转发多播包。 以图8-18为例(以图8-17示例为基础), R4通过其sO接口向R5发送剪除消息, 该剪除消息列出的(S,G)表项为(10.1.1.10,228.8.8.8),并设置了一个RPT比特(RP-tree bit, RP树比特)。通过在剪除消息中设置RPT比特, R4可以告诉R5 (上游路由器), 其已经切换到SPT,而且该剪除消息是针对R4正在该共享树上接收的多播组228.8.8.8 (源端为10.1.1.10)的冗余流量。 多播流量 (10士上10, 228.8.8.8) RP 霸 IO.1.10.3 ≡翌 PIM-sM RPT比特剪除 (10.1工10, .4 228.8.8.8) --------一---→ 墅 图8-18 R4向R5发送设置了RPT比特的PIM-SM剪除消息 .5 矗昆 8.4 为了阻止通过该RPT将多播包转发给R4, 接口Slo 同样, R5必须在RPT 稀疏模式路由协议 313 (*,228.8.8.8)中剪除其 R5也可以继续加人(10.1.1.10,228.8.8.8)SPTo 到目前为止,已经介绍完了PIM-SM的操作过程,接下来将解释路由器学习PIM RP的IP地址的方式0 8.4.2 动态发现RP与使用冗余RP 对于PIM-SM网络来说,每台路由器都必须通过某种方式学习RP的IP地址。 PIM ̄SM路由器可以通过如下三种方式来学习RP的IP地址。 ■ 对于单播RP来说,可以利用Cis∞ IOS全局命令ip pim rp-address cz枕sT 在所有的PIM-SM路由器上静态配置RP地址。该方法适用于图8 ̄18的五路 由器拓扑结构。 ■ 可以利用Cisco专用的Auto-RP协议指派RP并宣告其IP地址,从而所有的 PIM-SM路由器都能自动学到RP的IP地址。 ■ 可以利用标准的BSR (BootStrap Router,自举路由器)协议指派RP并宣告 其IP地址,从而所有的PIM-SM路由器都能自动学到RP的IP地址。 此外,由于PIM ̄SM严重依赖于RP,因而有必要部署冗余RPo 以下两种方法来部署冗余RP ■ 使用MSDP (本节将逐一加以解释) (Multicast Source Cis∞IOS提供了 : Discovery Protocol,多播源发现协议)的任播 RP; ■ BSRo l.利用Auto-RP动态发现RP 静态RP配置对于以下场景来说均属于次优方案: ■ 如果企业拥有大量PIM-SM路由器,而且希望为不同的多播组使用很多不同 的RP,那么在所有路由器上为不同的多播组静态配置大量RP的IP地址将非 常耗时且极为繁琐; ■ RP出现故障或者由于安装了新的RP而需要更改RP时,如果希望避免长时 间若机而将静态配置的PIM-SM域切换到替代RP将极为困难o Auto-RP提供了一种替代解决方案,允许路由器动态学习每台RP使用的单播 IP地址o Auto-RP采用了两步骤进程(如图8-19和图8-20所示)。在第1步中, RP向保留的多播地址224.0.1.39发送RP-Announce 器是RPo RP-Announce消息还允许路由器通告其是哪个多播组的RP,因而可以在 多台路由器之间实现RP的负载均衡o 消息。 (RP通告)消息,声明该路由 RP每分钟都要持续发送这些RP-Armounce 314 第8章IP多播路由 例如,图8-19中的R3是一台使用Auto-RP特性的RP,此处的R3支持所有多播 组。第1步显示的RP-Armounce消息与图8-20中的第2步是相互关联的。 矗 图8-19 r蒜 矗昆 R3发送RP-Amounce消息 Auto书P的第2步要求将某台路由器配置为映射代理。映射代理通常就是被选举 谭蠕 为RP的同一台路由器,也可以使用不同的PIM-SM路由器。由映射代理学习所有的 RP以及每个RP所支持的多播组,然后再由映射代理以多播方式发送RP-Disccovery (RP发现)消息,由该消息标识每个多播组地址空间的RPo 保留的多播地址224.0.1.400 RP-Discovery消息发送给 Auto-RP正是通过RP-Discovery消息,告知所有路由器应 该将哪些路由器用作RPo 例如,图8 ̄20中的R2被配置为映射代理。为了接收所有的RP-Armounce消息, R2需要在本地加人周知的αsco-RP-Armouce多播组224.0.1.390也就是说,映射代理 需要成为224.1.0.39 的组成员并侦听该多播组流量o R2 收到图 8-19所示的 RP-Armounce消息之后,将检查该数据包并创建Group-tO-RP 将该映射信息保存在缓存中(如图8-20所示)。 (组到RP)映射,同时 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 8.4 ② l sO O士2.0/24 sl 224.O.1.40) 组 l 10.1.10.3 (10.1.3.2, 组 RP地址 1 0.1.1 224.o.1.40) 请注意这些组到RP映射 224.O.0.w4 0.3 RP地址 1 0.1.1 矗昆 图8 ̄20 sl O士3.0/24 RP-Discovery 请注意这些组到RP映射 224.0.O.w4 315 --一一--一一→ ←一一一一---RP ̄Discovery (10.1.2.2, 稀疏模式路由协议 ″我是映射代理″ 组到RP映射 组 RP地址 224.O.O.肌 so 本资料仅供试读 0.3 矗占 R2创建Group-tO-RP映射并在RP-Discovery消息中发送这些信息 乍看起来映射代理的作用似乎并不明显,为何不将RP ̄Armounce消息都发送给所 有的其他路由器呢?如果Auto-RP仅支持一台RP,或者每个多播组都仅由一台RP提 供支持,那么映射代理可能确实有些多此一举。但如果要支持RP冗余机制,也就是 说在同一个多播组中支持多台RP都充当RP,那么Auto-RP映射代理就可以确定此时 应该使用哪台RP来支持每个多播组。为此,映射代理将IP地址最大的路由器选为该 多播组的RP Cisco (请注意,为了实现冗余机制,也可以配置多个映射代理)o 路由器配置了 PIM-SM Cisco-RP-Discovery多播组224.0. 以及 Auto-RP 之后,会自动加人周知的 1.400这意味着这些路由器将侦听多播地址224.0.1.40 , 一旦收到了224.0.1.40的数据包,就学到了Group-tO-RP映射信息并维护在备自的缓存 中o PIM-SM路由器从下游路由器收到多播组的IGMP加人消息或者PIM-SM加人消息 之后,就检查其缓存中的Group-tO-RP映射信息,然后再按照本章介绍过的PIM-SM操 作方式进行处理(将该RP用作该多播组的RP)。 攻城狮论坛(技术+生活)2群 1813097 . 316 第8章IP多播路由 Auto-RP的处理步骤如下。 第1步:每台RP都被配置为利用Auto-RP协议通过RP-Announce消息(224.0.1.39) 来通告自已以及自已所支持的多播组。 第2步‥Auto-RP映射代理(可能是也可能不是RP路由器)通过侦听RP-Announce 消息来收集所有RP的信息。 第3步:映射代理构造映射表,列出每个多播组地址空间的当前最佳RPo如果多 台RP都支持同一个多播组,那么映射代理将根据最大IP地址选出RPo 第4步:映射代理向224.0.1.40发送RP-Discovery消息以通告映射信息。 第5步‥所有路由器都侦听发送给224.0.1.40的数据包以学习映射信息,并找到 每个多播组的正确RPo Auto-RP存在所谓的“鸡和蛋”问题,由于Auto-RP的作用是找到RP,但是为了 疆得到RTArmounce消息和RP-Discovery消息, PIM-SM路由器必须向RP发送加人消 息,但此时PIM-SM路由器并不知道谁是RPo为了解决这个问题,一种方式是使用 被称为稀疏 ̄密集模式(sparse-dense mode)的PIM形式。对于稀疏一密集模式的PIM 来说,路由器在不知道RP位置的情况下将使用PIM-DM规则,在知道了RP的位置 之后将使用PIM-SM规则。因而对于正常情况下的Auto-RP来说,路由器在从映射代 理学习Group-tO-RP映射信息的过程中将使用密集模式,之后将切换到稀疏模式。但 是,如果路由器在利用Auto-RP学到RP之前就出现了多播流量,那么将利用密集模 式规则来转发这些多播包,这样就会产生额外的网络流量。如果要配置PIM稀疏 ̄密 集模式,那么就要在每个接日下配置接口子命令ip pim sparse-dense-modeo 为了避免不必要的密集模式泛洪,可以将每台路由器都配置为Auto-RP侦听路由 器(Listener)并在接口上使用稀疏模式。启用该功能特性之后,仅Auto-RP流量(多 播组224.0.1.39和224.0.1.40)会通过所有稀疏模式接口向外泛洪。利用全局命令ip autorp Iistener即可配置该功能特性。 例8-12给出了图8-20中的路由器Rl、 Auto-RP侦听路由器的多播路由器, 励8-12 |Pmulticas亡一rou亡ing in亡erface Rou亡er) l Seria10 一 l !R2 Configura亡ion(Auto-RP multicast-rou亡ing R2和R3的配置示例o R2是一台Auto ̄RP映射代理, 勉置A″!o-RP !RIConfiguration(NormalMC |P pim Mapping Agen亡) Rl是一台普通的使用 R3则是一台RPo 稀疏模式路由协议 8.4 317 l l in亡erface Seria10 摹 Configuration(Auto-RP !R3 Rendezvous Poin亡) |Pmulticast-routing l interface l LoopbackO addresslO.1.10.3 |P 255.255.255.255 interfaceSeria10 三P丰斑三窖P聂rs舞三碱耗蛊肆!Repea亡∴亡his cormandon eachMCin亡erface . l 2.利用MsR动态发现RP 虽然αsco提供的专有Auto-RP特性可以解决一些特定问题,但后来出现的PIMv2 也能够为这些问题提供其他解决方案,称之为BSR 性。从总体上来看, (BootStrap Router,自举路由器)特 BSR与Auto-RP的工作方式很相似,每个RP都要向负责收集 Group-tO ̄RP映射信息的路由器发送消息,然后再由该路由器将映射信息转发给PIM路由 器。不过,深人分析了BSR的细节信息之后,仍然可以发现这两种功能特性之间的诸多 差异。 在分析RP问题之前,有必耍先解释一下BSR路由器的概念。充当BSR的路由器有点 儿类似于Auto-RP的映射代理, BSR负责接收来自RP的映射信息,然后再将映射信息通 告给其他路由器。但BSR与Auto-RP映射代理在操作方式以及作用上主要存在以下差异: ■ BSR路由器并不为每个多播组选择最佳RP,而是在Bootstrap (自举)消息 内将所有Group-tO-RP映射信息都发送给其他PIM路由器; ■ PIM路由器对Bootstrap消息中的映射信息执行相同的哈希算法,从而为每个 多播组都选出当前的最佳RP; ■ BSR通过Bootstrap消息将映射信息泛洪给所有PIM路由器(All-PIM-Routers) 多播地址(224.0.0.13) ■ ; 泛洪Bootstrap消息时不要求路由器知道RP或者支持密集模式(具体内容将 在后面讨论) 。 图8-21描述了BSR泛洪Bootstrap消息的方式o PIMv2为BSR 建了特殊规则,要求PIM路由器泛洪这些Bootstrap消息o Bootstrap消息创 PIM-SM路由器通过所有的 非RPF接口向外泛洪Bootstrap消息,从而确保每台路由器都至少能得到一份Bootstrap 318 第8章IP多播路由 消息的拷贝。请注意,该处理规则并不依赖于密集模式或稀疏模式实现,因而BSR克 服了Auto-RP存在的“鸡和蛋”问题。 以图8-21为例, R4的sl接口是到达R2的RPF接口, R5的sO接口是到达R2 的RPF接口,因而这两台路由器都将在图8-21的第3步转发Bootstrap消息。但是, 由于R4在其某个非RPF接口上收到了来自R5的Bootstrap消息,因而R4会丢弃该 数据包,从而避免了环路问题o R5也基于相同的原因不再向外转发Bootstrap消息。 RP BsR so l O.上2.0/24 ←-一一一- 霞 IO.1.10.3 ①巨垂垂] --一一-→ ③巨垂童] ③围 ←----- 图8-21 BSR泛洪Bootstrap消息 有关BSR操作进程的另一个重要方面就是每个c-RP (candidate RP,候选RP)都 要告诉BSR路由器,自已是RP并说明自已所支持的多播组。只要记住以下内容即可 很容易理解该BSR进程: 所有的PIM路由器都通过前面收到的Bootstrap消息知道了BSR的单播IP地址。 因而c-RP只要简单地向BSR发送单播消息(称为c-RP宣告消息)即可。这些 c-RP宣告消息中包含c-RP使用的IP地址以及其支持的多播组信息o BSR特性支持冗余RP和冗余BSRo如前所述, BSR路由器发送的Bootstrap消 息中包含了所有的候选RP,所有路由器都利用相同的哈希算法为每个多播组选择当前 8.4 稀疏模式路由协议 319 的最佳RPo映射信息可以列出支持相同多播组地址的多个RPo 此外,还可以配置多台BSR路由器。此时每台c-BSR (candidateBSR,候选BSR) 路由器都会发送包含BSR路由器的优先级及其IP地址的Bootstrap消息,优先级最高 的BSR将胜出。如果相同,那么IP地址最大的BSR将胜出。胜出的BSR被称为优 选BSR (preferred BSR),优选BSR会继续发送Bootstrap消息,其他BSR则监控这 些Bootstrap消息。如果优选BSR不再发送Bootstrap消息,那么这些冗余BSR将尝 试接管BSR的角色o BSR的配置与Auto-RP相似,至少要告诉路由器其是候选RP或候选BSR,以及 使用哪个接口作为其消息的源接口。作为可选项,还可以在配置命令中使用访问列表 来限制该路由器为RP的多播组,或者指定优先级以控制多个BSR之间的选举过程。 例8-13给出了BSR和RP配置示例。 励8-13 /配置BSR矽RP 3.基于MsDP的任播RP 本章将要讨论的最后一种发现路由器的RP的工具是基于MSDP Discovery Protocol,多播源发现协议)的任播RP (Multicast Source (AnycastRP)。任播RP实质上只是 一种部署特性,而不是需要新配置命令的新功能特性。如后所述,任播RP可以采用 静态RP配置、 Auto-RP以及BSRo使用任播RP与使用Auto-RP或BSR的主要区别 320 第8章IP多播路由 在于使用冗余RP的方式。 ■ 无任播RP的情况下: RP冗余要求每个多播组只能有一台路由器为有效RPo 在一组RP之间实现负载共享的方式是为不同的多播组设置不同的RPo 有任播RP的情况下: ■ RP冗余以及负载共享的实现方式是让多个RP同时成 为相同多播组的RPo 任播RP的工作方式是让每个RP都使用同一个IP地址。所有RP都必须通过IGP 宣告该IP地址(通常采用/32前缀),然后其他学习RP的方式(静态配置、 Auto-RP 和BSR)都将多个RP视为单个RPo进程结束后,所有发送给RP的数据包都将按照 IGP路由传送给最近的RP (如图8-22所示)。 '→蜀日← ∴∴ ∴∴ ∴∴ ∴∴ l :② l ②器非∵ce 224 0.0.0/4 : 组. 224.0.0.0/4 使用Auto PP l l 霞 1 RP地址172.16.1.1 l 1 R ∠一一古ヽゝ l l l l 霞① l RP-East P-weSt 配置 RP地址172.16士1 组: 224.0.0.0/4 使用Auto BP l Loop上172.16士1/32 Loop上172.16.1.1/32 l l ⑤鞋÷望一命ゝe⑤鞋÷ R-wl R-El 图8-22 有任播RP时的RP地址学习方式 图8-22给出了使用两个RP (RP-East和RP-West)以及Auto-RP时的设计方案。 图中的处理步骤如下。 第1步:两个RP均配置172.16.1.1/32,并将该IP地址用作RP功能。本例中的 这两个RP都被配置为所有多播组的RPo 第2步:两个RP均向224.0.1.39发送RP-Armounce消息,从而完成常规的Auto-RP 功能。 第3步:由于Auto-RP无法区别这两个RP 172.16.1.1) 第4步: (因为这两个RP均使用IP地址 ,因而A山o-RP映射代理利用单个表项来创建其映射表。 Auto-RP映射代理完成常规功能,向224.0.1.40发送RP-Discovery消息, 消息中包含单个映射表项:所有多播组均映射到172.16.1.10 第5步:所有路由器(包括R ̄Wl和R-El)通过Auto-RP学到的所有多播组的单 8.4 稀疏模式路由协议 321 -RP都是172.16.1.10 上述步骤列表中的最后一步显示了任播RP的主要优点。到目前为止已经完成了 Auto-RP的核心功能,即宣告RP的IP地址。当然,该IP地址只是位于图8-22中的 两台路由器上,其他设计方案可能拥有更多的路由器。西部网络中的路由器(如R-wl) 向172.16.1.1的RP发送数据包时,出于IGP路由的关系,这些路由器实际上是将数 据包发送给了RP-Vvesto与此相似,东部网络中的路由器(如R-El)向172.16.1.1的 RP发送数据包时,这些路由器实际上是将数据包发送给了RP-Easto如果要实现上述 操作行为,不但要使用Auto-RP,而且还要部署任播RPo 这种任播RP部署方案的两个最大优点在于: ■ 多个RP同时承担单个多播组的负荷; ■ 任一个RP发生故障后都能实现快速恢复,任一个RP发生故障后的中断时间 仅仅是IGP收敛以指向共享相同IP地址的另一个RP所需的时间0 4.基于MSDP的域间多播路由 对于任播RP设计方案来说,由于每个RP都要创建自已的共享树,而所有多播源 都仅向其中的一个RP发送数据包,因而可能会产生一定的问题。例如,图8-23的网 络结构与图8-22相同,但此时的西部网络存在一个多播源。西部网络中的路由器将收 到由RP-West通过共享树分发的多播包。但是由于RP-East始终得不到西部网络中的 服务器发送的数据包,因而位于RP-East共享树中的路由器也将收不到这些多播包o RP-weSt的共享树范围 图8-23 任播RP问题(将通过MsDP来解决) RP-East的共享树范围 攻城狮论坛 322 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 第8章IP多播路由 图8-23中的东部网络和西部网络是两个多播域。本例中的这两个多播域都属于同 一个公司,但通常情况下不同的多播域属于不同的公司或不同的ISP,此时的解决方 案就是让RP通过MSDP相互告知所有已知的多播源o 播源之后, RP将通过MSDP向对等RP发送消息,这些SA PIM路由器利用RP注册到多 (SourceActive,源有效) 消息列出了每个多播组的每个源端的IP地址,并且以单播方式通过对等RP之间维护 的TCP连接进行传送o MSDP对等体必须采取静态配置方式,而且RP必须拥有到达 所有对等体以及多播源的路由。通常使用BGP 议)或MBGP (Border Gateway Protocol,边界网关协 (MulticastBGP,多播BGP)来实现该路由功能。 从图8-23可以看出, RP-West可以通过MSDP告诉RP-East有关226.1.1.1的多播 源(单播IP地址为172.16.5.5)的信息,然后RP-East再将该信息泛洪给其他所有MSDP 对等体,之后多播域中的接收端就可以加人源端为172.16.5.5且多播组为226.1.1.1的 SPT,就如同它们直接从172.16.5.5收到多播流量一样。如果RP的特定多播组没有接 收端,那么该RP就会缓存这些信息以备后用o MSDP RP需要以60秒为周期持续发 送SA消息,并在SA消息中列出其所有的多播组及多播源o RP也可以通过SA请求 消息来获得更新的列表信息,对等体需要发送SA响应消息作为响应。 如果要使用MSDP,需要首先配置Auto-RP或BSRo如果在两个路由域之间使用 MSDP,那么就必须确定已经配置了BGP,并且有路由到达MSDP对等体。其次,需 要在每台路由器上指定MSDP对等体。例8-14基于例8-13,例8-14已经配置了BSR, 并通过ip msdp peer cchahess命令将路由器RP-East与RP-West相互配置为MSDP对等 体,同时还在这两台路由器之间配置了BGPo在RP-West和RP-East上分别运行show ip msdp peer和show ip pim rp命令即可验证上述配置。请注意, 显示RP-West是多播组226.1.1.1的RP 励8-∥ 硼∥SDP !RP-Eas亡 in亡erface |P Configura亡ion L〇OPback2 |PP|mSParSe-mode mul亡icast-routing |P Pim |P 255.255.255.255 l |P rp-Candida亡e !RP-Wes亡 (如图8-23所示)。 J乾置绒励多j筋酵白 addresslO.1.10.3 interface RP-East的输出结果 L〇OPback2 Configura亡ion LoopbackO address172.16.1.1255.255.255.255 |PP|mSParSe-mode l |Pmul亡icas亡一rou亡ing |P P|m rP-Candidate LoopbackO 赢 攻城狮论坛(技术+生活)2群 1813097 稀疏模式路由协议 8.4 C〇nneC亡ion S亡a亡e‥ s亡a亡us‥ Lis亡en, Rese亡S: Up亡ime(Down亡ime) messages Ou亡Pu亡 C〇nneC亡i〇n SA 323 and : 0, Connec亡ion 00‥30:18, discarded‥ c〇un亡ers source: Messages LoopbackO sen亡/received: (172.16.1.1) 0/O O cleared oO‥30‥18 ag〇 Filtering: Inpu亡(S,G) RP |npu亡 ou亡Pu亡(S,G) ou亡Put RP SA-Reques亡S Input Peer SAs 5. none, none, fil亡er‥ fil亡er‥ r〇u亡e-maP: r〇u亡e-maP‥ n〇ne, none, none none r〇ute-maP: rou亡e-maP: none none ‥ fil亡er‥ 亡tl none 亡hreshold‥ learned queue 工npu亡 filter: fil亡er‥ fr〇m O this size‥ O, peer‥ Ou亡Put O queue Size: 0 RP发现机制小结 本节将对上面介绍过的四种RP发现方法做一个简要总结。其中的三种发现机制 属于特定的配置功能,分别为静态配置、 Auto-RP及BSRo第四种发现机制为任播RP, 需要使用前三种发现机制,但是在设计时需要让RP使用相同的单播IP地址以实现更 优的冗余特性。表8-3列出了PIM-SM的四种RP发现机制的主要对比信息。 不同RP发现机制的对比 表8 ̄3 蛀摹 静态配置 简单的引用单播IP地址 闰224.0.1.39发送RPArmounce 映射代理通过RP-Discovery消 消患,依赖于稀疏一密集模式 息向224.O.1.40发送映射信患 Auto-RP 否 否 目 否 刀≡ 通过非 RPF 躇径泛洪 E己 BsR 刀≡ 否 Bootstrap消患 以单播方式向BSR的IP地址发 送c-RP宣告;不需要稀疏一密集 模式 可以使用Auto-RP或BSR的常 任播RP 8.4.3 每个RP都使用相同的IP地址 Ei ∈己 刀≡ 刀≡ 规进程 双向PIM PIM-SM对于多播发送端较少的场景来说效率较高,但是如果存在大量发送端和 324 第8章IP多播路由 接收端,那么PIM-SM的效率将大打折扣。为了解决这个问题,双向PIM对PIM-SM 的规则做了一些微调。 在讨论双向PIM之前,有必要先简要回顾一下PIM-SM的常规运行方式。虽然可 能存在备种变化情况,但下列步骤基本描述了PIM-SM的通用处理规则。 第1步: RP构建以自已为根的共享树以转发多播包。 第2步‥源端第一次发送多播包时,最靠近多播源的路由器将多播包封装在PIM 注册消息中转发给RPo 第3步: RP向多播源发送PIM加人消息以加人该多播源的有源树。 第4步:以后连接在相同LAN上作为接收端的路由器都可以向多播源发送PIM 加人消息,以加人该多播源的SPTo 对于双向PIM来说,并不执行上述列表中的最后三步,而是遵循如下步骤。 第1步:与常规PIM-SM一样, RP构建以自已为根的共享树以转发多播包。 第2步:多播源发送多播时,接收这些多播的路由器不使用PIM注册消息,而是 在共享树的反方向(即沿着共享树从下而上朝向RP的方向)转发这些多播包。此后 将为该多播源的所有多播包持续重复该进程。 第3步: RP通过共享树转发多播包。 第4步:按照第2步和第3步转发所有多播包, RP不加人该多播源的有源树,叶 路由器也不加人该SPTo 双向PIM中的“双向”来源于第2步,即靠近多播源的路由器沿着共享树自下而 上朝向RP方向转发数据包。同时在第3步使用该共享树的另一个方向,此时RP将使 用共享树转发多播包。 8.4.4 PIM-DM与PIM-SM对比 PIM-DM与PIM-SM方案之间最容易令人困惑的地方就是,如果多播源始终在发 送,接收端始终在侦听,那么这两种方案对于终端用户多播数据流的最终结果看起来 似乎并无区别。实际上, PIM-SM在完成其更加复杂的进程之后,靠近接收端的路由 器都将加人该多播源的SPT,从而为每个(S,G)树使用最有效的转发路径。 虽然PIM-SM的底层操作方式有点复杂,但PIM-SM的应用更为广泛o PIM-SM 的本质策略是在主机请求多播包之前不转发多播包,因而对于多播使用率较低的场景 来说效率更高。随着发送端和接收端数量的不断增加, 通过PIM-DM构建的SPT相同) PIM ̄SM将快速切换到SPT (与 ,因而PIM-SM对于当前绝大多数企业的部署环境来 说更为适用,成为域间多播的一个常见选择。 表8-4概括了PIM-DM与PIM-SM的主要功能特性。 稀疏模式路由协议 8.4 325 PIM ̄DM与PIM-SM对比 表8-4 摹 版本1查询消忌的目的地址与IP协议呈 224.O.O.2与2 224.0.O.2与2 版本2Hello消忌的目的地址与IP协议呈 224.0.O.13与103 224.O.O.13与103 查询和He∥。消忌的默认问隔 30秒 30秒 版本1和版本2的默认保持时间 90秒 90秒 在多蹿接入网络上选举指派路由器的规则 子网中IP地址最大的路由器 子网中IP地址最大的路由器 主要设计原理 除非路由器向RP请求指定多播流 路由器自动接收多播流量,如果不 使用加入/剪除消患 使用嫁接和嫁接确认消息 使用剪除覆盖机制 使用宣称消患 开始使用RPT,然后切换到SPT E蔓 E己 刀≡ E己 刀≡ E己 刀≡ ∈己 ∈己 刀≡ 目 使用RP 否 使用源注册进程 否 量,否则将不会收到多播流童 发送端说不(发送剪除消患) 仅使用sPT SPT或RPT 8.4.5 希望接收特定多播流量,那么就向 刀≡ 否 刀≡ 刀≡ 是 ∈] 刀≡ ssM 到目前为止讨论的多播应用场景使用的都是ISM (Intemet Standard Multicast,互 联网标准多播)。对于ISM来说,接收端加人多播组时根本就不需要担心多播源问题, 但是对于大型网络(如电视视频网络或互联网)来说,这类场景将会产生如下问题。 ■ 多播IP地址重叠问题:在多播地址数量有限而多播又众多的情况,多个多播 流可能会使用相同的多播地址,接收端将收到它们期望的多播流以及其他使 用该多播地址的流。虽然应用程序能够丢弃这些非期望多播,但这些多播流 量已经无谓地耗用了宝贵的网络资源。 ■ 拒绝服务攻击问题:如果攻击者充当多播源并向已知的多播地址发送流量,那 么这些流量将会通过网络转发给多播组中的所有接收端。如果这类攻击流量足 够大,那么就会中断实际的多播流并给网络路由器和交换机造成严重负担。 ■ 部署的复杂性问题:如果超大型网络中存在大量的多播源和接收端,那么RP、 Auto-Rp、 SSM (Source BSR以及MSDP的部署工作将显得异常复杂o Specific Multicast,指定源多播)就是解决上述问题的一种多播解决 326 第8章IP多播路由 方案o SSM接收端知道它们的多播源的单播IP地址,因而在加人多播组时会指定多 播源。对于SSM来说,接收端在订购某个(S,G)频道时,要同时提供多播源地址和多 播组地址,这样就可以解决上面提到的众多问题。 由于每个多播流或频道都是由单播源地址和多播组地址共同标识的,因而多 ■ 播组地址可以重叠,主机仅从它们指定的多播源接收流量。 拒绝服务攻击很难攻击SSM,因为攻击者必须知道多播源地址和多播组地址, ■ 而且到达多播源的路由还必须通过网络的RPF检查。 由于已经知道了多播源的地址,因而不需要通过RP来记录哪些多播源处于 ■ 有效状态。此外,还可以在已经使用了PIM ̄SM的网络中部署SSM,此时只 需要在最靠近主机的边缘路由器上配置SSM即可o SSM使用IGMPv3 (如第7章所述)。配置基本的SSM时,需要在全局范围内配 pim range 置ip ssm (default l czccesLulis/ )命令o IANA将多播地址空间232.0.0.0- 232.255.255.255分配给了SSM,关键字default的作用是允许路由器转发SSM地址空 间内的所有多播。如果要限制多播组,那么就可以在访问列表中定义相应的多播组并 使用关键字rangeo 此外,还需要在每个接口下面利用命令ip igmp version 3启用IGMPv30例8-15 给出了路由器的SSM配置示例。需要注意的是,必须在每个接口下面启用PIM 疏模式或稀疏一密集模式) 励8 ̄15 。 乾置SS∥矽/G∥P>3 |Pmul亡icas亡一r〇u亡ing interface |P (稀 P|m l Fas亡E亡herne亡0/0 SParSe-m〇de l 8.5 部署IPv6多播PIM 对于IPv6环境来说,必须通过全局配置命令ipv6 multicast-routing显式启用多播 路由。对于给定设备来说,可以在所有启用了IPv6的接口上观察该命令的执行效果, 该命令会为所有启用了IPv6的接口自动启用多播路由。每个IPv6接口的默认多播路 由配置都是IPv6 PIM,因而不会在接口配置中显示该信息。在接口上启用了PIMv6 之后,接口将始终运行在稀疏模式下o PIM-SM通过单播路由为多播树的构建过程提 供反向路径信息,但是并不依赖于任何特定的单播路由协议。 可以在接日配置环境下利用no ipv6 pim命令在给定接口上禁用PIMo 我们将在实验室运行OSPFv3以创建一个可运行的IPv6多播环境,然后观察 部署IPv6多播PIM 8.5 327 图8-24所示拓扑结构中与IPv6及多播包传递有关的行为。 霞 图8-24 蔷莹 1Pv6多播拓扑结构 为了在图8-24中的所有设备上启用IPv6多播路由,可以采用例8-16所示的配置 命令。 基本铂/P>6多耪镭置 励8-16 conf R4# Enter R4 (C〇nfig) conf Rl# 耳n亡er Rl c〇nf Enter R3 R5 # ipv6 Per line. End wi亡h CNTL/Z. cormands, 〇ne Per line. End with CNTL/Z. line. End wi亡h CNTL/Z. line. End with CNTL/Z. line. End wi亡h CNTL/Z. multicast-routing # ipv6 cormands, 〇ne Per multicast-r゜uting t configura亡ion conf En亡er One t (config) R5# cormands, multicast-routing configura亡ion c゜nf En亡er ipv6 t (COnfig) R3# # c〇nfigura亡ion (C〇nfig) R2# R2 t configura亡ion # ipv6 c〇rmands, One Per multicast-rout土ng t c〇nfigura亡ion (COnfig) # ipv6 cormands, One Per multicast-routing 这是IPv6与IPv4多播路由表现出差异的第一个阶段。通过控制台消息即可查看 这些设备上建立的多播隧道情况。例8-17解释隧道建立情况并给出了验证方法,即明 确指定查看这些动态建立的隧道。 励8-17 验J匠/P>6多播蹬萄 Rl(COnfig)# *Mar 917‥22‥57.754:%L工NEPROT〇-5-UPDOWN‥ Changed S亡ate 亡O Line protocoIon uP Rl(config)# lllllllll !!We can lllllllll look a亡∴亡he sta亡is亡ics for 亡hese 亡unnels by‥ |n亡erface TunnelO, 328 第8章IP多播路由 show Rl# int∴tunnel O line Hardware is MTU by亡es, 1514 Encapsula亡ion BW TUNNEL, pro亡〇COl/transport Tunnel TTL Tunnel is Tunnel 亡ransmit Tunnel receive 2001‥1‥1‥1‥ l/255 Se亡 n〇亡 :1 (LoopbackO) , des亡ina亡ion UNKNOWN P|M/工Pv6 255 transmi亡 inpu亡 Las亡 Clearing Only bandwid亡h bandwidth never, Last of queue: 0/0 inpu亡 5 minute ou亡Pu亡 packe亡S Received input O packe亡S ou亡Pu亡 unkn〇Wn O ou亡Pu亡 bits/sec, o O hang coun亡ers O Ou亡Put, by亡es, CRC, O O PrO亡OC〇l buffer O bi亡S/sec, broadcas亡S, errors, O 〇u亡Put never never (Size/max/dr〇PS/flushes); o ra亡e errors, O neVer, in亡erface” T〇亡al ou亡Pu亡 drops: O (Size/max) ra亡e inpu亡, o O (kbps) (kbps) fifo s亡ra亡egy‥ minu亡e 8000 8000 Ou亡Put “show 0/75/0/0 queue‥ 5 O rXIoad Se亡 no亡 Tunnel ou亡Pu亡 usec, 500000 DLY l/255, l〇OPback source 工npu亡 up Kbi亡/SeC, 9 Tunnel Queueing is 255/255,亡XIoad reliability Keepalive pro亡〇COl Tunnel O packe亡S/sec O no packets/sec buffer O runts, O giants, O frame, O overrun, by亡es, O 亡hr〇亡亡1es 0 O ignored, O abor亡 underruns collisi〇nS, O in亡erface rese亡S drops failures, O ou亡Pu亡 buffers swapped ou亡 Rl# 从例8-17可以看出,隧道处于up状态,而且使用PIM及IPv6的隧道模式进行传 输。此外,如果要观察这些邻居关系,那么就可以使用show ipv6 pim neighbors命令 (如例8-18所示)。 验j匠P/∥粥居 励8-18 R4# show ipv6 Neighb〇r pim neighb゜r |n亡erface Address FE80‥‥1 l l l l Rl# l l l up亡ime l sh゜w l l l l l ipv6 Neighbor l l l l pim l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l DR pri 00‥01‥27 00:06:46 Fas亡Etherne亡0/1 l Expires l l l l l l l l l Bidir 1 l l B l l l l l |nterface Address Up亡ime Exp|reS DR pri Fas亡E亡herne亡0/0 00:06‥53 00:01:20 1 (DR) FastE亡herne亡0/1 00‥07:23 00‥01‥19 1 (DR) l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● pim ipv6 Neighb〇r l ● l l ● ● l ● l ● l ● l ● l ● l ● l ● l ● l ● l ● l ● l l ● ● l ● l ● l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Address ln亡erface uptime Exp|reS DR pri Fas亡E亡herne亡0/0 00‥07‥24 00‥01‥16 1 FE80:‥3 Fas亡E亡hernetO/1 00:06‥53 00:01‥20 1 l l l R3# l l l l l l show Neighbor l l l l l l l l pim ipv6 l l l l l l l l I l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l |n亡erface Address Up亡ime Expires DR Fas亡E亡herne亡0/0 00:07:05 00:01:36 1 FastE亡herne亡0/1 00‥07‥32 00‥01:39 1 l l l l l l l l l l l l l l l l l l l l l l l l ● l l l l l l 1 ● ● ● ● ● l l l l l l l l l l l l B B l l ● ● l ● l ● l l ● ● ● ● Bidir B B (DR) l l l pri FE80::5 l l l l l l l l l l l neighbor FE80‥:2 l l neighb゜r FE80‥‥1 l l Bidir FE80‥:2 show l neighb゜r FE80::4 R2# l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l Bidir B (DR) B l l l l l l l l l l l ′ 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 部署IPv6多播PIM 8.5 R5# showipv6 本资料仅供试读 329 pimneighbor Ne|ghborAddress 工nterface Up亡ime Expires FE80‥‥3 Fas亡E亡hernetO/0 00:08‥06 00:01‥331 DRpriBidir B 从例8-18可以看出,这些邻居关系都是通过“链路本地”地址建立起来的,而且 还选举了DRo可以采用与IPv4相同的方法来控制这些值0 8.5.1控制指派优先级 如果希望手工指派链路上的特定路由器承担DR (Designated Router,指派路由器) 角色,那么就可以直接控制dr-Priorrty值。对于图8-24的拓扑结构来说,可以在R5 上更改dr-Priority值(使用最大可能值),使其成为指派路由器(如例8-19所示)。 控勒指源伤先级 励8-19 conf R3# En亡er t configura亡i〇n R5(COnfig)# int R5(COnfig-if)# ipv6 <0-4294967295> ipv6 R5(COnfig-if)# exit l l l l l l l ! l l l R3# l l l l l l l l l l l l c〇mPle亡i〇n !the l l l l l show l l l l l l l line. End wi亡h CNTL/Z. l l l l l l l dr-Priority 4294967295 l l l l l l l l l l l l 亡ask 亡his l ? Preference via l l l l l l l l we 亡he l l l l l l l l can show l l l l l l l l l l l observe l l l l l l l l l l l the pim ipv6 l 亡O g|Ven l l l l l l l larger l l l l l l l l l l l l l l l R3 fac亡∴tha亡 neighb〇r l l value l l l l l l l l l l 工n亡erface up亡ime DR 00:20:53 00‥01:36 1 00‥21‥19 00‥01‥16 1 l !!工n l l l l l this !!device l l l l l l l l l ins亡ance is l l l we serving l l l do as 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ipv6 Neighbor pim l the 1 show l 1 ● l l ● 1 1 l l l l l ● ● ● ● ● 1 1 1 1 l l l See DR. 1 1 ● ● ● l ● 1 ● l l a We 1 ● 1 ● 1 ● l l l ● l l Value can 1 l 1 ● 1 ● l 1 ● ● 1 ● 1 ● l 1 1 l l l l l l l l l ● ● ● ● ● ● ● ● ● 1 1 1 1 1 1 1 l ● l l l l l l l l ● ● ● ● ● ● ● ● 亡ha亡 see 1 l of see 1 |nterface we l l l l l l the l l l DR ' l l l l l for I l l l l l l l l l l l l l l l 1 ● l l l ● l (DR) this 1 l 1 1 ● ● l l l l l l which on ′ l l l l l would l l l l pri l l l l l l l l 1 1 1 1 ● ● Bidir B B l l l l l l l l l l 亡ha亡∴亡his indicate R5. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 ● 1 ● 1 ● 1 1 1 ● ● ● 1 ● 1 1 ● ● ● ● neighbor Address expec亡ed 1 l Up亡ime 1 1 1 1 1 1 1 1 l l ● ● R3 1 1 1 ' l l l l l l l ● ● ● ● ● ● ● ● 亡he is 1 1 1 1 1 1 1 l ● l l l ● ● ● DR 1 1 1 l ● l ● for 1 1 1 1 Expires 00:23‥25 Fas亡EthernetO/0 ' ● !!As l 1 FE80‥‥3 ● l n〇亡 ● R5# l 丑XPires Fas亡E亡herne亡0/1 l l neighbor Address Fas亡Etherne亡0/0 l l n〇W COrmand‥ l FE80::2 l l is FE80‥‥5 l 8.5.2 Per priori亡y, question l pim ipv6 Neighbor 〇ne dr-Pri゜rity DR pim of segmen亡in l pim Hell〇 R5(COnfig-if)# !!Upon COrmands, fO/O l ● 1 l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 1 segment 1 1 1 1 1 pri 00:01‥20 l 亡he 1 DR 1 1 1 l l ● ● 4294967295 1 1 1 1 1 1 1 1 (DR) l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 亡O c〇nneC亡ed 1 Bidir 1 1 1 1 l ● B l ● l l ● ● 1 1 FaO/0. 1 1 1 1 1 1 1 1 1 1 1 1 1 PIMv6He∥o间隔 前面讨论IPv4 PIM的时候曾经说过,路由器在发送PIM Hello消息以建立PIM邻 居邻接性的时候就已经开始了PIM进程。路由器以30秒钟为间隔周期性地发送Hello 消息。邻居应答He110消息之后, PIM软件就会将每个LAN网段上优先级最高的路由 器选为DRo虽然DR优先级基于前面所说的DR优先级值,但是该信息包含在PIM 攻城狮论坛(技术+生活)2群 1813097 . 330 第8章IP多播路由 Hello消息中。此外,如果不是所有的路由器都提供了DR优先级值,或者优先级均相 同,那么就将IP地址最大的路由器选为DRo Hello消息中还包含了保持时间值,通常是Hello间隔的3.5倍。如果保持时间到 期的时候仍未收到邻居发送来的Hello消息,那么设备就认为该链路出现了PIM故障。 为了实现额外的安全性,可以配置一个MD5哈希值, PIM软件将利用该MD5哈 希值与PIM邻居认证PIMHe110消息。例8 ̄20通过控制Hello间隔的周期来观察上述 操作行为以及对实验室网络的影响。 P/M>6 励8 ̄20 conf R3# En亡er ∥e“o懒 t configura亡ion R3(config)# R3 int (config-if)# R3 1 l ● 1 l ● (COnfig-i王)# 1 l ● 1 l ● R3# 1 l ● 1 1 l l ● ● 1 1 l l ● ● sh゜w 1 1 1 1 1 l l l l l ● ● ● ● 1 1 1 l l l l ● ● ● ● pim 工n亡erface 1 pim 1 1 1 l l l ● ● ● in 1 ' l l l l l ● ● l l l l l ● ● ● ● ● Fas亡E亡herne亡0/O DR l l ● l l l ● l ● l l ● ● l l l l ● ● R3# l ● line. End with CNTL/Z. Nbr on 1 ? seconds l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● Hell〇 5 5 l ● ● ● ● ● ● ● fast叠thernet l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l 1 ● ● ● l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l l l l ● ● ● ● ● ● O/O DR 工ntvI C〇un亡 ● Per he110-interva1 1 interface P工M Address‥ One hel|。-interval interval ipv6 1 ● ipv6 pim ipv6 Hello <1-3600> cormands, fO/O Prior 4294967295 FE80‥:3 亡his ‥ sys亡em l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l l l l l ′ l l l l ● ● ● ● ● ● l ● l l l ● ● ● l l ● l l ● ● l l l ● ● l ● l ● l ● ● ● ● ● ● ● ● l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l ● l ● 1 l l l l l l l l l l l ' l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l ● ● ● sh゜W ● ● ● l l ● ● ′ ● l 1n亡erface DR ● ′ ● l ● ● l l ● ● interface P工M Nbr 0n Fas亡E亡herne亡0/1 Address: ● ● pim ipv6 ′ ● l ● ′ ● ● ● l ● ′ l l ● ● ● ● fastEthernet Hello Coun亡 工n亡VI 1 30 ● l l ● ● ′ ● ′ l l l l l l ● ● ● ● ● ● ● ● ● ● ′ ● l ● l ● ● ● ● ● O/1 DR Pri〇r 1 FE80‥:3 : this sys亡em 此外,例8-20还清楚地显示了DR的状态0 8.5.3 1Pv6稀疏模式多播 接下来讨论多播操作问题o 指定、 IPv6 些方法。请注意, 8.5.4 IPv6多播在指派RP的时候支持多种选项,包括静态 BSR以及嵌人式RP方式。下面将在我们的多播实验室环境中逐一分析这 IPv6多播不支持Auto-RP或密集模式操作0 1Pv6静态RP 该操作方式与IPv4多播没有什么区别,只要简单地利用IPv6地址指定RP即可。 部署IPv6多播PIM 8.5 331 图8-25将R2指定为该拓扑结构的RP,例8-21则给出了相应的配置示例。 禹事 图8-25 励8-21 1Pv6静态RP多播拓扑结构 ′P>6筋;夯RP铂乾置与验赶 conf∴t R4# En亡er configura亡ion R4(config)# 1 1 1 1 ● ● ● ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Enter 1 1 ● ● ● 1 ● configura亡ion 1 1 1 1 ● ● ● ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 1 1 ● ● 1 ● COrmands, pim ipv6 ● ● 1 ● ● Per 1 1 ● 1 ● ● One 1 ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 End ● 1 1 wi亡h cormands, pim ipv6 1 ● ● 1 ● ● ● 1 ● 1 ● 1 ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 End ● 1 1 ● line. 1 1 ● ● 1 ● 1 ● One Per 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 1 1 1 ● ● ● with 1 CNTL/Z. ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 ● 1 with CNTL/Z. 1 1 ● ● 1 ● 1 ● 1 ● 1 1 ● ● 1 ● 1 ● 1 1 ● ● 1 1 ● ● 1 ● 1 1 ● ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● End wi亡h CNTL/Z. 1 1 1 1 1 1 1 ● ● ● ● ● ● ● 1 ● 1 ● 1 ● 1 1 ● ● 1 ● 1 ● 1 ● 1 1 1 1 1 1 1 1 1 1 1 1 1 ' l l l l l l l l ! l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● t configura亡i〇n ipv6 COrmands, pim 络中的所有设备上运行show One rp-address Per line. End ipv6 ipv6 SSM pim Exp‥ pim Learnt FF33:‥/32 Up‥ 01‥19:06 FF34:‥/32 Up‥ 01:19‥06 FF35::/32 Up‥ 01‥19:06 FF36‥‥/32 Up: 01:19:06 FF37‥‥/32 Up‥ 01‥19‥06 FF38‥‥/32 Up‥ 01:19‥06 FF39‥:/32 Up: 01:19:06 FF3A‥:/32 Up: 01‥19:06 FF3B::/32 Up‥ 01‥19:06 FF3C::/32 Up: 01:19:06 CNTL/Z. from RPo验证方式非常简单,只要在网 range-1ist命令即可(如例8-22所示)。 range-1ist neVer with 2001:2:2:2::2 验土臣/P>6姓幽菇毋砌表 sh゜w 1 1 End line. 1 S亡atic 1 1 本例将R2静态指定为该多播拓扑结构的IPv6 R4# 1 2001:2:2:2::2 rp ̄address ● R5(COnfig)# 励8-22 CNTL/Z. 1 t configura亡ion Enter ● 1 line. 1 Per 1 conf 1 2001:2:2:2::2 rp-address ● R3(COnfig)# ● line. 1 t configura亡i〇n En亡er 1 2001:2:2:2:‥2 1 c゜nf R5# One rp-address 1 R2(COnfig)# R3# cormands, pim ipv6 1 En亡er 1 t c°nf R2# Per 2001:2:2:2::2 1 Rl(COnfig)# 1 One rp-address 1 conf Rl# cormands, pim ipv6 1 ‥ :‥ 332 第8章IP多播路由 FF3D‥:/32 Up‥ 01‥19‥06 FF3E:‥/32 Up‥ 01:19:06 FF3F‥‥/32 Up‥ 01‥19:06 S亡a亡ic SM 2001:2‥2:2‥‥2 RP‥ FFOO‥:/8 Learnt Exp:neVer from ‥‥ ‥ Up:00:04:28 例8-23给出了该配置的其他验证步骤,该验证步骤会从拓扑结构中的指定设备上 生成多播流量,可以看出该设备已经注册到R2上。 励8-23 /P>6多挥p″?g励耕 R4# ping Type FFO8::1 r |n亡er王ace‥ output escape Sending Packe亡 lO, Sen亡 lo FastE亡herne亡0/1 sequence 亡° 100-by亡e |CMP Wi亡h a O timed ou亡 亡imed out Reques亡 2 亡imed ou亡 Reques亡 3 亡imed out Reques亡 4 timed ou亡 Reques亡 5 亡imed ou亡 Request 6 timed out Reques亡 7 timed ou亡 Reques亡 8 timed out Reques亡 9 timed out Success ra亡e O mul亡icas亡 is O Echos source Reques亡1 Reques亡 abort. 亡O address FFO8:‥1,亡imeout of is 2 seconds: 2001‥1‥14‥:4 percen亡(0/10) replies and o errors. 从例8-23可以看出,该ping测试没有收到任何成功响应。不过这种情况也是 预料中的,因为该网络拓扑结构中没有任何设备希望成为该多播组的接收端。此时 可以查看路由器R2,以确定其路由表中是否有多播组FFO8::1的(S,G)对(如例8 ̄24 所示)。 验j匠/P>6多橇路白表 励8-24 R2# sh ipv6 Multicas亡 Flags: ‥ Dense, C Connec亡ed, P - Pruned, - Join S - R Sparse, L - - B - Local,工 RP-bit se亡, Bidir 一 F Group, Received - S - SSM Source Regis亡er Group, Specific flag, T - Host SPT-bi亡 Report, Se亡, SPT Uptime/Expires |nterface state‥ (2001‥1‥14‥:4, |ncoming RPF Table - D J Timers mroute Routing nbr‥ 0u亡going |nterface, FFO8‥‥1), in亡erface: S亡a亡e 00‥00‥22/00:03‥07, flags: SP Fas亡E亡hernetO/O FE80::1 in亡erface lis亡‥ 从例8-24可以看出, Null R2的IPv6多播路由表中有相应的(S,G)对,使用的是稀疏模 式,但是目前处于剪除状态(因为没有任何接收端对该多播组感兴趣)。 部署IPv6多播PIM 8.5 8.5.5 333 1Pv6BSR 本节将继续以当前拓扑结构为例,但是删除了前面的静态IPv6 RP地址配置命令。 接下来将创建一个动态选举RP的网络环境。我们将Rl和R3配置为候选RP,将R2 配置为自举路由器。请注意,我们并没有一步步地删除静态RP映射,而是在每台设 备上简单地使用了ipv6 pim rp-address命令的no形式(如例8-25所示)。上述配置完 成后即可看出,此时的R2已经成为BsRo 励燎/P>6筋磊RP铭招置#应居BSR 励8-25 R2 (config)# n゜ R2(COnfig)# pim ipv6 2001:2:2:2::2 rp-address R2(COnfig)#! R2(COnfig)# … 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● . ● ● ● ● ● ● ● ● l l l l ● ● ● ● bsr 1 1 1 1 candidate 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ■ ● ● ● ● ● ● ● ● ● ' ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● En亡er ● ● ● l ● l ● l l ● ● l l ● ● l ● 1 1 1 1 ● l ● l ● ● ● l ● l ● 1 ■ t configuration c゜nf 且n亡er 2001:2:2:2::2 1 ● ● 1 bsr 1 l Rl(COnfig)# R3# 1 ● conf Rl# pim ipv6 1 ● cormands, pim ipv6 bsr One Per candidate line. End with CNTL/Z. 2001:1‥1:1::1 rp t con王igura亡ion R3(COnfig)# 从show cormands, pim ipv6 ipv6 bsr 〇ne Per candidate pim line. End wi亡h CNTL/Z. 2001:3:3:3::3 rp range-1ist命令的输出结果可以看出(如例8-26所示),所有设 备都对Group-tO-RP映射信息达成了一致意见。 BSR验抚龋 励8-26 R4# show BSR SM SM 2001:3:3:3::3 RP‥ 1 1 1 1 ● ● ● ● 1 1 1 1 1 ● ● ● ● ● show BSR SM Up: 1 1 1 1 1 ● ● ● ● ● ipv6 RP‥ BSR SM 1 1 1 1 1 1 1 1 show BSR SM 1 1 1 1 1 1 1 ● ● ' ● 1 1 1 1 1 ● ● ● ● ● BSR SM BSR SM 1 1 1 1 1 1 ● ● ● ● RP‥ 1 1 1 1 1 ● ● ● ● ● 1 ● 1 ● Learn亡∴from 00‥01:44 Learnt 2001‥2:2‥2‥:2 ‥ from : 2001‥2‥2‥2:‥2 ● 1 ● 1 ● 1 1 1 ● ● ● l 1 1 ● ● 1 ● be 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 ● 1 1 ● ● 1 ● 1 ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ' BSR Exp: 00‥01:49 Learn亡 from : 2001‥2:2‥2‥‥2 Exp: 00‥01‥49 Learn亡 from : 2001‥2:2:2:‥2 00:03:40 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 range-1ist 1 1 l 1 1 1 be 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 BSR Exp: 00‥02‥26 Learn亡 from : 2001:2:2:2‥‥2 Exp: 00‥02‥26 Learn亡 from : 2001‥2‥2:2‥‥2 00:04:56 00‥04:04 1 1 1 1 ● ● ● ● pim 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● 1 ● 1 ● 1 ● range-1ist 2001‥1:1:1‥:1 Up: 1 range-1ist 2001‥3‥3:3:‥3 ● BSR 00‥04‥33 Up‥ 1 RP: ● pim ipv6 FFOO::/8 1 ● 2001‥1‥1:1::1 RP‥ show 1 ● Up: FFOO‥:/8 R3# 1 ipv6 RP‥ SM 1 ● Up‥ FFOO::/8 BSR Exp: 2001‥3:3:3::3 RP‥ R2# 1 pim Up: FFOO::/8 be 00‥01‥44 00:01‥45 2001‥1‥1‥1:‥1 FFOO::/8 l Exp‥ 00‥02‥38 Up‥ FFOO:‥/8 Rl# range-1ist 2001:1‥1:1::1 FFOO:‥/8 BSR pim ipv6 RP‥ 1 1 ● ● l 1 1 1 ● ● ● be 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 ● 1 ● 1 ● 1 ● 1 ● 1 ● 1 ● BSR Exp: 00:01:58 Learnt from Exp‥ 00:01:58 Learn亡 from ‥ 2001:2‥2:2::2 00‥05‥25 2001‥3:3‥3‥‥3 : 2001‥2:2:2:‥2 334 第8章IP多播路由 FFOO‥‥/8 Up:00:04‥32 R5# showipv6 BSR SM FFOO:‥/8 BSR BSR range-1istlbe pim RP:2001‥1:1:1‥‥1Exp:00‥01‥33 SM 2001:3‥3‥3‥‥3 RP‥ FFOO::/8 Learn亡 from Learn亡 from:2001‥2:2:2‥‥2 2001:2:2:2‥:2 ‥ 00‥05:50 Up‥ 00‥01:33 Exp‥ 00:04‥57 Up‥ 从例8-26可以看出,所有设备都对拓扑结构中可能的RP达成了一致意见,并且 都是从BSR (2002:2:2:2::2) “学到”的。如果要检查该拓扑结构,那么就会在R4上 产生IPv6多播流量(如例8-27所示)。 励8-27 ′P>6p“?g验J臣 R4# ping FFO8::1 repeat ou亡Pu亡In亡erface: Type escape Sending Packet lO, sequence 亡O 100-by亡e |CMP With sen亡 a o 亡imed 亡imed out 2 亡imed out Reques亡 3 timed ou亡 Reques亡 4 timed ou亡 Reques亡 5 亡imed out Reques亡 6 亡imed ou亡 Request 7 亡imed ou亡 Reques亡 8 亡imed ou亡 Request 9 亡imed ou亡 Success ra亡e 1 mul亡icas亡 1 1 1 l l l l ● ● ● ● Rl# 1 1 1 1 1 l l l l l ● ● ● ● ● show 1 1 O 1 l l ● ● l l l ● ● ● FFO8::1, of timeout and o errors. 1 1 1 1 1 ! l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● C Connected, P - Pruned, - - Join Sparse, - R - L - B RP-bi亡 Bidir | 一 Se亡, F Local, Group, Received - SSM Regis亡er Group, Specific flag, - T Host SPT-bit Repor亡, se亡, SPT |n亡erface, sta亡e‥ S亡ate FE80‥:4 in亡erface l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● show l ● l l l l l l l ● ● ● ● ● ● ● ipv6 Mul亡icas亡 D C P J l ● Null lis亡‥ l l ● ● l ● l ● l ● l ● l ● l ● l ● l ● l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l ● l ● l l ● ● l ● l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● mroute Rou亡ing Table - - Dense, - Connected, - Pruned, - J〇in S R Sparse, L - - B RP-bi亡 - state‥ 一 Se亡, F SPT |nterface, Bidir | Local, Up亡ime/Expires |n亡erface SPFT flags‥ FastEthernetO/1 in亡erface‥ nbr: ‥ - S S〇urCe Uptime/Expires 0u亡going Timers ● Table S 00:02‥28/00:01‥01, Flags: ● mr゜ute Dense, |ncoming R3# seconds‥ 2 1 Rou亡ing 工n亡erface RPF is 2001‥1‥14‥‥4 1 - ‥ 亡O percen亡(0/10) - D J Timers 1 ipv6 Mul亡icas亡 Flags: is replies 1 Echos address ou亡 Reques亡 O abor亡. source Reques亡1 Request lo FastEtherne亡0/1 Sta亡e Group, Received - S - sSM Source Register flag, Group, Specific T - H°St SPT-bi亡 Rep〇r亡, Se亡, 8.5 Incomingin亡erface‥ RPF 部署IPv6多播PIM 335 FastE亡herne亡0/1 nbr:FE80::2 Ou亡goingin亡erfacelist‥ Null 例8-27的输出结果显示了预料中的(S,G)对。接下来可以继续深人查看该拓扑结 构的不同组件。首先是BSR,查看哪些候选RP正在向R2宣告其存在性,此时应该 在列表中看到Rl和R3 查看/P>6 励8-28 BSR (如例8-28所示)。 RP缓存 下一节将讨论“嵌人式RP”的概念0 8.5.6 MLD 到目前为止的IPv6多播路由讨论中,还没有看到一次成功的多播ping,这是因为 还没有为测试多播组指定任何主机。接下来就要解决这个问题,让R5的FastEthemet O/0接口加人多播组FFO8::1 启居∥LD以砌^ 励&29 R5# conf En亡er /P>6多搐纽 t configura亡ion R5(COnfig)# cormands,One Perline.Endwith CNTL/Z. 土nt∴fO/0 R5(COnfig-if)#ipv6 简单而言, (如例8-29所示)。 mld j゜in-grouP IPv6多播用MLD FFO8::1 (Multicast Listener Discovery,多播侦听者发现)协 议替代了IGMPo为了更好地对比这两种功能特性,可以认为MLDvl类似于IGMPv2, 攻城狮论坛 336 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 第8章IP多播路由 而MLDv2则类似于IGMPv30也就是说, MLDv2将支持IPv6网络中的SSMo 主机可以通过MLD表明其希望接收选定多播组的流量。与IGMP相似,也是由 选举出来的查询路由器利用MLD来管理网络中的多播流量。这些MLD消息都承载在 ICMP (Intemet Co血OI Message Protocol, Intemet控制报文协议)中,但需要注意的 是,这些消息都仅在链路本地范围有效,并且都设置了路由器警告(router alert)选项o MLD使用三种消息:查询(Query)、报告(Report)和完成(Done)。完成消息 类似于IGMPv2的离开(Leave)消息,表示主机希望不再接收该多播组流量。该消息 会触发查询消息,以检查网段上是否还存在其他接收端o MLD的配置方式与IGMP非常相似,可以利用ipv6 mld 数量。如果希望特定接口“永久”订购某多播频道,那么就可以使用ipv6 limit命令限制接收端的 mld join-grouP 命令。此外,与IGMP一样,也可以通过MLD的各种定时器来控制协议的运行方式。 如果利用全局配置命令ipv6 muIticast-routing globaI配置IPv6多播路由,那么就 可以在所有有效接日上自动配置PIM,也包括自动配置MLDo例8-30给出了实验室 网络的相应配置情况。 励8-30 R3# 验1匠/P>6 show P/∥砌人 pim ipv6 In亡erface interface PIM Nbr Hello Count Tunne12 0ff Address‥ FE80: DR nO亡 ‥ DR :亡his : DR ‥ DR ‥ this nO亡 DR on ‥ DR 0n off DR Tunne13 nO亡 1 O 30 1 O 30 1 elected FE80: nO亡 30 1 elected FE80‥ nO亡 O :211:21FF:FEDF:8360 0ff : 30 :‥ Tunne11 Address: 1 elec亡ed 0ff : 5 : Tunne10 Address: 4294967295 1 system 0ff ‥ 1 system Seria10/1 Address‥ 30 FE80‥:3 seria10/O Address: O FE80‥:3 Fas亡EthernetO/1 Address: 1 0 elec亡ed nO亡 亡his ‥ 3 ‥‥ Fas亡E亡herne亡0/O DR O ‥211:21FF:FEDF:8360 0ff Address: 1 sys亡em Vo|P-Nu110 DR 30 ‥211:21FF‥FEDF:8360 on FE80‥ Address: O Prior elec亡ed L〇OPbacko Address‥ DR |ntvI O 30 1 ‥211:21FF‥FEDF:8360 elec亡ed 0ff O 30 1 攻城狮论坛(技术+生活)2群 1813097 . 部署IPv6多播PIM 8.5 Address‥ FE80::211:21FF‥FEDF:8360 :nO亡 DR 337 elec亡ed 可以看出已经在手工配置的所有接日上都启用了PIMo上述配置完成后,可以利 用show ipv6mld interface 励8-31在接口层励绷/P>6 R3# sh゜w mld ipv6 Fas亡E亡hernetO/O In亡erne亡 MLD is enabled MLD Curren亡 MLD query MLD querier MLD max Las亡 P/∥ interface is up, address is on is is MLD querying seconds 亡ime response joins, 8 up seconds 255 response query ac亡ivity‥ is 2 125 timeou亡is MLD pro亡OCOl in亡erface interval member faO/O line FE80‥‥3/10 version query faO/0命令进一步查看MLD的配置情况(如例8-31所示)。 router is O is lo seconds interval is I seconds leaves FE80::3 (亡his sys亡em) 可以看出MLD与IGMP非常相似。由于目前的网络中有一台主机对该多播组感 兴趣,因而需要查看从R5收到MLD加人消息之后候选RP的注册情况。根据前面说 过的RP选举及BSR的相关内容可以知道, IP地址最大的候选RP应该注册了FFO8::1 的(*,G)。不过此时应该首先查看Rl ,以确定其多播路由表中没有该加人消息o Rl# show mroute ipv6 接下来查看R3 ,此时应该在多播路由表中看到(*,G)表项(验证情况如例8 ̄32所示) 启居BSR铂烷狰不验匠/P>6窟由表 励8 ̄32 R3# show Flags: Routing Table - - Dense, C - Connected, P - Pruned, - Join D J Timers mroute ipv6 Multicas亡 ‥ S Sparse, - R - L RP-bi亡 工nterface, s亡a亡e‥ 2001‥3‥3‥3:‥3 nbr: 工rmedia亡e l l - F ou亡g〇ing RP in亡erface l l l l l l l l l l l l l l l ping l l l l l l l l l l l l ● ● l l escape Sending Packe亡 Reply lO, l l l l l l l ● ● l l … repeat l l l l l Report, Hos亡 SPT-bi亡 Se亡, SCJ flags‥ l l l . ● l l l l …… l l l l l l l l l ● l ● l l l … l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● l ● l ● l . l . l l ● l . l . l . l l . l . l . l l ● l . l l . l . l ● l . l l ● . ● ● . . ● . ′ l 亡O 100-by亡e |CMP Echos source requeS亡 O received to address from of FFO8‥‥1,亡imeou亡is 2001:1:14::4 2001:1:35‥:5, 24 ms 2 l l l l . ● ● abor亡. a l l Fas亡E亡herne亡0/1 sequence l . lo With Sen亡 亡O l …… FFO8::1 outpu亡In亡erface: Type - T lis亡‥ l l Group, Specific flag, 2001‥3:3‥3::3, 00:24‥13/never l SSM S亡ate Forward, l - S Source Regis亡er Fas亡E亡herne亡0/0, ………… l Group, Received Tunne13 RPF R4# 一 Se亡, 00‥24:13/never, in亡erface‥ l Bidir | SPT 工ncoming l - B Local, Up亡ime/Expires 工n亡erface l 。 seconds: l l ● l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● l● l ● l ● 338 第8章IP多播路由 2001:1‥35‥:5, from 2001:1:35:‥5, received from 2001:1:35‥‥5, received from 2001‥1:35‥‥5, reques亡1 亡O requeSt l Reply 亡〇 requeS亡 2 Reply 亡O reques亡 3 Reply 亡O requeS亡 4 received from 2001‥1:35‥:5, Reply 亡O requeS亡 5 received from 2001:1:35‥‥5, Reply 亡O requeS亡 6 received fr〇m 2001:1:35‥:5, Reply 亡O requeS亡 7 received from 2001‥1‥35::5, Reply to reques亡 8 received from 2001‥1:35‥‥5, Reply 亡O requeSt 9 received from 2001:1:35‥‥5, Success ll rate multicast is loo percen亡(10/10), replies and o round-trip s s s s s s s s s s m m m m m m m m m m from received to Reply O 4 0 0 0 0 0 O O O received Reply min/avg/max = 0/2/24 ms errors. 在继续后续操作之前,可能希望看一下穿越R2的流量情况。此时可以使用show ipv6 pim traffic命令,该命令的的输出结果可以显示当前正在讨论的数据包及消息情 况(如例8-33所示)。 验证/P>6流置枕数嚣 励8-33 R3# show P|M Traffic Elapsed ipv6 pim traffic coun亡ers time since coun亡ers cleared‥ 02‥59:09 830 Hell° 725 Regis亡er 7 Null Regis亡er 12 Regis亡er S亡OP 0 Elec亡ion 0 Assert 0 Bidir DF Errors ‥ Malformed Packe亡S Checksums Send Errors Packe亡 Sen亡 On Loopback Packe亡S Received Packe亡S Received Lastly R3# 5 0 Data 一O 1 0 0 Join-Prune Bad 4 2 5 1 O 2 0 Packe亡S ﹂L PIM n e s 2 2 2 Received Valid we show wi11 ipv6 on with 10〇k pim」 Unknown a亡∴亡he : RP ‥ source : PIM Encap Embedded RP Tunnel 2001‥3‥3:3:‥3 Tunne11★ P|M Type ‥ RP : Source Encap 2001:1:1:1‥:1 2001‥3:3:3‥:3 ‥ Tunne12★ Type : P|M RP : 2001‥3:3:3::3★ Source ‥ Encap 2001:3‥3‥3::3 Tunne13★ Type : RP ‥ Source PIM Decap 2001:3‥3‥3::3★ :一 |n亡erface P|M na亡ure turmel Tunne10★ Type 362 Errors P|M-disabled Version of 亡he o o 亡unnels we have seen and discussed‥ 8.5 8.5.7 部署IPv6多播PIM 339 嵌入式RP 嵌人式RP是一种非常方便的功能特性,可以将RP的身份内嵌为多播组地址 的一部分,任何看到该特定组地址的路由器都能从中提取出RP的身份并立即为共享 树使用该RPo为此,需要在充当实际RP的设备上显式配置RP的身份。由于域中 的其他路由器都能从多播组地址中动态学到RP地址,因而无须执行其他操作。但 是,如何将128比特的RP地址嵌人到128比特的组地址中,同时还要为组身份预留 空间呢? 将RP地址嵌人到128比特的多播组地址中时必须遵循如下规则。 ■ 规则1:必须将前8个比特置为1,表示该多播组地址包含了嵌人式RP,因 而嵌人式RP多播地址必须始终以FF70:‥/12或1Ⅱ1 ■ 1111 01Ⅱ为开头。 规则2:必须设置相应的数字来指定与特定地址空间相关联的地址范围, 选定的地址范围形式应该为FF7x,其中的“x”表示地址的性质,具体情 况如下。 - 1:表示接口本地(Interface-Local)范围。 -2:表示链路本地(Link-Local)范围。  ̄4‥表示管理本地(Admin-Local)范围。 -5:表示站点本地(Site-Local)范围。 - 8:表示组织本地(Organization-Local)范围。 -E:表示全局(GIobal)范围。 ■ 规则3:从RP地址中分离出以下三个值。 -RP接口IDo 一十六进制形式的前缀长度。 一RP前缀。 创建嵌人式RP地址的时候,必须按照以下模式组合上面提到的备个组件: FF7<撂煽>.●0< 屠衔蕴‘D >..< /二F RP婪口JD >< 士六进励崩缀挽度>∵<弱屠特RP筋缓>∵< 32 > 下面将以图8-26中的实验室拓扑结构为例解释上述计算过程。 首先必须分离构造嵌人式RP组地址所需的相关数值。如果使用的RP地址是 2001:2:2‥2::2/64,那么就意味着: ■ RP接口ID是2 ■ 前缀长度为64,转换为十六进制就是40; ■ RP前缀为2001:2:2:20 (来自于::2); 340 第8章IP多播路由 霞 霞 在嵌入式RP拓扑结构中宣告IPv6 图8-26 RP 接下来定义地址范围。由于希望是全局范围,因而使用“E”0 32比特组ID通常 为全“0”,但是也可以使用其他值。分离并定义了上述数值之后,就可以按照以下格 式构造嵌人式RP地址: FF7<扮..0< 屠箱络JD >∵< RP赞口JD 土六进励蔚缓长度>.●<的屠衔RP虏缀→..← >< 32 /一f> FF7E:0240:2001 :2‥2:2:0:1 此处将最后一个数字任选为“1”。因而可以让该拓扑结构中的R5或其他路由器 加人多播组FF7E:0240:2001:2:2:2:0:1 菇人式RP/乾置 励8-34 R5(COnfig)# int R5(COnfig-if)# 1 l ● 1 l ● 1 l ● 1 1 l ● 1 1 1 1 1 1 1 1 1 l l l l ● ● ● ● R4# 1 1 1 1 1 mld 1 join-gr゜uP 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 1 1 1 l l l l l ● ● ● ● ● ping pim ipv6 1 1 1 1 l l l l ● ● ● ● 1 ● ● ● ● ● ● ● 1 ● 2001:2:2:2::2 rp-address 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● FF7E:240:2001:2:2:2:0:1 escape Packet ● 1 ou亡Pu亡Interface: sending ● t 1 Type FF7叠:240:2001:2:2:2:0:1 1 l R2(COnfig)# 1 1 fO/O ipv6 ● conf R2# 1 ,相应的配置及验证方式如例8-34所示。 lO, sen亡 ● ● ● ● repeat ● ● ● ● ● ● ● lo Fas亡EthernetO/1 sequence 亡O 100-by亡e |CMP O source Echos 亡O address FF7E:240:2001:2:2:2:0‥1,亡imeout of 2001:1‥14‥:4 from 2001‥1‥35::5, 20 received from 2001‥1‥35::5, 0 Reply 亡O requeS亡1 received fr〇m 2001‥1‥35‥‥5 Reply 亡O requeSt 2 received from 2001:1:35: Reply 亡〇 requeSt 3 received from 2001:1:35‥ Reply 亡O requeS亡 4 received from 2001:1:35: Reply 亡O requeS亡 5 received from 2001‥1‥35‥‥5 Reply to reques亡 6 received from 2001‥1‥35:‥5 Reply 亡O requeSt 7 received from 2001:1‥35‥:5 ms m ms ● ms ● ms ● 6 1 0 0 0 0 0 O received requeS亡1 ms requeS亡 亡O ● 亡O Reply 5 5 5 Reply ● a ● Wi亡h abor亡. is 2 seconds: ● ms ms ms 部署IPv6多播PIM 8.5 Reply 亡O requeS亡 8 received from 2001‥1‥35:‥5,O ms Reply 亡〇 requeS亡 9 received fr〇m 2001‥1‥35‥‥5,O ms rateisloo percen亡(10/10),round一亡ripmin/avg/max Success 11mul亡icas亡 and replies = 0/3/20 341 ms err〇rS. o 从例8-34可以看出,上述配置已经起作用了。此时还可以利用例8-35给出的命 令验证R2当前为RPo 启居了巍人式RP之后验证多播锗白表 励8-35 R2# show ipv6 Mul亡icas亡 Flags: - Dense, C - Connec亡ed, P - Pruned, - Join : S Sparse, L - R - - Bidir 一 RP-bi亡 Se亡, F Group, Received - - S SSM Source Regis亡er Group, Speci壬ic flag, T - Host SPT-bi亡 Report, Se亡, spT s亡a亡e:工n亡erface, S亡a亡e FF7E:240‥2001‥2‥2:2‥0‥1), in亡erface‥ RPF 2001‥2:2‥2‥:2 工rmedia亡e outgoing FastE亡herne亡0/1, (2001‥1:14:‥4, in亡erface Forward, in亡erface‥ RPF FE80‥:1 nbr‥ outgoing Fas亡E亡herne亡0/1, RP 2001‥2:2:2::2, flags‥ lis亡‥ 00‥01:25/00:03‥03, flags: ST Fas亡E亡hernetO/O in亡erface F°rWard, 从例8-35可以看出, list‥ 00:01:25/00‥03‥00 RP的身份已经嵌人到了多播组地址中并在网络中进行传播, 接照例8-36所示命令即可验证这一点。 励8-36 在霹白嚣上通毋捞^式RP来讶励RP R3# |P showipv6 P|M Group (★indicates p土m group-maP Mapp|ng FF7E:240:2001:2:2:2::/96 Table groupmappings being used) FF7E:240‥2001‥2:2:2::/96* RPF‥ FaO/1,F且80‥:2 |nfo source:Embedded Up亡ime‥ S 00:02:29/00:03‥00 FF7E‥240‥2001‥2‥2:2‥0:1), 工ncoming 1rmedia亡e 00‥02:29/OO‥03‥00, Tunne12 |ncoming nbr‥ B L〇Cal,工 Up亡ime/Expires 工n亡erface (★, Table - D J Timers mr°ute R〇u亡ing 00:07:25,Groups‥1 上述输出结果表示了用于识别嵌人式RP信息的本地MLD信息。 备考任务 表8-5列出了本章引用过的协议标准。 342 第8章IP多播路由 第8章引用的RFc 表8 ̄5 3973 PIM-DM 3618 MSDP 3446 AnycastRP 4601 PIM-SM 1584 MulticastExtensionstooSPF 4604、4607、4608 SourceSpecificMuIticast 3810 MulticastListenerDiscoveryVersion2(MLDv2) 2710 MulticastListenerDiscoveryforlPv6 表8 ̄6列出了与本章以及第7章主题相关的一些常用Cis∞IOS命令。 表8-6 第7章和第8章的命令参考 ipmulticast-routing 全局模式;该命令是在αsco蹿由器上使用多播的第一条必需命令 ipmsdppeeraddfess 接口配置模式;该命令可以将路由器配置为MSDP对等体 ippimdense-mode★ 接口配置模式;该命令的作用是让接口使用PIM-DM路由协议 ippimsparse-mode★ 接口配置模式;该命令的作用是让接口使用PIM-sM路由协议 接口配置模式;如果RP地址已知,那么该命令的作用是让接口为 lPPimsparse-dense-mode’ 指定多播组使用PIM-SM路由协议,否则将使用PIM-DM路由协议 全局配置模式;该命令的作用是启用ssM并指定该蹿由器将要转 ippimssm(defaultlrangeaccess-ifef) 发哪些多播组的流量 接口配置模式;该命令的作用是在接口上设置IGMP版本(默认版本 ipigmpversion(11213) 为2) 接口配置模式;该命令的作用是更改路由器发送的IGMP查询的问 lPlgmPquery-intervalseco″ds 隔(默认值为60秒) 接口配置模式;该命令的作用是更改IGMP查询消患中宣告的最大 lPlgmPquery-maX-reSPOnSe-timeseco″ds 响应时问(IGMPv2和IGMPv3的默认时间问隔10秒) 接口配置模式;该命令的作用是配置路由器加入多播组,其中的 lPlgmPJOm-grouPg′O″P-add′eSS g仰雌-a鹏SS是采取点分十进制形式且句括四个部分的多播IP地址 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 8.5 本资料仅供试读 部署IPv6多播PIM 343 续表 接口配置模式;该命令的作用是将指定接口配置为管理性定界的多 播边界,由编号形式或名称形式的访问列表来控制该多播边界所影 ipmu帕castboundaryaαreSS-Mst′栅e广a″fO巾J 响的组地址范围。作为可选顶,可以使用关键字filter-autorP来过. 滤被边界ACL所拒绝的Auto-RP消息 接口配置模式;该命令的作用是将指定接口配置为TTL定界的多 ipmulticast栅-thresholdff+va/″e 播边界,生存时间值表示跳数,取值范围为O-255,默认值为0, 表示通过该接口向外转发所有多播包 接口配置模式;该命令的作用是在接口上肩用对cGMP的支持 lPCgmP 接口配置模式;该命令的作用是在接口上设置PIM版本(默认版 ippimversion(112) 本为2) 接口配置模式;该命令的作用是更改PIMv2He∥o消忌或PIMvl ippimquery-intervalsecor)ds 路由器查询消患的问隔(默认值为30秒) 全局模式;该命令的作用是指定PIM-SM路由器从RPT切换到SPT ippimspt-threshold(kbpslinfinity) .[group-1istaccess-ifef一″umbe′] 的入站多播流童速率,默认是在收到第一个多播色之后就执行切换 操作。如果使用了选项group-1ist,那么该命令的参数将应用于访 问列表所允许的多播组,否则将应用于所有多播组 全局模式;该命令的作用是静态配置RP的IP地址,其中的 巾-ad助ess是采用点分十进制形式且色舍四个部分的单播IP地址。 作为可选项,access-胎!代表访问列表的编号或名称,定义的是哪 ippimpaddess[aαreSSwlst∥override] 些多播组将使用该RPo作为可选项,OVerride表示如果出现冲突, 那么通过该命令配置的RP将优于通过Auto-RP动态学到或通过其 他方法得到的RP 全局模式;该命令的作用是将路由器配置为RP,并且躇由器将利用 ippimsend-rP-armounCefrrfe′facexpe Auto-RP方法为选定的接口地址发送RPAmounce消忌。参数SCOPe inferfeoeTnt/mbe′SCOPeff1.wa而e[group-1ist 表示T「Lo作为可选顶,grouP-1ist定义了该路由器为RP的多播组。 aαreSS-ife!Ⅰ[intervalseconds] 作为可选项,interval的作用是更改宣告频率(默认值为60秒) 全局模式;该命令的作用是将路由器配置为映射代理,并且路由器 将利用Auto-RP方法为选定的接口地址发送RP-Discovery消忌。 ip pimsend-rP-discovery[infe′face+ype 参数SCOPe表示TTLo作为可选项,命令中指定的接口IP地址将 in!|erface一″″mber]scopeff+va/″e 被用作该消息的源地址,默认将发送该消患的接口的IP地址作为 源地址 攻城狮论坛(技术+生活)2群 1813097 . 344 第8章IP多播路由 全局模式;该命令的作用是让映射代理过滤来自指定RP的 RP-Armounce消忌orp-1istaccess一〃sf的作踊是指定一个标准访 问列表(编呈形式或名称形式),规定该过滤器仅用于AcL所允许 ippimrp-announCe-filterrp-1istaccess-ifef 的RP地址ogroup-1ista∞eSS一鹏的作用是指定一个标准访问列 gr゜uP-1istaccess-“S! 表(编号形式或名称形式),描述斩允许的多播组地址。该过滤器 规定应该仅接收来自rp-1ista∞eSS一鹏所允许的RP地址的 RP-Arm゜unCe消忌,并且仅接受这些RP ̄Armounce消患中由 group-1istaccess一做所允许的组范围 ShowftytrlPg删pe[gmuprH闯nelgrxpiXktrEesl 用户模式;该命令的作用是显示该路由器有直连组成员的多播组列 ′暗麻咖呐勃囊赠一删″响钉Ⅱ蛔ilI 表(学自IGMP) Showipmra由te[grtxxpLacktslgrer仰+7anre] 【so″roe-addressIso″roe一″ame][inferfece十ype 用户模式;该命令的作擂是显示IP多播路由表的内容 in魄订)unfoer]βummary][countⅡacthrekb国 Showip pim neighbor[infe′facertype 用户模式;该命令的作用是显示PIM发现的邻居列表 ′nte′face一″″mbe′] Showip pim rplmapping[electedl 用户模式;该命令的作用是显示有效RP以及相关联的多播组 in-uSe]lmetric][′P-addfess] Showiprpf(SO″roe-addressIso″roe-name) 用户模式;该命令的作用是显示IP多播路由用来执行RPF检查的 [metric] 相关信忌 肩用模式;该命令的作用是让躇由器发送cGMP离开消患,并让 Clearipcgmp[inferfaα}晰reinferfe∝尹″(″77ber] 交换机清除它们已经缓存的所有组表顶 虐用模式;该命令的作用是显示收发的所有IGMP消息以及与 debugipigmp lGMP主机相关的事件 肩用模式;该命令的作用是显示收发的所有PIM消忌以及与PIM debugippim 相关的事件 ★如果在日\N接口上配置了这些命令,那么就会在接口上自动肩用IGMPv2 表8-7列出了show 表8-7 ip mroute命令输出结果中显示的多播路由表项的一些重要标志。 多播路由标志 D(dense,密集) 该表项运行在密集模式 S(SParSe,稀疏) 该表顶运行在稀疏模式 c(COrmeCted,直连) 直连接口上存在该多播组的成员 L(l゜CaI,本地) 路由器本身就是该多播组的咸员 理解与记忆 8.6 345 续表 路由器已经被剪除 P(Pruned,剪除) 表示该(S,G)表项指向RPo下游躇由器切换到特定多播源的SPT之后,RP通常处 R(RP-bitset,RP-bit置位) 于共享树的剪除状态 F(registerflag,注册标志) 表示该软件正在注册多播源 T(sPT-bitset,SPTbit置位) 表示已经在最短路径有源树上收到了多播包 该标志仅对稀疏一密集多播组有意义。对于(*,G)表项来说,标志J表示沿着共享树向 下传送的流量速率已经超过了为该多播组设置的sPT-Threshold(sPT门限),Cisco 蹿由器的默认sPTThreshold值为OkbiVso如果(*,G)表顷设置了标志J,而且该路由 器存在标记了c标志的直连组成员,那么收到沿共享树向下传送的下一个(s,G)色之后 JOoinSPT,加入SPT) 将会触发从RPT到(s,G)SPT的切换操作。对于(S,G)表项来说,标志J表示已创建该 表顶,因为路由器已经从RPT切换到了该多播组的SPTo为(S,G)表项设置了标志J 之后,路由器就会在sPT上监控流量速率,如果有源树上的流量速率落在该多播组的 SPT-Threshhold门限之内超过1分钟,那么路由器就会重新切换回该多播源的RPT 8.6 理解与记忆 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试主题, 因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试主题0 8.6.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 8.6.2 定义关键术语 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: 密集模式协议、 定界、 RPF检查、稀疏模式协议、 PIM-DM、 PIM RP、多播定界、 TTL定界、管理性 Hello消息、指派路由器、墓于源的分发树、多播状态信息、 加人/剪除消息、上游路由器、下游路由器、嫁接消息、嫁接确认消息、剪除覆盖、宣 称消息、 换、 PIM-SM(S,G)、 人式RP、 8.6.3 DVMRP、 MOSPF、 PIM-SM、源DR、源注册、共享分发树、最短路径树切 RP-bit剪除、 IPv6BSR、 Auto-RP、 BSR、 MSDP、 MLD、 IPv6多播路由、嵌 MLD限制 推荐读物 Developing IP Interdomain Multicast Multicast Networks Solutions , Vblume Guide, by I, by αs∞ Beau Williamson Systems, Inc. (αsco (αs∞ Press, Press, 2000) 2003) 本章主要讨论以下主题: ■ 访问列表; ■ 基于区域的防火墙和传统IOs防火墙; ■ 单播反向路径转发; ■ lP源保护; ■ 认证、授权和审计(路由器配置); ■ CoPP; ■ ssH; ■ 802.1x; ■ 设备访问控制t ■ lPv6第一跳安全; ■ RA保护; ■ DHCP保护; ■ 绑定表; ■ 设备跟踪; ■ ND检测; ■ 源保护; ■ mcLo 第9章 段备和网络安全 经过多年的发展, CCIE认证类别已经从路由和交换增加到了很多种类。以前属 于路由和交换类别的部分考试内容已经被删除或缩减,因为这些内容更适合其他类别 的CCIE考试。例如,以前的CCIE路由和交换类别考试虽然也包含一定的语音内容, 但现在的CCIE语音类别考试则涵盖了更多、更深人的语音内容。 虽然本章讨论的主题在CCIE安全类别的笔试与实验考试中涵盖了更多的内容, 但由于安全对于网络来说非常重要,而且许多安全特性都与路由器和交换机的操作方 式有关,因而CCIE路由和交换考试仍然保留了一定的安全内容。本章将讨论与路由 器和交换机相关的诸多重要的安全功能特性0 9.1 ″我已经知道了吗? ″测试题 表9-1列出了本章的基本主题以及与之相应的测试题。 “我已经知道了吗? 表9-1 ”基本主题与测试题对照表 一 一 路由器和交换机设备安拿 1一-3 二层安拿 4一-7 三层安全 8′-9 得分 为了提高每章前面的测试评价效果,请务必严格评分。参考答案请参见附录Ao l.请分析如下配置命令(这些配置命令将要被粘贴到路由器的配置中)。假设在粘贴 这些配置之前路由器中没有其他AAA配置或者其他安全配置,那么在用户试图进 人特权模式时,下面有关认证进程及认证顺序的描述,哪一项是正确的? enable secret enable authentication username aaa fred barney wilma passw゜rd betty new-model aaa authentication enable default aaa authenticati゜n enable wilma aaa authentication login default aaa authentication login fred group group group line radius fred radius gr゜uP enable local local radius n゜ne 348 第9章 设备和网络安全 radius-SerVer host lO.1.1.1 auth-POrt 1812 acct-P°rt 1646 radius-SerVer host lO.1.1.2 auth-P°rt 1645 acct ̄POrt 1646 radius-SerVer∴key aaa group server cisco radius∴fred SerVer lO.1.1.3 auth-POrt 1645 acct-P゜rt 1646 SerVer lO.1.1.4 auth-POrt 1645 acct-POrt 1646 1ine con paggword login line o cigco authentication vTY paggw゜rd O fred 4 cigco a.用户只需要提供密码血ed即可,不需要提供用户名 b. 10.1.1.1或10.1.1.2的RADIUS服务器必须接受用户提供的用户名/密码 c.首先由10.1.1.3的RADIUS服务器进行检查,如果没有响应,再由10.1.1.4的 服务器进行检查 d.以上均不正确 2.假设所有条件都与第1题相同,那么在用户试图通过控制台登录时,下面有关认 证进程及认证顺序的描述,哪一项是正确的? a.需要输人简单的密码cisco b.该用户将提供用户名/密码,如果10.1.1.1或10.1.1.2的服务器返回了确认该用 户的RADIUS消息,那么就表示认证通过 c.首先将用户名/密码提交给10.1.1.3的RADIUS服务器,如果没有响应,那么将 由10.1.1.4的服务器进行检查 d.以上均不正确 3.假设所有条件都与第1题相同,那么在用户试图通过Ttlnet登录时,下面有关认 证进程及认证顺序的描述,哪一项是正确的? a.需要输人简单的密码cisco b.路由器首先利用10.1.1.1的RADIUS服务器进行认证,如果没有响应,那么将 由10.1.1.2的RADIUS服务器进行认证;如果没有响应,那么就需要密码cisco c.路由器首先利用10.1.1.1的RADIUS服务器进行认证,如果没有响应,那么将 由10.1.1.2的RADIUS服务器进行认证;如果没有响应,那么就需要用户名/ 密码bamey他etty d.首先将用户名/密码提交给10.1.1.3的RADIUS服务器;如果没有响应,那么再 由10.1.1.4的RADIUS服务器进行认证 e.如果10.1.1.1或10.1.1.2都没有响应,那么用户将无法认证,从而被拒绝 f.以上均不正确 4.下面哪些属于二层安全的最佳实践? a.检查ARP消息以防止黑客让主机创建错误的ARP表项 9.1 “我已经知道了吗? ”测试题 349 b.启用端口安全 c.将所有的管理流量都放在VLAN l中, VLAN l不承载任何用户流量 d.配置DTP以使用自动设置 e.关闭未用端口 5.对于Cisco 3560交换机来说,下面有关端口安全特性的描述,哪一项是正确的? a.允许到达接口的最大MAC地址数默认为3 b.粘性学习的MAC地址在第一次学到之后将被自动添加到启动配置中 C.动态(非粘性)学习的MAC地址会被添加到运行配置中,但是可以使用copy run start命令保存这些MAC地址 d.对于接口上允许的端口安全特性来说,必须将端口设置为静态接人或中继端日 e.以上均不正确 6.下面有关为LAN用户使用IEEE802.1x认证方式的描述,哪一项是正确的? a.在认证方和认证服务器之间使用EAPoL协议 b.请求方是用户设备上的客户端软件 c.交换机充当802.1x认证服务器的角色 d.仅允许802.1x相关消息离开当前未认证的802.1x端口 7.假设在路由器的配置模式下输人了以下命令: aCCeSS-1ist lpermit lO.44.38.0 0.0.3.2550如果要在该访问列表中使用其他掩码,其余内容保持不变,那么下面哪 个掩码能够匹配源IP地址10.44.40.18? a. 0.0.1.255 b. 0.0.5.255 c. 0.0.7.255 d. 0.0.15.255 8.某企业使用已注册的A类网络。假设正在遭受来自互联网的Smurf攻击,企业收 到了大量目的地均为子网广播地址9.1.1.255的ICMP Echo (回应)消息,该地址 是企业实际部署的子网(9.1.1.0/24)的广播地址,而且这些攻击包的源地址均为 9.1.1.10那么下面哪些攻击能够有效防范这类攻击行为? a.确保在路由器连接子网9.1.1.0/24的接口上配置no ip directed-broadcast命令 b.配置RPF检查,这样就可以根据无效的源IP地址来拒绝这些攻击包 c.由于路由器不会将数据包转发给子网广播地址,因而不用担心这类攻击行为 d.过滤所有发送到子网9.1.1.0/24中的IP地址的数据包 9.下面有关路由器CiscoIOS软件TCP拦截特性的描述,哪一项是正确的? |.|.i a.始终充当人站TCP连接的代理,完成客户侧连接,然后仅创建服务器侧的 lIl量'`'` TCP连接 !﹀| l|l'一~ 攻城狮论坛 350 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 设备和网络安全 第9章 b.可以监控TCP连接的数量以及未完成的连接情况,同时充当TCP代理 C.如果启用了该特性,那么就必须运行在进人特定接口的所有TCP连接上 d.以上均不正确 基本主题 9.2 路由器和交换机设备安全 加强路由式/交换式网络安全的第一步就是要保证安全访问路由器或交换机的 CLI (Command Line Interface,命令行界面)o Cisco不但为实验室环境提供了多种基 本的安全保护机制,而且还为生产环境中的网络设备提供了更强大的安全功能特性。 同时这些基础的认证功还能实现拨号PPP用户的认证操作。本节将详细介绍这些安全 功能特性0 9.2.1 cLl的简单密码保护 图9-1以图形化方式列出了用户进人路由器的CLI用户模式并利用enable命令进 人特权模式的详细信息。 图9 ̄1路由器的用户模式和特权模式 从图9-1可以看出,可以通过三种方式进人路由器的用户模式。该图同样适用于 Cis∞IOS交换机,唯一的例外就是Cisco交换机不支持辅助(AUX)端日。 可以配置Cisco IOS,要求通过这三种方式访问用户模式时都得提供简单密码。为 此需要使用线路子命令Iogin,让αsco IOS提示用户输人密码,并利用password命 攻城狮论坛(技术+生活)2群 1813097 . 路由器和交换机设备安全 9.2 351 令定义相应的密码。相应的配置模式暗示了这三种访问方式中的哪些方式需要提供密 码(如例9 ̄1所示)。 励9-1 ‘筋草馅篇户椽式c日密码捞护 ! The ! password ! respec亡ively. 1ine login con and password prompt, and cormands under 亡he define line password con 亡he 亡ell O required a亡∴亡he rou亡er console 亡O SupPly a por亡, o login PaSSWOrd fred ! The ! password 1ine login v亡y o and password promp亡, and commands define under the line password v亡y o 15 required 亡ell 亡he rou亡er 亡O 亡he v亡y lines, reSPeC亡ively. a亡 SuPPly a 15 10gin PaSSWOrd barney 这些密码都是以明文方式存储在运行配置中,不过也可以利用全局命令seⅣice PaSSWOrd-enCryPtion加密这些密码(如例9-2所示) 励9-2 &居servfoe ! The ! passwords in in The ! encrypted con passw゜rd-enCryPtion 亡he running global config 亡O be cormand causes all exis亡ing clear-teXt value 亡he encrypted. password-enCryP亡ion "7" ! 1ine password二e″c′ypfron命令 service SerVice 。 亡he password password per cormands 亡he means service 亡hat∴the following paBSword-enCryPtion is c°rmand. o PaSSWOrd 05080FIC2243 7 10gin line v亡y 4 O PaSSWOrd 7 00071A150754 10gin 请注意,在配置中增加了service password-enCryPtion命令之后,运行配置中的 所有明文密码都将被更改为加密后的值。但必须在使用命令copy StartuP-COnfig (或者是以前的write rurming-COnfig memory命令)以保存配置之后才能更改启动配 置中的密码。此外需要注意的是,禁用了密码加密功能(使用 no service PaSSWOrd-enCryPtion命令)之后,密码并不会自动解密,而是在更改了密码之后Cisco IOS才会以非加密方式列出密码。 不过需要注意的是, Service password-enCryPtion命令使用的加密方法非常脆弱, 大量公开可用的工具都能破解这些密码,因而这种加密方式只能防止好奇者登录路由 器或交换机,而无法真正防范黑客(即使是水平低下的黑客)的恶意攻击0 1.更好地保护启用密码 可以利用enable password f?W命令或enable secret pw命令定义enable命令所需 352 设备和网络安全 第9章 的密码。如果同时用这两个命令定义了不同的密码,那么enable enable EXEC命令将仅接受 secret命令所定义的密码。 虽然eIrabIe password命令中的密码与登录密码遵循相同的加密规则,仅在配置 了service password-enCryPtion命令之后才会加密密码,但是enabIe 受service password-enCryPtion命令的影响。从例9-3可以看出, secret密码却不 Cis∞ IOS通过密码 值的存储方式体现了这两者之间细微差别。 意 胯希与砌密篇居密敬之胸铂羞勋 励9-3 !The enablepasswordlis亡S !per 亡he !enable service secret cormandlis亡S SerVicepassword-enCryP亡i〇n enable secre亡 enable password 5 a 7in 亡he password-enCryP亡ion a ou亡Put∴亡O S|gnify an encryp亡edvalue c〇rmand;the 5,S|gnifying anMD5-hashedvalue. l $1$GvDM$ux/PhTwSscDNOyN工yr5Be/ 7 070C285F4DO64B 2.使用ssH协议 例9-1显示了以Ttlnet方式通过VTY线路访问路由器时的密码需求方式。虽然长 期以来都在使用Ttlnet方式管理网络设备,但是Telnet流量却是以明文方式传送的, 任何能够监听该流量的人都能获得相应的密码以及耽1net会话期间发送的所有信息o SSH (Secure She11,安全外壳)提供了一种更加安全可靠的路由器和交换机管理手段。 该协议是一种客户端/服务器协议,可以加密进出vTY端口的所有流量o Cisco路由器和交换机默认都能充当SSH客户端,但是只有经过配置之后才能充 当服务器。也就是说,路由器和交换机都能通过SSH连接其他设备,但是必须经过相 应的配置之后才能允许其他设备通过SSH连接自已,而且还需要通过某些方法来认证 客户端。可以使用本地用户名和密码,也可以通过AAA服务器(有关AAA的详细内 容将在下一节进行讨论)进行认证。 目前存在两种版本的SSH, 易遭受中间人攻击。 SSHv2是IETF标准,比SSHvl更安全, SSHvl更容 αsco设备同时支持这两种连接方式,不过也可以明确指定使用 哪种版本的SSHo Cis∞ IOS默认启用Lelnet,但配置SSH服务器(即使是最基本的SSH服务器) 却至少需要以下步骤。 第1步,确保IOS支持SSH,需要K9版本的软件映像。 第2步:配置主机名(除非前面已经完成了该配置)。 第3步:配置域名(除非前面已经完成了该配置)。 第4步:配置客户端认证方法。 路由器和交换机设备安全 9.2 第5步:让路由器或交换机生成RSA (Rivest, Shamir, 353 andAdelman)密钥,将使 用该密钥加密会话。 第6步:如果希望使用SSHv2,那么就指定SSH版本。 第7步:在VTY线路上禁用Telneto 第8步:在VTY线路上启用SSHo 例9-4给出了将路由器配置为SSH服务器的配置示例。 SS∥蹬 励9-4 rou亡er(COnfig) R3 R3 (COnfig)# (config) name Cho〇Se crypto for 亡he General a few How 亡he size R3 bits generate will the key Keys. 22 in the lO24 be: Cisco rsa R3.CC|E2B modulus Choosing modulus bit a in key 亡he range m〇dulus of 亡0 360 grea亡er 2048 for your 512 may take than RSA [512]: keys 1024 ...[OK] # 02‥06‥51.923: R3(COnfig)# ip ssh R3(config)# line %SSH-5-ENABLED: version v亡y # transp゜rt input R3 (COnfig-1ine) # transport input∴ssh show ssH Enabled ip l.99 has been enabled 4 O (config-1ine) R3# SSH 2 R3 R3(COnfig-1ine)# n゜ne ^z ssh - Au亡hentica亡i〇n 9.2.2 keys CC|E2B PaSSWOrd minu亡es. many (COnfig) ★May c|SCO key of Purp〇Se Genera亡ing % R3 domain-name username # R3(config)# The h゜Stname # ip VerSion 2.O 亡imeou亡: 120 secs; Au亡hentica亡ion retries‥ 3 用户模式与特权模式AAA认证 术语AAA (Authentication, Authorization and Accounting,认证、授权与审计)包 含一系列常见的安全功能特性,本节将首先讨论AAA中的第一个“A” (认证),解释 如何通过认证特性来访问路由器或IOs交换机的用户模式和特权模式。 保护CLI的最强认证方法就是使用TACACS+或RADIUS服务器oCisco安全ACS (Access Control Server,访问控制服务器)是一款可以安装在UNIX、 Linux以及多种 Windows平台上的Cisco系统软件产晶,能够维护大量用于认证的用户名和密码。路 由器和交换机收到用户提供的用户名和密码之后,以加密流量的方式发送给服务器, 然后再接收服务器的应答消息一接受或拒绝用户。表9-2列出了RADIUS和 TACACS+的主要信息。 354 设备和网络安全 第9章 一 RADIUS与IACACS+认证对比 表9-2 _ 加密范围:数据色净荷或者仅密码 仅密码 整个净荷 四层协议 UDP TcP 用于加密的周知端口/默认端口 1812/16451 49/49 标准协议或Cisco专有协议 RFc2865 专有 1RADIUS最初将端口1645定义为周知端□,后来又更改为端口1812 1.使用默认的认证方法集 AAA的认证配置包含定义一组认证方法所需的所有配置命令。顾名思义,单个认 证方法就是认证用户的一种方法。例如,某种认证方法要求询问RADIUS服务器以认 证登录用户,另一种认证方法则要求路由器查看本地定义的一组usermame命令。认 证方法集表示一组有序的认证方法,按照顺序逐一尝试每种认证方法,直到某种认证 方法返回认证响应(接受或拒绝该用户)为止。 最简单的AAA配置就是为路由器或交换机登录操作定义一个默认的认证方法集, 并为enable命令定义另一个默认的认证方法集。定义的默认登录认证方法将用于所有 的登录访问方式,包括控制台、 Ttlnet以及AUX (仅路由器)。而eIrable命令使用的 默认认证方法则是在用户运行enable命令时告诉Cis∞ IOS应该做什么。相应的配置 步骤如下。 第1步:利用全局命令aaanew-model启用AAA认证。 第2步:如果使用RADIUS或TACACS+,那么就要利用radius-Server SerVer key、 taCaCS-SerVer host和tacacs-SerVer host、radius- key命令定义服务器所要使用的IP地址 及加密密钥。 第3步‥利用aaa authentication Iogin default命令为所有CLI访问方式定义默认 的认证方法集。 第4步:利用aaa authentication enable default命令为特权模式访问操作定义默 认的认证方法集。 例9-5给出了上述命令的路由器配置示例,其中的一台服务器使用αs∞ IOs默认 端口1645,另一台服务器则使用保留的周知端口18120根据配置情况,路由器将尝试 以下认证操作。 ■ 现登录操作时, αscoIOS将尝试使用第一台RADIUS服务器进行认证,如果 没有响应,那么IOS将尝试使用第二台RADIUS服务器进行认证,如果仍然 没有响应,那么就允许用户登录(此时的认证模式为none)。 ■ 如果用户运行了enable命令,那么路由器将按序尝试使用这两台RADIUS服 路由器和交换机设备安全 9.2 355 务器进行认证,如果这两台RADIUS服务器都没有响应,那么该路由器将接 受在路由器上配置的用户名/密码为“cisco/cisco” 登录与特枚捞作铂AAA 励9-5 C〇rmand ! The ! bu亡i亡 ! will be ! No亡e 亡ha亡∴亡he Rl# ! nex亡 Will sh゜w lines enable no亡 used for o /乾置 shows be 亡ha亡∴亡he used. enable in 亡he omit亡ed secre亡 Nex亡, AAA ! defined. for secre亡 PaSSWOrd command authen亡ica亡i〇n username if cormand defines 亡he means RADIUS the is a is PaSSW〇rd o enabled, and new-model au亡hentica亡ion enable aaa au亡hen亡ica亡ion l〇gin 亡W〇 the RAD|US radius-SerVer ! defaul亡. ! wi亡h |OS servers password 亡he defaul亡 defaul亡 defaul亡 servers host Similarly, adding the group group are and radius local radius cormand radius-SerVer login was The not hos亡10.1.1.1 port number numbers por亡 issued, and in亡○ hos亡10.1.1.1 au亡h-POr亡1812 acc亡一P〇r亡1646 au亡h-P〇r亡1645 acc亡一POrt radius-SerVer ! Before ! and key adding password 亡ha亡 reachable. encryp亡ed. AAA configura亡ion, cormands as lis亡ed 亡he bo亡h in dele亡ed the l゜gin cormand, Which now cormand aaa authentication l゜gin default ! be only 亡he aaa c〇nSOle Example ! if is were filled 亡he was omit亡ed in when i亡S issued, cormand. 1646 cisco ! used |OS au亡h-P〇r亡1812 default hos亡10.1.1.2 by authentication 9-1 defaul亡 . The login . and v亡ys had both The act of uses 亡he set亡ings passwords cormand on remaining lis亡ed the enabling a login AAA gl〇bal below me亡hod of would "line.¨ o PaSSW〇rd v亡y is n〇亡 au亡hen亡ica亡ion radius-SerVer line are none configured. lO.1.1.2 accounting enable radius-SerVer c〇n configured, cisc〇 aaa line still user/PaSSWOrd brevity aaa Nex亡, enable username $1$GvDM$ux/PhTwSscDNOyNIyr5Be/ 5 cisc〇 ! !亡he The running-COnfig username ! 。 O PaSSWOrd cisco 4 cisc〇 2.使用多种认证方法 由于AAA认证支持多台服务器和多种认证方法,因而即使某种认证方法不起作 用,用户也能实现认证操作。命令aaa au仙entication允许在单条命令中最多支持四种 认证方法,而且对于RADIUS或TACACS+服务器集群中的RADIUS或TACACS+服 务器数量没有实际限制o Cis∞ IOS使用这些认证方法时的逻辑规则如下。 ■ 首先使用列出的第一种认证方法,如果该认证方法无响应,那么就使用下一 ■ 种认证方法,以此类推,直到收到响应时为止。并且将使用第一种有响应的 认证方法返回的认证结果(允许或拒绝)。 如果某种认证方法使用了多台服务器,那么将首先尝试第一台服务器,这里 所说的“第一台”指的是配置文件中的命令顺序。如果该服务器没有响应, 那么就接着尝试下一台服务器,以此类推,直到有服务器响应时为止。并且 将使用第一台有响应的服务器返回的认证结果(允许或拒绝)。 356 设备和网络安全 第9章 ■ 如果所有认证方法都没有响应,那么就拒绝该请求。 例如,例9-5按序列出了RADIUS服务器10.1.1.1和10.1.1.2,因而也要按照这个 顺序依次进行认证。如果这两台服务器都没有响应,那么将使用下一种认证方法,也 就是登录会话采用none认证(即自动允许用户登录)和local认证(表示根据已配置 的usermame命令进行认证) 。 表9-3列出了登录及特权(特权执行)模式所允许的认证方法以及相应的描述 信息。 登录及特权模式的认证方法 表9-3 groupradius 使用已配置的RADIUS服务器 grouptacacs+ 使用已配置的IACAcS+服务器 aaagroupserverldap 利用集群名称定义AAA服务器集群并进入LDAP服务器集群配置模式 grouPr)ame 使用已定义的RADlUS或IACACS+服务器集群 enable 使用肩用密码(基于enablesecret或enablepassword命令) linel 使用由线路配置模式下PaSSWOrd命令所定义的密码 local 便用本地配置的usemame命令,用户名不区分大小写,但密码区分大小写 loca1-CaSe 便用本地配置的usemame命令,用户名和密码均区分大小写 none 无须认证,用户将被自动认证 1不能用于特枚模式认证 3. AM服务器集群 Cis∞ IOS默认自动将radius-SerVer host和tacacs-Server host命令配置的RADIUS 和TACACS+服务器组合为服务器集群,称为radius集群和tacacs+集群。在aaa authentication命令中包含关键字group radius或group tacacs+即可引用这些默认服 务器集群。在默认情况下,所有已定义的RADIUS服务器都归属radius集群,所有已 定义的TACACS+服务器都归属tacacs+集群。 对于某些场景(特别是大规模拨号应用场景)来说,设计方案可能要求将RADIUS 服务器集群或TACACS+服务器集群分开,为此可以按照名称来区分这些服务器。在 例9-6所示配置示例中,名为fred的RADIUS服务器集群拥有两台服务器,同时本例 还给出了aaa 励9-6 authentication命令引用该服务器集群的方式。 /乾置RAD/US佛务嚣巢劳 !The next∴亡hree cormands !configuredinside AAA crea亡e group RAD工US group fred.No亡e configmode,uSing 亡he tha亡∴亡he server servers are subcormand.Note 亡ha亡 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 路由器和交换机设备安全 9.2 !|OS added 亡he Rl(COnfig)# aaa auth-P゜rt andacct-POrt Parame亡ers group server radius fred 本资料仅供试读 au亡Omatica11y. Rl(c〇n壬ig-gr〇uP)# serverlO.1.1.3 auth-POrt1645 acct-POrt1646 Rl(c〇nfig-grouP)# serverlO.1.1.4 auth-P゜rt1645 acct-POrt1646 !To use fredinstead group !cormands need refer 亡O aaa new-m〇del aaa au亡hen亡ica亡ion aaa authentica亡i〇nl〇gin to enable defaul亡 亡he of defaul亡 nex亡. fredlocal gr〇uP defaul亡 Shown authen亡ica亡ion aaa gr〇uP,亡he fred,aS group 357 n〇ne fred gr〇uP 4.覆盖默认认证方法以加强登录安全性 控制台、 VTY以及AUX 需要在线路配置模式下,使用Iogin (仅路由器)线路都能覆盖默认的登录认证方法。为此 authentication 集。例9 ̄7显示了名为forLCOnSOle、 77CJ″re命令来指向已命名的配置方法 for-Vty以及forLauX等已命名的配置方法集,这 些方法集都应用到了备自相关的登录方式上。每个已命名的配置方法集都定义了一组 认证方法。例9 ̄7给出的配置示例可以满足如下需求。 ■ console:尝试RADIUS服务器,如果没有响应,那么就使用线路密码。 ■ vty:尝试RADIUS服务器,如果没有响应,那么就使用本地用户名/密码。 ■ aux:尝试RADIUS服务器,如果没有响应,那么就不认证。 覆盖默以铂登录以涩方法 励9-7 ! The ! examples. configura亡ion here has been aaa au亡hen亡ication login for-C〇nSOle aaa au亡hen亡ica亡ion login for-V亡y aaa authen亡ica亡ion login for-auX ! The methods ! the local !亡ha亡 are PaSSWOrd would authentication ! However, con line be password grouP radius 亡he login On 亡he cons〇le if cormand on 亡he 亡he w〇uld no亡 from earlier line authentication line RADIUs configura亡ion local wi亡h (based ab〇Ve) radius radius exis亡 used gr〇uP group 亡he and v亡ys; keyw〇rd servers are be by used cormands. for in the the N〇亡e 亡ha亡 c〇nSOle, aaa all nonresponsive. this configuration. 7 14141B180FOB for-COnSOle O for-auX 4 O PaSSWOrd 10gin v亡y au亡hen亡ica亡ion v亡y still cormand au亡hen亡ica亡ion aux login line the below 亡○ added o PaSSWOrd l〇gin enabled passwords ! 1ine 9.2.3 shown 7 104DOOOAO618 authen亡ica亡ion for-Vty PPP安全 PPP可以使用PAP (Challenge (Password Handshake Authentication 对于拨号应用来说非常有用o usemame ma″re PaSSWOrd Authentication Protocol,密码认证协议)和CHAP Protocol ,挑战握手认证协议)进行认证,这一点 CHAP仲AP的默认认证方法依赖于本地配置的一组 pcuswo;切命令。 攻城狮论坛(技术+生活)2群 1813097 . 358 设备和网络安全 第9章 Cis∞ IOS支持PPP的AAA认证使用与登录认证相同的命令集。相应的配置步骤 如下。 第1步:与登录认证相同,使用全局命令aaanew-model启用AAA认证。 第2步:与登录认证相同,如果使用RADIUS或TACACS+,那么就要配置 RADIUS和/或TACACS+服务器,相应的配置命令及语法与登录认证及特权模式认证完 全相同。 第3步:与登录认证相似,利用aaa authentication ppp default命令为PPP定 义所使用的默认认证方法集(唯一的区别在于此处使用的关键字是ppp,而不是 10gin)。 第4步:与登录认证相似,使用ppp /加一栅″把朋e砌o∥ [朋e砌o亿_ ]命令来创建一 个命名式认证方法集,这样就可以不使用默认的认证方法集。 第5步:如果要使用命名式认证方法集而不使用默认认证方法集,那么就需要配 置ppp authentication au恤entication chap ( protoco″ fred命令将引用由aaa [ p7{#bco″_ ])励一硼″re命令。例如, au仙entication ppp PPP fred命令所定义的认证 方法集。 9.3 二层安全 Cisco SAFE蓝图文档(位于www.cisco.com/go/safe)提供了有关交换机安全的 大量最佳实践。在大多数情况下,这些安全建议都依赖于交换机端口的以下三种通 用特性。 ■ 未用端口:未连接任何设备的交换机端口。例如,通过电缆预先连接在空机 框面板上的交换机端口。 ■ 用户端口:通过电缆连接终端用户设备的端口,或者是通过接人电缆连接到 无物理保护区域的端口。 ■ 可信端口或中继端口‥连接完全可信设备(如位于具备良好物理安全保护区 域中的其他交换机)的端口。 下面将列出适用于未用端口及用户端口的最佳安全实践。这两类端日的共同特点 在于恶意人员进人建筑物之后就能访问这些端口,无须非得进人锁了门的配线间或数 据中心。 ■ 禁用不需要的动态协议,如CDP 和DTP (Dynamic (CiscoDiscoveryProtocol, Trmking Protocol,动态中继协议) Cisco发现协议) 。 ■ 将这些端口配置为接人端日以禁用中继功能。 ■ 启用BPDU保护及根保护特性,以防范STP攻击并保持STP拓扑结构的稳 定性。 9.3 ■ 使用DAI (Dynamic ARP 二层安全 359 Inspection,动态ARP检测)或私有VLAN以防范 帧嗅探攻击。 启用端日安全特性,至少要限制允许的MAC地址数,如果可能的话,还应 ■ 该限定这些端口只能使用某些指定MAC地址。 ■ 使用802.1x用户认证。 ■ 使用DHCP监听(DHCPSnooping)和IP源保护特性,以防范DHCPDoS攻 击和中间人攻击。 除了上述专用于未用端口及用户端口的安全建议之外, αsco SAFE蓝图还提供了 以下通用安全建议。 对于任何端口(包括可信端口)来说,都可以使用私有vLAN来进一步保护 ■ 网络免受嗅探攻击,包括禁止路由器或三层交换机在私有vLAN中的设备之 间路由数据包。 ■ 在每台交换机上都以全局方式配置VTP认证,以防范DoS攻击。 ■ 禁用未用端口并将这些端口都放到一个未使用的vLAN中。 ■ 避免使用vLANlo ■ 对于中继端口来说,不使用本征VALN (nativeVLAN)。 本节将逐一讨论上述安全建议中的备种交换机安全特性,首先讨论未用端口和用 户端口的专用最佳实践(基于上述第一个最佳实践列表) ,然后再讨论未用端口和用户 端口的通用最佳实践(墓于上述第二个最佳实践列表)。 9.3.1未用端口和用户端口的交换机安全最佳实践 对于未用端口和用户端口的最佳实践列表来说,前三种安全建议已经在前面的章 节中讨论过了,下面将以例9-8为例做个简要回顾。例9-8给出了Cisco 3560交换机 这三种安全建议的配置示例,同时还给出了相应的解释。从例9-8可以看出,龟0/1目 前为未用端口,虽然该接口已经禁用了CDP,但CDP在全局范围内仍处于启用状态, 因而可以推断出某些接口仍然需要启用CDPo此外,本例还禁用了DTP,并启用了 STP根保护及BPDU保护特性。 励9-8 努伊cDP矽D丑},周砌屠居椽衔妒龙BPDU衔妒衔解 !The cdp run !faO/1,亡he Cdp in亡 no cormandkeeps unused CDP enabled globally,buti亡 has been disabled on por亡. run faO/0 cdp enable !The switchp゜rt !and 亡he m゜de switchport !fr〇mbeing SWi亡Chport sen亡 mode Or accessinterface nonegotiate ProCeSSed. access subcormandpreven亡S cormandpreven亡S any the por亡 DTPmessages from trunking, 360 设备和网络安全 第9章 SWi亡Chport nonego亡ia亡e !Thelast∴亡WOinterface !respec亡ively.BPDU !enabledby c〇rmands Guard c〇nfiguring 亡he enable als〇 can be R〇Ot Guard enabled spanning-tree for POr亡fas亡 andBPDUGuard,Perin亡erface, allports bpduguard wi亡h P〇r亡Fas亡 enable global !comand. roo亡 SPanning-tree guard SPanning一亡ree bpduguard enable 1.端口安全 交换机端口安全特性负责监控指定端口以限制二层交换表中与该端口相关联的 MAC地址,而且还能强制限定只能通过该端口向外连接特定的MAC地址。 为了部署端口安全特性,需要在交换机处理人站帧的常规进程中增加一些特殊处 理逻辑。此时交换机不再将源MAC地址和端口号自动添加到二层交换表项中,而是 要考虑端口安全特性的配置情况以确定是否允许该表项。由于端口安全特性可以拒绝 将某些MAC地址添加到交换机的二层交换表中,因而能够防止交换机在指定端口上 将数据帧转发给这些MAC地址。 端口安全特性支持以下主要功能。 ■ 限制指定端口所能关联的MAC地址数。 ■ 限制指定端日相关联的实际MAC地址,此时可以采用以下三种方式。 一静态配置允许的MAC地址。 一动态学习MAC地址(最多为已定义的最大MAC地址数),这些动态表项 将会在重新加载后丢失。 一动态学习MAC地址,但是由交换机将这些表项保存在配置中(称为粘性 学习[sticky leaming] ) 。 端口安全特性可以防范多种攻击行为。如果交换机的转发表已满,那么交换机就 会老化较早的表项。如果交换机收到的帧去往转发表中不存在的MAC地址,那么就 会通过所有端口向外泛洪这些帧。攻击者向交换机发送大量帧(每个帧的源MAC地 址都不同)之后,交换机就会不断填满其交换表,致使交换机将交换表中的大量合法 主机表项都老化了。由于此时交换机的CAM (Content ̄Addresshole Memory,内容可 寻址内存)表中已经没有合法数据帧的目的MAC地址了,因而交换机不得不泛洪这 些合法的数据帧,使得攻击者能够看到这些帧。 攻击者还能宣称与合法用户相同的MAC地址,只要简单地发送一个与该MAC 地址相同的帧即可。此时交换机会更新其交换表,并将数据帧发送给攻击者(如图9 ̄2 所示)。 由于端口安全特性能够限制MAC地址数并为指定端日限定MAC地址,因而能 够防范这两类攻击行为。端口安全特性的配置也较为简单,只要在接口模式下配置少 量步骤即可。相应的配置命令如表9-4所示。 9.3 地址 二层安全 361 端口 MAc-B 手ae/2 FaO/3 FaO/3 1 1 ④: l 目的MAc 源MAc ↓ 疆攻击者 ①攻击者将PC ̄B的实际MAc作为帧的源MAC地址 ②sWl更新其MAc地址表 ③另一个发送到目的MAC-B的帧 ④sWl将帧转发给攻击者 图9-2 宣称使用其他主机的MAc地址 表9-4 端口安全特性的配置命令 端口安全特性要求将端口静态设置为接入接口或中继 SWitchportmode(accessltrunk) 接口 该命令可以在接口上启用端口安全特性,作为可选项, SWitchportport-SeCurfty[maximumva/″eI 还可以定义指定端口所允许的MAc地址数(默认为1) SWitchportport-SeCurftymac-addressmac-address 为特定>日\N(可以是接入>LAN或语音>日\N)静态 【vlan(V/an一′dl(accessIvoice)) 定义一个允许的MAc地址 SWitchportport-SeCurftymac-addresssticky 让交换机记住动态学到的MAc地址 SWitchportport-SeCurity[aging][violation(ProteCt 定义出现安全违规行为后的老化定时器及相应操作 lrestrictlshutdown)] 端口安全特性仅需要表9-4中的前两条命令。配置了这两条命令之后,端口将允 许使用第一个学到的MAC地址,而不能使用其他MAC地址。如果CAM表中的MAC 地址已经超时,那么就可以在该端口上学习其他MAC地址,但是每次仅允许一个MAC 地址。 表9-4中接下来的两条命令可以定义MAC地址。第三条命令可以静态定义所允 许的MAC地址,第四条命令允许粘性学习。粘性学习允许交换机动态学习MAC地 址,然后再将学到的MAC地址添加到运行配置中。虽然该命令可以启用端口安全特 性并学习现有的MAC地址,但接下来仅仅将这些MAC地址简单地保存到运行配置 362 设备和网络安全 第9章 中,从而锁定为配置中的静态表项(请注意,如果要允许多个MAC地址,那么还需 要使用switchport port-SeCurrty maXimum x命令,其中的x为最大MAC地址数) 。 表9-4中最后一条命令的作用是告诉交换机在发现安全违规行为之后如何响应。 选项protect (保护)的作用是告诉交换机执行端口安全操作。选项restrict 作用是告诉交换机还要发送SNMP 管理协议) trap (Simple Netwock no Protocol,简单网络 (自陷)消息并生成该安全违规行为的目志消息。选项shutdown 闭)的作用是将该端日置人err-disabled / Management (限制)的 (关 (差错禁用)状态,需要在端口上执行shutdown shutdown命令组合才能将该端口恢复到转发状态。 例9-9给出了图9-3的配置示例。图中显示的服务器1和服务器2是唯一可以分 别连接到快速以太网接口FaO/1和FaO/2上的设备,图中的欺骗设备正试图连接到接 口FaO/1上。 ⁝ 哩1矗器∴Ⅲ∥ 哩矗握嚣22.2222 哩矗熊塞计 哩矗用户1 端口安全特性配置示例 图9-3 励9-9 剁脯口安全烤煌左二文谨接至揩后接fl上铂五筛^侧C强 ! FAO/1 ! only has one interface been MAC configured m〇de SWi亡Chpor亡 POr亡一SeCurity SWi亡Chport FAO/2 !∴allow been S亡a亡ic only one mac-address configured MAC mode P〇r亡一SeCuri亡y SWi亡Chpor亡 P〇rt-SeCuri亡y ! FAO/1 ! c〇nneCt. ! fact∴亡ha亡 a ! addresses is 亡O uSe a shows 亡O allow 亡O MAC address, defaul亡ing nO亡 0200.1111.1111亡ried sh゜W access as The defaul亡 single l, mac-address err-disabled, and aS Vi〇la亡ion MAC address tha亡∴there P゜rt-SeCurity a mode is are interface s亡icky device is o fastEthernet Sta亡us Err-Disabled Shu亡down mins aS s亡icky-1earned Por亡 o WaS configured,亡ha亡 Enabled Mode tha亡 shutdown, Secur|亡y Time defaulting O200.1111.1111 S亡icky-1earned Por亡 Aging address, Fas亡Etherne亡0/2 SWitchpor亡 Viola亡ion MAC address. SWi亡Chpor亡 fred# a access p〇r亡-SeCuri亡y has in亡erface uSe Fas亡E亡hernetO/1 SWi亡Chpor亡 ! 亡O address. O/1 Shown. the 1亡 maximum MACs. also lis亡S number of 亡O 亡he MAC 二层安全 9.3 Aging Type ‥ SecureS亡atic Maximum T〇亡al MAC MAC Address Addresses MAC S亡icky Addresses MAC Source Securi亡y ! FAO/2 ! on !∴coun亡is O. show Por亡 Securi亡y S亡a亡us Violati〇n Time Aging Type lis亡S MAC Addresses MAC Source show (Lines Coun亡 亡he One SeCurity has n〇亡 s亡anza∴亡ha亡∴the S亡icky MAC fast叠thernet O/2 address Seen any Viola亡i〇nS securi亡y violations has learned. been Enabled SecureUp : Shutdown : O ‥ POrt of fac亡∴亡ha亡 : Address‥Vlan mins Abs〇1u亡e Disabled 1 : 1 ‥ 1 : O : O : 0 running-COnfig omit亡ed interface Aging Addresses Vi〇la亡ion 亡ha亡 end interface Addresses Sticky fred# 亡he Addresses Configured fof7.5538.f7al:1 1 meaning ‥ Address O a亡∴亡he ‥ MAC Securi亡y 1 ‥ SecureS亡a亡ic Las亡 also Mode Aging MAC 1t ‥ ‥ SecureUp, N〇亡e port-SeCurity P〇r亡 T〇亡al as por亡. 1 1 : Coun亡 Abs〇lute Disabled : ‥ Address:Vlan shows Maximum ‥ Addresses Viola亡ion 亡his fred# : Addresses Configured Las亡 Aging 363 for brevi亡y) Fas亡且亡herne亡0/2 SWi亡Chport mode SWi亡Chp〇rt POrt-SeCuri亡y access SWi亡Chp〇r亡 POr亡一SeCuri亡y mac-address s亡icky SWi亡Chport p〇rt-SeCuri亡y mac-address sticky O200.2222.2222 本例的最后还显示了更新后的运行配置的粘性学习情况。虽然MAC地址存储在 运行配置中,但是在存储该MAC地址的命令中使用了关键字sticky,这一点与纯粹 静态配置的MAC地址不同。需要注意的是,交换机不会自动将配置保存到启动配置 文件中0 2.动态ARP检测 交换机可以利用DAI 用IP ARP (Dynamic (Address ARP Resolution Inspection,动态ARP检测)特性来防范利 Protocol,地址解析协议)消息发起的攻击行为。为了 更好地理解这些攻击行为的作用方式,需要记住ARP消息的一些细节信息。图9-4给 出了ARP消息的正确使用方式,图中的PC-A正在发现PC-B的MAC地址。 虽然ARP消息本身并不包含IP报头,但是却包含了四个非常重要的地址字段: 消息发送端的源MAC地址和源IP地址以及目标MAC地址和目标IP地址。对于ARP 请求来说,目标IP地址字段列出的是需要找到MAC地址的IP地址,目标MAC地址 字段为空,因为该字段信息未知。请注意, ARP应答(LAN单播)利用源MAC地址 攻城狮论坛 364 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 设备和网络安全 第9章 字段来表示MAC地址值。例如, PC-B在ARP消息中将源MAC地址设置为自已的 MAC地址,将源IP地址设置为自已的IP地址。 ARP应答 ARP请求 以太网报头 以太网报头 ARP消息 ARP消息 源=MAc-A 源=MAC-A,源=lP-A 源=MAc-B 源=MAC-B, 目的=广播 目标=???,目标=lP-B 目的=MAc-A 目标=MAc-A,目标=lP.A 源=lP-B 疆嚣 ① Pc-A发送ARP广播以查找 IP-B的MAc地址(目标MAc) ② 图9-4 PC-B发送LAN单播ARP应答 ARP消息(包括以太网地址和ARP字段)的常规使用方式 攻击者可以在LAN中利用无故ARP (gratuitous ARP)发起中间人攻击。无故ARP 指的是主机在没有看到ARP请求的时候就以广播地址作为目的以太网地址向外发送 ARP应答消息。从图9-4可以看出,典型的ARP应答应该是单播消息,意味着只有发 送了ARP请求的主机才能学到ARP表项,但是对于广播式无故ARP来说, LAN中 的所有主机都将学到该ARP表项。 虽然无故ARP有其用武之地,但也会被攻击者利用发起攻击行为。攻击者可以 通过发送无故ARP来宣称自已是一个合法主机的IP地址,子网中的所有主机(包括 路由器和交换机)都会更新各自的ARP表,从而指向攻击者的MAC地址,此后发送 给该MAC地址的帧都将被发送给攻击者,而不会发送给真正的接收主机(如图9 ̄5 所示)。 图9-5中的步骤如下。 第1步:攻击者以广播方式发送列出了IP-B的无故ARP消息,但是却将MAC-C 作为源IP和MAC地址。 第2步: PC-A更新其ARP表,将与IP-B相关联的MAC地址列为MAC-Co 第3步: PC-A向IP-B发送帧,但是目的MAC地址为MAC-Co 第4步: SWl将帧转发给MAC-C (攻击者)。 攻城狮论坛(技术+生活)2群 1813097 9.3 二层安全 365 swl转发表 PC-A ARP表 图9 ̄5 地址 端口 MAC lP地址 利用无故ARP发起的中问人攻击 攻击导致其他主机(如PC ̄A)将发送给IP-B的帧都发送给了MAC地址MAC-C (攻击者的PC)。此后攻击者可以简单地将每个帧的拷贝发送给PC-B,从而成为整 个传送过程的中间人。这样一来,虽然用户能够继续工作,但攻击者却获得了大量 数据。 交换机利用DAI来解决ARP攻击问题,由DAI来检查ARP消息并过滤有问题的 消息o DAI将每个交换机端口都视为非可信端口(默认)或可信端日,并且仅在非可 信端口上执行DAI检查o DAI会检查每条ARP请求或应答消息以确定这些消息是否 有问题。如果有问题,那么交换机就会过滤这些ARP消息。交换机通过以下处理逻辑 来确定ARP消息是否有问题。 第1步‥如果ARP应答消息列出的源IP地址不是DHCP分配给该端口所连设备 的IP地址,那么DAI就过滤该ARP应答消息。 第2步: DAI使用的判断规则与第1步相似,但此时使用的是静态定义的IP地址 /MAC地址组合列表进行对比。 第3步:对于接收到的ARP应答消息来说, DAI会将以太网报头中的源MAC地 址与ARP消息中的源MAC地址进行对比。对于常规ARP应答来说,这些MAC地址 应该相同,如果不相同,那么DAI就会过滤该ARP消息。 第4步:与第3步相似,但此时DAI对比的是目的以太网MAC地址与ARP消息 中列出的目标MAC地址。 第5步:DAI检查ARP消息中是否存在非期望IP地址,如0.0.0.0、255.255.255.255 以及多播地址等。 366 第9章 设备和网络安全 表9-5列出了Cisco 3560交换机启用DAI功能的主要命令。首先需要在全局范围 内启用DAI,此时DAI将所有端口均视为非可信端口,因而需要将某些端口(特别是 连接安全区域中的设备的端口)显式配置为可信端口。其次,需要启用不同的逻辑选 项。例如, DAI在利用DHCP监听绑定数据库执行第1步判断逻辑之前,必须先启用 DHCP监听特性。作为可选项,也可以配置静态IP地址,或者利用ip arp inspection val时ate命令执行其他验证操作(根据上述列表中的其他三种判断方式) Cisco 表9-5 loS交换机DAl命令 iparpinspectionvlanvfan-ra″ge 全局命令,可以在交换机上为指定>日\N启用DAl [no]iparpinspectiont…St 接口子命令,可以在接口上雇用或禁踊(使用选项no)DAl,配置了 全局命令iparpinspection之后将默认雇用DAl iparpinspectionfilteraxp-ac′″ame 拿局命令,DAl将为指定VALN检查该命令所引用的ARPAcL(定义 Vlanv/an-range[static] 了静态IP/AMc地址)(前文中的第2步) iparpinspectionvalidate([src-maC] 肩用检查ARP消患的其他选项(前文中的第3-5步) [dst-maC][ip]) iparpinspectionlimit(ratepps[burst 限制ARP消患速率以防范通过发送大量ARP而发起的DoS攻击 intervalseco″ds]lnone) 由于DAI会导致交换机执行更多的操作任务,因而攻击者可以通过发送大量ARP 消息来发起DoS攻击o DAI可以自动将每个端日每秒钟发送的ARP消息数限制为15 条,以防范这类攻击行为。也可以利用接口子命令ip arp inspection Iimit来更改该默 认设置0 3. DHcP监听 DHCP监听特性可以防范利用DHCP发起的多种攻击行为o DHCP监听可以让交 换机检查D耳CP消息并过滤有问题的DHCP消息oDHCP监听特性会根据合法的DHCP 消息构建一个IP地址与端口的映射表,称为DHCP监听绑定表(bingding table)。此 后DAI以及IP源保护特性都能使用该DHCP监听绑定表。 图9-6给出了利用DHCP发起的中间人攻击示例。合法的DHCP服务器位于总部 站点中,攻击者位于本地LAN中,攻击者目前正充当DHCP服务器。 攻击者PC成为图9-6中的中间人的步骤如下。 第1步‥ PC-B通过DHCP请求IP地址。 第2步:攻击者PC应答DHCP请求并分配一个正常的IP地址/掩码,但是将自 已的IP地址用作默认网关。 9.3 Web服务器 二层安全 367 DHcP服务器 EEEE型 图9-6 利用DHcP发起的中问人攻击 第3步: PC-B向攻击者发起数据帧,认为攻击者是默认网关。 第4步:攻击者转发该数据帧拷贝,从而成为中间人。 DHCP监听可以防范非可信端日产生的攻击行为o DHCP监听允许可信端口上的 所有DHCP消息,但是却过滤非可信端口上的DHCP消息o DHCP监听特性的工作机 制是认为非可信端口上应该仅存在DHCP客户端,因而交换机会过滤所有仅应该从服 务器发出的人站DHCP消息。因此,从方案设计的角度来看,应该将未用及不安全的 用户端口配置为DHCP监听的非可信端日。 由于攻击者可能会利用DHCP客户端消息发起某些攻击行为,因而DHCP监听还 会在非可信端口上检查DHCP客户端消息o DHCP服务器识别客户端的方式是基于 DHCP请求中列出的客户端硬件地址。通过重复发送多条DHCP请求消息,并且每条 消息都拥有不同的DHCP客户端硬件地址,单台设备就可以仿冒多台设备。由于合法 的DHCP服务器认为这些DHCP请求来自不同的主机,因而会为每个请求都分配一个 IP地址,使得DHCP服务器很快就分配完子网的所有可用IP地址,致使合法用户无 法获得IP地址。 368 第9章 设备和网络安全 对于非可信端口来说, DHCP监听特性利用以下逻辑规则来过滤数据包0 1.过滤所有仅应该由DHCP服务器发送的消息0 2.交换机根据DHCP监听绑定表来检查DHCP释放(Release)和拒绝(Decline) 消息。如果这些消息中的IP地址没有与相应的端口列在DHCP监听绑定表中,那么 交换机就会过滤这些消息0 3.作为可选操作,交换机可以将DHCP请求中的客户端硬件地址与以太网帧中 的源MAC地址进行对比。 对于上述三条逻辑规则来说,第一条关注的是图9-6所示的假冒DHCP服务器的 中间人攻击;第二条可以防止攻击主机释放合法主机的DHCP租约,然后再试图请求 IP地址并获得该相同的IP地址,从而接管来自原始主机的现有连接;最后一条可以 防范DoS攻击,防止主机试图耗尽DHCP服务器可以在子网中分配的所有IP地址。 表9-6列出了在Cisco 3560交换机配置DHCP监听特性的主要配置命令。 Cisco 表9 ̄6 loS交换机DHCP监听命令 盒局命令,可以为一个或多个>LAN启用DHCP监听特性 ipdhcpsnoopingvlanv/a″一ra″ge 接口命令,可以在接□上启用或禁用信任级别,默认为no [no]ipdhcpsn゜OPingt…St 版本命令(启用) ipdhcpsnoopingbindingmac-addressvlanv/a月-′d 全局命令,可以向DHcP监听绑定表添加静态表项 佃一addressinterfaceinte′face-idexpiryseco″ds 接口子命令,可以增加可选检查操作,即检查以太网帧的 ipdhcpsno°Pingverifymac-address 源MAc地址是否与DHcP请求中的客户端ID相同 设置每秒钟所允许的最大DHcP消忌数以防范Dos玫击 ipdhcpsnoopingIimitrate′afe 4. 1P源保护 Cis∞ IOS交换机的IP源保护特性为DHCP监听增加了另一个检查功能。如果同 时启用了DHCP监听与IP源保护特性,那么IP源保护特性会将接收到的数据包的源 IP地址与DHCP监听绑定表进行对比。作为可选方式,也可以将源IP地址和源MAC 地址与DHCP监听绑定表进行对比。如果不匹配,那么就会过滤该以太网帧。 可以使用接日子命令来启用IP源保护特性。如果仅检查源IP地址,那么就可以 使用接口子命令ip 可以使用接口子命令ip verify verify source,如果要同时检查源IP地址和源MAC地址,那么就 source DHCP监听绑定表之外,还可以利用全局命令ip 勿-CJCifesLS interface source port-SeCurityo作为可选配置方式,除了使用 binding rfu砷徊ce-id创建静态表项。 ′″CrO-CJ枕su vIan v/cH咖c7 9.3 二层安全 369 为了更好地理解IP源保特性,可以考虑例9-10所示的DHCP监听绑定数据库。 该例在全局范围内启用了DHCP监听特性,同时在接口faO/1上启用了IP源保护特性。 请注意,每条数据库表项都列出了MAC地址、 IP地址、 VLAN以及接口等信息,这 些表项都是由DHCP监听不信任端口得到的, DHCP监听特性根据DHCP请求中的源 MAC地址和源IP地址构造了这些表项。 嚣● D∥CP监伤勒定魏挽酝励 励9-10 SWl(config)# ip SWl (COnfig) SWl (COnfig-if)# # SWl# show ip snooping interface SWl(COnfig-if)# Mac dhcp FastEthernetO/1 switchport ip dhcp Address verify sno゜Ping Ip access v|an 3 source binding Address Lease (SeC) Type VLAN |n亡erface O2‥00‥01:02‥03:04 172.16.1.1 3412 dhcp-Sn〇OPing 3 Fas亡Etherne亡0/1 02‥00:AA‥BB‥CC‥DD 172.16.1.2 4916 dhcp-SnooPing 3 Fas亡Etherne亡0/2 由于在接日faO/1下通过命令ipverify source启用了IP源保护特性,因而仅允许 源IP地址为172.16.1.1的数据包进人接口龟0/10 5.使用EAP的802.1x认证 交换机可以使用IEEE 802.1x进行用户认证,而不是本节描述的其他许多功能特 性所执行的设备认证。在交换机允许交换端口收发常规的用户流量之前,需要用户提 供用户名和密码进行用户认证(由RADIUS服务器进行验证)。使用用户名和密码可 以防止攻击者简单地使用某些用户的PC即可对网络发起攻击,因为此时攻击者必须 首先攻破802.1x认证的用户名和密码。 虽然802.1x定义了LAN用户认证的细节信息,但是也可以使用Intemet标准(RFC 3748) EAP (Extensible Authentication Protocol,扩展认证协议)作为认证的底层协议o EAP包含的协议消息可以提示用户提供密码,而且还包含了根据RFC 2289创建OTP (One-TimePassword,一次性密码)的流程。图9-7给出了LAN用户的802.1x认证流 程,但是不包含每条消息的细节信息。 图9-7引人了一些通用概念和新术语。首先,在802.1x请求端(用户设备)与802.1x 认证端(交换机)之间传送的EAP消息被直接封装在以太网帧中,这些帧被称为EAPoL (EAP overLAN, LAN上的EAP)帧。但RADIUS期望EAP消息采用被称为RADIUS 属性的数据结构,这些属性都位于常规的RADIUS消息内部。因此,为了支持这两种 协议,交换机必须对请求端与认证服务器之间传递的消息执行EAPoL与RADIUS的 转换操作。 370 设备和网络安全 第9章 认证服务器 认证端 RADIUS消息(携带EAP属性) 请求/挑战 < >② ③ ←∴RAD|Us接受 图9-7 日\N用户的802.1x认证 图9-7显示的是一个经过简化的认证流程示意图。交换机和请求端利用临时密钥 创建了一个OTP,然后由交换机将认证请求转发给认证服务器。由于交换机有责任在 认证通过之后启用该端口,因而交换机(认证端)必须能够感知认证结果(第3步)。 图9-7给出了802.1x认证体系中的备种组件。 ■ 请求端(Supplicant): 802.1x驱动程序,其作用是提示用户输人用户名/密码 并收发EAPoL消息。 ■ 认证端(Authenticator):在EAPoL与RADIUS消息之间执行双向转换操作, 并根据认证结果(成功/失败)启用/禁用端口。 ■ 认证服务器(Au仙entication Server):存储用户名/密码,并在认证用户之前 验证用户提交的用户名/密码是否正确0 802.1x交换机的配置方式与本章前面“使用默认的认证方法集”讨论的AAA相 似。交换机的配置将802.1x用户认证视为AAA认证的另一种选项,配置步骤如下。 第1步:与其他AAA认证方法相同,首先需要利用全局命令aaanewmodel启用 AAAo 第2步:与其他使用RADIUS服务器的配置相同,需要使用radius-SerVer 和radius-Server host key命令定义RADIUS服务器的IP地址和加密密钥。 第3步:与登录认证相似,使用aaa authentication dotlx defauIt命令定义802.1x 认证方法(目前仅支持RADIUS),如果存在多个组,那么就使用全局命令aaa authentication dotlx group J7CJmeo 第4步:使用全局命令dotlx system-auth-COntroI在全局范围内启用802.1xo 第5步:使用接日子命令authentication force-unauthorized ■ 使用802.1x (auto)。 port-COntrol ( auto l force-authorized )将每个接口配置为以下三种操作模式之一。 l 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 9.3 ■ 不使用802.1x,但自动授权该接口(force-au仙orized) ■ 不使用802.1x,但自动不授权该接日(force-unauthorized)。 二层安全 371 (默认模式)。 例9-11给出了Cisco3560交换机的802.1x配置示例。本例基于前面的图9-3,两 台服务器分别连接在端口鼠0/1和鼠0/2上,两个用户分别连接在端口鼠0/3和鼠0/4上。 此外,端口faO/5为未用端口。需要注意的是,截至本书写作之时, RADIUS是Cisco 3560交换机支持的唯一认证方法。 励9-∥ c/Sco ! The ! group 3560交挨彻铂802.1x镭置示励 first∴亡hree cormands comprised aaa new-model aaa au亡hen亡icati〇n dotlx of all enable d〇亡1x defined defaul亡 AAA, define RAD|US group 802.1x 亡hat servers, and sh〇uld enable use 802.1X 亡he RADIUS globally. radius sys亡em-au亡h-COn亡rol COn亡inues ! Nex亡, C〇rmands shown ! These cormands are previously unchanged are 亡O used c〇mPared 亡O define earlier 亡he defaul亡 radius-SerVer hos亡10.1.1.1 au亡h-POr亡1812 acc亡一POr亡1646 radius-SerVer hos亡10.1.1.2 au亡h-POrt acc亡一POr亡1646 radius-SerVer ! The ! 802.1x in亡 server key clien亡 faO/2), inside a secure da亡acen亡er, d〇 not require POrt-C〇n亡rol force-au亡horized p〇r亡一COn亡rol force-au亡h〇rized POr亡S (faO/3 and faO/4) require 802.1x au亡hen亡ica亡ion. faO/3 port-C〇ntrol auto faO/4 au亡hen亡ica亡ion ! The ! s亡a亡e ! por亡. in亡 and faO/2 au亡hen亡ica亡ion in亡 (faO/1 faO/1 The in亡 cisco por亡S au亡hen亡ica亡ion ! group. au亡hen亡ica亡i〇n. au亡hen亡ica亡i〇n int 1645 radius examples. unused un亡il As port-COntrol por亡(faO/5) 亡he is au亡〇 configured authenticati゜n such,亡he por亡 Will 亡O be POrt-COntrol only allow in a permanen亡Iy cormand CDP, sTP, is and unau亡h〇rized rec°nfigured 丑APoL for this frames. faO/5 au亡hen亡ica亡ion p〇r亡一COn亡rol force-unau亡horized 6.风暴控制 Catalyst交换机的Cis∞ IOS支持二层流量限速功能(使用storm-COntrol命令) 。 风暴控制功能可以为三种类型的端口流量设置上下门限:单播、多播和广播。可以根 据每个端口配置相应的限速能力。 可以按照数据包速率或接口带宽的百分比来定义每种流量的风暴控制特性,也可 以为每种流量指定上下门限。如果没有指定下限或者下限等于上限,那么交换机端口 最多可以按照已配置的极限值转发所有流量,而且再次转发该流量之前也不需要等待 该流量突破指定的下限。 如果突破了已配置的任何一个门限值,那么交换机就会以端日为基础采取以下三 种响应操作:第一种响应操作(也是默认响应)是交换机根据已配置的命令通过丢弃 攻城狮论坛(技术+生活)2群 1813097 372 设备和网络安全 第9章 过量流量的方式实现限速,此外无其他操作。而其他两种响应操作则包括执行限速功 能以及关闭端日或发送SNMPtrap消息。 配置风暴控制特性的主要目标如下: 将广播流量限制为每秒钟100个数据包,广播流量回落到每秒钟50个数据包 ■ 之后,就开始再次转发广播流量; ■ 将多播流量限制为100Mbit/s接口的0.5% (即500kbit/s),多播流量回落到 400kbit/s之后,就开始再次转发多播流量; ■ 将单播流量限制为100Mbit/s接口的80% (即80Mbit/s),最多可以按照该极 限来转发单播包; ■ 出现上述三种情况并产生限速操作时,发送SNMPtrap消息。 风暴控制特性的配置方式如例9 ̄12所示。 励9-12 历暴控勒乾置示励 Ca亡3560 (COnfig) # interface Fast叠thernetO/10 Ca亡3560(COnfig-if)# st°rm-COntrol broadcast level pps Cat3560(COnfig-if)# storm-COntrol Imulticast leve1 0.50 Ca亡3560(C〇nfig-if)# storm-COntr゜1 unicast Ca亡3560 st゜rm-C゜ntrol action (COnfig-if) # Ca亡3560(C〇nfig-if〉# Ca亡3560# show In亡erface FaO/10 show In亡erface show In亡erface FaO/10 Jun lo Fil亡er Filter A loo packe亡 faO/10 50 L〇Wer pps ac亡ion Current O pps multicast Upper O.50% 0.00? L〇Wer Curren亡 0.40% 0.00% ?sTORM_CONTROL-3-F工LTERED: fil亡er Curren亡 broadcast Upper pps Sta亡e L〇Wer 80.00% faO/10 S亡ate storm-C゜ntr゜1 Forwarding FaO/10. 80.00 trap un|CaSt Upper 80.00% Fil亡er 14‥24:47.595: faO/10 S亡a亡e storm-COntr゜1 F〇rWarding FaO/10 Cat3560# 50 0.40 end storm-C゜ntr゜l F〇rWarding Ca亡3560# leve1 loO has been A Mul亡icast applied on 亡he s亡Orm de亡ec亡ed 需要注意的是,风暴控制特性仅支持物理端口,虽然EtherCharmel 蔑 on interface. (端口通道) 接口也有相应的可用命令,但是不起作用。 9.3.2二层安全通用建议 在前面的“二层安全”小节的开头部分曾经简述了Cisco SAFE蓝图对用户端日和 未用端口的安全建议以及一些常见的通用安全建议。这些通用安全建议包括在每台交 换机上全局配置VTP认证、将未用的交换机端口放到未用VLAN中,而且不要使用 VLAN lo有关这些通用安全建议的底层配置方式请参见第2章。 9.3 除此以外, 二层安全 373 Cisco还建议不要在中继上使用本征VLANo 因为在某些情况下,接 人端口上的攻击者可以发送以多个802.1Q报头开始的数据帧,从接人端口VLAN跳 转到中继的本征VLAN中。虽然已经证明该攻击对于αsco交换机无效,但攻击者利 用了交换机处理数据帧的程序设计逻辑,因而最佳安全实践是始终不在中继上使用本 征VLANo简单来说,如果遵循了不使用本征VLAN的最佳实践,那么即使攻击者能 够跳转VLAN,由于本征VLAN中没有任何设备,因而也不会产生任何损害。事实上, Cisco建议为每条中继使用不同的本征VLAN,从而能够进一步防范这类攻击行为。 本章将要讨论的最后一个二层安全通用建议是使用私有vLAN来进一步限制流 量。如第2章所述,私有vLAN可以在指定端口上限制主机之间直接发送数据帧。 图9-8以虚线方式显示了允许的数据流。如果两台设备之间没有虚线,那么就表示私 有VLAN不允许它们进行直接通信。例如,PCl与PC2之间就不允许相互发送数据帧。 主vLAN, 子网10士1.0/24 图9-8 私有∨日\N允许的数据流 创建私有VLAN的方式是在主VLAN (promiscuous port) (primary ,同时在一个或多个辅助VLAN VLAN)中配置多个混杂端口 (secondary 离端口(isolatedport)或团体端口(community VLAN)中配置其他隔 port)。隔离端口只能向混杂端口发送 帧,而团体端口不但可以向混杂端口发送帧,而且还能在同一个辅助VLAN中向其他 团体端口发送帧。 374 第9章 设备和网络安全 私有vLAN通过隔离用户端口来实现更强的安全控制,仅允许用户端口访问混杂 端口(如路由器、交换机或其他网络设备)。不过, 功能特性,如DHCP监听、 αsco交换机近来新增了许多安全 DAI以及IP源保护,这些安全功能特性通常都是更好的 选择。 如果使用私有VLAN,那么Cisco还提供了其他保护建议,以防止攻击者利用默认 网关来攻破私有VLAN提供的保护功能。以图9-8为例, PCl以Rl的目的MAC地址 发送数据帧,但是却使用了PC2的目的IP地址(10.1.1.2)。由于Rl的端口是混杂端口, 因而交换机将该数据帧转发给Rl ,然后再由Rl将数据包路由给PC2,从而在实际效果 上规避了私有VLAN的意图。为了解决这个问题,路由器可以在LAN接口上部署一个 人站ACL (Access Co血OIList,访问控制列表) 连子网中的所有流量。本例中的命令access-1ist lol deny ip ,以拒绝源和目的IP地址都在同一个直 lO.1.1.0. 0.0.0.255 10.1.1.0 0.0.0.255即可防范这类攻击(当然,还需要在ACL中配置适当的permit语旬)0 9.4 三层安全 Cisco SAFE蓝图还针对三层安全提供了大量最佳实践。下面列出了SAFE蓝图中 与三层安全相关的主要建议0 1.安全Ttlnet方式访问路由器的用户接口,并且建议采用SSH (SecureShell,安 全外壳)来替代耽1neto 2.启用SNMP安全,特别是增加SNMPv3的支持能力0 3.关闭路由器平台上所有不需要的服务0 4.开启目志记录以实现审计跟踪功能0 5.启用路由协议认证功能0 6.启用CEF转发路径以避免使用类似于快速交换的基于流的路径。 除此以外, RFC2827和3704还针对如何保护路由器、三层转发(IP路由)以及 三层控制平面(路由协议)提供了其他一些有用的最佳实践建议o RFC 2728主要解决 的是利用IP报头中的IP源地址和目的地址字段发起的攻击行为o RFC 3704讨论的是 如何在互联网中最佳部署RFC 2827的工具。这两个RFC提到的主要建议如下0 1.如果企业拥有已注册的IP前缀,那么就不应该将源地址位于该IP前缀的数据 包从互联网发送到该企业的自治系统中0 2.数据包必须拥有有效的单播源IP地址,应该过滤源IP地址为环回地址 (127.0.0.1)、 127.x.x.x、广播地址以及多播地址的数据包0 3.除非有特殊需要,否则不允许定向(子网)广播0 4.如果没有返回指定数据包的源IP地址的路由,那么就应该丢弃该数据包 (RPF[Reverse Path Forwarding,反向路径转发]检查) 。 9.4 三层安全 375 考虑到本书的写作目的,本节不会详细讨论三层安全的所有细节信息。本节将首 先介绍IPACL (IPACL通常被用来过滤数据包) ,然后再讨论一些最常见的三层攻击 以及防范这些攻击行为的三层安全措施0 9.4.1 1PACL回顾 本书假定广大读者已经较为深人地掌握了IP ACL的配置及使用方面的知识。事 实上,本书前面给出的许多示例都没有详细解释例中用到的各种ACL的处理逻辑,但 IP ACL的某些参考信息以及与IP ACL相关的一些规则及实践信息对于CCIE路由和 交换考试来说非常有用,因而本节将重点解释这方面的信息。 首先,表9 ̄7列出了与IPACL相关的一些重要Cis∞IOS命令。 表9 ̄7 1PACL命令参考 access-1istaccess-ife←″″mber(denylpermit)so″roe 盒局命令,用于配置使用标准编号的访问 [so″roe-W‘胸ca′d][log] 列表 access-1istaccess-ifeLn∥mber[dynamicgivam/C-name[timeout 适用于大量协议的通用语法,还色舍踊于 minutesH(denylpermit)pro!oco/SO″roeSOt/roe-VV“dca′ddesfinaf/O″ TcP.UDP和IcMP的从PreCedence desthaf/On-W″dea′d[precedencep′eceder)ce][tostos][logl 开始的各种选项 log-input][time-rangeffrne-rar)ge-name][fragments] access ̄listaαreSS-ifeL″″mber[dynamicdy?amfO-r)ame【timeout 携带指定TcP参数的access-1ist命令 m″?″fesH(denylpermit)tcpso″′℃eSO″roe-WWdeard[QPe′afor[porfl] 版本,UDP版本的命令也支持相同选项 deswhafrO″desfinafrO″-wi毗冶rd[ape′afor[po′f]=established] (关键字estabIished除外) access-1istaccess一做-n″mbe′(denylpermit)icmpso″roe S゜t/roe-Mwiidca′ddesthaffO″desfroaf/or]-W″dcard[fomp!ype 匹配ICMP包的access-1ist命令版本 【fomp-code]lfomp-meSSage] access-1istaccess-“Sf-″unbe′remarkfexf 定义备注信忌 ipaccess-1ist(Standardlextended)access“s!-″ame 创建命名式AcL的全局命令 [seq∥ence一″umber]permitIdenyprofoco/souroeso″roe-W‘胸card 用于在访问列表中定义单个表项的命名 desfinafror)desfroaf/o″-W‘胸ca′d[precedenceprecede″ceⅡtosfos] 式ACL子命令,对于TcP.UDP.1cMP [Iogllog-input][timerangefine-ra″ge-r)ame][fragments] 等协议来说,该命令的选项均相似 lPaCCeSS-grouP(nt/mbe′lname[inIout]) 接口子命令,该命令可以肩用访问列表 access-Class月unbe′l″ame[inlout] 线路子命令,用于标准或扩展访问列表 IPaCCeSS-1istresequenceaccess-ife←″ameSfarfu)g-Seq∥e″ce-″″mber 盒局命令,可以为混乱的AcL重新定义 仍αeme月! 序列呈 376 第9章 设备和网络安全 引用已在接口上肩用的访间列表 Showipinterface[twer)″mber] 显示为所有协议配置的访问列表的细节 Sh゜WaCCeSS-1ists[access-ifef-″∥mbe′laccess-″sH7ame】 信患 显示IP访问列表 Showipaccess-1ist[access-“S+r)″mberlaccess一做-r)ame] 1. AcL规则汇总 Cisco IOS按序处理ACL的ACE (Access Control Entry,访问控制表项) ,并根据 数据包在ACL中的第一个匹配ACE来允许或拒绝该数据包。对于每个ACE来说,仅 在所有配置值均匹配的情况下,才认为匹配该ACEo表9-8列出了创建单个ACE的 命名式IPACL的permit和deny命令示例及其含义。 表9-8 ACLACE的逻辑和语法 denyipanyhostlO.1.1.1 仅匹配源IP地址和目的IP地址为10.1.1.1的IP数据句 匹配携带TCP报头、源IP地址为任意值、源TCP端□大于(gt) denytcpanygtlO23hostlO.1.1.1eq23 1023且目的IP地址为10.1.1.1、目的TCP端口为23的IP数据色 与上例相似,唯一的区别在于本例匹配任意源端口,因为本例省略了 denytcpanyhostlO.1.1.1eq23 该参数 与上例的匹配结果相同,本例语法便踊的是关键字teIent,而不是端 denytcpanyhostlO.1.1.1eqtelnet 口号23 匹配源地址位于网络10.0.0.0/8中、使用UDP且源端口小于1023、 denyudpl.0.0.00.255.255.2551tlO23any 目的IP地址为任意值的数据色 仅当扩展IPACL的ACE中的协议类型为UDP或TCP时,才能匹配端口号字段。 能够匹配端口号的原因在于源端口匹配参数就位于源IP地址之后,而且目的端口匹配 参数也位于目的IP地址之后。表9-8给出了一些常见的匹配逻辑示例,表9 ̄9则汇总 了UDP端口及TCP端口的匹配逻辑。 表9-9 1PACE端口匹配逻辑 一 gt lt eq 大于 小于 等于 9.4 三层安全 377 续表 虽然ICMP不使用端口号,但是却包含了很多消息类型,而且有些消息还包含了 相应的消息代码o IPACL命令可以使用很长的关键字列表或者经过编号的消息类型和 消息代码来匹配这些参数。请注意这些参数的位置,它们都位于目的IP地址之后。例 如,命名式ACL命令permit icmp any any则出现了语法错误,从而被拒绝o echo-rePIy any any echo-rePly就是正确的,而命令permit icmp IPACL还能检查其他参数,如IP优先级比特以及整个TbS字节。如果TCP报头 设置了ACK标记(表示除建立新TCP连接的第一个报文段之外的所有TCP报文段) 那么就表示匹配参数established (本章后面的示例将使用关键字established) 还可以使用关键字Iog和log-input,让Cis∞ , 。此外, IOS在ACE匹配时生成周期性的日志消 息,即初次匹配时生成一条目志消息,以后每5分钟生成一条日志消息。选项Iog-input 包含的信息多于选项Iog,特别是关于匹配该ACE的数据包的人站接口信息。 对于ACL配置来说,必须记住以下关键信息。首先,标准ACL只能匹配源IP地址 字段,标准编号式ACL由ACL列表号1-99或1300-1999 式ACL的列表号范围为100-199和2000-2699 (包含)来识别,扩展编号 (包含)。此外,编号式IPACL中新配 置的ACE总是位于现有ACL的末尾,而且无法在编号式IPACL中每次删除一条ACEo 因此如果要在编号式ACL的中间插人一行,那么可能需要在删除整个编号式ACL 全局命令no access-1ist 式的序列号解决了该问题, (使用 70wJnder)之后再重新配置ACLo命名式ACL通过使用隐式或显 Cis∞ IOS会按照序列号的顺序列出并处理ACL中的ACEo 2.通配符掩码 ACE利用WC掩码(WildCardmask,通配符掩码)来定义IP地址中需要检查的 部分o wC掩码表示一个32比特数字, WC掩码中的二进制数值0表示Cis∞ 执行匹配逻辑操作时必须比较IP地址中的相关比特, Cis∞ 表9-10 O.O.O.255 wC掩码中的二进制数值1表示 IOS不需要比较这些比特,因而通常将这些比特称为“不关注”比特。表9 ̄10 列出了一些wC掩码示例及其含义。 0.O.0.O IOS在 访问列表通配符掩码 攻城狮论坛 378 bbs.vlan5.com 第9章 #^_^# 版权归原作者所有 本资料仅供试读 . 设备和网络安全 O.0.255.255 胁须匹配前16个比特 O.255.255.255 必须匹配前8个比特 255.255.255.255 由于所有的32个比特均为“不关注”比特,因而被自动认为匹配 O.0.15.255 必须匹配前20个比特 O.O.3.255 必须匹配前22个比特 有效的Wc掩码,表示匹配除比特4、8、11、13、14、18、19、24、27以及32之外的所有 17.44.97.33 比特 虽然实际的生产网络不大可能使用类似于表中最后一项的wC掩码,但是与IP 子网掩码不同, wC掩码不必列出一组不间断0和另一组不间断的10一般来说,较 为常见的WC掩码的作用是匹配特定掩码或前缀长度。如果要找到特定WC掩码以匹 配已知前缀中的主机,那么就需要使用以下简单的计算公式:以十进制表示,从 255.255.255.255中减去子网掩码,得到的结果就是匹配该前缀长度的wC掩码。例如, 假设某子网掩码为255.255.255.0,那么被255.255.255.255减去之后,得到的0.0.0.255 就是wC掩码。该掩码表示仅检查前24个比特,对于本例来说就是该IP地址的网络 和子网部分。与此相似,如果子网掩码是255.255.240.0,那么被255.255.255.255减去 之后,得到的wC掩码就是0.0.15.2550 9.4.2 三层安全的通用考虑 本节将讨论一些常见的三层攻击防范措施0 1. Smurf攻击、定向广播和RPF检查 如果主机发送大量ICMP回应请求(Echo Request)消息且数据包中携带了某些不 规则的IP地址,那么就表示出现了Smurf攻击。这些数据包的目的地址是子网广播地 址,也被称为定向广播地址(directed broadcast address) 。路由器根据常规的IP路由表 匹配逻辑来转发这些数据包,直到数据包到达直连该目的子网的路由器为止。由最后 一台路由器将数据包作为LAN广播转发到该LAN中,也就是向LAN中的每台设备 都发送一份数据包拷贝。图9-9给出了Smurf攻击的发起情况o Smurf攻击的另一个特点就是攻击者发送的数据包的源IP地址是被攻击主机的IP 地址。例如,图9-9中的许多主机都能在第2步收到ICMP回应请求消息。这些主机 都将通过回应应答(Echo Reply)消息进行应答,并将回应应答消息发送给10.1.1.2 (该 地址就是第1步原始ICMP回应消息的源IP地址),使得主机10.1.1.2有可能收到大 量数据包。 攻城狮论坛(技术+生活)2群 1813097 9.4 三层安全 379 ①攻击者以源地址Ⅱ.1.2向子网广播地址发送数据包 (用于辅助攻击) ②Rl以LAN广播方式转发数据色 ③Rl以IcMP回应应答消息作为响应,发送给1工1.2 图9-9 smu正攻击 目前有多种方法可以解决Smurf攻击问题。首先,对于Cis∞ 来说,该IOS默认在每个接日上使用命令no ip IOS软件版本12.0 directed-broadcast,这样就可以防止 路由器将广播包转发到LAN中(图9 ̄9中的第2步)。此外,还可以通过接口子命令 ip verify [ ″st unicast source ]启用uRPF reachable-Via (unicast ( rx Reverse 为了保证uRPF的正常工作,必须启用CEF[Cisco l any Path ) [ allow-default ] [ allow-Self-Ping] Forwarding,单播反向路径检查)特性(请注意, Express Forwarding, Cisco快速转 发])。该命令可以实现以下两类检查操作。 ■ 严格RPF (StrictRPF):使用关键字rx,路由器将检查以确定匹配路由使用 的出站接口是否与收到该数据包的接口相同。如果不同,那么就丢弃该数据 包(后面将简要解释图9-9给出的示例场景)。 ■ 松散RPF (LooseRPF)‥使用关键字any,路由器将检查能够到达源IP地址 的任何路由。 该命令可以在执行检查时忽略默认路由(默认行为),也可以利用关键字 allow-default要求执行检查时使用默认路由。此外,虽然不建议这么做,但是该命令 也能触发向源端发起ping测试以验证连接性。最后,还可以引用ACL来限制RPF检 查的地址。对于下面的示例来说,已经在图9 ̄9的Rl上启用了CEF和uRPF: 380 设备和网络安全 第9章 Rl(config)# ip Rl(COnfig)# int Rl (COnfig-if) cef # s O/O ip verify unicast∴source reachable-Via rx a110w-defau|t 由于图9-9中的Rl在接口SO/0上使用了严格RPF,因而会发现其到达1.1J.2(第 1步中的数据包的源IP地址)的路由并没有将sO/0用作出站接口,因而丢弃该数据包。 但是对于松散RPF来说,由于Rl发现了一条匹配1.1.1.2的直连路由,因而将允许该 数据包通过。最后,由于ASl从来没有收到源地址位于网络1.0.0.0中的数据包(因 为ASl拥有整个该A类网络),因而当源自1.0.0.0/8的数据包从互联网进人接口SO/0 的时候, Rl将简单地利用人站ACL来丢弃这些数据包o Fraggle攻击与Smurf攻击的原理相似,但Fraggle攻击使用的是UDP回应(Echo) 消息,而不是ICMP消息。利用前面所说的Smurf攻击防范方法也能解决Fraggle攻击 问题0 2.不恰当的IP地址 除了Smurf攻击和Fraggle攻击之外,其他的一些攻击行为也会用到不当IP地址, 包括源IP地址和目的IP地址。攻击者可以利用不恰当的IP地址保持隐蔽性,同时还 能与其他主机合作发起DDoS (Distributed Denial ofService,分布式拒绝服务)攻击。 三层安全的最佳实践之一就是使用ACL来过滤IP地址不当的数据包。例如, Smurf 攻击列出的虽然是有效IP地址1.1.1.2,但是以该IP地址为源地址的数据包永远也不 应该从互联网进人ASl o IP前缀空间由IANA (Intemet Assigned Numbers Authority, 互联网编号分配机构)负责管理和分配,目前所有已分配的地址空间都列在 WW.iana.org/assignments/ipv4-address-SPaCe的文档中。路由器可以根据周知已分配的 地址空间以及周知未分配的地址空间来配置ACL,从而过滤非法数据包。以图9-9为 例,如果数据包的源IP地址来自其他企业已注册的IP前缀,那么图9-9中的企业路 由器将永远也不会把这些数据包转发到互联网上。对于Smurf攻击场景来说,如果在 攻击者所在的ISP网络中使用该ACL,那么就可以将第一个攻击包隔离在ASl之外。 路由器也应该过滤那些使用伪造IP地址或不当IP地址的数据包。例如,普通的 数据包不可能拥有广播或多播源IP地址,企业路由器也不可能从ISP收到源IP地址 位于RFC 1918私有网络中的数据包,当然,也不可能收到源IP地址位于当前IANA 仍未分配的地址空间内的数据包。通常将这些IP地址都被称为虚假地址(bogons) 该名词来源于单词bogus , (伪造)。 虽然创建ACL以匹配这些虚假地址并不困难,但是却需要付出巨大的管理精力, 特别是要根据IANA分配的前缀信息更新ACLo可以考试使用免费软件RAT (Router AuditTbol,路由器审计工具)为路由器安全提供相关建议(包括虚假ACL),也可以 使用Cisco IOSAutoSecure功能,该功能可以自动配置ACL以防范虚假IP地址。 9.4 3. 三层安全 381 TcPsYN泛洪、已建立比特以及TcP拦截 TCP SYN泛洪是一种针对服务器的攻击行为,攻击方式是发起大量TCP连接, 但是都不完成这些连接。从本质上来说,攻击者像往常一样发起大量TCP连接,每条 TCP连接都仅设置TCP ACK.标志) SYN标志。服务器发送应答消息(在消息中设置TCP ,而攻击者则简单地不以三向(three-Way) SYN和 TCP连接建立流程中期望的第 三条消息加以回应。服务器在清除这些已部分发起的TCP连接之前,必须等待超时, 从而消耗了大量的内存和其他资源,使得服务器可能会拒绝其他TCP连接,而且服务 器集群前面的负载均衡器也无法为实际的工作连接负载提供均衡能力。 状态化防火墙可以防范TCP SYN攻击o Cisco ASA防火墙和Cis∞ 性集(将在下一节讨论)都能完成该功能。使用Cis∞ 或消除TCP IOS防火墙特 IOS提供的其他工具也能降低 SYN攻击带来的影响。 防范SYN攻击的一种方法就是简单地过滤TCP报头仅设置了SYN标志的数据 包,也就是说,将所有新TCP连接的第一个数据包都过滤掉。在很多情况下,路由器 都不允许一侧的客户端向另一侧的服务器建立TCP连接(如图9-10所示),此时过滤 初始TCP报文段就能有效地防范SYN攻击。 图9-10 示例网络:互联网中的TcP客户端 虽然αs∞ IOS ACL无法直接匹配TCP SYN标志,但ACE可以通过关键字 established来匹配设置了ACK标志的TCP报文段。从本质上来说,关键字established 可以匹配除新连接中的第一个TCP报文段之外的所有TCP报文段。例9-13给出了Rl 拒绝从互联网向左侧网络发起新连接请求的配置示例。 382 设备和网络安全 第9章 励9 ̄13 &篇楞崭关j静字esfabifehed #AcL 茧然ACL能够拒绝网络外部的客户端向网络内部发起TCP连接,但是如果网络 允许某些人站TCP连接,那么就无法使用ACL了。此时可以考虑使用另一种Cis∞ 功能特性: TCP拦截(TCPIntercept) o IOS TCP拦截可以在允许外部客户端向网络内部发 起TCP连接的同时,监控这些TCP连接出否存在TCPSYN攻击o TCP拦截特性可以工作在两种不同模式下。如果工作在观察模式(watch mode) 下,那么TCP拦截就会保存与已定义ACL相匹配的TCP连接的状态信息。如果TCP 连接在特定时间段内都没有完成三向握手进程,那么TCP拦截就会向服务器发送TCP 重置请求,从而清除该TCP连接。此外, TCP拦截还会统计特定时间段内发起的新连 接尝试次数,如果在1秒钟之内发起大量新连接请求(这里的“大量”默认为1100), 那么路由器就会暂时过滤新的TCP连接请求,以防范感知到的SYN攻击。 如果工作在拦截模式(intercapt mode)下,那么路由器就会直接应答TCP连接请求, 而不会将这些TCP连接请求转发给实际的服务器。如果三向握手进程已完成,那么路由 器就会在自已与服务器之间创建一条TCP连接。此时路由器就将两条TCP连接串接在一 起,茧然这种方式需要消耗更多的处理资源,但能够为服务器提供更好的保护能力。 例9-14给出了工作在观察模式下的TCP拦截特性的配置示例(例中更改了一些 默认设置参数)。本例允许图9-10中的Intemet向ASl发起TCP连接。 励9-∥ 蹬TCP拦露 9.4 9.4.3 三层安全 383 传统的Ciscolos防火墙 虽然在某些应用场景下完全可以利用访问列表来控制和保护路由器接口,但随着 攻击者的能力越来越强, Cisco也开发了更好的安全工具来应对这些威胁,而挑战则 在于如何在挫败攻击者的同时让这些安全功能特性尽量对网络用户透明o Cis∞ IOS防 火墙就属于这类工具。 传统的Cis∞ 的访问控制)o 操作相比, 流量, IOS防火墙墓于CBAC (Context-Based Access Control,基于上下文 CBAC是αs∞IOS防火墙特性集的功能之一。与基于访问列表的过滤 CBAC的检测操作前进了一大步,可以动态检查预先指定的穿越路由器的 CBAC能够根据实际的协议命令(如FTP 行检查操作。根据流量的来源, get命令)而不仅仅是四层端口号执 CBAC可以确定应该允许哪些流量穿越防火墙。如果 发现指定会话是从非可信网络发起的特定协议会话(通常会被其他过滤方法执行人站 阻塞) ,那么CBAC就会暂时打开防火墙以允许相关的人站流量从非可信网络进人。 但CBAC允许的只是期望流量,而不是打开防火墙以允许特定协议的所有流量o CBAC不但支持TCP和UDP流量,而且还支持FTP等需要多个并发会话或并发 连接的协议。一般来说,部署CBAC的目的是保护内部网络免遭外部威胁,配置方式 是检查外部网络指定协议的人站流量o CBAC的配置选项如下‥ ■ 待检测的协议; ■ 执行检测的接口; ■ 待检测的流量方向(逐个接口配置)0 1. CBAC对TcP和UDP流量的处理 由于TCP拥有明确的连接,因而CBAC 起来相对较为简单。除了协议和端口号之外, 例如,对于FTP流量来说, (以及其他状态化检测与过滤方法)处理 CBAC还能执行更深层次的检测操作。 CBAC能够识别和检测特定的FTP控制信道命令,从而确 定何时应该暂时打开或关闭防火墙。 与TCP相比, UDP流量没有连接,因而处理起来更为困难o CBAC处理UDP流 量时,大致做法是确定mP帧的源和目的地址及端口是否与最近的地址及端口相同以 及它们的相对时间。可以在全局范围内配置一个空闲超时定时器, CBAC据此来确定 刚刚到达的报文段在时间上是否“足够近”,以至于可以认为属于同一个流。当然,也 可以配置其他超时定时器,包括为TCP流量和UDP流量配置指定协议的超时定时器0 2. Cisco loS防火墙支持的协议 使用CBAC的时候, 议类型o IOS防火墙可以检测大量协议类型,而且一直在增加新的协 CBAC可以检测如下常见协议: 384 设备和网络安全 第9章 ■ 所有的通用TCP会话(与应用层协议无关); ■ 所有的UDP ■ FTP; ■ SMTP; ■ TFTP; ■ ■ ■ ■ H.323 “会话”; (NetMeeting、 Java; CU ̄SeeMe; UNIXR命令(rIogin、 ■ RealAudio; ■ SunRPC; ■ SQL*Net; ■ StreamWorks; ■ VDOLiveo 3. ProShare等); Cisco reXeC、 rSh等); loS防火墙注意事项 虽然CBAC拥有强大的动态检测与过滤功能,但也存在一些限制,大家必须了解 并掌握使用CBAC时的限制条件与注意事项。 ■ CBAC紧跟在应用于接口的访问列表之后。如果访问列表阻塞了接口上特定 类型的流量,而同时又使用CBAC检测该接口的人站流量,那么在CBAC检 ■ 测该流量之前,该流量就已经被拒绝了。 CBAC无法保护网络内部发起的攻击,而大部分攻击都是从网内发起的。 ■ CBAC仅对指定协议进行检测,其他协议的过滤操作还必须依靠访问列表及 其他过滤方法。 ■ 如果要检测除TCP和UDP传送的流量,那么就必须配置命名式检测规则。 ■ CBAC不检测去往或源自防火墙路由器自身的流量,仅检测穿越防火墙路由 器的流量。 ■ 4. CBAC无法处理加密流量(有关信息请参见本章后面的“推荐读物”)0 Cisco loS防火墙配置步骤 虽然CBAC的配置并不困难,但也需要遵循多个配置步骤。 第1步:选择接口(“内部”或“外部”)。 第2步:配置IP访问列表以拒绝所有被检测的流量。 第3步:利用ipinspect命令配置全局超时定时器及阑值。 第4步:利用ip inspect namepJutoCO/命令定义检测规则以及可选的指定规则超 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 9.4 时值。例如, ip inspect name actionjackson ftp timeout 385 36000 第5步:将检测规则应用到接口上。例如,在接日配置模式下使用ip actionjackson 三层安全 inspect in命令。 第6步:将访问列表应用到与检测规则相同的接口上,但是方向相反(人站或出 站方向)。 例9-15的路由器有一个接口连接了内部网络,另一个接口连接了外部网络,并且 在外部接口上应用了CBACo该路由器被配置为利用检测列表CLASSIC二FW来检测所 有的ICMP、 TCP及UDP流量o TCP和UDP会话将在30秒钟之后超时,但ICMP会 话却在10秒钟之后就超时。访问列表IOS_J7w允许路由流量,但是拒绝所有被CBAC 检测出来的流量。检测规则应用于外部接日(出站方向)上,访问列表也应用在同一个 接口上(人站方向)。本例将跟踪所有从串行接口向外去往外部网络主机的TCP、 UDP 以及ICMP流量。应答数据包到达后,访问列表IOSJw中的动态表项将允许该数据包 通过,而任何希望与内部主机建立会话的外部主机则都被访问列表IOS一工w所阻塞。 利用showip inspect sessions命令可以验证IOS防火墙的操作情况,从例9-15可 以看出,已经建立了一条耽1net会话。 励9-75 硼CBAc /乾置传绷/OS &火堵 p .⊥.⊥.工 亡imeou亡10 p p inspec亡 name CLASS工C_FW inspec亡 name CLASs工C_FW亡CP 亡imeou亡 30 inspec亡 name CLASS|C_FW 亡imeout 30 icmp udp Ⅰ● |P aCCeSS-1is亡 Permi亡 eigrp ex亡ended any deny 亡CP any any deny udp any any deny icmp in亡erface any address 1P aCCeSS-grouP |P inspec亡 show ip Es亡ablished Session any Seria10/0 1P R2# |OS_FW any 255.255.255.0 192.168.1.3 工OS_FW CLASS工C_FW in ou亡 inspect∴sessions Sessions 47699CFC (10.1.1.2‥11003)=>(172.16.1.10:23) tcp S工S_OPEN CBAC是一种功能强大的IOS防火墙特性集,在参加CCIE路由和交换认证考试 之前必须从功能上完全掌握CBACo可以参考本章末尾的“推荐读物”,以了解CBAC 的更多信息以及配置细节0 9.4.4 Cisco IOS基于区域的防火墙 从例9-15可以看出,即使是配置一个简单的传统IOS防火墙,其配置过程也非常 攻城狮论坛(技术+生活)2群 1813097 386 设备和网络安全 第9章 复杂,而且传统防火墙只能应用于接口上的所有流量,无法对不同的用户群实施不同 的防火墙策略o IOS Release 防火墙)o 12.4(6)T及以后版本都支持ZFW (Zone-Based Firewa11,基于区域的 ZFw的基本原理与硬件防火墙相似,将路由器接日放到安全区域中,流量 可以在同一区域内的接口之间自由传送,但是默认不允许在不同区域之间进行传送。 此外,由于zFw还会阻塞安全区域内的接口与非安全区域内的接口之间的流量,因 而必须在区域之间显式部署策略以允许在区域之间传送流量。利用CPL Policy Language,基于类别的策略语言)可以配置区域策略o Command-Line (Class ̄Based CPL与MQC (Modular QoS Interface,模块化QoS命令行接口)在分类映射与策略映射的使用方面 很相似,可以在需要时利用分类映射来配置非常精细化的策略o ZFw引人了一种新的 被称为检测类型的分类和策略映射。 zFw可以检测并控制多种协议,包括: ■ HTTP和HTTPS; ■ SMTP、 ■ 对等网络应用(能够使用启发式方法来跟踪跳变端口); ■ 即时消息应用(AOL、 ■ RPC ESMTP (ExtendedSMTP,扩展式SMTP)、 POP3以及IMAP; Yahoo!以及MSN等); (RemoteProcedureCall,远程进程调用)o zFw的配置步骤如下。 第1步:确定需要的区域并在路由器上创建这些区域。 第2步:确定如何在区域之间传送流量并在路由器上创建区域对(zonepair)。 第3步:创建分类映射并识别防火墙所要检测的区域间流量。 第4步:创建策略映射并与分类映射进行关联,从而将这些策略应用到流量上。 第5步:为相应的区域对分配策略映射。 第6步:为区域分配接口,每个接口只能分配给一个安全区域。 为了更好地理解上述配置步骤,下面以图9-11为例加以解释。路由器Branchl有 两个接口:串行VVAN接口和以太网LAN接口。本例虽然简单,但对于需要IOS防火 墙的小型分支机构来说却是一个非常典型的案例。本例将LAN接口放在一个区域 (LAN区域)中,而将WAN接口放在另一个区域(WAN区域)中。 本例中的网络管理员决定将以下策略应用到从LAN区域穿越到WAN区域的流量上: ■ 仅允许来自LAN子网的流量; ■ 允许发送给企业基于Web的内联网服务器的HTTP流量; ■ 允许其他HTTP流量,但需要将这些流量的速率监管为1Mbit/s; 三层安全 9.4 ■ 阻塞ICMP; ■ 对于其他流量来说, 387 TCP和UDP超时定时器必须小于300秒。 企业内联网 服务器 ____」 10.1.上0/24 图9-11 CiscolosZBF 对于源自WAN区域且去往LAN区域的流量来说,仅允许来自企业管理网络的 SSH流量。 因此必须配置两个区域: LAN区域和wAN区域。路由器会为去往自身的流量自 动创建一个区域,称为自区域(selfzone)。在默认情况下,所有流量都允许去往和来 自该区域,不过也可以配置相应的策略。对于本例来说,从LAN区域去往WAN区域 的流量以及从WAN区域去往LAN区域的流量都应用了相应的防火墙策略,因而需要 配置两组区域对: 用全局命令zone LAN-tO-WAN和WAN-tO-LANo配置区域和区域对时,可以分别使 security destination 7“″re和zone-Pair security m扔7fle SOurCe S{)∥℃e-ZO77e-JraJ7re dend77CJfrO7?ZOJce一硼″reo例9-16给出了第1步和第2步的配置示例(配置区 域及区域对)。 励9-16 乾置ZFw铂4重绒皮区绒对 Branchl(C〇nfig)# zone secur土ty LAN Branchl(C〇nfig-SeC-Z〇ne)#descriptionLANz゜ne Branchl(COnfig)# z゜ne l SeCurityWAN Branchl(C〇nfig-SeC-ZOne)#descriptionWANz゜ne l Branchl(config)# z゜ne-Pair∴SeCurity |nternals゜urCe LANdegtinationwEN Branchl(C〇nfig)# zone-Pair∴SeCurity Externals゜urCe WEN destinati゜n LAN 接下来还要配置分类映射以识别流量。本例需要配置四个分类映射:三个分类映 射用于拥有定制策略的指定类型流量,另一个分类映射用于来自LAN的其他所有流 量。路由器会自动创建一个默认类别,但是属于该类别的流量都会被丢弃。例9-17显 388 设备和网络安全 第9章 示了访问列表LAN_Subnet (允许来自LAN子网的所有流量)和Web_Servers (允许 去往企业内联网Web服务器的流量)。请注意,分类映射Coxp_Servers的match all 语句同时匹配访问列表Web_Servers以及HTTP协议,因而该分类映射必须同时与该 访问列表及协议类型相匹配才能实现匹配。同样,分类映射OtheLHTTP同时匹配 HTTP协议以及访问列表LAN_Subnet,仅允许来自本地子网的HTTP流量。分类映射 ICMP仅匹配ICMP协议,由于需要丢弃ICMP流量,因而不需要路由器检查源IP地 址。路由器将利用NBAR (Network-Based Application Recognition,基于网络的应用识 别)特性来匹配HTTP及ICMP流量。 励9-17 蹬ZFw铂分薯钥射 Branchl (C〇nfig) # ip access-1ist Branchl(C〇nfig-eXt-naCl)# Branchl (COnfig-eXt-naCl) extended permit # ip ip LA]LSubnet 0.0.0.255 lO.1.1.0 access-1ist extended any Web_Servers Branchl(COnfig-eX亡-naCl)# permit tcp lO.1.1.0 0.0.0.255 host lO.150.2.1 Branchl(COnfig-eX亡一naCl)# permit tcp lO.1.1.0 0.0.0.255 host lO.150.2.2 class-maP # tyPe Branchl (C〇nfig-eXt-naCl) Branchl (C〇nfig-CmaP) # match access-grouP Branchl (C〇nfig-CmaP) # match protocol Branchl (C〇nfig-CmaP) # class-maP Branchl (C〇nfig-CmaP) # match Branchl (COnfig-CmaP) # match Branchl (COnfig-CmaP) # Class-maP Branchl (COnfig-CmaP) # match Branchl (COnfig-CmaP) # C|ass-maP Branchl (COnfig-CmaP) # match tyPe protocol tyPe tyPe match-all C゜rP_Servers Web_Servers http |nSPeCt other_HTTP http access-grouP pr゜toCOl inspect name name LAN___Subnet inspect |CMP icmp 土nspect access-grouP name other_Traffic LAN_Subnet 第4步已经将前面创建的分类映射与策略映射关联在一起了o zFw策略映射可以 在每种类别下采取以下操作。 ■ 丢弃(Drop):丢弃数据包。 ■ 检测(Inspect):使用基于上下文的访问控制引擎。 ■ 传送(Pass):传送数据包。 ■ 监管(Police):监管流量。 ■ 服务策略(Service-POlicy):使用深度包检测引擎。 ■ URL过滤(Urlfilter):使用URL过滤引擎。 前面曾经说过,需要将通用网络流量的TCP和UDP定时器减小到300秒,其实 现方式是配置参数映射(parameter map) ,参数映射可以修改策略映射中指定类别流量 的检测行为。如例9 ̄18所示,参数映射超时定时器将TCP和UDP空闲超时值设置为 300秒。参数映射还可以设置告警及审计跟踪特性,由这些特性控制其他会话参数(如 9.4 三层安全 389 半开会话数)。到目前为止,策略映射LAN2WAN已经关联了所有已创建的分类映射, 将参数映射应用到了O血eLTra拥c类别上,同时还将OtheLHTTP流量监管为1Mbit/s (突发速率为8KB/s) 励9 ̄18 。需要注意的是,策略映射在配置时也使用了关键字type /乾置Z尸w铂参数臃射殉策缩瑰射 Branchl (COnfig) parameter-maP # tyPe inspect∴Time゜utS Branchl (COnfig-Profile) # tcp idle-time 300 Branchl (config-Profile) # udp idle-time 300 # pol土cy-maP Branchl (C〇nfig-Profile) Branchl (COnfig-PmaP) Branchl (COnfig-PmaP-C) Branchl (C〇nfig-PmaP-C) Branchl (COnfig-PmaP-C) class # # type # police (COnfig-PmaP-C) # class∴type Branchl (COnfig-PmaP-C) # drop Branchl (COnfig-PmaP-C〉 Branchl (COnfig-PmaP-C SPeCific ProtoCOIs pro亡OCOI will be inspect rate Branchl # LAN2WAN ’ other_HTTP inspect # ) inspect Corp_Servers inspect class∴type # tyPe inspect Branchl(COnfig-PmaP-C) %N〇 inspecto class∴type # loooooo burst 8000 inspect lCMP inspect other_Traffic inspect∴Timeouts c〇nfigured in class O亡her_Traffic for inspec亡ion. All inspec亡ed 对于第5步来说,由于已经创建了策略映射,因而需要将其分配给区域对。这一 点与MQC将服务映射分配给指定接口相似,相应的配置命令是servicepolicy inspectpo/ky一朋ap-J“″re (假设位于区域对配置模式下) type 。 最后一步(第6步)是将路由器接日分配给相应的区域,为此需要在接口配置模 式下运行命令zone-member security O/1连接了LAN,接口Serial zo彤一硼″reo从图9-11可以看出,接口FastE血emet l/0/1连接了WANo例9-19给出了将服务策略分配给区 域对以及将两个接日分配给不同区域的配置方式。 励9-19 分/晒ZFw/的锻务侠级▲星域 Branchl (config) z゜ne-Pair∴SeCurity # |nternal Branchl (COnfig-SeC-zone-Pair) # service-PO|icy Branchl (COnfig-SeC-ZOne-Pair) # exit Branchl(COnfig)# Branchl interface (C〇nfig-if) fa O/1 zone-member∴SeCurity # Branchl(COnfig-if)# interface Branchl z゜ne-member (config-if) !Verify 亡he Branchl# Zone-Pair # name ZOne-Pair security LAN SerVice-POlicy name security 工n亡ernal Source-Zone Zone-Pair sl/0/1 configura亡ion sh゜w Destina亡ion-Z〇ne LAN2WAN External LAN WAN wAN source type LAN destinati゜n inspect LAN2WAN WAN 390 第9章 设备和网络安全 从以上配置过程可以看出,创建防火墙策略并将这些策略应用于从本地LAN到 wAN的流量是非常复杂的,此时只有响应消息能够进人LANo 同时还需要创建其他 分类映射及服务策略,以允许从WAN进人LAN的SSH会话,然后再将该策略映射 应用于外部区域对。虽然本书没有给出相应的配置示例,但这是一个很好的配置练习, 对于理解ZFw的相关概念非常有帮助0 9.4.5 CoPP 虽然防火墙和访问列表能够影响穿越路由器的流量,但是如何处理去往路由器本 身的流量呢?上一节讨论ZFw的时候提到的默认“自区域”就可以处理这类流量。 虽然可以将访问列表应用到vTY线路上,但路由器和交换机必须处理备种流量,包 括BPDU、路由更新、 HSRP、 CDP、 CEF、进程交换包、 ARP以及管理流量(如SSH、 SNMP和RADIUS)。这些流量均由路由器或交换机的控制平面进行处理,因而来自这 些源端的流量都有可能会给路由器或交换机的控制平面带来严重负担,导致无法处理 其他流量。无论超载的原因是恶意攻击还是无意行为,其结果都是一样的o CoPP (Control-Plane 速或丢弃来解决上述问题o Policing,控制平面监管)利用MQC对控制平面流量进行限 CoPP将多种类型的流量组合到分类映射中,然后再利用 策略映射来应用策略,从而对控制平面所能处理的流量数量及类型实现更精确地控制。 截至本书写作之时, 1. Cisco大多数路由器和多层交换机都支持CoPPo CoPP的部署准备工作 规划是成功部署CoPP的关键要素。谁都不希望将指定流量类型的允许速率设置 得过低,以至于丢弃了大量重要流量,或者将流量的允许速率设置得过高,以至于处 理器超载。此外,将不同类型的流量组合为多种类别时也要额外注意。例如,如果将 所有管理流量组合为一种类别,那么其中某种类型的流量超量之后,就会导致无法通 过ssH访问路由器。另一方面,如果将每种类型的流量都放到自已的类别中,那么这 种方式也将非常笨拙和复杂。 典型的处理方式是配置分类映射并在刚开始时通过策略映射允许全部流量,然后 再监测这些流量,直至了解了每种类别流量的典型规模。准确掌握期望路由器控制平 面的流量状况非常重要,否则可能需要在三层交换机上配置CoPP,然后再丢弃BPDU 并在网络中创建生成树环路。 部署QoS时应仔细考虑设置的类别数量、组合到每种类别的流量类型以及每种类 9.4 三层安全 391 别的带宽。虽然每个网络的情况千差万别,但常见的类别设置及组合建议如下: 恶意流量类别(丢弃),通常指的是分段数据包或者是使用了与已知恶意程序 ■ 相关联的端口的数据包; ■ 路由协议类别(不限制); ■ SSH和Ttlnet ■ SNMP、 FTP和TFTP等其他管理协议; ■ HSRP、 DHCP和IGMP等网络应用(如果使用); ■ 其他IP流量; ■ 默认类别(包括二层协议),唯一可以在CoPP中显式指定类别的二层协议就 (限制使用较小的带宽,但足以满足必需的连接性); 是ARP,其他二层协议都属于默认类别。 能够与CoPP分类映射配合使用的match选项只有IP优先级、 DSCP以及访问列 表,可能需要配置一系列访问列表以使在分类流量时使用这些访问列表。需要记住的 是,大多数路由器仅支持人站流量的监管,因而需要对访问列表进行相应的配置0 2.部署coPP 规划了将要使用的类别以及每种类别的流量所允许使用的初始带宽之后,就可以 通过以下步骤来部署CoPPo 第1步:创建访问列表以分类流量o 中, permit语旬可以将匹配流量置人相应的类别 deny语旬则意味着由下一个分类映射来评估匹配流量。 第2步:创建分类映射并匹配相应的访问列表(或IP优先级或DSCP值)。 第3步‥创建策略映射并与分类映射相关联。需要注意的是,策略映射中的分类 映射语旬是接照自上而下的顺序进行评估的,因而很适合将恶意流量类别放置在策略 映射的顶部,从而尽快丢弃这些恶意流量。 第4步:为策略映射中的各个类别分配允许的带宽值,然后再指定相应的遵从操作 与超出操作。首次部署CoPP时,通常将这些操作都设置为transmito监控了一段时间 之后,可以调整每种类别的带宽量,然后再将超出操作设置为drop (路由协议除外)。 第5步:将策略映射作为服务策略分配给路由器或交换机的控制平面。 例9 ̄20给出了CoPP的部署示例以及验证CoPP操作的命令示例。为了节省篇幅, 本例仅给出了一个包含三种类别以及一个访问列表的简单示例,实际应用中的部署方 案通常都要复杂得多。 励9-20 l 勒署CoPP !Accesslis亡S亡OClassify亡he亡raffic Ex亡ended 工P accesslis亡 BAD STUFF 10 permi亡∴亡CP any any eq 5554!Sasser wormp〇r亡 20 permi亡∴亡CP any any eq 9996!Sasser wormpor亡 攻城狮论坛 392 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 设备和网络安全 第9章 30 permit 工P Ex亡ended ip any access any 壬ragmen亡S lis亡INTERACT工VE lo permi亡∴亡CP lO.17.4.0 0.0.3.255 h〇S亡10.17.3.1 20 permit∴tcp lO.17.4.0 0.0.3.255 eq Ex亡ended lo |P access host 22 22 eq lO.17.3.1 es亡ablished ROUT工NG lis亡 permit∴亡CP hos亡172.20.1.1 g亡1024 hos亡10.17.3.1 eq 20 permi亡.亡CP hos亡172.20.1.1 eq hos亡10.17.3.1 g亡1024 30 permi亡 !C〇PP class Class Map Map Class ma亡Ch-all Map !CoPP policy map. 亡hen Policy Map O) (id 亡he b〇亡h 亡ha亡 classes and configured and 亡he exceed CoPP_BAD_STUFF. "transmi亡" be 亡〇 c〇ntinue be 2) conf〇rm excep亡 C〇PP一工NTERACT工VE will (id 工NTERACT|VE name all l) BAD_STUFF bu亡 af亡er defaul亡∴classess as 亡he exceed The ac亡ions class sufficien亡 will be tuned ac亡ion CoPP CoPP_BAD_STUFF POlice 1500 dr〇P exceed-aC亡ion Class bc 8000 cir COnform-aC亡ion drop C〇PP_ROUT|NG POlice 200000 cir conform-aCtion bc 6250 亡ransmi亡 exceed-aC亡i〇n Class tranSmit C〇PP一工NTERACT工VE POlice cir loooo exceed-aC亡ion Class bc 1500 亡ransmi亡 conf〇rm-aC亡ion 亡ransmi亡 class-defaul亡 POlice cir loooo exceed-aC亡ion CoPP policy bc 1500 亡ransmi亡 conform-aC亡ion !The name No亡e will "drop" Class (id CoPP一工NTERACT工VE for 亡he !m〇nit〇ring es亡ablished lO.17.3.1 ROUT|NG C〇PP_BAD_STUFF ma亡Ch-all !CoPP_ROUT|NG !and name access-grouP "transmi亡" !are CoPP_ROUT工NG access-grouP Ma亡Ch bgp maps access-gr〇uP Ma亡Ch host 0.0.3.255 lO.17.4.0 ma亡Ch-all Ma亡Ch Class eigrp bgp transmit applied 亡O 亡he device c〇n亡r〇l plane COntrol-Plane SerVice-P〇licy 亡he !Verify Rl# sh゜w inpu亡 p〇licy and P゜1icy-maP C〇n亡rol CoPP i亡S effec亡S C゜ntrO|一Plane Plane Service-POlicy Class-maP: input‥ CoPP CoPP_BAD_STUFF (match-all) con亡inues 14 5 packe亡S, minu亡e Ma亡Ch: 832 bytes offered rate aCCeSS-grouP o bps, name drop ra亡e o bps BAD_STUFF POlice: Cir 8000 bps, bc 1500 by亡es 攻城狮论坛(技术+生活)2群 1813097 9.4 COnf〇rmed 14 packe亡S, 832 by亡es; 三层安全 393 aC亡i〇nS‥ drop exceeded o packets, O by亡es; aC亡ions: dr〇p COnformed bps, eXCeed C〇PP_ROUT|NG Class-maP‥ O packe亡S, 5 minu亡e Ma亡Ch: o O o bps (ma亡Ch-all) by亡es offered rate aCCeSS-grouP o bps, name dr〇P ra亡e o bps ROUT工NG P〇lice‥ Cir 200000 COnformed o bps, 6250 bc packe亡S, O bytes by亡es; aC亡ions: 亡ransmi亡 exceeded o packe亡S, O bytes; aC亡ions: 亡ransmit C〇nformed bps, eXCeed CoPP_|NTERACT工VE Class-maP‥ O packe亡S, 5 minute Match: o O o bps (ma亡Ch-all) by亡es o壬fered ra亡e aCCeSS-grouP o bps, drop ra亡e o bps |NTERACT工VE name POlice‥ Cir loooo COnformed bps, o bc 1500 packe亡S, O by亡es by亡es; aCtions: 亡ransmi亡 exceeded o packets, O bytes; aC亡i〇nS‥ 亡ransmi亡 COnformed Class-maP: bps, eXCeed Class-default O packets, 5 minu亡e Ma亡Ch: o O o bps (ma亡Ch-any〉 by亡es offered ra亡e o bps, dr〇P rate o bps any POlice‥ Cir loooo COnformed bps, o bc 1500 packe亡S, O by亡es by亡es; aC亡ions‥ 亡ransmi亡 exceeded o packe亡S, O by亡es; aC亡ions‥ 亡ransmi亡 COnformed 9.4.6 o bps, eXCeed o bps DM>PN 虽然IPSec是构建站点到站点(site-tO ̄Site)的安全隧道或者从中心站点到远程站 点(hub-and-SPOke)安全隧道时的常用实现方法,但IPSec也有其局限性。对于站点 到站点以及中心站点到远程站点的网络环境来说,由于分支站点间的所有vPN流量都 要穿越中心站点,必须对这些流量进行解密、路由、再加密处理。因而vPN集中器需 要完成大量处理工作,对于拥有大量分支站点且分支站点之间存在大量交互流量的大 型网络来说影响尤为明显。一种结果就是给中心站点带来大量开销,需要更多的内存 和CPU资源,另一种结果就是大大增加了中心路由器的配置复杂度o DMvPN NHRP (Dynamic (Next Hop MultipointVPN,动态多点VPN)利用IPSec、 Resolution GRE隧道以及 Protocol,下一跳解析协议)解决了星型网络环境中的IPSec 394 设备和网络安全 第9章 扩展性问题。此外, DMVPN还支持跨VPN的流量分段,而且能够感知VRFo 对于典型的星型IPSec VPN环境来说,中心路由器必须为每个分支路由器配置独 立、静态配置的加密映射(crypto map).加密访问列表、 GRE隧道以及isakmp peer 语旬。这是传统星型VPN存在的扩展性限制因素,也是DMVPN要解决的问题之一。 在DMVPN环境中,无需在中心路由器上显式配置分支路由器的连接信息,只要在中 心路由器上配置单个mGRE (multipoint GRE,多点GRE)隧道接口以及一组应用于 分支路由器的配置简档(profile)即可。每台分支路由器都指向一台或多台中心路由 器,从而实现冗余性及负载共享机制。此外, DMVPN还支持从中心路由器到分支路 由器的多播流量。 与传统的IPSec星型VPN环境相比, ■ 中心路由器的配置更简单, DMVPN的优点如下所示。 DMVPN中心路由器只需要配置一个mGRE隧道 接口和一个IPSec配置简档,不需要配置加密访问列表。 ■ 开通分支路由器时不需要接触中心路由器,新的分支路由器上线时不需要配 置中心路由器。 ■ ■ 自动发起IPSec加密操作(利用NHRP)。 支持分支路由器的动态编址。与静态地址配置不同,中心路由器可以在注册 到网络时学习分支路由器的地址。 ■ 动态创建分支站点间的隧道。分支路由器可以利用NHRP学到对方,因而相 互之间可以自动建立隧道,不需要在中心路由器上加密、解密、路由这些分 支站点之间的流量。 ■ 支持MPLS网络的VRFo 中心路由器与分支路由器之间需要部署动态路由器协议,如EIGRP、 RIP甚至是适合小型网络环境的ODR 在大型网络环境中优选EIGRP) OSPF、 BGP、 (Cisco推荐使用距离矢量路由协议,因而建议 ,这也是分支路由器学习其他分支路由器网络的方式。 对于DMVPN环境来说,分支网络的下一跳IP地址是该分支网络的隧道接口。 图9-12给出了拥有一台中心路由器和三台分支路由器的DMVPN网络示意图。网 络中的每台分支路由器都有一条去往中心路由器的永久IPSec隧道,每台分支路由器 (NHRP客户端)都汪册到了NHRP服务器(中心路由器)。如果分支路由器需要向其 他分支路由器上的私有网络(通过中心路由器与分支路由器之间运行的动态路由协议 学到的)发送流量,那么该分支路由器就会向中心路由器中的NHRP服务器查询目的 分支路由器的外部IP地址o NHRP服务器返回地址信息之后,源分支路由器就会通过 mGRE隧道向对端分支路由器发起一条动态IPSec隧道。流量发送完之后,如果该IPSec 隧道连接在预设时间段内均处于空闲状态,那么就会拆除该动态IPSec隧道以节约路 由器资源(IPSec SA[SecutityAssociation,安全关联]) 。 9.4 三层安全 395 ...…..动态且临时的 ..  ̄  ̄ spoke-tO-sPOke lPsec 中心路由器 隧道 动态且永久的 H ub-tO-sPOke lPsec隧道 动态(或静态) 公有IP地址 事分支路由器 早童窜.spoke DMVPN网络示意图 图9 ̄12 理解了DMVPN的概念之后,需要进一步掌握DMVPN的部署配置方式。首先必 须了解DMVPN的配置步骤。 第1步:配置IP地址。 第2步:在所有路由器上配置GRE多点隧道(对于分支站点间连接来说)。 第3步:配置IPSec以加密mGRE隧道。 第4步:配置DMVPN路由0 1.第1步:配置IP地址 从例9 ̄21的配置示例可以看出,物理接日的IP地址将被用来创建DMVPN所需 的隧道。 励9-21 D∥>PⅣ/配置’君1步 Rl(c〇nfig)# interface fa O/O # no shutd゜wn Rl(COnfig-if)# ip address Rl Rl (c〇nfig-if) (COnfig)# interface Rl(C〇nfig-if)# R2(C〇nfig)# ip address interface 192.168.123.1 lo゜Pback fa l.1.1.1 n゜ Shutd゜Wn R2(COnfig-if)# ip address R2 (COnfig)# interface R2(COnfig-if)# R3(COnfig)# ip 192.168.123.2 loopback interface fa 255.255.255.255 O/O n゜ Shutd゜un R3(COnfig-if)# ip address (COnfig-if) 255.255.255.O o 2.2.2.2 address # R3 255.255.255.255 O/O (config-if)# R2 255.255.255.O o 192.168.123.3 255.255.255.0 396 第9章 设备和网络安全 R3(C〇nfig)#interfacel゜OPback address R3(C〇nfig-if)#ip O 3.3.3.3 255.255.255.255 2.第2步‥ 在所有路由器上配置GRE多点隧道(对于分支站点间连接来说) 第1步完成之后,就要创建必需的隧道接口(如例9-22所示)。请注意,在血nnel O接口上配置IP地址时,并不是定义目的IP地址,而是将其配置为GRE多点隧道。 如果希望使用RTP、 OSPF或EIGRP等路由协议,那么就必须定义ip nhrp map multicast dyIramic命令以允许多播流量,从而支持这些路由协议。此外,配置了每个DMVPN 之后,还要通过ip nhrp network■id命令定义一个唯一的网络IDo还可以通过ip au仙entication命令为NHRP进程指定相应的密码(如果这么做的话) !!!!!!!!!Firs亡 1 1 ● 1 ● 1 ● We 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● Rl(C〇nfig〉# Will 1 1 ● ● 1 ● 1 ● s亡ar亡 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● tunne1 ip Rl (COnfig-if) # tunnel mode Rl (COnfig-i王) # tunnel source Rl(C〇nfig-if)# Rl l (C〇nfig-if) !N〇W l l l l l let's l l l l l l l l gre nhrp network-id l l l l ● hub. 1 1 ● ● multicast 1 ● ● 1 1 1 ● ● ● 255.255.255.O sp〇ke O/O dynamic l authentication our 1 fastEthernet ip nhrp 1 ● multipoint map ip 1 ● 172.16.123.1 nhrp c〇nfigure l R2(C〇nfig)# address 1 0 ip # the 1 ● interface Rl(C〇nfig-if)# Wi亡h 1 Rl(C〇nfig-if)# ! CISCO rou亡ers l interface tunnel address o R2(config-if)# ip R2 (COnfig-if)# tunnel R2 (COnfig-if)# ip nhrp authenticati゜n R2 (COnfig-if)# |P nhrp map multicast 255.255.255.O 172.16.123.2 mode gre multip゜int CISCO dynamic R2 (COnfig-if)# |P nhrp map 172.16.123.1 R2 (COnfig-if) # 1P nhrp map multicas亡192.168.123.1 R2 (COnfig-if)# 1P nhrp netw゜rk-id R2(COnfig-if)# lP nhrp nhs R2 tunnel l l 。 蹬GRE多,氖赞 励9-22 ● nhrp (C〇nfig-if)# l l l l l l l l l l l l 1 1 1 1 1 1 R3 (COnfig)# R3 (COnfig-if)# 1p R3 (COnfig-if)# tunnel 1 interface l 172.16.123.1 s゜urCe 1 192.168.123.1 fastEthernet O/0 1 tunnel addregg O 255.255.255.O 172.16.123.3 mode gre multipoint R3 (C〇nfig-if)# |P nhrp authenticat土゜n R3 (COnfig-if)# |P nhrp map multicast C|SCO R3 (COnfig-if)# lp nhrp map 172.16.123.1 R3 (config-if)# 1P nhrp map multicagt R3 (config-if)# ip nhrp network-id R3 (C〇nfig-if)# ip nhrp nhs R3 (C〇nfig-if)# turmel dynamic 192.168.123.1 192.168.123.1 l 172.16.123.1 source fastEthernet O/0 从例9 ̄22可以看出,不需要在中心路由器上配置很多命令,这就意味着大量配置 工作都分配给了分支路由器。在分支路由器上利用ip nhrp map命令将NHS(Next Hop Server,下一跳服务器)的IP地址映射为中心路由器的外部IP地址。对于本例来说, 172.16.123.1是Rl隧道接口上的IP地址, 192.168.123.1是Rl的外部IP地址。此外, 9.4 还需要使用ip nhrp 命令ip 三层安全 397 nhs命令明确定义如何到达NHS的IP地址。 nhrp map multicast的作用是让分支路由器仅向中心路由器发送多播流 量,而不向其他分支路由器发送多播流量。 从第1步可以看出, turmel FastEthemet O/0接口被作为隧道源接口,实现方式是使用 source命令。 上述配置完成之后,还需要执行相应的验证操作,验证方式也很简单(如例9-23 所示)。 在申心屠白嚣上验茹多点GRE铂乾置 励9-23 !!!!!!!!!Firs亡 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● Rl# show N # Tunne10, Ent ● 1 1 ● ● We Will s亡ar亡 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● . ● ● . ● . . ● 1 1 1 . ● → Wi亡h 1 1 . . 亡he hub. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ● ● ● ● ● ● ● ● ● ● ● ● ● ● dmvpn At亡rb Legend‥ # 1 - 一一→ En亡 一一→ NBMA S亡a亡ic, - L L〇Cal, Number Type‥Hub, Peer - S NATed, NHRP Addr of - D X No NHRP 一 Dynamic,工 - 工ncomple亡e Socke亡 en亡ries wi亡h same NBMA peer Peers‥2, Peer Tunnel Add l 192.168.123.2 172.16.123.2 l 192.168.123.3 172.16.123.3 从例9-23可以看出, Sta亡e UP UP UpDn Tm never never A亡亡rb D D Rl有两个对等体,而且输出结果还提供了很多有用的字段 信息(如表9-11所示)。 show 表9-11 dmvpn命令输出结果中的有用字段 Ent 表示该分支路由器的NHRP数据库中的表项数 PeerNBMAAddr 分支路由器外部接口上的IP地址,对于本例来说,就是192.168.123.2和192.168.123.3 PeerTunnelAdd 分支路由器隧道接口上的IP地址 state 显示隧道处于up或d゜Wn状态 UpDnTm 当前状态(up或down)的工作时问和害机时间,隧道处于服务状态之后开始计算 接下来需要在分支路由器上重复运行该show命令,相应的输出结果如例9-24所示。 励9 ̄24 在分支路白嚣上轮证多点GRE铂馏置 lllllll R2# Legend: Tunne10 # llllllllll show Ent dI[rvPn At亡rb N - # 且n亡 一一> s NATed,L 一一> s亡a亡ic,D 一 一 Local,x Num ber Type‥Spoke, PeerNBMA∴Addr 1192.168.123.1 of NHRP NHRP 一 - Dynamic,工 No 一Incomple亡ea Socke亡 en亡ries wi亡h same NBMApeer Peers‥1, PeerTunnelAdd S亡a亡e 172.16.123.1 UP UpDnTmAt亡rb OO:43:44 s 398 设备和网络安全 第9章 lllllllll gh゜w R3# At亡rb Legend‥ 一一> 一 S NATed,L N - # En亡 Peers‥1, Peer TunnelAdd 1192.168.123.1 wi亡h en亡ries NHRP NBMA∴Addr Peer En亡 Socke亡 No N HRP of 一Incomple亡ea Dynamic,工 - X L〇Cal, Nu mber 一一> - D s亡a亡ic, 一 Tunne10,Type‥Spoke, # lllll dm′pn S亡a亡e 172.16.123.1 same NBMApeer TmAt亡rb UpDn OO‥46‥58 UP s 完成上述配置后,分支路由器仅建立了连接中心路由器的隧道。接下来还要测试 该配置的“动态”效果,为此可以执行一系列ping测试操作。首先测试分支路由器与 中心路由器之间的可达性,然后再测试中心路由器之间的可达性(如例9-25所示)。 透过p〃?g励耕D∥VPⅣ铂镭置 励9-25 l l l l ● ● ● ● R2# l l l l l ● ● ● ● ● Type l l ● ping l l l ● ● ● ● escape 5, Success ra亡e ping Type Success l l l l l l l l l ● ● ● ● ● ● ● ● ● ● l ● l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ra亡e is loo 亡0 Ech〇S 172.16.123.1,亡imeout percen亡(5/5), is to = min/avg/max seconds‥ 2 ms 4/4/8 abor亡. |CMP loo rou亡ers escape 5, Success 亡〇 Echos 172.16.123.1, percen亡(5/5), are 亡O able r〇und一亡rip 亡he reaCh sequence timeou亡is = min/avg/max hub. Now le亡's seconds‥ 2 ms 4/4/8 亡O 亡ry P|ng be亡Ween the 亡WO 亡0 Echos 172.16.123.3,亡imeou亡is loo percen亡(5/5), l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● p|ng is abor亡. l The ra亡e to |CMP 100-by亡e ● ! r〇und一亡rip is 172.16.123.3 Sending !! ● rou亡ers‥ ping !! 1 abort. 亡〇 |CMP 100-by亡e sp〇ke Type l ● sequence 5, R2# l ● 172.16.123.1 escape SPOke l ● 100-by亡e Sending Bo亡h l ● sequence Sending R3# l 172.16.123.1 is l l ● ● ● l ● l working ● l l ● l ● ● l l ● ● r〇und一亡rip l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● . . . ● → . . . ● . . . . . ● ● ● ● ● ● ● ● ● and亡his 亡he is = min/avg/max l in亡eres亡ing l ● l ● l ● Of par亡 seconds‥ 2 ms 4/6/12 l ● l ● l ● l ● l ● l ● l ● l● l● l● l● mul亡ipoint l ● l● l● l● l● l ● GRE. l● l ● l● l● l ● 1● The sp〇ke ! rou亡ers will dynamically l l l l l l l l l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● R2# show Legend: # R3# Ent ● l l ● ● l l ● ● create l ● 亡unnel a N - # En亡 一一> 一一> - S NATed, l l l l l l l l l l l l l l l l l l l l l l l l l l ● ● ● . . . . . . . . ● ● . ● . → ● ● ● ● ● ● ● ● ● ● Number NHRP NBMA∴Addr of - D Local, other l ● l ● l ● l l ● ● NHRP 一Incomple亡ea Dynamic,工 - X No Socke亡 en亡ries wi亡h same NBMA peer Peers:2, Peer Tunnel Add State l 192.168.123.1 172.16.123.1 UP l 192.168.123.3 172.16.123.3 UP ghow eaCh l ● S亡a亡ic, - L Type‥Spoke, Peer Legend‥ be亡Ween l dmvpn At亡rb Tunne10, l UpDn Tm OO‥01‥41 s never D Attrb dm「pn At亡rb N - 一一> S NATed, - L Sta亡ic, - D Local, - X Dynamic,工 - No S〇Cke亡 一Incomple亡ea l ● as l ● l ● l ● you l ● l● l● l ● can l● l ● l● l ● see l● l● l ● below l● l● l● l● l ' 1● 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 9.4 一一> *∴三二L 二u二nelO, N工moer ÷ype:sp〇ke, 8∴三nt∴Peer ∴∴二 ∵三干三∴e:↑Lr⊥OS 〇f sd二e ヾBM土 三层安全 399 pc、。二 N摹王P∴Pe〇‥S‥二, NBMA∴Addr∴Peer∴Tunr:e二∴主Cid l∴二92.168.123.1 1干2.16.二二三.二 l∴192.168.123.2 二∵2∴6.三三.三 从例9-2S可以看出, SIcl÷C 三三订∴ . J!’ ,_‥丁2∴S ∴→∵er ∪广 ∴∴二.∴l∴rb 二) S R2与R3之间已经动态建立了新隧道,表明多点GRE已经 起作用了。 但上述部署方式对于实际网络环境来说具有很大的风险性.这是因为DMVPN的 撞默认操作是以明文方式发送流鼠因而这种部署方式是无法接受的0 3.第3步:配置IPSec以加密mGRE隧道 为了保护上述部署方案.可以在DMVPN配置中引人IPSec 在o∥ⅥDⅣ铜醋王′产Sec 砌9●26 ' l ! l l ! ' ' ' l ! ' l l ! ! ! l l ! ! ' l l ! ' l ' !∴l∴l l l l l l l ,i二二∴Devices∴in∴the ' l (C〇n:ig〉* l l l l l l l ! crypCo ' l∴l∴! l l l i8a蛔呼 l ' l l l l l l ' ' ' l ' ' l ? l ' l l C〇r:fig二∵ci: l l policy l l l l l l l l l ' encrypcloα∴ae8 〈c〇n三ig三sakmp川 ba8b血d5 l 〈c〇n:ig-1sakmp出 aucbencicacl゜α∴pre-8hare 〈con:ig-1sakmp出 gr゜up crypc゜ ip8ec∴cfan鲁餐om-gec i8a虹呼 〈c〇正1g〉 c摹ypc゜ 1p8ec key O p量。餐11e HYsEI. gec∴tran8壬om-8ec cumel cumel addfe8g e8p-aeg O.O.o.0 e8p-md5一血咀c HcRE #∴8et∴8eCurity-a88゜Ciatlon (C〇n:ig中inceriace l 鹏啊ORxLEssoNs crypco 〈c〇n王ig一正市 l 86400 (C〇n:∴g中 〈二pSeC-pr〇王ile=; l 2 (C〇n:ig出 8 l l〇rl l 〈config三sakmp出 (ipsec-Profile) i摹蛊 l D讯/PN 〈c〇n王ig三sakmp出1i董ecime 厂器‘ (如例9-26所示)。 lifecime 8eCOndg 86400 MYs叠' O pfocecti゜n ip8ec prO量ile HGR叠 如果DMVPN的配置依赖于分支路由器的动态IP地址,那么在配置加密isakmp 密钥时必须使用IP地址0.0.0.00 此时需要验证是否已经加密了隧道。最佳实践是关闭并启用隧逼接口,这样就可 以确保正确应用加密配置.并且能够按照预期启用隧道接日(如例9-27所示)。 励9-27 验】匠′产Sec劝新傲缝 !!!!!∴▲11Deγicesin∴che∴DMvPN C〇n:igJ二-a二i〇∴ 〈config出incer餐acecumelO 〈config-if出 8bucdom 〈c〇niig-if出no8bucdom !!!!Next stepis t〇 、 Check∴ifIPSE:Cis accive!!!!!! 攻城狮论坛(技术+生活)2群 1813097 400 设备和网络安全 第9章 ’ .\ \ L . 】 ' ′士,、 ヽ - ←ヽ丁、. 1 ′)∴. 、 ?2. OL, ’ ;∵ c一. C∵,「 ● \. 23. ' - →上ヽ 二 '-【 ヽ〇←, . 〔∵ 士、 ヽ 中ヽ _ ◆ ← 士 )丫 ● ' 、 (ゝ ' ( ヽ( 三一〇」← .∴ゝ、、 r)←、 \ ◆ |\ ∴。. 山 ′ ヽ 、 \ ヽ′ ● . - ' ∴∴∴.. 、 `- ′←厂 J∴∴∴′ヽ】 ∴〕 ' ' 1 ' l l ' l l l l ' l l l l ' - ' l l l l l l ' l l l 1 1 1 1 1 1 「 ping 1 l l 1 1 5, l l l l ∵上一士∴三= 于pe osc〔主〇e ' l l ' ' l 〔c (ヽ Lヽ ' ` CO ●○' ‘ ∴ 上( 、 ..〔 '. ` 二OS÷∴rcC卜α○. . .. ' l ' l ' l l l l ' … l l l l l ‥ /’ l l ' ' ' ' l l l l l l l ' l l `ヽ ∴` 丫 ● ' ←ヽ ) ● s ‘出ヽ←〇rC上). ' ' ' l l ' l ? l 8how l l sec…e、「C、 、 ◆ ∵ 上、 ` l ' l ' l l :. ▲〕.-cJ_e ∴▲ 」 1?0 l?2.16.123.1 SQnd上pg可3, l ' ' 】` ? 1 ∴∴三 l l .〔◆ ⊥上‘三)y〔e ping ' l `、〔◆ |‘ ._;〕. 172.16.123.1 ∴三: ' ' ヽ←士 ↑ype∴占士C♀〕↓∴J〕士一L了∵( Se▼记:「♀ 1 l ヽ| b广. ∵()〔∴ l 三三∵ .、 l 〇 右ヽ' ' l r), l ' ' ' l l ' l l (出 . o、 ' ' crypco ip8ec 〕 . _ e〇∴ r ▼ 丫 〔● ∴ DdC {e_S ; 、 ♂'e 、` ▼ _s∴二∴sec〇n〇S. 二亡{ -- 三∴三.! (, ←-c∵一∵∵二二〔〔 8a 4.第4步,配置DMVPN路由 虽然此时的隧道已处于运行状态且已经被加密,但设备环回地址之间的可达性还没 有解决。为了解决这个间题.可以考虑以下两种方式‥ 使用静态路由或动态路由协议。 例9-28给出了在mGRE隧道接Il上运行OSPF的配置方式。 9.4 #mGRE 励9-28 l l l l l l ● ● ● ● ● ● !!!!! l l l l ● ● ● ● All l ● ● l l ● ● l l ● ● l l ● ● Devices l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● l l ● ● l l ● ● l l ● l l l ● ● ● in l ● ● router l l l l ● ● ● ● the l l l l l ● ● ● ● ● ospf l l l l l l ● ● ● ● ● ● DMVPN l ● l l l l l l l l l l l 1 ● ● ● ● ● ● ● ● ● ● ● ● Configura亡ion l l l l l l l l ● ● ● ● ● ● ● ● l l ● ● l l l l l l l l 1 ● ● ● ● ● ● ● ● ● l Rl(config-rou亡er)# network l.1.1.1 Rl〈config-rou亡er)# network 172.16.123.0 Rl(C〇nfig)# interface (config-if)# ip tunne1 ospf r゜uter R2(COnfig)# 2.2.2.2 network 172.16.123.0 interface 土p (COnfig-if) R3(COnfig)# # tunnel ospf 0.0.0.O ospf network router ospf l 3.3.3.3 R3(COnfig-rou亡er)# network 172.16.123.0 R3 l l ip (COnfig-if)# l l l l l l l l l l l l l ip l tunne1 ospf l l l l l l 0.0.0.O o broadcast nhrp map mu毗cast命令,因而分支路由 Hello消息。这意味着希望建立一个OSPF星型拓扑结 构,而且分支路由器永远也不应该成为DR Designated area o l 器只能向中心路由器发送OSPF (Backup area 0.0.0.255 o netw°rk 由于前面已经在分支路由器上配置了ip 蠢 o 0 priority ospf area o o network interface area 0.0.0.255 br゜adcast R3(C〇nfig-r〇uter)# R3(C〇nfig)# o o priority ip R3(config-if)# area broadcast network R2(COnfig-if)# o l R2(COnfig-rou亡er)# R2(COnfig)# area 0.0.0.255 0 network ゜SPf 0.0.0.O R2(config-rou亡er)# R2 401 /毖道接/7上运行OSPF l Rl(COnfig)# Rl 三层安全 (DesignatedRouter,指派路由器)或BDR Router,备份指派路由器) 。 从例9-28可以看出,由于本例采用了OSPF广播网络类型,因而分支路由器都将 对方的IP地址作为下一跳。 完成上述配置之后,需要执行必要的验证操作,此时可以运行相应的OSPF验证 命令(如例9 ̄29所示)。 验王臣D∥VPN屠白 励9 ̄29 l l l l ● ● ● ● Rl# l l l l l ● ● ● ● ● show Neighbor l ● l l ● ● ip 工D 2.2.2.2 3.3.3.3 R2# show Neighbor lP |D l.1.1.1 R3# show Neighb°r l.1.1.1 The spoke Check the l ● l ● l ● l l ● ● ospf Pri 工D l l l l l l l l l ● ● ● ● ● ● ● ● ● ● l ● l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● l l l ● ● ● 1 ● S亡ate Dead Time Address |n亡erface 0 FULL/DROTHER OO:OO:33 172.16.123.2 Tunne10 0 FULL/DROTHER OO‥00‥33 172.16.123.3 Tunne10 OSPf neighb゜r Pri S亡a亡e 1 ip l neighbor ospf Dead FULL/DR Time Address OO:00‥31 |n亡erface 172.16.123.1 Tunne10 neighbor Pri 1 S亡ate FULL/DR rou亡ers have rou亡ing 亡ables‥ Dead Time OO:00:31 f〇rmed an oSPF Address 172.16.123.1 neighb〇r 工n亡erface Tunne10 adjacency wi亡h 亡he hub rou亡er. Le亡's 402 设备和网络安全 第9章 R2# show ip r゜ute l.0.0.0/32 0 1.1.1.1 3.3.3.3 R3# show ip 2.2.2.2 l l l l !!!! l l l l each !!!! Now Success !!!! 1 1 1 Wi亡h R2 1 1 1 is 1 1 1 is a 1 1 is 1 1 Subnet 00‥04:10, Tunne10 00‥04:09, Tunne10 s 172.16.123.2, via 亡O 1 1 1 1 ne亡WOrks. hop f〇r eaCh 亡hat Note other′s R2 and R3 are using ne亡WOrks. u亡ili亡y o Echos 亡0 address 1.1.1.1,亡imeou亡is of 2 sec〇nds: 2.2.2.2 round-亡rip min/avg/max = 4/4/4 ms o Echos 亡0 address 3.3.3.3,亡ime°u亡is o壬 percen亡(5/5), reaCh 1 o亡her nex亡 ab〇rt. |CMP loo 1 p|ng loopback source 亡O 1 亡he as percen亡(5/5), s゜urCe a abou亡∴亡he abor亡. source IOO With able 1 亡O sequence ra亡e Tunnelo Subne亡S l゜OPback |CMP 100-byte Sen亡 Packe亡 亡he sequence 3.3.3.3 5, 00‥04:16, 172.16.123.1, 1 address source 100-by亡e escape Sending 1 via learned |P Via 亡es亡 ra亡e ping Type have R3 Tunne10 l l.1.1.1 5, Success l 00‥04‥16, Subnets 172.16.123.3, via subne亡ted, [110/11112] l 1 subne亡ted, o亡her′s Sent Packe亡 1 l escape Sending R2# l 亡O ping Type l and R2 !!!! R2# 9.5 l is subne亡S 172.16.123.1, ospf [110/11112] 2.0.O.0/32 l is 1 via subne亡亡ed, [110/11112] 1.1.1.1 0 is route l.0.0.0/32 0 oSPf subne亡亡ed, [110/11112] 3.0.O.0/32 0 is 亡he r〇und一亡rip loopback 2 seconds‥ 2.2.2.2 min/avg/max in亡erfaces of Rl and = 4/4/4 ms R3 1 1Pv6第一跳安全 本节将介绍IPv6园区接人网面临的多种常见安全威胁,并解释如何利用FHS(First 撬 Hop 9.5.1 Security,第一跳安全)技术解决这些安全威胁。 1Pv6的第一跳安全 任何从事网络工程工作的人员都知道,许多企业、大学及政府网络都已经广泛部 署了IPv60为了保证这些网络的正常运行,必须确保IPv6部署方案的安全性以及服 务质量能够等于或者超过现有的IPv4网络基础设施。 无论使用IPv4网络还是IPv6网络,都必须确保网络用户的使用体验,都应该具 备相同的安全性和服务可用性等级。从网络管理员的角度来看,还需要满足以下相似 的假设条件: IPv4和IPv6网络都是具备高度可溯源及质量保障的安全网络,可以防 范并跟踪备种可能的网络人侵行为。 9.5 1Pv6第一跳安全 403 受到IPv6的部署规模以及支持IPv6的新技术的大量涌现的直接影响,上述情况 对于IPv6网络环境来说有些复杂,因而有理由假设IPv6企业网的大部分安全威胁都 与拓扑结构以及给定网络的特性有关。由于IPv6具有以下特点,因而IPv6网络环境 的安全性考虑具有其鲜明特点: ■ 单条链路上支持更多的端节点(最多264), ■ 端节点上的邻居缓存更大; ■ 默认路由器上的邻居缓存更大。 上述特点为攻击者提供了更多的DoS (Denial ofService,拒绝服务)攻击机会。 但是与IPv6部署方案相关联的安全风险并仅仅不局限于协议的拓扑结构方面,某些安 全威胁也与网络中使用或未用的协议有关,这些协议包括: ■ NDP (Neighbor Discovery Protocol,邻居发现协议)集中了所有的链路操作, 负责地址分配、路由器发现以及重定向等相关任务; ■ DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)在IPv6地 址分配中的作用比IPv4小; ■ 非集中式地址分配方式会给地址滥用的控制带来严峻挑战。 待力于IPv6部署规模的快速增长以及前面描述的IPv4与IPv6之间的本质差异, 同时保障IPv4网络和IPv6网络的安全性是非常重要的。无论在什么场合下使用IPv6, 都必须全面了解IPv6,而且将系统和设备连接到网络链路上时,还必须掌握如何最佳 地保障IPv6基础设施的安全性,包括仔细核查IPv6拓扑结构可能产生的攻击机会。 本节将重点关注网络中的备种链路,在讨论加强这些链路安全性的方法之前,将首先 介绍这些链路的墓本操作方式,因为理解并掌握IPv6的墓本链路操作对于加强链路安 全性来说至关重要0 9.5.2 链路操作 哪些位置可以加强链路操作的安全性呢?经过分析后发现,通常可以在以下三处 网络位置增强链路操作的安全性‥ ■ 端节点(endnode); ■ 网络中的第一跳; 最后一跳。 图9-13通过一个很简单的网络示意图标出了这三处网络位置。 ■ 接下来将详细描述如何在图9-13所示的三个位置上加强链路操作的安全性。 404 设备和网络安全 第9章 端节点 最后一跳路由器 墅罗 疆毒 ∈窜 董壶一一」 第一跳交换机 图9-13 增强链路操作安全性 1.端节点安全模型 该安全模型是一种分布式模型,所有端节点都仅关心自已的安全问题。该安全模 型不会给链路操作带来瓶颈或单点故障,而且该安全模型不需要集中式管理或维护, 因为该安全模型假设每个节点都仅关心自已的安全问题。如果希望了解SeND (Secure Neighbor 39710端节点 Discovery,安全邻居发现)进程的详细信息,可以参考RFC 安全模型的最终安全水平取决于SeND部署方案。为了更好地理解SeND,我们需要 知道邻居发现进程所使用的其他协议,因而有关SeND的详细信息将在稍后的章节中 讨论。虽然该安全模型对于直接来自链路的安全威胁特别有用,但是却难以防护链路 之外的设备产生的安全威胁。部署该安全模型时需要考虑的一个重要因素就是其分布 式特性。如果要加强整个网络域的安全性,就必须配置该网络域中的所有端节点,相 应的配置工作量及复杂度都非常大。因此,该安全解决方案虽然很好,但也存在其固 有的局限性,再加上前面的分析结果,可以很容易地看出该安全模型扩展性很差,因 而有必要分析拓扑结构中的下一个安全增强点0 2.第一跳交换机安全模型 第一跳交换机安全模型是一种集中式安全模型,由集中式安全管理单元负责维护 与运行,因而与端节点安全模型存在显著差异,端节点安全模型将执行安全措施的压 力都推给了第一跳设备。由于第一跳交换机安全实施方案采用了集中式模型,因而在 安全任务涉及的设备数量较少时,其扩展能力较好。由于该安全模型需要接触、监控 以及重新配置的网络组件较少,因而从非安全的链路操作过渡到安全网络的过程更为 简单。 虽然该安全模型对于网络维护人员以及实际的终端用户来说非常方便,但是该安 全模型仅适用于某些拓扑结构,也就是所有终端用户都必须连接到一个能够保障链路 操作安全性的汇聚设备上。由于该安全模型要求第一跳网络设备对所连接的实际端节 点具有更强的智能化与感知能力,因而对第一跳交换机的处理及内存资源的要求也大 为增加。 9.5 1Pv6第一跳安全 405 3.最后一跳路由器安全模型 如果希望加强最后一跳路由器的安全性∴那么只有一种方式。与前一种安全模型 相似,该安全模型也属于集中式安全模型,适合解决来自被保护链路之外的安全威胁。 该安全模型不但能够保护所连接的链路,而且还能保护下游网络组件。与前一种安全 实施模型相比,该安全模型能够实现更好的安全增强能力。不过这两种安全模型的场 景并不相同。最后一跳路由器安全模型需要结合第一跳交换机安全模型,将这些解决 方案整合在一起就能解决来自网络内部的安全威胁。这一点非常重要,这是因为网络 设备被攻破之后,攻击者就能利用该设备攻击其他网络基础设施。 为了提高安全操作的有效性,该安全模型要求最后一跳路由器必须能够发现安全 进程所保护的链路上的所有端节点。该操作可以通过后面介绍的协议来实现0 9.5.3 1CMPv6与NDP 本节将介绍ICMPv6 (Intemet Control 息协议版本6)。与IPv4相比, Message ProtocoI version 6 , Intemet控制消 IPv6不但可以利用ICMP提供的功能简化终端系统的 自动配置过程,而且还能实现业务检测功能。由于引人了大量ICMP新功能,因而IPv6 的ICMP比IPv4的ICMP显得更为重要o ICMPv6中的一个新功能就是NDP (Neighbor 从基本规范可以看出,这是一种非认证协议o 之上,为了提高链路效率, Discovery Protocol,邻居发现协议) 。 NDP属于应用层协议,工作在ICMPv6 NDP大量使用了多播包o NDP主要用于: ■ ■ 路由器发现; 地址的自动配置(SLAAC[Stateless Address Autoconfiguration,无状态地址自 动配置]); ■ ■ ■ IPv6地址解析(替代ARP[Address 邻居可达性(NUDINeighbor DAD Unreachal)ility (DuplicateAddress ■ 重定向0 1. SeND Resolution Protocol,地址解析协议]) Detection,邻居不可达性检测] Detection,重复地址检测) ; ) ; ; 虽然在前面讨论端节点安全模型的时候已经提及了SeND,但直到此时才介绍 SeND详细信息的原因在于理解了ICMPv6以及NDP的基本工作机制之后,必须指出 它们的操作过程都存在不安全因素,必须利用SeND来加强NDP及其操作的安全性。 当然,后面将会提到这种安全性增强机制也存在一定的限制。因此,有关SeND的最 佳定义就是一种增强mP安全性的协议。可以通过以下三种关键功能来提升mP操 攻城狮论坛 406 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 设备和网络安全 第9章 作的安全性。 ■ 地址所有权的校验功能。 一使得窃取IPv6地址的行为“不可能”。 一用于路由器发现、 一基于CGA DAD以及地址解析进程。 (Cryptographically GeneratedAddresses,加密生成的地址) 。 一作为可选项,还可以为非CGA提供证书。 ■ 消息保护功能。 一消息完整性保护。 一重放保护。  ̄请求/响应关联。 一用于所有的NDP消息。 ■ 路由器授权功能。 一授权路由器充当默认网关。 一指定允许路由器宣告为“on-1ink (本链路上的)”的前缀。 虽然SeND引人了上述增强型安全功能,为IPv6邻居发现机制提供了极大的安全 性增强能力,但是却无法提供端到端的安全机制,也无法保证数据包的机密性。此外, SeND并不是一种新协议,只是链路上运行的一种协议而已o 定义了一组新属性, SeND只是NDP的扩展, ●实现方式是定义新的网络发现选项、新的网络发现消息以及新的 属性(用于描述SeND节点收到SeND支持/不支持的消息时的首选行为)。 由于SeND技术可以为每个IPv6节点都配置一对私钥和公钥,而且还支持CGA 以及RSA等新安全选项,因而可以有效地防范重放攻击。 请注意,使用SeND的节点无法选择自已的接口标识符,这是因为接日标识符是 根据当前的IPv6网络前缀以及“公共”密钥通过加密方式生成的,但仅有CGA接口 标识符还不足以保证CGA地址能够被恰当的节点所使用。 为此,需要利用RSA公钥与私钥对签署SeND消息。例如,如果节点1知道节点 2的MAC地址,那么习惯上就会向节点2的请求节点多播地址发送一条邻居请求消 息。节点2将响应一条包含MAC地址到IPv6地址映射信息的邻居宣告消息,同时节 点2还会添加CGA参数(包含在其他公钥中)以及所有邻居宣告字段的私钥签名。 节点1收到该邻居宣告消息之后,会使用公钥以及CGA地址来验证节点2的私有签 名。最后一步操作成功之后,节点1的MAC地址与节点2的CGA地址的绑定操作也 就完成了。 请注意,该机制只是验证节点MAC地址与其CGAIPv6地址之间正确关系的一个 简单解释o SeND并不检查节点是否有权或无权访问网络,如果需要检查,那么就待 部署其他基础设施保护机制,如802.1x (如本章前面所述)。 攻城狮论坛(技术+生活)2群 1813097 9.5 1Pv6第一跳安全 407 2.加强第一跳安全性 端节点的第一跳通常都是二层交换机。如果部署了正确的安全功能特性集,那么 该交换机就有潜力解决与Sdm部署相关的安全威胁并改善链路安全模型。第一跳交 换机所处的位置通常都能学到所有邻居,因而该交换机可以很容易地允许或拒绝某些 类型的流量、某些角色的端节点或者请求消息。由于第一跳交换机处于中心位置,因 而能够完成大量功能,例如,检测ND (Neighbor Discovery,邻居发现)流量、提供 二层/三层绑定信息以及监控主机使用ND的情况以发现潜在的滥用行为。最终第一跳 交换机将能阻塞所有非期望流量,如伪造的RA (RouterAdvertisement,路由器宣告) 消息、伪造的DHCP服务器宣告消息以及来自非期望IP地址或前缀的数据流量。 虽然保障IPv6链路的安全性必须通力合作,包括涉及到的所有相关方或相关站 点,但经验表明第一跳交换机是其中的关键环节,在链路安全性方面处于核心地位(与 IPv4相同)。与IPv4相比, IPv6提供了包括SeND在内的大量技术,使得安全机制的 部署更为灵活,恶意行为的发现也更为有效,为构建安全的网络环境铺平了道路。 例9-30给出了第一跳安全特性的配置示例。 励9 ̄30 l 9.5.4 l l ,勿窟第三秘安全佑 l l l l l l l l l l l # l l l l ipv6 l l l l l l l l l l l l access-1土st CAT2 (C〇nfig) CAT2 (COnfig-ipv6-aCl) # remark CAT2 (COnfig-ipv6-aCl) # deny CAT2 (COnfig-ipv6-aCl) # remark CAT2 (COnfig-ipv6-aCl) # deny CAT2 (c〇nfig-ipv6-aCl) # pemit CAT2 (config-ipv6-aCl) # CAT2 (c〇nfig-ipv6-aCl) # CAT2 (COnfig-if) # switchport CAT2 (COnfig-if) # 土pv6 l l l l l l l l l l l l l l ACCESS_PORT Block udp any all eq Block |CmP interface Router any| any traffic 547 any any DHCP eq server 一> Client 546 Advertisements router-advertisement any gigabitethernet traffic-filter ACCESS_PORT l/0/1 in RA保护 对于典型的IPv6部署方案来说,大多数网络都有一个共同属性,那就是它们的节 点在链路层上都通过某些中间设备连接在一起。该设备通常都是交换机,该场景下的 设备之间处于非直连状态。这种配置方式可以使用RA监听(RASnooping)机制。监 听的概念在计算机网络中已经出现了十几年,通常都是以IGMP监听与DHCP监听特 性的形式出现。此外还有一个常识,那就是交换机仅利用接收到的数据帧的链路层报 头提供的信息,通过给定设备的正确接口转发这些数据包。监听的概念已经超出了该 操作行为,因为交换机还要检测数据包中内嵌的上层信息,并根据上层协议信息执行 各种已定义操作。从本质上来说,这些操作都是与优化(ICMP)或安全(DCHP、 相关的操作。 RA) 408 第9章 设备和网络安全 RA保护(RA Guard)是一种利用RA监听特性防范伪造RA攻击行为的安全机制。 部署RA保护机制的关键前提条件就是要求网络中必须存在所有流量都要穿越的中间 设备,因而可以推断出应该在交换机上部署RA保护机制o RA保护机制的核心功能 就是检测路由器宣告消息,并根据路由器宣告消息中提供的信息确定是否丢弃或转发 这些消息。需要注意的是, RA保护机制并不是一种特殊协议或者严格定义的机制, 而是一种通称,描述的是备个厂商已经实现的一组安全建议以及通用防护机制。 例9-31解释了在Catalyst交换机上部署RA保护特性的方式。 励9-31 l l l RA保护 l l l l l l l l l l l l l l Switch(COnfig) # ! RA Defines 亡he l l l l l l l nd ipv6 Guard l 亡he !The RA Guard !rou亡er 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 # l l l l 亡he can e亡C. l l l l l l l l p゜1icy l l l l POLICY-NAM叠 name device-r゜le device have ( host a亡亡ached several Af亡er 亡he 1 1 1 1 1 1 1 1 1 interface Switch(COnfig-if) Applies l 亡he l 亡○ o亡her policy router 亡he op亡i〇nal is ) p〇r亡. op亡i〇nS configured, i亡 Checking has 亡O be 亡he hop applied limi亡, 亡O in亡erfaces. 1 Swi亡Ch(COnfig) ! of policy preference !appropria亡e 1 r〇le l policy Switch(COnfig-ra-guard)# !Specifies l raguard # RA 1 1 1 1 1 1 1 1 1 1 1 1 lNTERFACE nd ipv6 Guard 1 raguard attach-P゜1icy pOL±CY-NAME policy 如果将RA保护策略的设备角色(device-role)配置为主机,那么交换机将丢弃应 用该策略的接日上收到的所有RA消息,这样就可以避免RA攻击。对于面向路由器 的接口来说,应该将RA保护策略的设备角色配置为路由器0 9.5.5 DHcPv6保护 DHCPv6保护(DHCPv6 Guard)特性可以阻塞来自非授权DHCP服务器及中继代 理的应答消息和宣告消息,相应的配置示例如例9-32所示。 D∥cP>6衔护 励9 ̄32 l l l l l CATl# l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l enable CATl# configure En亡er configura亡ion CATl(COnfig)# terminal ipv6 cormands, One access-1土st Per line. End wi亡h CNTL/Z. acll permit CATl(config-ipv6-aCl)# ipv6 prefix-1ist abc permit 2001:ODB8: :/64 1e 128 CATl(COnfig-ipv6-aCl)# ipv6 prefix-1ist abc permit 2001:ODB8: ‥/64 1e 128 CATl(COnfig)# ipv6 dhcp h゜St guard F叠80: policy :A8BB:CCFF:FEOl:F700 any CATl(config-ipv6-aCl)# po11 CATl (COnfig-dhcp-guard〉 # device-role CATl (COnfig-dhcp-guard) # match server server CATl (COnfig-dhcp-guard) # match reply CATl (COnfig-dhcp-guard) # preference min o CATl (config-dhcp-guard) # preference max 255 CATl (COnfig-dhcp-guard) # trusted-POrt access-1ist acll prefix一Iist∴abc 9.5 CATl(COnfig-dhcp-guard)#interface CATl(C〇nfig-if)# 1Pv6第一跳安全 409 GigabitEthernetl/0/1 switchp°rt dhcpguardattach-POlicypollvlanaddl CATl(COnfig-if)#ipv6 lllll CATl# Showipv6 guardpolicypo11 dhcp guardp〇licy:PO11 Dhcp Trus亡ed Port Targe亡:Gil/0/1 CATl# 可以将数据包划分为三种类型的DHCP消息。无论设备角色是什么,都要交换所 有的客户端消息。但是仅当设备角色为服务器时才需要处理DHCP服务器消息。需要 处理的服务器消息包括DHCP服务器宣告消息(用于源验证以及服务器优先级)和 DHCP服务器应答消息(用于允许的前缀)。 如果设备被配置为DHCP服务器,那么就得交换所有消息(与设备角色的配置情 况无关)0 1. DHcPv6保护与绑定数据库 IPv6监听并不能独立成为一种安全特性o IPv6监听特性通过DHCPv6等信息源为 连接在设备上的IPv6邻居构造数据库表项(如前所述),该数据库也称为绑定表 (binding table)。很多IPv6 Address,链路层地址)、 FHS功能特性都利用该绑定表来验证LLA (Link-Layer IPv6地址以及邻居的前缀绑定关系,从而防范欺骗与重定向 攻击。启用了IPv6监听特性之后,交换机就会自动创建绑定表。相应的IPv6绑定表 内容如例9 ̄33所示。 励9-33 l l /P>6绑君表 l l CATl l l l l l l l l l Switch# show Binding Table Codes: - L Packe亡, |Pv6 l l l l l l l l l l l l l l l l l l l l l l l l l l l ipv6 ne土ghbors has 4 Local, S AP工 一 AP工 - S亡a亡ic, 4 dynami ND - c Neighb〇r Disc〇Very, DH - DHCP, - PKT O亡her Crea亡ed Link-Layer addr |n亡er王ace vlan prlvl age sta亡e 28D2.4448.E276 Gil/15 1 0005 3rm 38EA.A785.C926 Gil/2 1 OOO5 26m 38EA.A785.C926 Gil/2 1 OOO5 26mn E4C7.228B.F180 Gil/7 1 OOO5 35s REACHABLE ‥3AEA:A7FF:FE85‥C926 sTALE s FE80:‥10 85533 sTALE s FE80‥:1 272 binding entries, s FE80: ND l left 86999 ND l FE80:‥81E2‥1562‥E5AO‥43EE 94 ND l address Time ND l (COnfig REACHABLE s 从例9 ̄33可以看出, IPv6绑定表中有四个以“ND”开头的表项,表示这些关联 信息都是通过监听NDP数据包学到的。如果数据库添加了一条新表项,那么就会在交 换机上生成如下日志消息(前提是启用了“IPv6监听目志记录”功能): 410 第9章 设备和网络安全 %S工SF-6-ENTRY_CREATED‥ En亡ry crea亡ed A=2001‥DB8‥1:0‥CO4D:ABA‥A783‥2FBE V=1 M=28D2.4448.E276 P=0024 工=Gil/15 1Pv6监听与DHCPv6保护以及RA保护等多种IPv6保护特性紧密集成在一起。 为了允许这些数据包,必须在交换机上配置DHCPv6保护等特性,让交换机知道这些 DHCPv6数据包都是合法数据包,不能过滤这些数据包。例9-34给出了DHCPv6保护 特性的完整配置示例。 励9-34∴D∥cP>6地幽与′P>6绑定数据库楞免成 l l l l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● ● ● ● CATl (C〇nfig) l ● # l l l l ● ● ● ● l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● l ● access-1ist ipv6 l ● l ● l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● dhcpv6_SerVer CATl(COnfig-ipv6-aCl〉# permit host CATl(COnfig-ipv6-aCl)# $-1ist dhcpv6_Prefix # dhcp ipv6 guard F叠80::1 policy (c〇nfig〉 CATl (COnfig-dhcp-guard) # device-r゜1e CATl (C〇nfig-dhcp-guard) # match server CATl (COnfig-dhcp-guard) # match reply # CATl (config-dhcp-guard) (COnfig-Vlan-C〇nfig) CATl (COnfig-Vlan-C〇nfig) v|an # dhcp access-1ist prefix-1ist guard dhcpv6_SerVer l dhcpv6guard__POI # 2001:db8:1::/64 FE80::1 中指定)且前缀为 (在ACL (在前缀列表中指定)的DHCPv6数据包的配置方式。在DHCPv6保 护策略中定义了这些要求之后,再将其绑定到VLAN lo配置完成后, DHCPv6将按 DHCPv6地址将被安装到绑定表中,相应的目志消息如下: %S工SF-6-ENTRY_CREATED‥ 工=Gil/15 128 dhcpv6_Prefix attach-POlicy 例9-34解释了让交换机不丢弃来自 照期望方式运行, 1e server configurati゜n ipv6 2001:DB8:1::/64 permit dhcpv6guard__PO| CATl CATl any En亡ry crea亡ed A=2001:DB8‥1‥0‥BCCl‥41CO‥D904‥EIB9 V=1 M=28D2.4448.E276 P=0024 此时再查看绑定表,可以看出IPv6地址已经位于绑定表中了(如例9 ̄35所示)。 励9-35 l l /P>6绑定数撂库 l l l l l l Swi亡Ch# Binding C〇des: l l l l l show l Table - L Packe亡, Preflevel l l l l has 6 S 一 flags l l l AP| l l - LLA FE80: l l 6 l l l l l l l l l dynamic ND - 亡runk Neighb〇r ooO2‥Orig oolO‥Orig Discovery, Link-Layer trunk 亡rus亡ed oO80‥Cert DH - DHCP, ooO4‥Orig access au亡henticated addr 94 PKT - O亡her lnterface access OO20:DHCP ass|gned oloO‥S亡a亡ically vlan prlvl ass|gned age s亡ate 86999 Gil/15 1 0005 3mn 38EA.A785.C926 Gil/2 1 0005 26mn 38EA.A785.C926 Gil/2 1 0005 26m E4C7.228B.F180 Gil/7 1 0005 35s Gil/15 1 0024 3mn s 85533 FE80:‥1 272 s 2001:DB8:1:O‥BCCl‥41CO‥D904:EIB9 REACHABLE 28D2.4448.E276 s F且80‥:10 REACHABLE DH l ‥3AEA‥A7FF‥FE85‥C926 sTALE ND l F耳80::81E2:1562:E5AO‥43EE sTALE ND l left REACHABLE ND l : au亡hen亡ica亡ed ND l binding ma亡Ch oO40‥Cga Time l crea亡ed 亡rus亡ed address l S亡a亡ic, OOO8‥Orig |Pv6 l entries, (prlvl〉 and l neighbors L〇Cal, AP工 0001:MAC l ipv6 87 28D2.4448.E276 s(166161s 此时表中出现了一条以“DH”开头的新表项,表明该绑定表项是通过监听DHCPv6 9.5 1Pv6第一跳安全 411 数据包学到的。 由于DHCPv6已经重新工作,因而必须配置RA保护策略以允许合法路由器发送 的路由器宣告消息,只要将端口(连接路由器的端口)配置为信任端口(trusted-POrt) 即可,意味着无论配置什么样的RA保护策略,都将始终允许RA (如例9-36所示)。 篇伍荔口 励9-36 nd CATl(COnfig)#ipv6 ra . guardpolicy薯a_pol CATl(config-nd-raguard)# device-role CATl(COnfig-nd-raguard)# trusted-POrt CATl(config-nd-raguard)# exit CATl(COnfig)#int router gl/0/1 CATl(C〇nfig-if)#ipv6 ndraguardattach-POl土cyra_POl 将上述配置应用到接口gl/0/1之后,交换机就不再丢弃RA消息0 9.5.6 1Pv6设备跟踪 IPv6设备跟踪特性可以提供IPv6主机跟踪能力,使得IPv6主机消失之后立即更 新邻居表。 IPv6设备跟踪特性会定期跟踪通过二层交换机连接的邻居的可达性,从而 在邻居不可用时撤销其网络访问权限。例9-37给出了该功能特性的配置及验证方式。 励9-37 l l /P>6搜备掖筋 l l l l l l l l l l l l CATl(COnfig)# l l l l l l l l l l l l l l l l l l l l l l l l l l ipv6 neighb゜r binding vlan l l l 1 loo interface Gi l/0/1 reachable-1ifetime loo CATl (COnfig) # ipv6 neighbor binding max-entries CATl (c〇nfig) # ipv6 neighbor binding logging l l ! l l l ! l l l ! l l CATl# l l l ND l l l l l l l l l l l l l l l l l l l l l l l l l l l Verifica亡ion l l l l l l show 工Pv6 Time l IOO l l l l ipv6 l neighb゜r∴tracking address Link-Layer addr |n亡erface vlan prlvl age s亡a亡e left FE80: ‥A8BB‥CCFF‥FEOl:F500 REACHABLE AABB.CCOl.F500 E亡0/0 100 0002 001D.7199.4900 v1100 loo oO80 AABB.CCOl.F500 EtO/O loo ooO3 0 REACHABLE AABB.CCOl.F500 耳tO/0 loo ooO7 0 REACHABLE 001D.7199.4900 v1100 loo oO80 0 8850 L FE80‥:21D:71FF:FE99‥4900 7203 DOwN N/A ND 2001‥600::1 3181 ND 2001:300:‥1 9559 L 2001:400‥:1 7188 DOwN N/A 9.5.7 1Pv6邻居发现检测 IPv6 ND (Neighbor Discovery,邻居发现)检测特性可以学习二层邻居表中无状 态自动配置地址绑定关系并加强其安全性。 IPv6 ND检测需要分析邻居发现消息以构 412 设备和网络安全 第9章 建可信的绑定表数据库,任何不符合要求的IPv6邻居发现消息都将被丢弃。如果能够 验证ND消息的IPv6-tO-MAC (IPv6到MAC地址)映射信息,那么就认为该ND消 息可信。例9-38给出了IPv6ND检测特性的配置示例。 励9-38 /P>6ⅣD锄 l l l l l l l l l ● ● ● ' ● ● ● ● ● CATl l ● l l ● ● (COnfig) l l ● ● l ● # l l l l ● ● ● ● l l l ● ● ● nd ipv6 l l l l l l l l ● ● ● ● ● ● ● ● l ● l ● l ● inspection l l l l l l l ● ● ● ● ● ● ● policy l l l l ● ● ● ● example_P゜1icy CATl (C〇nfig-nd-inspec亡ion) # device-role CATl (COnfig-nd-inspec亡ion) # drop-unsecure CATl (COnfig-nd-inspec亡i〇n) # limit CATl (C〇nfig-nd-inspec亡ion) # tracking CATl (config-nd-inspec亡ion) # trusted-P゜rt CATl (config-nd-inspection) # Validate CATl (config-nd-inspec亡i〇n) # no CATl (COnfig-nd-inspec亡i〇n) # default CATl (COnfig-nd-inspec亡ion) # l l l l !! l l ' l l Now l l l l CATl# l l l 亡〇 l l l l l l show Policy l l l l l l l l l l l ! l ' l l nd ipv6 address-C゜unt disable looo stale-1ifetime infinite source-maC validate source-maC limit address-C゜unt l 亡he Verify switch configura亡ion 1 inspection example二POlicy p°licy example_P゜licy configura亡i〇n: 亡rus亡ed-P〇r亡 device-role switch drop-unSeCure 亡racking Policy disable s亡ale-1ife亡ime example_POlicy is applied Type Targe亡 infini亡e on亡he following P〇licy targe亡S‥ Fea亡ure Targe亡 range CATl# 从例9-38可以看出,虽然定义了IPv6ND检测策略,但是并没有应用该策略,因 而接下来必须确保将其应用到接口上(如例9-39所示)。 朋/P>6 励9-39 l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● l ● ⅣD硷沏第够 l l l ● ● ● CATl〈config)# CATl l ● l l l ● ● ● int (config-if) # !! ! CATl# ★Mar 亡O show l Policy l l l l l l l l ● ● ● ● ● ● ● ● ● l ● l ● l ● l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● l ● l ● ipv6 nd inspecti゜n attaCh-POlicy example_P゜licy exit (config)# Now l ● exit CATl(config-if)# CATl l gil/0/2 Verify ipv6 nd 亡he c〇nfigura亡i〇n inspection oO:56:30.423: again policy example_POlicy %SYS-5-C〇NF工G_|‥ example_POlicy C〇nfigured from console by conso|e configura亡i〇n: 亡rusted-P〇rt device-role swi亡Ch drop-unSeCure 亡racking Policy disable Target Gil/0/2 s亡ale-1ifetime example_POlicy Type is applied infini亡e on Policy PORT 亡he following Fea亡ure example_POlicy NDP 亡arge亡s: Target inspec亡ion range vlan all CATl# 从例9-39可以看出,此时已经将IPv6ND检测策略应用到接日Gil/0/2上了。 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 9.5 9.5.8 本资料仅供试读 . 1Pv6第一跳安全 413 1Pv6源保护 IPv6源保护(Source Guard)特性是已安装的绑定表与数据流量过滤操作之间的 接日特性。如果指定流量的源地址不在绑定表中,那么就可以利用IPv6源保护特性让 设备拒绝该流量o IPv6源保护并不检测ND或DHCP数据包,而是与IPv6ND检测或 IPv6地址探查(glean)特性联合工作,它们都会检测链路上的现有地址并将这些地址 存储到绑定表中。 IPv6源保护是已安装的绑定表与数据流量过滤操作之间的接口,必 须利用IPv6前缀安装绑定表,才能保证IPv6源保护特性的正常工作。 IPv6源保护特性可以拒绝所有来自未知源地址或未分配源地址的流量,如来自 DHCP服务器未分配的源地址的流量。拒绝了这些流量之后,将通知IPv6地址探查功 能,由该功能查询DHCP服务器或者利用IPv6 ND特性来尝试恢复这些流量。数据探 查功能可以防止设备和终端用户被锁死,导致无法将有效地址保存到绑定表中,找不 到恢复路径,也无法连接终端用户。 图9-14给出了IPv6源保护特性与IPv6地址探查功能的工作方式。 H2 H3 矗 圈 ■国困■●允许源IP/sMAc已知的流量. ●拒绝源IP/sMAc未知的流量 并触发地址探查进程 l sMAC=MACAl DAD Ns NA 图9 ̄14 P2;;data, SrC=A21 ,‥ P3;;data, SrC=A3, : 目标=A [lP源地址=A l, SMAc=MACA21 sMAC=MACA3 DHCP 3] LLA=MACH31 DHcP LEAsEQUERY LEAsEQUERY_BEPLY 1Pv6源保护与IPv6地址探查 攻城狮论坛(技术+生活)2群 1813097 414 设备和网络安全 第9章 例9-40给出了IPv6源保护特性的配置及验证方式。 励9-40 /P>6捞捞妒特解铂馏置及验j匠 l l l l l l l l l ● ● ● ● ● ● ● ● ● l ● l ● l ● l ● l ● # l l l l l ● ● ● ● ● l l l l ● ● ● ● l l ● ● l l ● ● l l l l l l l l l l l ● ● ● ● ● ● ● ● ● ● ● (COnfig) ipv6 CAT2 (COnfig-ipv6-aCl) permit # CAT2(COnfig-ipv6-aCl)# dhcp guard policy (COnfig-dhcp-guard) CAT2 (COnfig-dhcp-guard) # match server CAT2 (C〇nfig-dhcp-guard) # match reply CAT2 (COnfig-dhcp-guard) device-r゜1e # (config-if)# !!!! Now Dhcp guard ● l ● l ● 1 ● :A8BB:CCFF:FEOl‥F700 permit 2001:ODB8: any :/64 1e 128 server access-1ist∴acll prefix-1ist abc # interface Gigabit耽hernet l/0/1 swit゜hp゜rt ipv6 tha亡∴亡he CAT2(COnfig-if)# l trusted-POrt # (config-dhcp-guard) # ● poll CAT2 CAT2 ipv6 (config-if) l host∴FE80: (C〇nfig)# CAT2 ● prefix-1ist∴abc ipv6 CAT2 CAT2 l access ̄|ist∴acll CAT2 dhcp config do show guard is attach-P゜1icy applied ipv6 dhcp we will guard p゜11 vlan∴add lO verify policy poll P〇11 p〇licy‥ Trus亡ed Por亡 Targe亡: Gil/0/1 CAT2# 9.5.9 PAcL 保护设备的另一种方法就是PACL (PortAccess Control List,端口访问控制列表) 。 该交换机特性与路由器ACL非常相似,可以将这类访问列表应用到交换机端口上并配 置为人站或出站运行模式(方向相对于流量流而言)。请注意,千万不要将PACL与 vACL (VLANAccess Control List, VALN访问控制列表)混为一谈。事实上,如果同 时应用PACL和VACL,那么交换机IOS将首先处理PACL,如果PACL允许人站流 量,那么将再由vACL处理该人站流量。这样一来,网络管理员就可以对穿越交换机 等设备的待处理流量实施更加精细化的控制机制。 例9 ̄41给出了该配置方式的两种示例及方向特性。 励9-41朗c⊥/配置 CAT2(COnfig〉#int gl/0/1 CAT2(C〇nfig-if)#ip CAT2(COnfig-if)# mac access-gr゜uP access-grouP PACL|PL土stin PACLRACListin CAT2(COnfig-if)# 备考任务 表9-12列出了本章涵盖的一些重要协议信息。 9.5 1Pv6第一跳安全 415 第9章的协议与标准 表9-12 ∴∴∵∴∴∴三.∵∴∵∴ RFc2865 RADlUS lEEE802.1X P゜rt-BasedNetworkAccessControl RFc3748 EAP RFc2289 One-TimePasswordSystem RFc2827和3704 RouterSecurity RFc2332 NextHopResolutionProtocol(NHRP) RFc3971 SecureNeighborDiscovery(SeND) 表9-13列出了与本章主题相关的一些常用路由器IOS命令。 表9 ̄13 第9章的路由器IOs命令参考 Servicepassword-enCryPtion 全局命令,启用密码的简单加密功能 aaagroupserve=adiusltacacs+groxp-″ame 全局命令,创建AAA服务器集群的名称 以集群名称定义AAA服务器集群并进入LDAP服务器集 aaagroupserverldap 群配置模式 Servertry-address[auth-POrtPOrf-r)unbe′] AAA集群模式;定义RADIUS服务器以及使用的端口 [acct-POrtPOrf-n″mber] radius-Serverhost(hos!namel佃一address) [auth-POrtPOrf-numbe′][acct-PO巾POrfrO″mber 盒局模式;定义与单台RADIUS服务器相关的细节信忌 l[timeoutsecor)dsllretransmitrefrfes] [keysfwhg][alias(hosfr)ameI佃-address)] radius-Serverkey(Osfwhg17sfringlsfwhg) 盒局模式;定义用于加密RADlUS密码的密钥 tacacs-Serverhost(hosfr7amelhosf巾-addres§; [keysfrfr?g][nat][port[infegerl] 全局摸式;定义与单台IACACs+服务器相关的细节信患 [single-COrmeCtion][timeout[infege′Ⅱ tacacs-Serverkeykey 拿局模式;定义用于加密RADIUS密码的密钥 416 第9章 设备和网络安全 aaaauthenticationenabledefaultmethod7 拿局模式;定义enable命令使用的默认认证方法 Ime肌od2_I aaaauthenticationlogin(defaultl“sfmame) 全局模式;定义控制台、>TY以及AUX登录使用的默认 method7[method2_] 认证方法 aaaauthenticationppp(defaultl〃sLname) 全局模式;定义PPP使用的默认认证方法 method71method2...] aaanew-model 拿局模式;在路由器/交换机上拿局启用AAA loginauthentication(defauItl做-″ame) 线路模式;定义认证所用的AAA集群 PPPauthel怕cation(P/OtO/71profO∞亿_D[if-needed] 接口模式;定义PPP所用的AAA认证类型 [“sf-″ameldefault][callin][onetime][optionaI] autosecure[managementlf°n″arding] 全局模式;接照cisco推荐的设备安全配置建议自动配置 [no-interact] los enablepassword[leveIleve/](PaSSWOrdl 拿局模式;定义肩用密码 [e″c′yPfroniype]e″c′yPted ̄PaSSWOrd) enablesecretHeγel/eve/](PaSSWOrdl 全局模式;定义采用MD5啥希加密的雇用密码 [er)cryPf/or)rtyPe]e月c′yPfedrpassword) ipverifyunicastreverse-Path[〃sH 接口子命令;启用严格RPF ipverftyunicastsourcereachable.via(rxl 接口子命令;启用严格或松散RPF any)[a"ow-default][a"ow-Self-Ping][″s∥ usemamer]ame(nopasswordlpassword 全局模式;定义本地用户名和密码 passwo佃) usemamenamesecret([0]passwo′d15 拿局模式;定义本地翻户名和MD5啥希加密的密码 e″C′yPfed-Sec′ef) iptcpinterceptlistaccess-ife←r)″mbe′ 拿局模式;标识TcP拦截所用的AcL iptcpinterceptmode(interceptIwatch) 全局摸式;定义TcP拦截所用的模式 全局模式;定义清除未完成TcP连接之前所用的超时定 iptcpintelCePtWatCh-timeoutseconds 时器 lPmSPeCtnameinspection-nameProtoCOl 全局模式;为cBAc配置检测规则 呻meoutseconds] ipinspectinspection-name(inlout) 接口模式;向接口应用cBAc检测规则 ZOneSeCurityr)ame 盒局模式;创建IOSZFw安全区域 9.5 1Pv6第一跳安全 417 续表 .三=二二 ZOne-Pairsecurityr)ameSOurCeSO″roe-ZO″e-name 盒局模式;创建IOsZFW区域对 destinationdesfinaf/on-ZOr]e-name Class-maPtyPeinspectname 全局模式;创建zFW分类映射 Parameter-maptyPeinspectname 全局模式;创建ZFw参数映射 POIicy-maPtyPeinspect 拿局模式;创建zFW服务策降 Service-POlicytypeinspectr)ame 区域对配置模式;为区域对分配策略映射 ZOne-membersecurityzor)e-name 接口模式;将接口与zFw区域相关联 ShowIPIPSCOnfiguration 显示详细的IOSIPS配置信忌 CryPtokeypubkey-Chainrsa 全局模式;创建IOSIPS加密密钥 IPIPSSignature-Category 全局模式;加载或更改IPs签名色 ● ' 盒局模式;创建IOSIPS签名规则 lPIPSname ipipsname[outboundlinbound] 接口模式;为接口分配IOSIPs规则 ShowIPIPSCOnfiguration 显示IOslPs配置 ipnhrpauthenticationpassword 为NHRP流量配置密码认证 ipnhrpnhsfO 标识NHS服务器的IP地址(“中心路由器”) 标识可以在DM>PN咸员之问传递多播和广播流量的“中 心路由器”的IP地址。此外,还可以采用动态配置方式, IPnhrpmapmu怕cast 而不仅仅是静态配置方式 ipnhrpmap″bmatr)dmvpnxp 为中心路由器NBAR地址的可达性提供一对一的映射 ipnhrpnetwork-idn″mbe′ 指定在加入相同DM>PN网络的设备之间共享的网络呈 定义DHcPv6保护特性的策略名称并进入DHcP保护配 ipv6dhcpguardpolicyname 置模式 表9-14列出了本章用到的一些主要Catalyst 表9-14 第9章CataIyst IOS交换机命令。 loS命令 ∴ SPanning-treeguardroot 接口模式;肩用根保护特性 拿局模式;为802.1x定义默认认证方法,由于仅支持 aaaauthenticationdotlx(defauIt)method7 RADIUs,因而目前仅有一种认证方法 aIPaCCeSS-1istac′mame 全局模式;以声明的名称创建ARPACL dotlxsystem-auth-COntrol 全局模式;启用802.1x 418 设备和网络安全 第9章 dotlxport℃OntIOl(autolforce-authorizedl 接口模式;在接口上定 义802.1x操作 force-unauthorized) dotlxtime゜ut(quiet-Periodsecor)dslreauth-Period 全局模式;设置802.1 x定时器 SecO″dsIserver-timeoutseco″dsIsupp-timeout SeCOndsltx-Peri°dseco″ds) 9.6 COntrolplane 全局模式;访问路由器或交换机控制平面配置模式 Service-POIicyinputname 控制平面配置模式;向控制平面应用策皑映射 Showpolicy-maPCOntrol_Plane 显示coPP策略操作 理解与记忆 与所有的αsco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试 主题,因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试 主题0 9.6.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 9.6.2 定义关键术语 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: AAA、认证方法、 ACS、 SAFE蓝图、 攻击、粘性学习、 RADIUS、 DAI、端日安全、 Fraggle攻击、 端、认证端、认证服务器、 TACACS+、 IEEE MD5哈希、启用密码、启用秘密密码、 802.1x、 DHCP监听绑定数据库、 Smurf攻击、 EAP、 TCPSYN泛洪、 CBAC、传统的IOS防火墙、基于区域的IOS防火墙、 DHCP监听、 IP源保护、中间人 EAPoL、 TCP拦截、 OTP、请求 ACE、风暴控制、 IOSIPS、检测规则、 DMVPN、 CoPP 9.6.3 推荐读物 Netwock Security Network Security Router LAN Security Switch Principles and Architectures Strategies Security: , What Practices , by by Sean Gregg Hackers , by Saadat Malik Convery Schudel Know and About David Ybur Smi血 Switches , by Eric vyncke and 9.6 Christopher Cisco SAFE Cis∞ IOS 4 Blueprint Security Introduction: Release 12.4, WWW.Cisco.com/go/safe Configuration Guide: Securmg 血e Data Plane, data」〕lane/con五guration/guide/1 2 4/sec data_Plane book.html “IPv6 WWW. 419 Paggen WWW.Cisco.com/en/US/docs/ios/sec 12 理解与记忆 First Cisco. epaper_C l l Hop Security-Protecting -602 1 VPN WWw∴ o. /do 」)S6350 c Access TSD c OS- Network”: SOftware/enteapnse-ipv6 ̄ SO山ion/whit 35.html Multipoint s IPv6 com/c/en/us/products/co11ateral/ios-nX- “Dynamic Ci Ybur om/en/U S Products c (DMVPN),” s/i o s/s ec_S Configuration e Cure_C Guide Onne Ctivity/c Chapter.html on五gurati on/guide/s ec二DMVPN 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 本章主要讨论以下主题: ■ GRE ( Generic Routing Encapsulation,通用路由 封装)隧道; ■ DM>PN( DynamicMu怕POintVPN,动态多点>PN ) 隧道; ■ lPv6隧道及其相关技术; ■ 二层VPN; ■ 使用预共享密钥的IPSec ■ GET ( Group ( lPSecurity, Encrypted lP安全); Transport,组加密传输) VPNo 攻城狮论坛(技术+生活)2群 1813097 第10章 隧道技术 本章将讨论CCIE路由和交换考试要求掌握的备种VPN (VIrtual Private Network, 虚拟专用网)技术。这些VPN技术的种类很多,掌握这些VPN技术必须了解与之相 对应的各种认证或加密特性。本章将重点讨论部署这些墓本功能特性所需的配置技 巧,这些都属于实验考试的一部分。 请注意,本章在讨论每种vN技术的时候,都尽量不过多的扩展安全方面的细节信息0 10.1 ″我已经知道了吗? ”测试题 表10 ̄1列出了本章的墓本主题以及与之相应的测试题。 ″我已经知道了吗? 表10-1 ″基本主题与测试题对照表 DMVPN 1一-3 lPv6隧道 4 二层>PN 5-7 GETVPN 8一一9 得分 为了提高每章前面的测试评价效果,请务必严格评分。参考答案请参见附录Ao l. DMvm的主要优势在于允许传统的星型网络设计更好地支持下列哪种功能特性? a.包传输 b.扩展性 c.服务质量 d.流量整形 2.虽然支持DMVPN解决方案的协议有很多,但稳定的DMVPN环境完全依赖于多 项Cisco增强型技术,请选出这些正确的技术o a. GRE (Generic Routing b. FHRP (First-Hop c. NHRP (Next-Hop Encapsulation,通用路由封装)协议 Redundancy Reso山ion Protocol,第一跳冗余协议) Protocol,下一跳解析协议) 422 隧道技术 第10章 d.动态路由协议 e.安全DMVPN f. 1PSec加密协议 3.中心路由器可以向分支路由器发送哪种类型的新消息,使得分支路由器能够知道 有比经过中心路由器更好的路径到达其他分支路由器? a. 1CMP重定向 b.代理ARP c. NHRP重定向 d.本地代理ARP 4.对于ipv6ip auto-turmel来说,利用隧道接口地址的哪个部分可以自动确定与IPv4 兼容的隧道目的地址? a.高阶32比特 b.低阶16比特 c.高阶16比特 d.低阶32比特 5. L2vPN是一种允许客户端管理下列哪种网络功能特性的最简单的解决方案? a.路由协议 b.监管策略 c. QoS机制 d. IOS管理协议 e. IP管理 6.下列命令的输出结果表明与DMVPN配置相关联的状态是什么? sh゜w R2# Legend: UP=Up, XC ST XCOnneCt XC all ST=Xconnec亡 DN=Down, Segment l s亡ate, AD=Admin SI Sl=Segmen亡1 Down, Segment 2 S亡a亡e, |A=|nac亡ive, S2=Segment2 NH=No S亡a亡e Hardware S2 一一一一一一十一一一一一一一一一一一一一一一--一一一一一一一一一一一一一一一-+一-+一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 DN ac FaO/0(E亡herne亡) AD mpIs 4.4.4.4:204 DN a.伪线链路处于up状态 b.伪线链路处于管理性down状态 c.伪线链路处于down状态 d.伪线链路处于正常运行状态 7. MPLS二层伪线使用的两个主要段是什么? a.段1 b.段A 10.2 GRE隧道 423 c.段B d.段1-2 e.段2 8. DMVPN解决方案中的密钥服务器最重要的功能就是生成加密密钥,该进程将生成 哪两种密钥? a. RSA b. TEk c. SHAl d. TLS e. kER 9.配置DMVPN组成员时,需要利用IPSec配置简档(Pro制e)来创建加密策略,那 么将使用下面哪个工具来标识需要加密的数据包? a. 1P Prefix-1ist b. PACL c. ACL d. vACL 墓本主题 10.2 GRE隧道 GRE定义了从一台路由器到另一台路由器的数据隧道化方法。为了实现流量的隧 道化传输,发送路由器需要将一种网络协议(称为乘客协议)的数据包封装到另一种 协议(称为传输协议)中,然后再将封装后的数据包传输到另一台路由器,接收路由 器负责解封装并转发原始乘客协议的数据包。该进程允许网络中的路由器转发中间路 由器可能不支持的流量。例如,如果某些路由器不支持IP多播,那么就可以利用IP 单播包将IP多播流量从一台路由器隧道化传输到另一台路由器o GRE隧道可以完成多种任务。从网络角度来看,可以将GRE隧道流量视为GRE 流量,也就是说,不是IP单播流量、多播流量、 IPSec流量或者其他被封装的任何流 量,因而可以利用GRE隧道化可能无法在网络中传输的流量。例如,将IP多播流量 封装到GRE隧道中之后,就可以通过不支持多播的网络传输这些多播流量o GRE隧道也可以用来封装流量,使得隧道内的流量不感知网络拓扑结构。无论源 端与目的端之间的网络跳数是多少,穿越GRE隧道的流量都仅将其视为一跳。由于隧 424 隧道技术 第10章 道可以隐藏网络的拓扑结构,因而穿越网络的实际流量路径对于隧道内部的流量来说 并不重要。如果源地址和目的地址使用的是环回地址,那么只要这两个环回地址之间 存在可用路由,隧道就能够为源端和目的端提供连接性,即使出站接口处于中断状态, 流量依然能够通过隧道进行传输o IPSec VTI (Virtual Tunnel Interface,虚拟隧道接口)是一种终结IPSec隧道的可 路由接口,可以很容易地为站点之间定义保护机制o VTI可以简化远程链路的IPSec 保护配置、简化网络管理并支持多播,而且IPSec VTI还能加强物理接口收发IP单 播及多播加密流量的灵活性。出于CCIE考试的目的,必须理解VTI的作用,并掌 握利用包括GRE、 MPLS L2VPN (Layer (MultiprotocoI 2 VIrtual Label PrivateNetwork,二层虚拟专用网)以及 Switching,多协议标签交换)在内的备种隧道机制配置 vTI的方式。 请注意,必须将路由器配置为能够通过隧道传输期望流量,通常利用静态路由将 流量指向隧道接口即可。 例10-1给出了两台路由器的常见隧道配置示例。这两台路由器都将环回接口作为 流量的源端,并指向对端环回接口。同时还为这些路由器的环回接口分配了新子网中 的IP地址。 励10 ̄1 GRE /毖萤蹬 show R2# run in亡erface |P address show R2# l゜O int∴tuno Tunne10 address source 亡unnel des亡ina亡ion N〇w on 亡〇 sh゜w R3# |P sh゜w 1P int |00 int tuno Tunne10 address 192.168.201.3 tunnel source 亡unne| des亡ina亡ion R3# sh゜w 255.255.255.128 150.1.3.3 run in亡erface 150.1.3.3 LoopbackO address R3# L〇OPbackO R3‥ run in亡erface 255.255.255.0 192.168.201.2 亡unnel ! 255.255.255.O 150.1.2.2 run in亡erface 1P int LoopbackO ip 255.255.255.O LoopbackO 150.1.2.2 interface brief 工nterface 工P-Address Seria10/2 144.254.254.3 OK? SerialO/3 unass|gned Vir亡ual-Accessl unass|gned Method YES YES YES S亡a亡us TFTP NVRAM unse亡 Pr〇toC〇l up up up up down up Loopbacko 150.1.3.3 YES NvRAM up up Tunne10 192.168.201.3 YES manual up up GRE隧道 10.2 10.2.1 425 DMVPN隧道 事实证明,基于vPN的安全架构对于现代分布式墓础设施来说非常有用。由于网 络需求在不断变化,通过备种介质(很多情况下都像Intemet一样)将敏感数据从一 点传输到另一点时难以保证其安全性,当然保护数据安全性的相关工具也在不断发展 演进。 技术演进并不是推动网络架构优化的唯一外部动因。作为网络工程师,必须经常 研究各种网络功能的传统实现方式,分析这些方法是否能够满足企业的效率与扩展性 需求。通常都采用基于IPSec的星型部署模型。虽然该解决方案在数十年来已经为站 点到站点的网络提供了良好的互连架构,但依然应该常常分析是否能够真正满足企业 的需求。事实表明过去的传统解决方案已经越来越难以满足大型企业网的需求,这些 大型企业网需要部署可扩展的动态解决方案,通过IPSec等动态功能特性经广域网拓 扑进行信息的安全传输,通过降低延迟、提高带宽利用率来优化网络性能o DMVPN (Dynamic Multipoint VPN,动态多点VPN)技术就是这样的功能特性o DMVPN可以为分布式网络基础设施提供非常好的扩展能力。从本质上来说,可扩展 性能够帮助网络实现简便的扩展能力,从而充分发挥网络基础设施的潜力0 1. DMVPN概述 DMVPN的主要优势在于能够提高传统星型网络架构的扩展性。这种实现更大服 务容量的增强型能力可以为多站点间的流量交换提供更小的延迟和更优的性能。虽然 这种增强能力很简单,但是却能带来如下好处: ■ 跨星型拓扑结构的动态隧道; ■ 提升网络性能; ■ 降低延迟,为“实时应用”提供显著的优化效果; ■ 简化路由器配置; ■ 可以在不修改中心路由器配置的情况下(“零接触”)为新站点动态添加更多 的隧道; ■ 减少丢包的动态IPSec加密能力; ■ 能够在旁路中心站点的情况下动态创建站点间的“分支到分支”隧道(站点 间通信); ■ 可以在单条或所有隧道上支持路由协议; ■ 支持多播流量; ■ 感知VRF ■ 支持MPLS; (VIrtual Routing andForwarding,虚拟路由和转发) ; 426 隧道技术 第10章 ■ 支持负载均衡; ■ 网络出现故障后能够自动重路由流量。 长期困扰分布式网络部署模型的主要因素包括站点的地理位置隔离以及在站点间 传输数据的互连链路“速度慢”,当然还有其他困扰因素,如网络可用性以及安全通信 等o DMVPN是解决这类问题的优选方案,因为DMVPN不但安全,而且还具备优异 的扩展性和自愈能力0 2. DM>PN组件 虽然DMVPN解决方案涉及多种协议,但DMVPN环境的稳定运行在很大程度上 完全取决于Cisco提供的以下增强型技术: ■ GRE协议; ■ NHRP; ■ 动态路由协议; ■ IPSec加密协议0 3. DM>PN操作 DMVPN的主要操作就是创建动态隧道叠加网络,此时每个分支路由器都成为一 个永久的去往中心路由器的IPSec隧道。需要记住的是,该应用场景下的分支路由器 之间并不建立隧道。为了保证隧道创建过程的可靠性,拓扑结构中的所有分支路由器 都必须知道中心路由器的地址。有了地址信息之后,分支路由器就可以将自已的实际 地址作为客户端注册到运行在中心路由器上的NHRP服务器进程。该NHRP服务器负 责维护每台分支路由器在注册进程中使用的所有公用接口地址的数据库。如果分支路 由器需要将数据包发送给其他分支路由器上目的端(对于本例来说,该目的端是私有 地址),那么就会请求NHRP服务器提供对端分支设备的公有(外部)地址,从而创 建一条直达隧道。有了NHRP服务器之后,就不再需要通过动态路由协议去发现到达 分支路由器的路由了。虽然我们在前文中提到了动态路由协议,但这些路由协议仅在 分支路由器与中心路由器之间创建连接性。 分支路由器获得目的端设备(分支路由器)的对等体地址之后,就可以向目标发 起一条动态IPSec隧道,从而在DMVPN拓扑结构之上创建一条动态的分支到分支的 隧道。这类隧道都是按需建立的,也就是说在分支路由器之间需要转发流量时才建立 这些隧道。成功建立了隧道之后,分支路由器之间就可以直接转发流量,而不再通过 中心路由器。 为了更清楚地解释上述进程,下面将通过命令行来解释DMVPN的部署方式,分 析该功能特性建议的三阶段部署方案o DMVPN阶段1将建立一个简单的星型拓扑结构,此时分支路由器使用的都是动 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . GRE隧道 10.2 427 态IP地址(如例10 ̄2所示)。 采居勃夯/P姓幽馅简草星型裙孙络拘 励10-2 We !Firs亡 !need !is 亡〇 need |SAKMP C〇nfigure why a m〇re Rl(config)# Policy wi亡h C〇rmon crypt゜ SOlu亡ion isakmp encr Rl(C〇nfig-isakmp)# in policy (COnfig-isakmp) # authenticati゜n (COnfig-isakmp) # group (COnfig) Rl (Cfg-CryP亡〇-tranS) "mode !which 亡ranspor亡" is Rl (cfg-CryP亡○一tranS) Rl (ipsec-Profile) is multipoin亡 Rl only (c〇nfig) # used one interface of Rl(C〇nfig-if)# ip mtu !″亡ranspor亡 !header, |P MTU 亡he !亡〇 eXCeeding |P then DMVPN |PSec real |P ip nhrp ip nhrp netw゜rk-id as NHS forward. !mapp|ng on key the !亡ha亡 dynamic !nhrp map ! Size packe亡 亡he (an |P ou亡er header m〇de). 亡ransp〇r亡 DMVPN DMVPN enSure 亡〇 packe亡 |P 亡O Hop We SeCure Hub. mul亡icas亡 mu|ticast (Nex亡 Firs亡, The rou亡ing !cast∴亡raffic∴亡O in in亡erfaces authentication Rl(config-if)# !au亡hen亡ica亡e 0.0.0.O r〇u亡er. This is because we use - tha亡 COnSis亡S header.工f 亡hen DMVPN uSually Of a adding by亡es |P original original GRE |P and WOuld packe亡 1500 Packe亡, Size packe亡 |PSec n〇亡 (When GRE is headers close may lead value) map works O.0.0.0 esp-Sha-hmac 255.255.255.O in亡erface nhrp Hub |PSec every decreased ip !s亡raigh亡 on 172.16.145.1 Rl(COnfig-if)# !The esp-3des added profile ou亡er and On that # PK工. 亡unne1. non一亡unnel isused se亡 (COnfig-if) not Tunnel the uni亡is On header !亡O Rl se亡 mode” ESP we This 1400 Transmission MTU DMVPN Tunnelo address |P address cisco123 decreasing is ipsec in亡erface 亡ype ip !exceed for mode crypto Rl(COnfig-if)# !Maximum and in peers. exi Rl(ipsec-Pr〇file)# \ cer亡ifica亡es that many set∴transf゜rm-Set∴TSET # !GRE is # be transport 亡unnel presen亡in !There key isakmp| mode # use Note may Pre-Share ipsec∴transform-Set∴TSET Rl !The to 亡here 2 crypto crypto is configured. l Rl # DMVPN key because PSK" 3des Rl Rl(C〇nfig-isakmp)# pre-Shared "wildcard s〇一Called Server). NHRP be can NHRP able 亡O 亡ells en亡ries 亡he 亡he in configura亡ion |D to There Send distribu亡e simply dynamic The ne亡WOrk regis亡ra亡ion. mus亡 pro亡OCOIs dynamic″ all 12345 need NHRP Hub cisco123 dynamic is down r〇u亡es NHRP NHRP a need all 亡able Hub is ins亡ance for NHRP and s亡a亡ic mul亡icas亡∴亡raf壬ic be亡Ween server 亡he on 亡he iden亡ify 亡〇 SPOkes. The rePlicate (en亡ries wi亡h all so line "ip mul亡i flag "dynamic"). Rl(C〇nfig-if)# !Since !f〇r we 亡ha亡 !Sp〇ke. !back in use no PrO亡OC〇l The Spli亡 亡he ip EIGRP split-horiz゜n be亡Ween t〇 be able Horiz〇n directi〇n 亡he 亡〇 rule fr〇m Hub eigrp and Send says: Which i亡 145 亡he Spokes, r〇uteS "informati〇n WaS We ga亡hered need fr〇m 亡O one abou亡∴亡he reCeived". This is disable Sp〇ke r〇u亡ing basic Spli亡 亡O is rule 亡he never for Horiz〇n o亡her sent l〇OP !preven亡ion. Rl (config-if) # tunnel source Rl (COnfig-if)# tunnel mode FastEthernetO/O gre multipoint 攻城狮论坛(技术+生活)2群 1813097 428 隧道技术 第10章 Rl(C〇nfig-if)# tunnelkey12345 Rl(COnfig-if)# tunnelprotectionipsec !AregularGRE the !des亡ina亡i〇n.Thisis a because 亡here be may and derived 亡here be may many des亡ined is be f〇r a are Sp〇kes da亡abase.The 亡unnels many packe亡 need no as NHRP f〇rm 亡unnel亡O the is des亡ina亡ions, many knowwha亡∴亡unnelthe muSt r〇uter 亡he 亡here 亡unnel亡ype, foriden亡ifica亡ionpurp〇SeS,aS key !r〇u亡er GREmul亡ipoin亡 ac亡ual亡unneldes亡inati〇nis !〇u亡∴亡here.The !has anddes亡ina亡ionof source 亡unnelusuallyneeds !specified.Howeverin DMVPN profile tunnel one on 亡○. DMVPN阶段2将部署一个新功能特性,通过DMVPN网络实现分支路由器之间 的直接通信。对于企业来说,如果分支机构之间有通信需求且希望减轻中心站点的压 力,那么该功能特性将非常有用。例10-3给出了使用EIGRP(Enhanced Routing Interior Gateway Protocol,增强型内部网关路由协议)的DMvPN阶段2的配置示例。理解并 掌握DMVPN解决方案中使用不同路由协议时的区别非常重要,必须配置并调整这些 路由协议以保证其工作在最佳扩展性且最高效率的状态下,但每种路由协议都有其不 足之处。 励10-3 存在分支勘分支磋接铂星盈拓斩结拘 crypto Rl(C〇nfig)# isakmp policy l Rl (COnfig-isakmp)# encr Rl (C〇nfig-isakmp) authentication Rl (COnfig-isakmp)# # crypto crypto isakmp (C〇nfig) Rl (Cfg-CryP亡〇一亡rans) # mode Rl (Cfg-CryPtO一亡rans) # crypt゜ Rl (ipsec-Profile) # esp-3des address Rl(C〇nfig-if)# ip mtu transport ipsec profile DMVPN TSET 172.16.145.1 255.255.255.O 1400 Rl(COnfig-if) # ip nhrp authenticati°n Rl(config-i壬) # ip nhrp map m恤1ticast ip nhrp Rl(config-if)# no ip split-horizon eigrp 145 Rl(COnfig-if)# no ip next-hop-Self eigrp 145 !o亡her !all spoke 亡raffic is 亡〇 Sp〇ke !next hop !behavior 亡able 亡o the Hub and uses 亡he sp〇ke must poin亡 up Phase i亡Self can be 2 by r〇u亡ing 亡O a chang|ng update when changed by the (COnfig-if) # turmel s゜urCe (COnfig-if〉# tunnel mode in DMVPN Phase 2 〇ne The Hub r〇uting down 1n o亡her fur亡her r〇u亡ing "no |P Phase must DMVPN Spoke 亡he pro亡OCOl it 亡he cormand for 亡○ DMVPN SPOke informa亡i〇n. sending sending Rl 亡hat 亡he when Rl !No亡e behavi〇r. Hence, r〇uting achieved 亡he pro亡OC〇l cormunica亡ion. its !This is rou亡ing 12345 using DMVPN in in Sp〇ke !ever,in !hop network-id C|SCO123 dynamic Rl(COnfig-if)# difference 0.0.0.O Tunnelo ip !direct O.0.0.0 esp-Sha-hmac exi interface Rl(COnfig-if)# !The address cisco123 set∴transform-Set # Rl(ipsec-Profile)# (c〇nfig) key ipsec∴transform-Set∴TSET Rl Rl pre-Share 2 gr゜uP Rl(COnfig-isakmp)# # 3des 亡O send Phase Spoke spoke upda亡es l for 亡raffic 亡he spoke 亡○ 亡he sends c〇rmunicati〇n. The 亡ha亡,亡he to neX亡一hop-Self 亡he How direc亡Iy. behavi〇r. so allows 2 E|GRP Hub the changes changes Spokes. eigrp nex亡 the This AS". FastEthernetO/O gre the mltip゜int Hub is in GRE Mul亡ipoin亡 mode as i亡 WaS in Phase l. 10.2 Rl(config-if)# tunnel key Rl tunnel protection (C〇nfig-if) # 429 12345 ipsec profile DMVPN exi Rl(COnfig-if)# %L工NEPROTO-5-UPDOWN: Line r゜uter pro亡OCOI 工SAKMP %CRYPTO-6-工SAKMP_ON_OFF‥ Rl(C〇nfig)# GRE隧道 eigrp is on |n亡erface Changed s亡a亡e 亡O uP 145 Rl(COnfig-rou亡er)# network 172.16.145.0 Rl(COnfig-rou亡er)# network 192.168.1.O Rl (C〇nfig-rou亡er) no Rl (config-rou亡er)# # Tunne10, ON 0.0.0.255 auto-Surmary exi 完成上述配置之后,可以通过多种命令来验证上述配置信息(如例10-4所示)。 验月匠D∥VPⅣ 励10-4 Rl# sh crypto Cryp亡O maP PrO亡ec亡ed local ipsec∴Sa Tunne10 in亡erface‥ tag: vrf: TunnelO-head-0, local iden亡(addr/mask/prot/p〇r亡) remo亡e : iden亡(addr/mask/pro亡/p〇r亡) CurrentLPeer PERM工T, addr lO.1.12.1 (none) lO.1.24.4 : (10.1.12.1/255.255.255.255/47/0) (10.1.24.4/255.255.255.255/47/0) 500 p〇rt flags=(origin_is_aCl, 〕 #pk亡S enCaPS‥ 19, #pk亡S enCryP亡: 19, #pk亡S diges亡‥ 19 #pk亡S decaps‥ 18, #pk亡S decryp亡: 18, #pk亡S Verify: 18 #pk亡S C〇mPreSSed: 0, #pk亡S #pk亡S n〇t COmPreSSed: #pkts no亡 decompressed: #send errors !The !is 亡raffic an 10Cal Pa亡h EIGRP cryp亡〇 mtu O, #recv is ip Ou亡b〇und inbound esp use COnn spi‥ eSP-3des se亡亡ings ip be亡Ween亡he n〇亡initiated 10.1.12.1, 1500, 0 O have rem〇亡e m亡u idb any cryp亡O Hub and亡he 亡raffic endp亡.‥ ye亡. 10.1.24.4 Fas亡E亡herne亡0/O Ox49DC5EAF(1239178927) id: 2003, esp-Sha-hmac =(Transpor亡, flow_id: remaining IV size: by亡es replay 8 detec亡ion S亡a亡us: ACT|VE inbound ah inbound pcp Outbound , ) NETGX‥3, key Cryp亡O life亡ime suppor亡: maP: (k/sec) ‥ Tunne10-head-O (4524624/3565) Y sas: sas‥ esp sas: Ox49DC5EAF(1239178927) 亡ransform‥ use COnn we 0 failed‥ sas‥ 亡iming‥ in as m亡u Sa SPi‥ failed‥ decompress OxF483377E(4102240126) 亡ransf〇rm: in COmPr. #pk亡S 0 going亡hr〇ugh亡he亡unnel endpt.: 1500, #pk亡S 0, errors upda亡es Curren亡 SPi‥ 0, decompressed: eSP-3des se亡亡ings id‥ 2004, esp-Sha-hmac =(Transport, flow_id: Sa 亡iming: remaining 工V size‥ by亡es replay 8 de亡ection S亡a亡us‥ ACT工VE Ou亡bound ah Outbound pcp sas‥ sas: NETGX‥4, key , ) CryP亡O life亡ime suppor亡: Y maP‥ (k/sec)‥ TunnelO-head-O (4524622/3565) Spoke. This 亡raffic 430 隧道技术 第10章 PrO亡ec亡ed local vrf: ident remo亡e (n〇ne〉 (addr/mask/pro亡/P〇r亡) : iden亡(addr/mask/pro亡/POr亡) Curren亡LPeer PERM工T, lO.1.25.5 ‥ (10.1.12.1/255.255.255.255/47/0) (10.1.25.5/255.255.255.255/47/0) 500 por亡 flags=(Origin_is_aCl, ) #pk亡S enCaPS‥ 17, #pk亡S enCryPt‥ 17, #pk亡S diges亡‥ 17 #pk亡S decaps: 15, #pk亡S decryp亡‥ 15, #pk亡S Verify‥ 15 #pk亡S COmPreSSed‥ 0, #pkts 0, #pkts no亡 COmPreSSed‥ #pkts no亡 decompressed‥ #send err〇rS !The traffic !is an 10Cal Pa亡h E|GRP cryp亡O mtu O, #recv is ip Current ou亡bound inbound esp SPi‥ use conn eSP-3des between no亡ini亡iated remO亡e m亡u 0 idb the any Hub endpt.: cryp亡〇 and 亡raffic the Spoke. This 亡raffic ye亡. 10.1●25.5 Fas亡E亡herne亡0/O OxIFB68E8D(532057741) id: 2001, esp-Sha-hmac flow_id‥ remaining IV size: by亡es replay 8 de亡ec亡i〇n Sta亡us: ACT工VE inb〇und ah inbound pcp Ou亡bound , ) NETGx‥1, key CryP亡O life亡ime SuPPOr亡‥ maP‥ (k/sec) ‥ Tunne10-head-O (4411380/3563) Y sas‥ sas‥ esp sas‥ OxIFB68E8D(532057741) 亡ransform‥ use conn ip =(Transpor亡, se亡亡ings timing‥ in have 1500, 0 failed: sas‥ Sa SPi: failed‥ decompress OxE487940A(3834090506) 亡ransform: in we 0 O 10.1.12.1, m亡u spi‥ C〇mPr. #pkts thr〇ugh亡he亡unnel as endp亡.: 1500, #pk亡S 0, errors going upda亡e decompressed‥ eSP-3des set亡ings id‥ 2002, esp-Sha-hmac =(Transp〇r亡, flow_id‥ Sa 亡iming: remaining 工V size‥ by亡es replay 8 de亡ection S亡a亡us: key , ) NETGX:2, life亡ime support‥ CryPto maP: (k/SeC) : Tunne10-head-O (4411379/3563) Y ACT工VE Outbound ah Ou亡bound pcp sas‥ sas: Cisco在DMVPN阶段3解决了阶段2存在的一些不足之处,特别是扩展性和性 能问题。例10-5解释了该DMVPN进程的部署方式。 ■ 阶段2允许中心路由器菊花链、 OSPF (Open ShortestPathFirst,开放最短路 径优先)单区域以及有限数量的中心路由器(因为OSPF DRVDBR选举进程)。 ■ 扩展性:阶段2不允许在中心路由器上执行路由汇总操作,必须将所有前缀 都分发给所有分支路由器,这样才能建立分支到分支的直达隧道。 ■ 性能:阶段2使用进程交换机制(而不是CEF[Cisco Express Forwarding, Cisco 快速转发])通过中心路由器发送第一个数据包,因而会出现CPU尖峰。 ■ DMVPN阶段3通过以下两种NHRP增强技术解决了阶段2存在的上述问题。 - NHRP重定向(NHRP Redirect):是一种由中心路由器发送给分支路由器 的新消息,其作用是让分支路由器知道有比经过中心路由器去往其他分支 GRE隧道 10.2 431 路由器更优的路由。 -NHRP捷径(NHRPShortcut):在分支路由器上更改(改写) CEF信息的 一种新形式。 D∥>PⅣ鹏3 励10-5 crypto isakxp policy lo R2 (COnfig)# R2 (COnfig-isakmp)# encr R2 (COnfig-isakmp) authentication R2 (C〇nfig-isakmp)# # crypto crypt゜ ipsec isa]硼啮) key (COnfig) R2 (Cfg-CryP亡○一亡rans) # mode R2 (Cfg-CryP亡O一亡rans) # crypto R2 (ipsec-Profile) R2 (ipsec-Profile)# R2 (COnfig)# ipsec profile addregg mtu R2(COnfig-if)# ip nhrp authentication R2(COnfig-if)# ip nhrp map R2(COnfig-if)# ip nhrp netw゜rk-id R2(COnfig-if)# ip hhrp redirect Redirec亡is a 亡ha亡∴亡here does is mu|ticast a 亡he "ip NHRP better tunnel source # tunnel mode R2(C〇nfig-if)# tunnel key (COnfig-if)# Note 亡ha亡 tunne| # We no do R2(config-if)# ip not R2 亡O to Hub spoke NHRP to 亡han res〇lu亡ion should be 亡he spoke 亡○ 亡hr〇ugh亡he reques亡∴亡O configured on 亡ell Hub● 亡he All IP 亡he Hub only. rmltipoint 123 ipsec "no |P profile eigrp DMVPN 245 neX亡一hop-Self eigrp" cormand in the DMVPN Pahse 3. exi router (config-rou亡er) # eigrp no 工SAKMP is auto net 172.16.245.2 R2(COnfig-router)# net 192.168.2.2 R2 exi (COnfig-rou亡er)# ON 245 R2(COnfig-rou亡er)# 10.2.2 an cormand 亡he by remo亡e sO/1/O gre pr゜teCtion need sen亡 the 亡rigger split-h゜rizon %CRYPTO-6一ISAKMP_ON_OFF‥ R2(COnfig)# message redirec亡" R2 (config-if) cisc゜123 dynamic 123 pa亡h spoke nhrp R2(COnfig-if)# R2 255.255.255.O 172.16.245.2 special is The R2 DMVPN 1400 enforces (COnfig-if) 0.0.0.O exi ip !destina亡ion. O.0.0.0 esp-Sha一血na|C TunnelO ip !i亡 esp-3des set∴transform-Set∴TS叠T # R2(COnfig-if)# !spoke TSET transport R2(COnfig-if)# !NHRP address cisco123 transform ̄Set R2 int pre-Share 2 group R2(config-isakmp)# # 3des 0.0.0.O 0.0.0.O 1Pv6隧道及其相关技术 虽然从20世纪90年代开始, IPv6就在全球范围内得到了逐步部署,但目前的绝 大多数网络仍然建立在IPv4基础设施之上。因而如大家所预料的那样,很多组织机构 都意识到必须采取某些方式通过IPv4网络传输IPv6流量,反之亦然。 采用隧道技术的根本原因就在于目前的Intemet基于IPv4,但是至少有两个重要 的学术与研究网络正在使用纯IPv6,因而必须提供某种机制以允许这些网络上的主机 能够通过IPv4 1ntemet到达对端,而隧道技术就是支持该通信场景的一种实现方式。 432 第10章 隧道技术 正如大家所预期的那样,隧道技术能够满足IPv4与IPv6混合场景的很多需求, 因而出现了大量隧道方法与技术。本节将介绍一些最常用的隧道技术0 1.隧道概述 从本质上来说,隧道化就是封装数据流量。具体而言,术语隧道化通常指的是在 OSI七层参考模型的给定层将流量封装到运行在同一层的其他协议中的过程,因而将 IPv6数据包封装到IPv4数据包中以及将IPv4数据包封装到IPv6数据包中都属于隧道 化过程。 由于本书的目的是满足CCIE路由和交换考试的需求,因而本节将主要讨论如何 通过IPv4网络承载IPv6,而不考虑如何通过IPv6网络承载IPv4,而且也不讨论将IPv6 封装到IPv6的隧道化方法,但大家必须知道确实存在这两种隧道化方式。在讨论这些 隧道化方法之前,首先看一下表10-2的汇总信息。 隧道化方法汇总 表10-2 → 自动6to4(Aut゜matic6t゜4) 连接相互隔离的IPv6孤岛网络 点到多点;地址空问为2002::/16 手工配置 通过IPv4网络承载IPv6数据句 点到点;任意地址空问;要求两端均 支持双栈 承载IPv6.CLNS以及其他流量 lPv60VerlPv4GRE 点到点;单播地址;要求两端均支持 双栈 点到多点;任意多播地址 lsAmP 用于在单个站点内连接IPv6主机 已被废弃,Cisco建议使用ISAVAP (Intra-Site 自动IPv4兼容隧道(Aut゜matic 点到多点;地址空问为::/96;要求两 lPv4-CompatibleTurmels) 端均支持双栈 Automatic Turmel AddressingProt゜COl,站点内自动隧道 编址协议)隧道替代该隧道模式,本书 不再过多描述 如果还不太熟悉IPv4隧道的部署方式,那么就可以看看以下基本配置步骤。 第1步‥ 确保隧道端点之间的端到端IPv4可达性。 第2步:利用interfaceturmelJ?命令创建隧道接口。 第3步:选择隧道源接日并利用turmel source interface ( j7rfe吻ce-砂Pe一删脑ber l 吻-α枕挪)命令配置该接口。 第4步:对于非自动隧道类型来说,利用血rmel l host切CW7ne Name destination ( giv一α枕可giv6LcJCferfu )命令配置隧道目的端。如果使用参数hos#?CW?e,那么就需要DNS System,域名系统)或本地主机的域名到IP地址映射。 (Domain 10.2 GRE隧道 433 第5步:配置隧道IPv6地址(或前缀,具体取决于隧道类型)。 第6步:利用turmel mode #rode命令配置隧道模式。 表10-3列出了本节讨论的隧道类型的αs∞ Cisco 表10-3 IOS隧道模式以及相应的目的端。 loS隧道模式及日的端 嚣 手工隧道 ipv6ip lPv4地址 GREoverlPv4隧道 grelp lPv4地址 自动6to4隧道 ipv6ip6to4 自动确定 lsmP隧道 ipv6ipisatap 自动确定 自动IPv4兼容隧道 ipv6ipauto-tunnel 自动确定 下面将详细讨论通过IPv4网络承载IPv6流量的各种隧道方法0 2.手工配置隧道 这种隧道的本质是点对点隧道o Cis∞ IOS要求为这类隧道静态配置目的地址。手 工配置IPv6-OVer-1Pv4隧道的方式与配置IPv4 GRE隧道的方式非常相似,唯一的区别 在于设置隧道模式。例10-6和图10-1给出了手工配置隧道的示例。请注意,本例已 经配置并验证了IPv4的可达性,只是没有显示而已。 Loopback 1 o Loopback o 172.30.20.1 72.30.30.1 IPv6网络 霞壬÷「露 墅罗一{〕 l●酝主机 双栈路由 双栈路由器 器乍Ord, ‘clemens’ 图10-1手工配置隧道 励10-6 王五瞪道馏置 !Configura亡ion Ford# show interface no |P on 亡he Ford runinterface Tunne10 address rou亡er‥ tunnelO 攻城狮论坛 434 bbs.vlan5.com 第10章 #^_^# 版权归原作者所有 本资料仅供试读 . 隧道技术 3.自动IPv4兼容隧道 该类型的隧道为隧道接口使用与IPv4兼容的IPv6地址,这些地址来自:‥/96地址 空间,也就是说,隧道接口地址的前96个比特为全0,剩下的32个比特来自IPv4地 址。这类地址的书写形式为0‥0:0:0:0:0:A.B.C.D或::A.B.C.D,其中的A.B.C.D表示IPv4 地址。 IPv4兼容隧道的隧道目的地址可以通过隧道接口地址的低阶32比特自动确定。 如果要部署这类隧道,需要在隧道接口配置模式下使用turmel mode ipv6ip auto-turmel 命令。 与IPv4兼容的IPv6编址应用范围并不广泛,这是因为这种方式与全球目前的 IPv6地址空间使用方式并不相符,而且这种隧道方法也不具备可扩展性,因而Cisco 建议使用ISATAP隧道来替代该隧道投术。出于以上原因,本书将不再继续讨论该隧 道类型0 4. 1Pv6-OVer-1Pv4 GRE隧道 GRE隧道可以提供其他隧道类型不具备的两种功能选项,即能够封装IPv6以及 其他流量,而且还支持IPSeco 与手工配置隧道相似, GRE隧道主要用于点到点应用 场景。将IPv6作为乘客协议,通常在边缘路由器之间部署这类隧道,通过IPv4网络 为IPv6孤岛提供连接性。 配置GRE隧道以通过IPv4网络传输IPv6数据包很简单o 隧道之间的唯一区别就在于turmel 是turmelmodegreipv6 mode命令的语法形式, GRE隧道与手工配置 GRE隧道使用的命令形式 (如例10-6所示)。 攻城狮论坛(技术+生活)2群 1813097 10.2 GRE隧道 435 5.自动6to4隧道 与前面讨论过的两种隧道类型不同,自动6to4隧道本质上是点到多点隧道。这类隧 道将底层的IPv4网络视为NBMA (NonBroadcast MultiAccess,非广播多路接人)网络。 对于自动6to4隧道来说,隧道操作方式是以每个数据包为单位将流量封装到正确 囊 的目的端,因而在本质上属于点到多点隧道。这些隧道确定目的地址的方式是将IPv6 前缀与全局唯一的目的6to4边界路由器的IPv4地址组合在一起,以前缀2002::/16开 头,具体格式如下‥ 2002:边界路由器的IPv4地址::/48 这种利用前缀生成目的地址的方法为给定站点内的网络编址留出了64比特前缀 中的16比特o Cis∞ IOS在一台给定路由器上只能配置一条自动6to4隧道。自动6to4隧道的配 置方式与前面讨论过的其他隧道配置方式相似,区别在于需要使用turmel mode ipv6ip 6to4命令配置隧道模式,而且不用为6to4隧道显式配置隧道目的地址,这是因为6to4 隧道确定每个数据包的目的前缀的方法完全是自动完成的。 除了基本的隧道配置之外,还需要其他配置步骤以通过隧道路由期望数据包。通 常使用静态路由即可完成该工作。例如,如果希望通过6to4隧道接口tunnelO将数据 包路由到前缀2002::/16,那么就可以配置如下静态路由: ipv6 route 2002:‥/16 tunne1 0 例10-7和图10-2给出了6to4隧道的配置示例以及该路由器与6to4隧道相关联的其 他接口情况。请注意,本例中的快速以太网接口和隧道接口是从接口E血emet 地址10.1.100.1得到前缀2002: Oaol‥6401 O的IPv4 ‥:中的黑体部分的。为了保证隧道的正常工作, 隧道源接口必须是连接外部网络的接日,即本例中的接口E血emet 2/00此外,每个连接 主机的快速以太网接口都是(也必须是)不同的IPv6子网(前缀为2002‥Oaol:6401)。 矗 l 2002:OAOl :6401 :l Pv6主机 ::FA1 2002:OAOl :6401 :l ::/64 8/64 l Pv4网络 去往其他自动6t゜4 1 uV‘ 隧道路由器 | 2002‥OAOl:6401:2::/64 涪〕/ l 2002:OAOl 图10-2 Pv6主机 ‥640上2::ABOl /64 自动6to4隧道拓扑结构 注10.∥00.「=十六进制OAOl :6401 436 隧道技术 第10章 自动6!04鹰萤髓 励10-7 Cr〇Sby# ! show ou亡Pu亡 in亡erface |Pv6 address in亡erface ipv6 |P 1〇Cal h〇S亡 ne亡W〇rk in亡erface l of 2 2002‥Oaol‥6401‥1‥‥1/64 2002‥Oaol:6401‥2:‥1/64 Ethernet2/0 address 6. brevi亡y Fas亡E亡hernetO/1 address in亡erface for Fas亡E亡hernetO/O descrip亡ion ipv6 running-COnfig 〇mitted lO.1.100.1 255.255.255.0 1smP隧道 ISARAP定义在RFC 4214中。与6to4隧道相似, 视为NBMA网络,因而与6to4相似, ISAIAP隧道也将底层IPv4网络 ISATAP隧道在本质上也支持点到多点操作,而 且也根据每个数据包来确定目的地址。但ISATAP确定主机和隧道接口地址的方法与 6to4隧道不同,否则ISARAP隧道就与自动6to4隧道完全相同了。 ISAIAP使用如下地址格式来确定其编址方案: [64比特链路本地或全局单播前缀]:0000‥5EFE:[ISAIAP链路的IPv4地址] ISATAP接口标识符是地址的中间部分0000:5EFEo 举例来说,假设IPv6前缀是2001‥ODB8:OABC:ODEF::/64, IPv4隧道目的地址是 172.20.20.1,将IPv4地址转换为十六进制形式则为AC14:1401,因而ISATAP地址为: 2001 :ODB8:OABC:ODEF:0000:5EFE‥AC14:1401 在路由器上配置ISAmP隧道的方式与前面讨论过的隧道类型存在少量差异, ISAIAP隧道需要使用不同的隧道模式(ipv6ip isatap) ,而且还必须配置成使用EU1-64 方法生成IPv6地址。隧道接口上的EUI ̄64编址方式与非隧道接口上的EUI-64编址方 式不同,因为此时需要从隧道源接口的IPv4地址生成接口ID的最后32比特。该方法 对于ISAmP隧道来说是必需的,因为该机制可以让其他隧道路由器知道如何到达该 路由器o ISAIAP隧道还有一个非常关键的不同之处,隧道接口默认禁用RA Advertisement,路由器宣告) 动配置。利用no ipv6 nd (Router ,但是必须在ISATAP隧道上启用RA以支持客户端的自 suppress-ra命令即可在ISAIAP隧道上启用RAo GRE隧道 10.2 7. 437 SLAAc与DHCPv6 DHCPv6 (Dynamic Host Configuration Protocol for IPv6 ,用于IPv6的动态主机配 置协议)是一种上层协议,可以实现IPv6地址的动态分配。与IPv4相比, 复杂,也提供了更多的可选项o 以提供SLAAC (Stateless SLAAC定义在RFC 4862 (IPv6 IPv6更加 DHCPv6不但可以提供状态化DHCP服务,而且还可 Address Autoconfiguration,无状态地址自动配置)服务o Stateless Address 要DHCP服务器的服务。在某些情况下, Autoconfiguration)中o SLAAC不需 SLAAC仅包含路由器以及RA消息,但对 于其他场景来说,可能不但需要RA消息,而且还需要从DHCP服务器获待其他配置 参数o SLAAC可以在无DHCP服务的情况下实现动态编址功能0 8. NA「PT 从技术上来说, NAILPT (Network Address Translation三ProtocoI Thanslation,网络 地址转换一协议转换)并不是隧道技术,而是一种互连IPv6与IPv4网络的方法o 定义在RFC2765和RFC2766 (目前已被RFC4966替代)中o 在IPv4任Pv6网络边界执行网关功能, NAILPT NAILPT的工作方式是 NAILPT负责在网络边界实现IPv4与IPv6的转 换操作。该方法允许IPv4主机与IPv6主机进行通信,而不需要在这些主机上运行双 协议栈,反之亦然。 与IPv4的NAT和PAT (超量NAT)非常相似, NAILPT也支持静态和动态转换, 而且还支持端口转换操作0 9. NATALG NAILPT被设计用于网络层通信,负责IPv6到IPv4网络的转换操作o (Application Level ALG Gateway,应用级网关)运行在OSI模型的应用层,而NA+PT则 不检查净荷,因而ALG允许两个不同的网络(一个是IPv6网络,另一个是IPv4网络) 进行应用层通信0 10. NAT64 与隧道相比,网络转换的两大好处是: ■ 服务提供商可以为IPv6 ■ 无缝迁移到IPv60 定义在RFC 6144中的NAT64 1ntemet用户提供透明服务; (Network Address IPv4的网络地址转换)将替代NATLPTo Translation IPv6 Thanslation NAT64)也定义了NAT640 Algorithm)和RFC 6052 IPv4, IPv6到 NAT64与DNS64联合可以允许纯IPv6客户 端与纯IPv4服务器进行通信,此时可以采用手工或静态绑定方式。此外, (Stateful to NAT64执行转换操作时,使用RFC (IPv6 Addressing ofIPv4任Pv6 RFC 6145 6146 (IPACMP Thanslators)定义的 438 第10章 隧道技术 算法在IPv6与IPv4之间执行IP报头转换以及IP地址转换操作o 前缀、 10.2.3 NAT64包含NAT64 NAT64路由器以及DNS64服务器等三个组件0 二层>PN 随着当前高带宽业务及通过IP进行传输的应用的不断增多,再加上旺盛的市场需求, 服务提供商不得不改变以前的惯用做法,其中的一个改变就是大多数服务提供商都开始 部署MPLS VPN以满足带宽需求。需要注意的是,服务提供商可以有两种VPN服务:二 层vPN或三层VPNo本节将主要讨论二层vPN,因为二层VEN不但能够帮助服务提供 商解决高带宽需求,而且还能通过支持IP/MPLS的服务提供商网络为物理上相互隔离的 网络提供“二层”邻接性。该服务(二层vN)为希望管控自已网络的客户提供了可能 性。如果客户希望管理自已的路由协议、 IP网络管理以及QoS机制,那么二层VEN将是 最简单的解决方案,此时服务提供商只要提供高吞吐量的二层连接即可。在很多情况下, 通常都将这类二层VEN连接解决方案称为“伪线(pseudowire)”连接。 以太网PW (PseudoWire,伪线)可以通过MPLS网络传输以太网帧,服务提供 商可以利用该解决方案扩展站点之间的二层邻接性。也就是说,将在链路上运行生成 树,而且通过这些链路连接的设备都将使用相同的子网。通常将这类服务称为仿真服 务(Emulated Service) ,它们都运行在伪线上。除此以外,还要求具备可用的分组标 签交换网络(MPLS网络)。 以太网PW支持两种运行模式:标记模式(tagged mode)和原始模式(raw mode)0 1.标记模式 标记模式中的“标记”指的是802.1Q标记。在伪线场景下,标记对于本地设备以 及端点设备来说具有非常重要的意义。需要指出的是,如果网络边缘的PE Edge,提供商边缘)设备修改了VLAN标识符,那么以太网STP(Spanning 生成树协议)将无法正确运行,这是因为连接两端的AC (Provider Tree (Attachment Protocol, Circuit,接人电 路)要求该标识符必须匹配,链路两端的标识符或VLAN标记必须匹配。标记模式使 用的伪线类型是OxooO40对于每个用户来说,在Pw上发送的每个帧都必须有不同的 VLAN,称为“服务定界”VLAN标记。如果PE从AC收到的帧缺少服务定界VLAN 标记,那么PE将该帧发送到PW上之前必须在该帧前附加一个假的VLAN标记0 2.原始模式 如果伪线工作在原始模式下,那么就可以在帧上添加服务定界标记,也可以不添 加服务定界标记,对于端节点来说都没有什么影响。原始模式使用的伪线类型是 OxOOO50如果以太网PW运行在原始模式下,那么PE就不能通过AC传送服务定界 标记;强制要求在发送帧之前剥离服务定界标记。 10.2 3. GRE隧道 439 L2TPv3 L2TPv3 (Layer 2 Turmeling ProtocoI version 3 ,二层隧道协议版本3)是二层VPN 的扩展功能特性。根据IETF工作组的定义(RFC3931和RFC4719), L2TPv3可以为 L2TP提供多种增强功能,能够通过L2TP隧道化所有二层净荷,这些RFC定义了L2TP 协议利用二层VPN通过IP骨干网隧道化二层净荷的方法o 是1150如果要在Cis∞ L2TPv3使用的IP协议号 IOS设备上配置L2TPv3,那么就必须了解两个非常重要的前 提条件:第一个前提条件是必须利用ip cef或ip cefdistributed命令启用CEF特性; 第二个前提条件是环回接口必须拥有一个有效的IP地址,使待L2TPv3控制信道对端 的远程PE设备能够到达该接口0 4. ATbM 例10-8给出了AIbM (Any Transport over MPLS, MPLS上的任意传输)配置示 例,该例在两个地理上相互隔离的站点之间建立了二层邻接性。 励10 ̄8 A7b∥馏置 We !Firs亡 Will R2(COnfig)# int R2(COnfig-if)# R2 create we d〇 亡he R4(config)# int R4(COnfig-if)# xc〇nneC亡 C〇nfigura亡ion on routers. fO/O xcormect (COnfig-if-XCOnn)# !Now 亡he 4.4.4.4 204 encapsulation mpIs end ma亡Ching c〇nfigura亡ion 亡he on o亡her device. fO/O xconnect R4(COnfig-if-XC〇nn) # 2.2.2.2 204 encapsulati゜n mPIs end 在两台路由器的FO/0接口上配置的xcormect命令可以按照指定的目的地创建桥 接式连接。该命令在关键字xcormect的后面是对等路由器的IP地址以及唯一的VCID (VIrtual L2TPv2、 CircuitID,虚电路ID)。桥接式连接的两端VCID必须匹配,封装方式可以是 L2TPv3或MPLSo需要注意的是,对于每条xcormet来说,每台路由器都必 须有一个唯一的地址。例10-9给出了验证刚刚创建的伪线的方式。 励10 ̄9 R2# 伤线验】臣 show Legend‥ UP=Up, xc゜nneCt XC a11 ST=Xc〇nneC亡 S亡a亡e,Sl=Segmen亡1S亡a亡e,S2=Segment2 DN=Down,AD=Admin XC ST SegmentlSl DN ac FaO/0(E亡herne亡)AD D〇Wn,工A=工nac亡ive,NH=No Segmen亡 MPLS二层伪线有两段: Sl 2 mpIs S亡a亡e Hardware S2 4.4.4.4:204 (Segment l DN ,段1)用于面向客户端的端口; S2(Segment 2,段2)则与骨干网配置相关。从show命令输出结果可以看出,该连接的sl已被管 440 隧道技术 第10章 理性关闭。如果要解决该问题,只要将其余链路的每一端均激活即可(如例10-10所 示),然后可以重复上述验证操作。 澎泻链路并验妨 励10-10 !On all in亡 fO/O no in the configura亡ion bring up 亡he in亡erfaces on 亡he media. shu亡 !Now R4# we will show Legend: UP=Up, XC devices ST verify xconnect XC 亡he peer Segment l AD=Admin SI vcid 2.2.2.2 S亡a亡e, ST=Xconnec亡 DN=D〇Wn, configura亡ion. Sl=Segmentl Down, Segment 2 204 S亡a亡e, |A=|nac亡ive, NH=No S2=Segment2 Sta亡e Hardware S2 一一一一一一十一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一+一一+一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一-+一一 UP ac !The FaO/0(E亡herne亡) S2 !s亡ate 5. section !(ST) of has UP now mpIs been 2.2.2.2‥204 configured UP and verified 亡O be working pr〇Perly wi亡h ac亡ive(ac). >PLs VPLS是一种二层VPN服务,可以通过MPLS网络将地理上相互隔离的LAN网 段互连为单个桥接域o VPLS overGRE可以让VPLS穿越IP网络, VPLS overGRE的 PE路由器必须支持VPLS以及GRE的封装与解封装,同时必须在每台PE路由器上 都配置一个VPLS实例0 6. OT> OTV (Overlay Transport VIrtualization,叠加传输虚拟化)与VPLS相似,不需要 三层VPN用到的MPLS传输以及多播支持。但是与VPLS不同的是, 在CE (CustomerEdge,客户边缘)上,需要在每台CE路由器或交换机上配置OTVo OTV可以通过三层、二层或MPLS网络扩展二层LANo截至本书出版之时, XE OTV通常部署 Software OTVo Release 3.5及以后版本与Cisco NX-OS Release Cis∞ IOS 6.2(2)及以后版本均支持 OTV的一个重要优势在于故障域隔离特性,不会改变生成树的树根。由于每个 CE都有自已的树根,因而服务提供商不需要提供相应的干预或规划操作。此外, OTV 还支持多归属的自动检测以及ARP优化功能0 10.2.4 GET>PN GET (Group Encrypted Thansport,组加密传输) vPN可以对通过非安全网络进行 传输的流量进行加密,利用IPSec协议集来实现数据的完整性和机密性。典型的GET 配置包括被称为KS (Key Server,密钥服务器)的路由器以及若干个被称为GM Member,组成员)的路由器o (Group KS负责创建、维护并向GM发送“策略”,由策略告 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 GRE隧道 10.2 诉GM应该对哪些流量进行加密以及必须采用何种加密算法o 441 RS最重要的概念就是 生成加密密钥。目前使用以下两种密钥。 ■ TEK ■ KEK (ThansportEncryption Key,传输加密密钥) : GM利用该密钥加密数据。 (KeyEncryptionKey,密钥加密密钥):用来在KS与GM之间加密信息o GET的一个重要特性就是不在GM之间建立任何IPSec隧道。与DMVPN不同, 每个GM都有自已的策略(加密哪些流量、使用何种加密算法以及加密算法使用哪个 密钥) ,而且仅对符合指定策略的数据包进行加密,并利用ESP (Encapsulated Payload,封装安全净荷)将加密后的数据包发送到网络上。请注意, Security GM使用原始IP 地址向外路由数据包(称为IP报头保留[IPHeadPreservation]机制) ,因而可以将这些 数据包路由到网络中的每一台路由器(只要路由表中存在相应的路由信息)。 例10-11给出了创建GET 更新)进程使用RSA VPN的初始配置示例。首先, (Rivest, Shamir, 认为3600秒)之前向外发送一个新的TEK andAdelman)密钥o (以及KEK)o 作,该阶段由KS与GM之间建立的ISAKMP ISAKMP利用GDOI (Group 为IKE[Intemet Key Domain of Exchange, 册消息。与IKE使用UDP/500不同, KS需要为Rekey (密钥 KS必须在TEK到期(默 KS在Rekey阶段完成该操 SA进行认证并负责相应的安全性o Intexpretation,组解释域)消息(可以将其视 Intemet密钥交换]的变化形式)构建SA并加密GM注 GDOI使用的是UDP/8480 KS在Rekey进程中认证GM的时候需要使用RSA密钥。 GETVPⅣ铂基本蹬 励10一∥ !Remember 亡ha亡∴to !configured Rl (COnfig)# name for key ip ? The % Genera亡ing doma土n-name the key need mus亡 be to bi亡 SSH you mus亡 modulus lO24 have Hos亡name and D〇main-name Cisc゜.COm is rsa Rl.cisco.com be‥ bi亡S lO24 RSA keys, keys Rl (C〇nfig-isakmp)# on bo亡h 工SAKMP crypt゜ (COnfig-isakmp) SA isakInP will be n〇n-eXPOr亡able... in regular [OK] crypt゜ isakmp crypto isakInP parame亡ers They !profile tells # are par亡 the GM crypto Rl (COnfig) Rl (Cfg-CryP亡〇一亡rans) Rl (ipsec-Profile) # to and secure POlicy GM to be able fur亡her GDOI |PSec 亡O configura亡ion. au亡hen亡ica亡e. This pre-Shared will be used by messages. lo pre-Share exi Rl(C〇nfig)# 工PSec KS enabled jus亡Iike authentication # Rl(COnfig)# !itself. been parama亡ers, specified Rl has l.99 工SAKMP es亡ablish Rl(C〇nfig)# !The keys # we used RSA generate will size lO24 %SSH-5-ENABL丑D‥ Then key keys modulus Rl(config) new rou亡er. crypto Rl(COnfig)# The genera亡e 亡he on mus亡 Of wha亡 key key be GETVPN-R5 address lO.1.25.5 GETVPN-R4 address lO.1.24.4 c〇nfigured p〇licy 亡ha亡 encrypti〇n crypt゜ ipsec KS. be TSET profile These sen亡 algori亡hm 土psec∴transf゜rm-Set # on Will parame亡ers down 亡○ 亡he are GMs. n〇亡 The |PSec use. esp-aeS eSP-Sha-hmac GETVPN-PROF set∴transf゜rm-Set∴TSET 攻城狮论坛(技术+生活)2群 1813097 Ks . 442 隧道技术 第10章 !N〇Wi亡's 亡ime 亡〇 have many groups !may KS COnfigure Rl(ipsec-Profile)# and .T〇 each have need 亡O SPeCify differen亡 The SeCuri亡y Group.One KS policy. GETVPN gdoigr゜uP crypto We tha亡 do groupmay Rl(C〇nfig-gdoi-grouP)#identitynuInberl Rl(C〇nfig-gdoi-gr〇uP)# %CRYPTO-6-GDO| ON OFF‥ serverlocal GDO工is ON 接下来需要指定Rekey参数o ■ Rekey阶段支持以下两种运行方式。 单播Rekey:如果网络基础设施不支持多播(可能是ISP的IPVPN网络不支 持多播),那么KS就要向知道的每一个GM发送一个Rekey包。 ■ 多播Rekey:如果网络基础设施支持多播,那么就可以启用多播Rekey, KS 只要生成一个Rekey包并同时向所有GM发送一次Rekey包即可。 例10-12给出了指定Rekey参数的配置示例。 Rekey参数 励10 ̄12 Rl(gdoi-1〇Ca1-SerVer)# rekeyauthenticationmypubkeyrsa Rl(gdoi-local-SerVer)# rekey retransmitlo Rl(gdoi-local-SerVer)# rekey transp゜rt !By defaul亡 GM every can !valid Certifica亡ein !gr〇uP On !named GM-L|ST. need KS,you Rl〈gdoi-loca1-SerVer)# 亡O regis亡er case to of specify a Rl.cisco.com 2 unicast KS PK工).To nuInber asIong as au亡h〇rize it GMs has 亡〇 correc亡 be s亡andardACLwithGM's auth゜rizati゜n∴addressipv4 able 工P PSK 亡〇 configured(Or regis亡erin 亡his addresses.OurACLis GM-LIsT 接下来需要为GM配置策略。可以利用前面配置的IPSec配置简档来创建加密策 略。为了告诉GM应该加密哪些数据包,需要配置ACL (此处用到的是扩展ACL)。 本例配置的ACL名为LAN-LISTo为了实现基于时间的反重放攻击保护,还可以指定 窗口大小。最后一个非常重要的参数就是RS的IP地址。由于KS可以运行在不同的 IP地址(如环回地址)之上,因而必须将该参数向下发送给GMo 例10-13给出了GETVPN策略的配置示例。 励10-13 GETⅥw策够 Rl(gdoi-10Cal-SerVer)# sa Rl (gd〇i-Sa-ipsec) # profile Rl (gd〇i-Sa-ipsec) # match replay Rl(gd〇i-Sa-ipsec)# address (gdoi-10Cal-Server) ipv4 exi Rl (COnfig-gdoi-grouP) exi Rl (con王ig) 64 10.1.12.1 # Gr〇uP access-1ist∴standard GETVPN GM-LIST Rl(c〇nfig-Std-naCl〉# perm土t lO.1.25.5 Rl(COnfig-S亡d-naCl)# permit lO.1.24.4 Rl exi (config-S亡d-naCl〉# LAN-L±ST wind゜W-Size # Rl(gdoi-10Cal-SerVer)# ip ipv4 counter %GDO工一5-KS_REK耳Y_TRANS_2_UN工: # I GETVPN-PROF address Rl(gdoi-Sa-ipsec)# Rl ipsec transi亡i〇ned t〇 Unicas亡 Rekey. GRE隧道 10.2 !Here's our tha亡WemuS亡 "policyACL¨.N〇亡e 亡hereis !as much no亡 sense excludeGDOI(UDP/848)fr〇m亡hisp〇licy already S〇mething enCryPt encrypted. LAN-LIST extended access-1ist Rl(C〇nfig)#ip 亡〇 443 anyeq anyeq 848 Rl(COnfig-eX亡一naCl)# denyudp Rl(COnfig-eX亡-naCl)# permitip192.168.0.0 Rl(c〇nfig-eXt-naCl)# ex| 848 0.0.255.255192.168●0●0 0●0●255.255 接下来配置GMo需要在每个GM上按照例10-14所示的方式进行相应的配置操作。 G∥乾置 励10-14 R5(C〇nfig)# crypt゜ R5 (C〇nfig-isakmp) # R5 (C〇nfig-isakmp)# isakmp crypt゜ isakmp R5 crypto gdoi R5 # (C〇nfig-gdoi-grouP) key # R5 exi (c〇nfig-gdoi-gr〇uP) ACL is are !here, We opti〇na1. s〇me Were (COnfig) # 1n aSked for number address general Si亡ua亡ions lO.1.12.1 when we we excluding l ipv4 10.1.12.1 sh〇uld need SSH 亡〇 c〇nfigure eXClude 亡raffic our s〇me be亡Ween p〇licy flows on from KS only, but encryp亡i〇n. Like 192.168.4.0/24 AND 22 0●0●0●255 ne亡W〇rks. !192.168.5.0/24 R5 # address GETVPN identity server !亡here Pre-Share GETVPN-R5 group R5(C〇nfig-gd〇i-gr〇uP)# !This lo exI R5(c〇nfig)# (C〇nfig) policy authenticati゜n ip access-1ist extended DO-NOT-ENCRYPT 192●168.5.0 R5(C〇nfig-eXt-naCl)# deny tcp 192.168.4.0 0.0.0.255 eq R5(C〇nfig-eX亡一naCl)# deny tcp 192.168.5.0 0.0.0.255 192.168.4.0 0●0●0.255 eq 22 R5(config-eX亡一naCl)# deny tcp 192.168.4.0 0.0.0.255 192.168.5●0 0.0●0.255 eq 22 R5(c〇nfig-eX亡一naCl)# deny tcp 192.168.5.0 0.0.0.255 eq R5 (C〇nfig-eX亡一naCl)# ex| R5 (c〇nfig)# NOTE: % gr〇uP crypt゜ This has new been maP CRAP-GE『VPN cryp亡〇 maP remain 0.0.0.255 gr゜uP GETVPN disabled un亡il a valid configured. (COnfig-CryP亡〇一maP) # set R5 (C〇nfig-CryPt〇-maP) # match R5 (COnfig-CryP亡〇-maP) # exi R5 192.168.4●0 gdoi Will R5 R5(C〇nfig)# lo 22 address DO-NOT-ENCRYPT int∴sO/1/0.52 (C〇nfig-Subif) # R5(C〇nfig-Subi壬)# crypto map CRAP-GETVPN exI R5(C〇nfig)# %CRYPTO-5-GM_REGST且R‥ S亡ar亡 registra亡ion 亡O KS lO.1.12.1 f〇r gr〇uP GETVPN using addr lO.1.25.5 R5(C〇nfig)# %CRYPTO-6-GDOI_ON_OFF: GDO工is ON R5(C〇nfig)# ?GDO1-5-GM_REKEY_TRANS_2_UNI %GDO|一5-GM_REGS_COMPL: address !See Gr〇uP GETVPN 亡O Ks transiti〇ned lO.1.12.1 亡〇 Unicas亡 c〇mPle亡e f〇r KS SYSLOG and messages. regis亡ered They indicate 亡hat GM has s亡ar亡ed Rl# 验驴GETVPⅣ sh crypto Gr〇uPName Group GETVPN regis亡ra亡i〇n successfully. 最后,可以验证上述GETVPN的配置情况(如例10-15所示)。 励10-15 Rekey. gr〇uP using lO.1.25.5 above !wi亡h : Registra亡i〇n |den亡i亡y gd゜igroup ‥ GETVPN G且TVPN(Unicast) ‥1 Pr〇CeSS 444 隧道技术 第10章 : Group Members 工PSec SA Direc亡ion Ac亡ive Rekey Group Rekey Remaining Bo亡h Server : L〇Cal Life亡ime : 86400 secs : 86361 secs Gr〇uP Group 2 ‥ Life亡ime Rekey Retransmi亡 Peri〇d Rekey Re亡ransmi亡 Attemp亡S Gr〇uP Re亡ransmit Remaining |PSec SA Number IPSec SA Rekey Pr〇file me亡h〇d Window O ‥ Life亡ime secs 1 3600 ‥ Size secs secs GETVPN-PR〇F : Coun亡 : 64 ‥ 3562 Based Rekey Remaining ACL Lifetime : C〇nfigured Group Server Rl# sh Key Server F〇r grouP of GETVPN : POL|CY SP| : CryP亡〇 1 (handle‥ Seq num iv alg hash : : key POL|CY name size life(SeC) Rl# sh Group crypto C〇nfigured remaining enabled ACL sig : 3600 elapsed亡ime(SeC) ks Member |D |D ks sen亡 : ‥ : |D sen亡 Rekeys ‥ re亡ries Acks Rcvd Acks missed ‥ udp any life(SeC) 亡he 亡ells GMs gr〇uP 10.1.12.1 O O O Seq num ‥ 0 0 0 0 Rcvd seq num ‥ 0 0 0 0 Member |D : wha亡 GETVPN GETVPN : 848 ‥ : 20 3556 44 10.1.25.5 ‥ any 1 = p〇r亡 0.0.255.255 亡raffic : f〇r 1 O = members 10.1.24.4 : por亡 192.168.0.0 Sen亡 Gr〇uP : size acI |nforma亡i〇n ‥ Server Rekeys key GETVPN which rekeys Name LAN-L工ST remaining gdoi crypt゜ Gr〇uP ‥ ACL‥ 亡he Group 162 EsP_AES 3600 : Member Gr〇uP : 16 permi亡IP of access-1is亡 ‥ deny Number ‥ leng亡h HMAC_AUTH_SHA LAN-L工ST sh 86355 life(sec)‥ key 24 ‥ ‥ LAN-L|ST Group sig 3DES ‥ 亡ransform 0 access-1is亡 Rekey 2147483650)‥ ENCAPS_TUNNEL) access-1is亡 !Here's alg size : gd゜i Name encryp亡 OxAF4FA6F8 ‥ alg key Rekey (handle: Rl.micr〇nics亡raining.c〇m ‥ transforms life(SeC) Key lO.1.12.1 Unicas亡) key : ‥ tek Rl# server 128 ‥ (encaps SPi 0rig : 86400 : Sig alg 亡ype 8 algori亡hm TEK hmac 2147483650) O disabled ‥ leng亡h Size of ‥ (亡ransp〇r亡 life(SeC) Sig p゜1icy Ox76749A6D99B3COA3827FA26F1558ED63 managemen亡 S|g ks LAN-L|ST L〇Cal ‥ gd゜i secs aCCeSS-1is亡 P〇licy‥ teks 0rig lis亡 crypto KEK # 2 : Replay # ‥ : Name Replay SA 10 Life亡ime ‥ 亡hey 848 192.168.O.0 sh〇uld 0.0.255.255 encryp亡. 10.3 Group |D 1 Group Name GETVPN Key Server sen亡 Rekeys re亡ries Rekey Acks RekeyAcks . 0 0 Rcvd missed 445 10.1.12.1 |D Rekeys 理解与记忆 0 ‥ 0 Sen亡 Seq num 0 0 0 0 Rcvd seq num 0 0 0 0 备考任务 表10-4列出了与本章相关的主要协议以及相应的标准文档信息。 第10章的协议与标准 表10-4 10.3 GenericRoutingEncapsulation RFc2784 NHRP(Next-HopResolutionProtocol) RFc2332 BasicTransitionMechanismsforlPv6HostsandR゜uterS RFc4213 TheGroupDomainoflnterpretation RFc3547 Layer2VirtualPrivateNetwork(L2>PN) RFc6136 Layer2TunnelProtocoIversion3 RFc3931和RFC4719 旧v6StatelessAddressAutoconfiguration RFc4862 StatefulNAT64:NetworkAddressandProtocoITransIation RFc6146 FrameworkforlPv4/lPv6Translation RFc6144 理解与记忆 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试 主题,因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的广泛 的考试主题内容0 10.3.1定义关键术语 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: GRE、 ISATAP、 6to4、 NHRP、密钥服务器、组成员、 L2VPN、 IPSec配置简档、 AtoM、标记模式、原始模式、 TEK、 DMVPN、 GDOI、 KEK、单播Rekey、多播Rekey 本章主要讨论以下主题: ■ 部署MPLS ( MultiprotocoI LabeI Switching,多协 议标签交换)三层>PN; ■ 部署MPLS; ■ 在PE、 ■ 部署VRF P以及CE路由器上部署MPLSVPN; (Vi山al Routing and 路由和转发); ■ 部署Mu怕->RFCE (VRFLite)。 Forvarding,虚拟 第11章 MPLS MPLS不但是许多SP (Service Provider,服务提供商)网络的重要组成部分,而 且在企业网(特别是大型企业网)中的部署情况也日益普及。本章将讨论与MPLS相 关的重要概念,特别是MPLS在单播IP转发中的应用以及MPLS ll.1 ″我已经知道了吗? VPNo ″测试题 表11-1列出了本章的墓本主题以及与之相应的测试题。 “我已经知道了吗? 表11-1 / ”基本主题与测试题对照表 、 ′ MPLs单播IP转发 1-4 MPLSVPN 5~9 其他MPLS应用 10 VRFLite 11 得分 为了提高每章前面的测试评价效果,请务必严格评分。参考答案请参见附录Ao l.假设为简单的单播IP转发配置了基于帧的MPLS网络,网络中有四台路由器,分别 为Rl、 R2、 都有直达链路o R3和R40这些路由器之间采用全网状连接方式,任意两台路由器之间 Rl通过LDP将前缀1.1.1.0/24及标签30宣告给了其他三台路由器, 如果R2需要利用LDP将1.1.1.0/24的标签宣告给Rl,那么必须满足什么条件? a. R2必须有去往1.1.1.0/24的路由 b.根据水平分割规则, R2不会向Rl宣告标签 c. R2在学到去往1.1.1.0/24的路由之前可以将标签宣告给Rl d. R2在宣告标签之前必须利用MP-BGP学到去往1.1.1.0/24的路由 2.假设为单播IP转发配置了基于帧的MPLS网络, LSR Rl收到了一个带标签的数 据包且标签值为55,那么下面哪一项是正确的? a. Rl做出转发决策的方式是将该数据包与FIB中找到的IPv4前缀进行对比 攻城狮论坛 448 bbs.vlan5.com 第11章 #^_^# 版权归原作者所有 本资料仅供试读 MPLs b. Rl做出转发决策的方式是将该数据包与LFIB中找到的IPv4前缀进行对比 C. Rl做出转发决策的方式是将该数据包与FIB中找到的MPLS标签进行对比 d. Rl做出转发决策的方式是将该数据包与LFIB中找到的MPLS标签进行对比 3.假设Rl、 R2和R3都是MPLSLSR,均使用LDP并连接到同一个LAN中,且这 三台LSR都不宣告传输IP地址,那么有关LDP操作的描述,哪一项是正确的? a. LSR通过发送给IP地址224.0.0.20的LDPHello消息发现其他两台路由器 b.在宣告MPLS标签之前,每对LSR之间都要建立一条TCP连接 c.这三台LSR必须为所有的LDPTCP连接都使用自已的LAN接口IP地址 d. LDPHello消息使用端日646, TCP连接使用端口721 4.假设为简单的单播IP转发配置了基于帧的MPLS网络,并且为所有流量均启用了 MPLS TTL传播特性,那么下面哪一项是正确的? a.从MPLS网络外部发起的traceroute命令将列出MPLS网络内部的LSR的IP 地址 b.从MPLS网络外部发起的traceroute命令将无法列出MPLS网络内部的LSR的皿 地址 c.对于从MPLS网络外部进人MPLS网络的携带TCP报头的IP包来说,不会将 其IPTTL字段复制到MPLS 5. TTL字段中 1CMP回应消息在从MPLS网络外部发送到MPLS网络中时,会将其IP 复制到MPLS TTL字段中,那么下面哪一项是BGPNLRT字段的扩展? a. vRF b. RD (RouteDistinguisher,路由鉴别符) c. RT (RouteTdrget,路由目标) d. BGP扩展团体(Extended 6. TTL字段 Community) PE在收到其他PE发送来的IBGP更新之后,由下面哪一项控制将这些路由添加到 哪个vRF中? a. RD b. RT c. d. IGP度量 AS路径长度 7.如果部署了MPLS VPN的互连网络中的人站PE路由器收到了一个无标签数据包, 那么下面哪一项是正确的? a.该路由器会添加单个MPLS报头 b.该路由器会添加两个MPLS报头 c.该路由器会(至少)添加一个VPN标签,中间P路由器将使用该标签 攻城狮论坛(技术+生活)2群 1813097 . 11.1 “我已经知道了吗? ”测试题 449 d.该路由器会利用FIB和LFIB找到所需的所有标签,并将这些标签添加到IP报 头之前 8.假设支持MPLS VPN的互连网络使用了PHP,人站PE收到一个无标签数据包之 后,需要为该数据包添加正确的标签,然后再发送到MPLS网络中。那么下面有 关该数据包的描述,哪些是正确的? a.该数据包中的MPLS标签数仅在数据包到达出站PE路由器之后才会发生变化, 此时将提取整个MPLS报头 b.该数据包中的MPLS标签数在数据包到达出站PE路由器之前就会出现变化 c.与未部署PHP相比,部署了PHP特性之后的出站PE的操作方式有所不同 d.以上答案均不正确 9.假设PE ̄CE间的路由协议不是BGP,那么下面有关MPLS VPNPEBGP典型配置 的描述哪一项是正确的? a.每个VRF都有一条addressrfumily vpnv4 b.每个vRF都有一条addressrfumily ipv4 c.至少要有一条BGP子命令列出每个VRF的出口RT值 d.必须在VPNv4地址簇下利用neighbor 10.使用MPLS a. VPN时,下列哪些项可以定义哪些数据包属于同一个MPLS FEC? IPv4前缀 b. TbS字节 C. MPLSVRF d. activate命令启用到其他PE的对等连接 TE隧道 11.下面有关vRF Lite (Multi-VRF CE)特性的描述哪些是正确的? a.在三层提供逻辑隔离 b.需要使用LDP或TDP c.使用vRF,但是需要静态路由 d.仅当CE路由器有链路去往MPLSVPN中的PE时,才能在这些CE路由器上 使用该特性 e.通过创建多个vRF,从而在路由器上创建相互隔离的路由表实例 墓本主题 MPLS定义的协议为路由器创建了不同的数据包转发方式o MPLS不再基于数据 包的目的IP地址转发数据包,而是墓于MPLS标签转发数据包。由于MPLS的转发 450 第11章 MPLs 决策不再基于目的IP地址,因而可以基于其他要素(如流量工程、 QoS需求以及连接 到相同MPLS网络的多个客户的隐私需求)做出转发决策,同时仍然考虑从路由协议 学到的其他传统信息o MPLS有很多应用,每种应用都考虑一种或多种可能影响MPLS转发决策的要素。 不过,从CCIE路由和交换笔试的角度出发,本书将主要讨论以下两种应用: ■ MPLS单播IP; ■ MPLSVPNo 此外,本章还将简要介绍一些其他MPLS应用以及VRF Lite (Multi-VRF CE)特 性。与往前一样,请大家经常查看www.ciscopress.com/title/9781587144912 ,从而知道 是否需要进一步学习其他MPLS主题知识。 11.2 MPLs单播IP转发 MPLS可用于简单的单播IP转发。对于MPLS单播IP转发来说, MPLS转发逻 辑将根据标签转发数据包,但是在选择向外转发数据包的接口时,由于MPLS仅考虑 单播IP路由表中的路由,因而使用MPLS的最终结果就是数据包将流经与不使用 MPLS时完全相同的路径,但其他要素保持不变。 虽然MPLS单播IP转发本身并没有什么特别重大的优势,但是很多有用的MPLS 应用(如MPLS VPN以及MPLS TE[Tra雕c Engineering,流量工程])都将MPLS单播 IP转发用作MPLS网络的一部分,因此,为了更好地理解并部署MPLS,必须掌握 MPLS最基本的形式: MPLS单播IP转发o MPLS需要使用控制平面协议(如OSPF和LDP[Label Distribution Protocol,标签 分发协议])来学习标签并将这些标签与特定目的前缀关联起来,同时还要构建正确的 转发表。此外, MPLS还要更改数据面的核心转发逻辑。本节将首先讨论定义包转发 逻辑的数据平面,然后再讨论控制平面协议(特别是LDP) , MPLS将利用控制平面协 议为单播IP前缀交换标签0 11.2.1 MPLSIP转发:数据平面 虽然MPLS定义了一套完全不同的包转发逻辑,但是由于主机不(也应该不)发 送和接收捞带标签的数据包,因而需要由特定的路由器为数据包添加标签并由其他路 由器去除该标签o MPLS路由器(即根据标签注人[压人]、去除[弹出]或转发数据包的 路由器)使用的是MPLS转发逻辑。 11.2 MPLS依赖CEF (Cisco Express Forwarding, MPLS单播IP转发 451 Cisco快速转发)的底层数据结构与 逻辑,同时也对这些逻辑及数据结构进行了一定的扩展。下面将首先介绍CEF,然后 再讨论一种被称为MPLS LFIB (Lhoel Forwarding Information Base,标签转发信息库) 的新数据结构0 1. cEF概述 路由器的单播IP转发控制平面利用路由协议、静态路由以及直连路由来创建ⅢB (Routing Information 还将执行进一步地处理操作,即创建CEF Base,路由信息库)。启用了CEF之后,路由器的控制平面进程 FIB (Forwarding Information 息库)并为路由表中的每一个目的IP前缀都添加一条FIB表项o 所需的详细信息:下一跳路由器以及出站接口。以外, Base,转发信 FIB表项提供了转发 CEF邻接表(adiacencytal)1e) 还列出了新的数据链路层报头,路由器在转发数据包之前将该报头复制到数据包之前。 对于数据平面来说, CEF路由器将数据包的目的IP地址与CEF FIB进行对比, 而忽略IP路由表。由于CEF优化了FIB的组织方式,因而路由器只要花费非常短的 时间即可找到正确的FIB表项,因而转发延迟更短,每秒钟能够通过路由器的数据包 数量也更大。对于每个数据包来说,路由器需要首先找到匹配的FIB表项,然后再找 到该匹配FIB表项所关联的邻接表项,最后再转发数据包。整个处理过程如图11-1 所示。 路由器 图11-1 1P路由表与cEFFIB(无MPLS) 了解了上述背景知识之后,接下来将讨论MPLS如何利用标签玫变整个转发 进程。 452 第11章 MPLs 2. MPLS单播IP转发概述 MPLS转发逻辑假设主机生成的数据包不捞带MPLS标签,因而需要由专门的路 由器添加MPLS标签,然后再由其他路由器根据该标签转发该数据包,最后再由其他 路由器去除该标签,最终结果就是主机感知不到MPLS网络的存在。为了更好地解释 上述转发过程,图11-2显示了利用MPLS转发数据包的详细步骤。 ② ⑤ ③ 正+→ 由啤]篱 ̄翰 ̄霞 G疆 '⁝i 匿署 疆立 1 图11-2 ⑥[T 正工→ 0.3.3.3 MPLS转发(端到端) 从图11-2可以看出, MPLS转发过程如下。 第1步:主机A生成一个无标签数据包并将其发送给地址为10.3.3.3的目的 主机。 第2步:路由器CEl (未配置MPLS)按照常规方式(无任何标签)根据目的IP 地址转发该无标签数据包(路由器CEl可以使用CEF,也可以不使用CEF)。 第3步: MPLS路由器PEl收到该无标签数据包之后,决定(属于MPLS转发过 程的一部分)给该数据包添加一个新标签(标签值为22)并转发该数据包。 第4步: MPLS路由器Pl收到该有标签数据包之后,将该数据包的标签值替换为 一个新标签(标签值为39),然后再转发该数据包。 第5步: MPLS路由器PE2收到该有标签数据包之后,去除(弹出)该标签,然 后再将数据包转发给CE20 第6步‥ 非MPLS的路由器CE2按照常规方式根据目的IP地址转发数据包(路 由器CE2可以使用CEF,也可以不使用CEF)。 图11-2中的步骤显示了一个较为简单的MPLS转发过程,同时也引出了一些重要 术语。术语LSR (Label Switch 的路由器,如图11-2中的路由器PEl、 Router,标签交换路由器)指的是能够感知MPLS标签 Pl以及PE20表11-2列出了术语LSR的多种 变化形式,同时还给出了相应的注释信息。 11.2 MPLs 表11-2 MPLS单播IP转发 453 LSR术语参考 LsR 将标签压入数据包、从数据包中弹出标签或者只是简单转发有标签数据色的路由器 E ̄LsR(EdgeLSR,边缘LSR) 位于MPLS网络边缘的LSR,该路由器将同时处理有标签数据包和无标签数据句 对于特定数据包来说,该躇由器指的是收到无标签数据色之后在IP报头之前插 入站E-LSR 入标签栈的蹿由器 对于特定数据色来说,该路由器指的是收到有标签数据色之后去除所有MPLS 出站E-LSR 标签并转发无标签数据包的路由器 在控制平面中运行MPLS协议以建立ATM虚电路的LSR,将有标签数据色按照 ATM-LSR ATM信元进行转发 指的是还要执行ATMSAR(SegmentationandReassembly,分段重组)功能 ATME-LsR 的边缘LsR 3.利用FIB及LFIB进行MPLS转发 为了按照图11-2所示的方式转发数据包, CEF FIB和MPLS LFIBo LSR在转发数据包的时候必须同时使用 FIB和LFIB都包含了必需的标签信息以及出站接口及下一 跳信息o FIB和LFIB在使用方式上有所不同,路由器使用一张表来转发人站无标签数据 包,使用另一张表来转达人站有标签数据包,具体如下。 ■ FIB:用于人站无标签数据包, Cis∞IOS将数据包的目的IP地址匹配到FIB 中的最佳前缀,并根据FIB表项转发数据包。 ■ LFIB:用于人站有标签数据包, Cis∞IOS将人站数据包中的标签与LFIB中 的标签列表进行对比,并根据LFIB表项转发数据包。 图11-3给出了图11-2中的三台LSR使用各自FIB及LFIB的方式。请注意,虽 然每台LSR都有FIB和LFIB,但是图11-3仅显示了使用FIB转发数据包的LSR上的 FIB以及使用LFIB转发数据包的两台LSR上的LFIBo 前缀 10.3.3.O/24 操作 出标签 出接口 压入 22 粥裴↑ 正l→ _ 图11 ̄3 SO/0/1 入标签 22 操作 交换 出标签出接口 39 ヽ [重工申一→ 利用cEFFIB和MPLSLFIB转发数据包 SO/1/O 前缀 39 操作 Pop 出标签 出接口 N/A FaO/1 454 第11章 MPLs 图11-3显示了FIB和LFIB的使用方式。 ■ PEl:无标签数据包到达PEl之后, PEl使用FIB转发数据包o pEl找到与该 数据包目的地址10.3.3.1相匹配的FIB表项,也就是本例中的表项10.3.3.0/240 FIB表项中包含了将正确的MPLS标签放到数据包前部的相关信息。 ■ Pl:由于Pl收到的是有标签数据包,因而Pl使用LFIB转发数据包,在LFIB 中找到标签值22,该表项要求Pl将标签值交换为390 ■ PE2:由于PE2收到的也是有标签数据包,因而PE2也使用LFIB转发数据 包。匹配的LFIB表项列出的是弹出操作,因而PE2去除该标签并将无标签 数据包转发给CE20 需要注意的是,本例中的Pl和PE2在转发过程中一直未检查数据包的目的IP地 址。由于该转发过程不依赖目的IP地址,因而MPLS能够基于目的IP地址之外的其 他信息执行转发操作。例如,根据数据包来自的vPN进行转发、利用流量工程实现流 量的均衡转发,以及根据QoS目标经不同链路进行转发等0 4. MPLS报头与标签 MPLS报头的长度为4个字节,位于IP报头之前。有时很多人都将MPLS报头简 称为MPLS标签,但标签实质上只是MPLS报头中的一个20比特字段。有时也可能 会看到有人将MPLS报头称为MPLS垫层报头(shim header)。图11-4给出了MPLS 报头的完整信息,表11-3则定义了MPLS报头的各个字段信息0 20 图11-4 3 1 8 MPLS报头 表11-3 MPLS报头字段 ー 标签 20 用于标识LSP(LabelSwitchedPath,标签交换路径) EXP(Experimental,试验) 3 用于Qos标记,该字段不再用作真正的试验用途 S(B゜ttom一゜fLStack,栈底) 1 标记,值为1时表示该标签是紧挨在IP报头之前的标签 TTL(Time-tO-Live,生存时问) 8 与IP报头中的TTL字段的作用相同 对于MPLS报头的四个字段来说,前两个字段(标签及EXP)大家都应该比较熟 悉了0 20比特标签字段在show命令中通常显示为十进制数值,而MPLS EXP比特则 可以用作QoS标记,此时可以利用第3章中描述的CB标记特性设置该QoS标记。只 有了解了MPLS VPN的工作过程,才能真正理解S比特的作用。不过简而言之,如果 数据包拥有多个MPLS报头,那么LSR就可以通过S比特知道IP报头之前的最后的一 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 11.2 个MPLS报头。最后, 5. 本资料仅供试读 MPLS单播IP转发 455 TTL字段还将在后面做进一步分析(如下节所述)0 MPLsTTL字段与MPLSTTL传播 IP报头中的TTL字段支持两种重要的功能特性:标识环回数据包的机制以及利用 traceroute命令发现特定端到端路由上的每台路由器的IP地址的方法o MPLS报头中 的TTL字段可以实现相同的功能特性。事实上,对于与TTL相关的进程来说,如果 使用默认设置,那么网络中有无MPLS LSR对最终结果都没有任何影响o MPLS需要TTL字段,这样就可以在转发IP包时完全忽略被封装的IP报头。从 本质上来说,数据包在MPLS网络中进行转发时, 不是IP E-LSR、 ■ LSR递减的是MPLS TTL字段,而 TTL字段。为了保证整个过程的正常运行,可以采用默认设置,此时人站 LSR以及出站E-LSR的工作方式如下。 入站E-LSR:人站E-LSR递减了IP 一个标签,然后再将该数据包的IP TTL字段之后,会给无标签数据包添加 TTL字段复制到新的MPLS报头的TTL 字段中。 ■ LSR‥ LSR交换标签的时候,路由器会递减MPLS报头中的TTL字段,并且 始终忽略IP报头中的TTL字段。 ■ 出站E-LSR:出站E-LSR递减了MPLS TTL字段之后,会弹出最后一个MPLS 报头,然后再将MPLSTTL字段复制到IP报头的TTL字段中。 在例11-5所示的案例中,到达PEl的数据包是无标签数据包且IP TTL为40 图 中的编号列出了上述三种LSR角色的主要操作情况。 ∴∴∵∵∴∴ 一霞事一禹事一事翰一霞囊 图11-5 MPLSTTL传播示例 术语MPLS TTL传播(TTLpropagation)指的就是上图中的组合逻辑。实际上, MPLS路由器在MPLS网络中传播相同的TTL值(如果根本就没有使用MPLS,那么 就会出现TTL值相同的情况)。如果数据包真的存在环路问题,那么其TTL将最终被 递减至0,从而被丢弃。此外, traCeroute命令将收到图中所有路由器(包括LSR)发 送的ICMP超时消息。 攻城狮论坛(技术+生活)2群 1813097 . 456 第11章 MPLs 不过很多工程师都不希望MPLS网络之外的主机能够通过traceroute命令了解 MPLS网络的内部情况o SP通常都会部署MPLS网络以创建三层WAN服务,而且SP 的客户都位于MPLS网络的外部。如果SP的客户能够发现MPLSLSR的IP地址,那 么就会给那些仅希望看到客户路由器的用户带来麻烦,并且会给SP带来安全隐患。 可以配置αsco路由器以禁用MPLS TTL传播特性。禁用该特性之后,人站E-LSR 会将MPLS报头的TTL字段设置为255,出站E-LSR则保持原始IP报头的TTL字段 不变。此时从TTL的角度来看,整个MPLS网络就像单个路由器跳一样,而且客户发 起的traceroute命令也无法看到MPLS网络中的路由器。图11 ̄6与图11-5相似,区 ①早需 别在于此时已经禁用了MPLS TTL传播特性。 一禹事一禹窜一辜蓖一霞窍 图11-6 禁用MPLSTTL传播特性示例 αsco支持为两类数据包禁用MPLS 对客户转发的数据包禁用MPLS MPLS TTL传播特性。大多数MPLS TTL传播特性,而对SP路由器生成的数据包启用 TTL传播特性。以图11-5为例, traceroute命令, SP都可能希望 SP工程师可能登录了路由器PEl并运行了 PEl将为本地生成的数据包使用TTL传播特性,从而可以在PEl上 运行traceroute命令以列出MPLS网络中的所有路由器。同时PEl还将为“转发的”数 据包(即来自客户的数据包)禁用TTL传播特性,以防止客户学到MPLS网络中的路 由器的IP地址(命令为no 11.2.2 mpIs ip propagate-ttl)。 MPLSIP转发:控制平面 对于使用FIB的纯IP路由来说,路由器必须使用控制平面协议(如路由协议), 首先安装IP路由表,然后再安装CEFFIBo与此相似,对于MPLS转发来说, MPLS 也要依赖控制平面协议来学习应该使用哪个MPLS标签到达每个IP前缀,然后再以正 确的标签安装FIB和LFIBo 11.2 MPLs单播IP转发 457 MPLS支持多种控制平面协议。网络工程师在选择使用何种控制平面协议时,主 要取决于所使用的MPLS应用,而不是墓于每种控制平面协议的功能特性对比。例如, MPLS VPN使用两种控制平面协议: LDP和MP-BGP (MultiProtocoI BGP,多协议 BGP)。 虽然有些MPLS应用可以使用多种控制平面协议,但MPLS单播IP转发应用使 用的却是IGP以及与MPLS相关的控制平面协议: LDPo 由于本节主要讨论单播IP 转发,因而后面将讨论利用LDP进行标签分发的详细信息。 1. MPLSLDP基础 对于单播IP路由来说, 为此, LDP只是简单地宣告IP路由表中列出的每个前缀的标签。 LSR需要利用LDP向邻居发送消息,并在消息中列出IP前缀以及相对应的标 签。从本质上来说, LSR宣告IP前缀与标签就是在表达“如果希望向该IP前缀发送 数据包,那么只要将数据包发送给LDP更新消息中列出的MPLS标签即可。” LDP宣告操作是由IP路由表中出现的新IP路由触发的。学到新路由之后, LSR 会分配一个被称为本地标签的标签。对于LSR来说,本地标签指的就是用来表示刚刚 添加到IP路由表中的IP前缀的标签。为了更好地解释该概念,下面将以图11-7为例 加以说明。图11 ̄7给出的MPLS网络比本章前面介绍过的网络稍微复杂一些,显示的 是LSR (PE2)在学到新路由(10.3.3.0/24)之后执行的基本操作过程,触发了利用 LDP宣告新本地标签(39)的进程。 一L÷ 墅 蜀蕾i 1 图11-7 新单播IP路由触发的LDP进程 0.3.3.O/24 458 第11章 MPLs 从上图可以看出, PE2上的LDP进程分为以下三个步骤。 第1步: PE2学到一条新单播IP路由,该路由出现在IP路由表中。 第2步: PE2分配一条新本地标签,该本地标签不是LSR当前宣告的标签。 第3步: PE2利用LDP向所有的LDP邻居宣告该IP前缀与标签的映射关系。 虽然上述进程很简单,但需要注意的是, 值的有标签数据包。以图11-7为例, 包o PE2此时必须能够处理携带新本地标签 PE2必须能够转发接收到的携带标签39的数据 PE2将以相同的下一跳和出站接口信息(通过图中第1步IGP更新学到的信息) 转发数据包。 虽然看起来很有意思,但图11-7仅显示了整个LSP (Label 交换路径)中的一段的映射信息宣告过程,而完整的MPLS Switched Path,标签 LSP则是将数据包正确转 发到目的地的一组标签集合。例如,图11-2和11-3显示的是标签值为22和39的一 条短LSP,去往子网10.3.3.0/24的数据包都通过该LSP进行传送,而图11 ̄7仅显示 了LSP的一部分(或一段)的宣告情况。 MPLS网络中的路由器必须使用某种IP路由协议学习IP路由以触发宣告标签的 LDP进程。对于MPLS单播IP路由来说,通常使用IGP (Interior Gateway Protocol, 内部网关协议)来学习所有的IP路由,并触发宣告相应标签的LDP进程。例如, 图11-8以图11-7为基础, PE2利用EIGRP宣告了10.3.3.0/24的路由,从而触发其他 路由器使用LDP来宣告标签。 图11-8的处理过程如下(图中的步骤编号均以图11-7为基础)。 第4步: PE2使用EIGRP向Pl和P2宣告10.3.3.0/24的路由。 第5步: Pl响应该新学到的路由的方式是分配一个新本地标签(22)并利用LDP 宣告新前缀(10.3.3.0/24)与标签(22)之间的映射关系。请注意, Pl将该标签宣告 给了所有邻居。 第6步‥ P2响应该新学到的路由的方式是分配一个新本地标签(86)并利用LDP 宣告新前缀(10.3.3.0/24)与标签(86)之间的映射关系,同时P2将该标签宣告给了 所有邻居。 每台LSR都要重复上述相同进程。对于LSR路由表中的每条路由来说, LSR每 学到一条新路由,就会分配一个新的本地标签并向邻居宣告该标签与前缀的映射信息, 即便有时很明显宣告标签并没有什么作用。例如,图11-8中的P2将10.3.3.0/24的标 签宣告给了PE2,虽然该操作完全没用,但帧模式的MPLS LSR就得这么做。 MPLs单播IP转发 11.2 459 霞 一」率 ‘④ 矗 lGP更新‥ 去往1 0.3.3.0/24的路由 第6步的LDP更新‥ 1 0.3.3.0/24 我已经不使用标签86了 一宣告标签86及路由 1 图11-8 0.3.3.0/24 宣告整个LsP的完整进程 如果所有的路由器都通过IGP协议学到了前缀,那么LDP就会向其他邻居LSR 宣告标签/前缀映射(绑定信息) ,每个LSR都拥有足够信息可以从人站E-LSR将数据 包按照标签交换方式转发给出站E-LSRo例如, PEl收到一个去往10.3.3.0/24中的某 个IP地址的无标签数据包之后,就会触发与图11-2和图11-3相同的数据平面处理进 程。请注意,图11-7和图11 ̄8宣告的标签特意与前面的MPLS数据平面示意图(图 11-2和图11 ̄3)相匹配。不过为了完成上述整个处理进程,必须了解路由器的内部操 作,特别是被称为MPLS LIB (Lal)el InformationBase,标签信息库)的数据结构0 2.构建FIB和LFIB的MPLSLIB LSR将标签及相关信息都存储在被称为LIB的数据结构中o LIB负责保存用于转 发数据包的所有标签及相关信息,不过每个LSR都必须选择实际使用的最佳标签及出 站接口,然后再将该信息安装到FIB和LFIB中。因而FIB和LFIB中仅包含当前使用 的最佳LSP段的标签,而LIB则包含LSR已知的所有标签(不管该标签当前是否被 用来转发数据包) 。 为了确定所要使用的最佳标签, LSR需要利用路由协议来确定最佳路由。有了路 460 第11章 MPLS 由协议之后, LSR就可以利用路由协议的环回预防特性,并对路由协议在路由收敛时 选择的新路由做出响应。简而言之, LSR的决策过程如下。 对于路由表中的每条路由来说,根据路由中列出的出站接口及下一跳路由器信息, 在FIB中找到相应的标签信息,并将该标签信息添加到FIB和LFIB中。 为了更好地理解LSR向FIB和LFIB添加信息的方式,本节将使用本章一直在用 的示例加以说明。此时可以考虑检查相关show命令的输出结果,不过在此之前必须 先了解示例网络及其配置信息。图11-9显示了与本章前面相同的示例网络,同时还给 出了详细的IP地址及接口信息。此外,标出了已经启用MPLS的接口(虚线)和未启 用MPLS的接日(实线)。 LID 地址均以192.168开头 uD 2.2.2.2 重窒主 除特殊标注外,所有IP l.1.1.1 三遣窒圭中3 童翰÷=篷审 366壹窒主 ÷丁. sO/1/1 壹蕴 嗣s… LID 查看LIB、 图11-9 4.4.4.4 FIB以及LFIB的示例网络 MPLS单播IP路由的配置相对较为简单,本例中的6台路由器均使用EIGRP并 宣告所有子网,其中的4台路由器在全局范围内启用了MPLS,而且都连接在图中虚 线所表示的链路上。如果要启用MPLS单播IP路由(如本章所描述的那样),那么只 要在LSR上简单地启用CEF、在全局范围内启用MPLS并在每个期望接日上启用 MPLS即可。此外, 励∥一1在LSR IOS默认使用LDPo例11-1给出了相应的配置示例。 /乾置∥PLS以支挥草耪/P转发 !The firs亡∴three cormands !use LDPinstead of 1p enable CEF andMPLS gl〇bally,and TDP cef !Repea亡∴亡he interface next∴twolines 亡ype for eachMPLS-enabledin亡erface x/y/z mplgip !NormalE|GRP router eigrpl network... configuration nex亡 一 WOuldbe configured for allinterfaces 11.2 MPLs单播IP转发 461 为了了解LSR安装FIB及LFIB的方式,可以考虑子网10.3.3.0/24并从路由器PEl 的角度来分析MPLSo PEl通过EIGRP学到了10.3.3.0/24的路由。而且还通过LDP 学到了将数据包转发给10.3.3.0/24的两个标签,其中一个标签学自邻居LSRPl 个标签学自邻居LSR ,另一 P20例11-2以阴影方式显示了这些信息。请注意,例中的标签 与本章前面提到的示意图及配置示例完全匹配。 励∥-2 PEl铂/P鹏表及F′B PEl# showip Rou亡ing routelO.0.0.0 forlO.0.0.0/24,1known en亡ry Redis亡ribu亡ingvia subne亡S e|grPl D PEl# 1ib sh゜wmPIsldp bindingslO.3.3.0 en亡ry‥10.3.3.0/24,reV 24 2 localbinding:1abel‥imp-null remo亡e binding‥lsr‥ 4.4.4.4‥0,亡ag:86 例11-2不但给出了一些常见信息,而且还给出了一些非常有意思的信息。首先, 虽然show ip route命令并没有列出任何新的或不同的MPLS信息,但是显示出PEl 去往10.3.3.0/24的最佳路由是经由Pl的路由o show mpIs ldp bindings lO.3.3.0 24命 令列出了来自10.3.3.0/24的LIB表项信息,同时还列出了两条远程绑定(remote binding)信息,分别来自Pl (LDPID2.2.2.2)和P2 (LDPID4.4.4.4)。此外,该命令 还列出了本地绑定信息,即PEl分配并宣告给邻居的标签。 从例11-2可以看出, PEl在将数据包转发给10.3.3.0/24的时侯将使用标签值22 以及出站接口SO/0/10为了理解PEl的操作过程,下面将以图11-10为例加以说明。 图11-10显示的处理过程如下。 第1步:去往10.3.3.0/24的路由表项列出了下一跳IP地址192.168.12.20 PEl将 下一跳信息与每个LDP对等体上的接日IP地址列表进行对比,找到拥有IP地址 192.168.12.2的LDP邻居。 第2步: Show mpIs ldp neighbor命令的输出结果表明该对等体的LDPID (LID) 是2.2.2.20 第3步‥ PEl注意到对于同一个前缀(10.3.3.0/24)来说, LIB中包含了一个本地 标签和两个远程标签。 第4步:在这些已知的与前缀10.3.3.0/24相关的标签当中,有一个标签学自LID 为2.2.2.2的邻居,标签(标记)值为220 经过上述操作步骤之后, PEl就知道在将数据包转发给子网10.3.3.0/24时,需要 使用出站接口SO/0/1以及标签220 攻城狮论坛 462 bbs.vlan5.com 第11章 #^_^# 版权归原作者所有 本资料仅供试读 MPLS PEl# D Peer LDP TCP |dent: State: Oper; cime: t坤 2.2.2.2:0;∴L°Cal cormection: LDP discovery LDP ldent‥ t゜ addr‥ 1nc lO.3.3.O via 192.168.12.2, OO:05‥08, Seria10/0/1 l.1.1.1:O 1.1.1.1.646 37/33; Downstream 192.168.12.2 |dent: Peer∴LDP 4.4.4.4:O; Oper; Local LDP - 4.4.4.4.60262 Msgs Iden亡1.1.1.1:O 1.1.1.1.646 24/24; sent/rcvd‥ Downstream 00‥05:59 time‥ LDP |P srC b°und cormection: State: Up ′ sources‥ SerialO/0/1, TCP - rouce [90/2835456] 00‥12:52 Addresses Peer sent/rcvd: lp |dent LDP 2.2.2.2.34326 Msgs show lO.3.3.0 discovery s°urCeS serialO/0/1, Addresses Src bound to ‥ IP addr‥ peer LDP 192.168.14.4 ldent: 192.168.24.4 4.4.4.4 192.168.34.4 PEl确定出站标签的过程 图11-10 3. FIB与LFIB表项示例 如本章前面所述,实际的数据包转发进程并不使用IP路由表(RIB)或LIB,而 是由FIB转发已到达的无标签数据包,由LFIB转发已到达的有标签数据包。本节将 解释show命令的输出结果与图11-3所示FIB及LFIB数据结构之间的关系。 首先分析PElo PEl向FIB添加信息,表示PEl应该以标签值22给数据包加上 一个MPLS报头。同时PEl还以相同的标签值22及出站接口SO/0/1在LFIB中为 20.3.3.0/24增加了一条表项。例11-3给出了这两张表的示例内容。 励∥一3 ! PEl关于10.3.3.024铂F′B矽⊥F/B袁贺 This !亡ags R7# next cormand (label) show ip cef 10.1.78.0/32, SOurCeS‥ shows imposed, lO.1.78.O ePOCh O, 亡he and FIB en亡ry, outgoing Which includes 亡he local tag (24),亡he in亡erface. interna1 flags receive, refcount 5, Per-destinati〇n Sharing 工/F Subblocks: gsb Connec亡ed receive chain(0) : Ox314E47F4 1nterface source: Seria10/0/O flags: Dependen亡 C〇Vered prefix∴亡ype cover ifnums: Pa亡h deagg, COVer lO.1.78.O/24 (none) 2C69F91C, receive none need for Path lis亡 32278664, Share l/1,亡ype receive, for 工Pv4 Seria10/0/0 攻城狮论坛(技术+生活)2群 1813097 . MPLs单播IP转发 463 11.2 reCeive Chain‥ Ou亡Put ou亡goin g亡ag(label),andou亡goingin亡erface. !information-thel°Cal亡ag,亡he PEl# showmpIs forwarding-table Prefix Bytes Tunnel|d Or 10.3.3.0 24 POint2point 0 在图11-3的数据平面示例中, Hop in亡erface SWi亡Ched 10.3.3.0/24 Next ou亡going 亡ag PEl收到了一个无标签数据包并将其转发给Pl (使 用标签22)。例11-3上半部分的信息(FIB信息)显示了上述操作过程,表示PEl将 添加标签(标记)值.220 接下来检查Pl的LFIB (如例11-4所示)。从图11-3可以看出, Pl以出站标签 39替换了人站标签220此外,本例还显示了10.3.3.0/24的LIB表项信息。 励∥-4 Pl关于10.3.3.0〃4铂卢/B矽LF/B表贺 Pl# Sh°wmPIs forwarding-tablelO.3.3.O L°Cal ou亡going 亡ag tag or 24 Prefix vC Or Bytes Tunnel 10.3.3.0/24 Pl# ShowmpIsldp bindingslO.3.3.0 亡ib entry‥10.3.3.0/24,reV 亡sr‥1.1.1.1:0, 亡ag‥ binding‥ 亡sr:4.4.4.4:0, 亡ag:86 Show ● mpIs ● ● H〇P 30 binding: 一 Nex亡 0 remo亡e ● ou亡going interface 24 rem°亡e ● tag SWi亡Ched |d 链 肋鹤 24 $ forwarding-table命令的输出结果中以阴影方式显示了人站标签(本例 中为22)和出站标签(39)。需要汪意的是,人站标签显示在“10Caltag”之下,表明 标签(标记) 22是由路由器(Pl)在本地分配的,并通过LDP宣告给其他路由器(如 图11-8所示)o Pl最初分配并宣告标签22的目的是告诉邻居路由器使用标签22将去 往10.3.3.0亿4的数据包转发给Plo Pl收到携带标签22的数据包之后,需要替换该标 签,并以标签39通过接口SO/0/1向外转发该数据包。 从例11-4中的LIB表项也可以看出, (帧模式) MPLS LSR在LIB中保存了所有 已学到的标签,而仅在LFIB中保存了当前使用的标签o LIB列出了Pl的本地标签(22)以及从Pl的三个LDP邻居学到的三个远程标签。 为了创建LFIB表项,Pl需要利用与图11-10相同的逻辑规则将路由表中的信息与LIB 关联起来,并选择标签值39以及出站接口SO/0/1将数据包转发给10.3.3.0/240 下面以PE2的LFIB为例来看一个标签弹出的处理过程(如例11-5所示)o 从Pl收到一个有标签数据包(标签39)之后, PE2 PE2将试图使用其LFIB转发该数据包o PE2在构建LFIB的时候,可以很容易地意识到PE2应该弹出标签并将无标签数据包 从接口FaO/1转发出去,其原因在于PE2没有在FaO/1上启用MPLS,而且PE2也没 有从CE2学到任何标签。例11-5将出站标记显示为“pop lal)el”。 464 第11章 励∥-5 MPLS PE2关于10.3.3.0伦4铂L尸/B袁贺 PE2# showmpIs f゜rwarding-tablelO.3.3.0 L〇Cal outgoing 亡ag 亡ag or prefix VC or By亡es Tunnel|d 24 tag swi亡Ched ou亡goingNex亡 Hop in亡erface 192.168.36.6 0 请注意,虽然例11-5仅显示了LFIB表项,但每台LSR都要为每条前缀构建相应 的FIB及LFIB,因为它们会收到无标签数据包和有标签数据包0 4. LDP参考 在结束MPLS单播IP转发的讨论之前,大家应该了解LDP的一些细节信息。到 目前为止,本章仅描述了LDP的功能,并没有详细地讨论LDP完成这些任务的方式。 本节将着重讨论LDP的主要概念以及其他相关内容o LDP利用He110功能来发现LDP邻居并确定随后的TCP连接的IP地址oLDP以多 播方式将He110包发送给IP地址224.0.0.2,使用的UDP端口号是646 端口711)o Hello包列出了每个LSR的LDPID (LID), (TDP使用UDP LID包含一个32比特的点分十 进制数值和一个2字节的标签空间数值(对于帧模式的MPLS来说,其标签空间数值为 0) 。作为可选方式, LSR还可以在Hello消息中列出一个传输地址(transport 该地址就是LSR希望为所有LDP address) , TCP连接使用的IP地址。如果路由器不宣告传输地址, 那么其他路由器为TCP连接所使用的IP地址就是LDPID的前4个字节。 通过LDP Hello消息发现了邻居之后, 接,仍然使用UDP端口646 LDP邻居就要与每个邻居都建立一条TCP连 (TDP使用UDP端口711)。由于TCP连接使用的是单播地 址(由邻居宣告的传输地址或者是LID中的地址) 表可达o ,因而这些地址必须能够通过IP路由 TCP连接建立之后,每台路由器都会宣告自已所有的本地标签与前缀绑定信息。 αsco路由器选择LDPID中IP地址的方式与OSPF路由器ID相似o LDP采用与 OSPF完全相同的规则来选择IP地址并将其作为LID的一部分(如表11-4所示)。 LDP参考 表11-4 传输协议 UDP(He"o消忌)、TCP(更新消患) 端口号 646(LDP).711(TDP) He"o目的地址 224.O.O.2 由谁发起TcP连接 最高的LDPID TcP连接使用的地址 传输IP地址(如果配置了该地址),如果未配置传输地址,那么就是LDPID 配置 启用了LDP之后处于up/up状态的环回接口的最大IP地址 确定LDPID的规则(接 照优先级顺序) 雇用了LDP之后处于up/up状态的非环回接□的最大IP地址 11.3 MPLSVPN 465 至此已经讨论完了MPLS单播IP转发的所有主要内容。下一节将讨论最为广泛的 MPLS应用,该应用也正好使用单播IP转发: ll.3 MPLSVPNo MPLSVPN 最常见的MPLS应用就是MPLS VPN (VIrtual Private Netwock,虚拟专用网)o MPLSVPN允许服务提供商(甚至是大型企业网)提供三层VPN服务,特别是SP可 以利用MPLS VPN替代帧中继以及ATM等老式的二层WAN服务。由于MPLS 能够感知客户站点的三层地址,因而SP能够通过MPLS 服务。除此以外, MPLS MPLS VPN VPN为客户提供更多的增值 VPN还能实现二层WAN服务圃有的私密性能力o VPN在SP网络内使用MPLS单播IP转发特性,同时还在提供商与客户端 之间的网络边缘使用MPLS感知特性。此外, MPLS VPN还利用MP-BGP克服了将 IP网络连接到大量客户IP互连网络时存在的备种挑战,包括处理大量客户存在的IP 地址空间重复问题0 11.3.1问题:客户地址空间重叠 SP通过帧中继及ATM等传统二层WAN服务连接多个客户时, SP根本不关心这 些客户使用的IP编址方式及子网信息,但是将这些客户迁移到三层WAN服务时, SP 就必须知道这些客户的地址空间并将这些路由宣告到SP的网络中。即使SP希望了解 所有客户的所有子网信息,但很多企业使用的地址空间都完全相同,也就是私有IP网 络地址,包括最常用的网络10.0.0.00 如果希望仅通过MPLS单播IP路由来支持多个客户,那么路由器在这些重叠前缀 面前将一筹莫展(如图Ⅱ-11所示),例中的网络包含了5台SP路由器以及三个客户 (A、 B和C)。这三个客户均通过多台客户路由器连接到SP网络中,都使用网络 10.0.0.0,而且图中右侧的三个客户均使用子网10.3.3.0/240 三层VPN服务的首要目标和最基本的目标就是允许客户A的站点能够与客户A 的站点(仅客户A的站点)进行相互通信,但图11-11所示的网络却无法实现该目标。 由于存在重叠地址空间,因而路由器在确定10.3.3.0/24的最佳路由时将陷人两难境地, 无法选择来自特定客户的路由,而忽略来自其他客户的路由。例如, PE2学到两个不 同的10.3.3.0/24前缀。如果PE2在这两条可能的路由中选择一条,假设PE2选择去往 CE-A2的路由作为最佳路由,那么PE2就无法将数据包发送给连接在路由器CE-B2 上的客户B的子网10.3.3.0/240更糟糕的是,某个客户站点中的主机可能能够与其他 客户网络中的主机收发数据包。例如,客户B和客户C站点内的主机向子网10.3.3.0/24 转发数据包时,路由器可能会将这些数据包转发给了客户A的路由器CE-A20 466 第11章 MPLs SP网络 图11-11支持三层>PN时的主要挑战 11.3.2 解决方案: MPLS MPLSVPN VPN定义了一系列标准和协议来解决图11-11中出现的问题,而且还提供 了大量有用的功能特性。特别是MPLS VPN的RFC定义了被称为VRF (VIrtual Routing andForwarding,虚拟路由和转发)表的多路由表概念,可以隔离客户路由,从而解决 了客户地址空间重叠的问题。本节将介绍MPLS VPN的关键术语以及基本的MPLS vPN工作机制o MPLS使用三种术语来描述构建MPLS 藉髓 谭蠢 VPN时的路由器角色。请汪意,本章大多 数网络结构图中的路由器名称都遵循该规则,将这些路由器分别标识为CE、 ■ CE (Customeredge,客户边缘):该路由器不感知MPLS协议,而且不需要 发送任何有标签数据包,只要与MPLSVPN中的LSR ■ PE PE或Po (Provider 条链路,主要提供MPLS (PE)直连即可。 edge,提供商边缘):该LSR至少要与一台CE路由器共享一 VPN的边缘设备功能,包括iBGP (intemal BGP, 内部BGP)和VRF表。 ■ P (Provider,提供商):该LSR与CE路由器之间没有直连链路,该路由器 只要转发有标签数据包即可,完全忽略客户vPN的路由。 理解MPLS 差异o VPN工作机制的关键在于理解PE路由器与P路由器之间的控制平面 P路由器和PE路由器都运行LSP和IGP以支持单播IP路由(如本章前面所述), 但IGP仅负责宣告MPLS网络内的子网,而不宣告客户路由,因而P和PE路由器可 11.3 MPLsVPN 467 以采用标签交换方式将数据包从人站PE转发到出站PEo PE还要完成其他功能,这些功能都与学习客户路由并记录哪些路由属于哪些客户 惠有关o PE可以通过eBGP (extemal BGP,外部BGP)、 RTPv2、 OSPF或EIGRP与不 同客户的直连CE路由器交换路由信息,并且记录哪些路由是从哪些客户学到的。为 了记录可能重叠的前缀, PE路由器并不将路由放在IP路由表中,而是将这些路由存 储在备自独立的以客户为单位的路由表中(称为VRF)。然后PE再利用iBGP与其他 PE交换这些客户路由,但绝不会将这些客户路由宣告给P路由器。图11 ̄12给出了 MPLS VPN的控制平面示意图。 醒酮 二吝斋 客户A 童窒圭 1 0.3.3.O/24 冒EE■ⅠⅠ■罩军目 重蟹矗.帮 二吝孟 1 遣窒壹 ‥. 0.3.3.0/24 LDP/ 」÷ 客户c 重窒垄量L重叠.器删 :三罩萤i 霞“ sP网络 图11-12 MPLSvPN控制平面示意图 MPLS 比, VPN数据平面也要求PE具备更多的能力和智能。与简单的单播IP路由相 PE路由器还需要完成其他一些额外功能,这些功能与MPLS VPN数据平面要求 人站PE为数据包打上两层标签有关,具体要求如下: ■ 外层MPLS报头(S-bit=0),数据包通过该标签值以标签交换方式转发到出站 PE; ■ 内层MPLS报头(S-bit=1),根据转发决策标识出站VRF的标签。 图11-13给出了这两种标签以及转发进程的通用概念。图中显示了图11-12中的 一个子网,为了简化起见,删除了一些不必要的部分。图中左侧客户A中的主机向图 中右侧的主机10.3.3.3发送了一个数据包。 468 第11章 MPLs 霞 图11 ̄13 霞 MPLS>PN数据平面示意图 图11-13显示的操作步骤如下。 第1步: CEl将无标签数据包转发给PElo 第2步: PEl在分配给VRF-A的接口上收到该数据包之后,将数据包的目的地址 (10.3.3.3)与VRF-A的CEF FIB (基于VRF-A的路由表)进行比对o PEl根据FIB 为该数据包打上两层标签并转发该有标签数据包。 第3步: Pl与单播IP路由的操作方式完全相同,利用其LFIB处理接收到有标签 数据包,只要进行简单地标签交换即可o 第4步: 层标签o Pl将数据包转发给PE20 PE2关于标签2222的LFIB表项列出了弹出操作,因而PE2需要去除外 PE2关于标签3333的LFIB表项(根据客户AVPN的VRF建立的)也列出 了弹出操作及出站接口,因而PE2将无标签数据包转发给CE20 洼:茬实际应用中,由于育PHP ( P郎u鹏ma咆HopPo珊吨.倒鞍第二眺弹出)特性.因商寄3 步和第膏墙与上进肆蝶鞘有出入。本倒的主要目的是解释MPLs 罐肆都霄于PHP特性主席的实际处鞋赶程. 11.3.3 MPLs vPN的概金。本串艳茬围出啤5 Ⅵ膏N或认盘用PHP特性 MPLS>PN控制平面 MPLS VPN控制平面定义了一系列协议和机制来解决客户IP地址空间重叠的问 题,同时还为MPLS VPN提供了大量实用功能,特别是与传统的二层WAN服务相比。 为了更好地理解这些机制,大家必须理解并掌握BGP、IGP以及MP-BGP RFC定义的大量新概念。本节将着重介绍下面三个MPLS ■ ■ VRF RD (VIrtual Routing VPN新概念‥ andForwarding,虚拟路由和转发) (RouteDistinguisher,路由鉴别符) ; RFC和MPLS ; 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 11.3 ■ RT MPLs>PN 469 (RouteTdrget,路由目标)。 接下来将依次讨论这些内容。在学习本章后面的MPLS VPN内容时,请注意本章 将一直围绕同一个示例展开相关话题,包括控制平面如何学习图11-12右侧重叠的客 户子网10.3.3.0/24、如何将这些路由放到PE2的VRF中、如何利用RD通过PEl宣告 路由以及如何指示PEl将这些路由添加到VRF中0 1. >RF表 为了支持多个客户, MPLS VPN标准引人了虚拟路由器的概念。该特性(称为 VRF表)可以为不同的客户VPN独立存储路由。使用独立的路由表就能在一定程度 上解决重叠前缀造成的客户数据包泄露到其他客户网络中的问题,同时还允许同一客 户vPN的所有站点进行相互通信o VRF位于单个感知MPLS的路由器中。一般来说,路由器通常至少要为其连接的 每个客户都提供一个VRFo 以图11-12为例,路由器PE2连接了客户A和客户B的 CE路由器,但是没有连接客户C,因而PE2不需要为客户C提供VRFo 由于PEl同 时连接了这三个客户,因而PEl需要提供三个不同的vRFo 对于更复杂的网络设计方案来说, 以图11-12为例, PE可能需要多个VRF来支持单个客户。仍然 PEl连接了客户A的两台路由器(CE-Al和CE-A4),如果允许CE-Al 附近的主机访问集中式共享服务(未显示在图中),而不允许CE-A4附近的主机访问 该服务,那么PEl就需要为客户A提供两个vRF,其中的一个VRF拥有提供该共享 服务的子网路由,而另一个vRF则不包含这些路由。 每个vRF都包含以下三类组件: ■ IP路由表(RIB); ■ CEFFIB ■ 一个独立的路由协议实例或进程,该路由协议的作用是与CE交换该VRF所 (基于该VRF的RIB建立的); 要支持的路由信息。 例如,图11-14给出了图11 ̄12中的路由器PE2的细节信息,此时已经部署了MPLS VPNo例中的PE2使用RTP-2作为客户A 的IGP (路由器CE-A2)和客户B (路由器CE-B2) (请注意,选择何种路由协议作为PE-CE间的路由协议并不影响此处的讨论深度) 。 图11 ̄14显示了PE2与两个客户之间并行发生的三个操作步骤。请注意,对于每 个客户来说,通常并不会同时发生第1步操作,第2步和第3步也是如此,在图中标 识相同步骤编号的原因在于它们完成的功能都相同。 第1步: CE路由器(不感知MPLS)按照常规方式(本例为RIP-2)宣告10.3.3.0/24 的路由。 第2步‥对于图中上半部分的第2步来说, RIP-2更新消息到达PE2的SO/1/0, 攻城狮论坛(技术+生活)2群 1813097 . 470 第11章 MPLs 该接口已经被分配给了客户A的vRF (VRF-A)。由于PE2为每个VRF都使用一个 独立的RIP进程,因而PE2的VRF-ARIP进程负责处理该更新消息。与此相似,VRF-B RIP进程负责处理在SO/1/1上从CE-B2收到的RIP ̄2更新消息o RIB-VRF-A 前缀 下一跳 出接口 ②∵■ ①嚣毛.。,20 雷蓖 ①嚣毛.。,20 下一跳 前缀 图11-14 出接口 将学自cE的路由添加到路由器PE2上的>RF中 第3步:对于图中上面的第3步来说, VRF-ARIP进程向VRF-ARIB添加一条去 往10.3.3.0/24的路由表项。与此相似,在图中下面的第3步中,VRF-B RIP进程向vRF-B RIB添加一条去往10.3.3.0/24的路由表项。 2. MP-BGP与RD PE2从CE-A2和CE-B2学到路由之后,需要将这些路由宣告给其他PE,以便让 其他路由器知道如何将数据包发送给刚刚学到的子网o MPLS VPN协议定义了利用 IBGP宣告路由(来自不同VRF的全部路由)的方式,不过最初的BGP规范并没有定 义如何处理不同客户可能使用重叠前缀的情况o MPLS 处理重叠前缀问题的方法是在原始的BGP Reachability NLRT Information,网络层可达性信息) (Netwock (前缀)前面加上其他数字。每个不同 的数字都代表一个不同的客户,这样就可以让NLRI数值变得唯一。为此, 用了被称为MP ̄BGP的BGP RFC (RFC 4760)o Layer MPLS采 MP ̄BGP可以重新定义BGP更新消 息中的NLRI字段,从而能够在前缀前面添加一个额外的可变长数字,称为地址簇o MPLS RFC 4364 (BGP/MPLS 地址簇以支持IPv4 离融 萤摄 有了RD之后, NLRT MPLS IP VIrtual Private Netwocks [VPNs] )定义了一个特殊的新 VPN,该MP ̄BGP地址簇被称为RDo BGP就可以宣告并区分重复的IPv4前缀,其原理很简单:将每个 (前缀)都宣告为传统的IPv4前缀,但同时为前缀添加其他数字(即RD)以标 识该路由。具体而言,新NLRI格式(称为VPNv4)包括以下两个部分: 11.3 ■ 64比特RD; ■ 32比特IPv4前缀。 下面以例11-15 MPLs>PN 471 (墓于图11-14)为例加以说明,图中的路由器PE2利用MP-BGP 将自已的两条关于IPv4前缀10.3.3.0/24的路由宣告给了PEl:一条来自VRF-A;另 一条来自VRF-Bo RD BGP更新消息显示了该NLRI信息的新VPNv4地址簇格式,其中, l:111表示VPN-A, RD2:222表示VPN ̄Bo 路由器PE2 RIB-VRF-A-FiDl:111 源 F]lP 前缀 下一跳 出接口 lO.3.3.0/24192.168.37.7 sO/1/0 将刊P重分 发到BGP中 BGP表 NLRl 下一跳 标签 士非详10.3.3.0/24 3.3.3.3 41 3.3.3.3 42 ■''' ^焦骏:10.3.3.0/24 ' ' ' ' ' ' ' ▼ P l‥' 王 ② BGP表 BG ←…………进 将日IP重分 发到BGP中 RIB-VRF-B-RD2:22 源 前缀 下一跳 出接口 ▲ RIP 图11-15 lO.3.3.0/24192.168.38.8 ' ' ■ ' ' ■''' sO/1/1 利用RD使前缀变得唯一 如果VPNv4 NLRI中没有RD,那么PEl将学到两条相同的BGP前缀( 并且需要在这两条路由中选择一条作为最佳路由,这样一来, 子网10.3.3.0/24中的一个。有了VPNv4 1:111:10.3.3.0 10.3.3.0/24) , PEl只能到达两个客户 NLRI之后,iBGP就可以宣告两条唯一的NLRI: (来自vRF-A)和2:222:10.3.3.0 (来自VRF-B)。因而PEl可以在其BGP 表中同时保存这两条NLRIo 图Ⅱ一15中的相关步骤如下。 第1步: PE2将来自每个VRF路由协议实例(本例为RIP-2)的路由重分发到 BGP中。 第2步:重分发进程提取每个VRF的RD并将该RD包含在从VRF路由表重分 发来的所有路由中。 第3步: PE2通过iBGP将这些路由宣告给PEl,使得PEl能够知道10.3.3.0/24 的两条路由(每条路由的RD值不同)。 472 第11章 MPLs RD是一个8字节数值,需要遵循一定的格式约定。前2个字节表示RD将使用 三种格式中的哪一种。顺便说一下,由于IOS能够根据该数值判断RD究竟使用三种 格式中的哪一种,因而只要在IOSVRF子命令rd中输人最后6字节整数值即可, 可以根据该数值推断出前2个字节o IOS RD的最后6字节(如rd命令及相关show命令 所示)的格式如下‥ ■ 2字节整数:4字节整数; ■ 4字节整数:2字节整数; ■ 4字节点分十进制数字:2字节整数。 在上述三种格式中,第一个数值(冒号前)可以是ASN (Autonomous System Nuhber, 自治系统号)或Ⅱ中4地址,第二个数值(冒号后)则可以是任何数值。例如,可以使用 第三种RD格式以列出LSR的BGPID,如3.3.3.3:100,也可以使用BGPASN,如432:10 到目前为止, PEl已经学到了10.3.3.0/24的两条路由(一条来自VPN-A,另一条 来自VPN-B) ,并且这两条路由都已经保存在BGP表中。接下来将讨论PEl如何根据 RT来选择将这些路由添加到哪些VRF中0 3. RT 对于初次学习MPLS VEN的工程师来说,最让人迷惑的概念可能就是RT了。虽然 理解RT的作用相对比较容易,但理解MPLS为何需要RT以及如何为RT选择最佳值, 对于构建MPLS VEN来说却是一件比较困难的事情。事实上, MPLS RT允许MPLS支持 各种复杂的VPN拓扑结构,例如,可以从多个VPN到达某些站点(称之为重叠VPN)o PE将RT作为BGP扩展团体PA 宣告。一般来说, (PathA恤ibute,路径属性)在BGP更新中进行 BGP扩展团体的长度都是8字节,能够满足各种应用场合的需求。 而且MPLS还定义了使用BGP扩展团体PA来编码一个或多个RT值的方式o RT也要遵循与RD相同的基本格式要求。但是需要注意的是,虽然特定前缀只能 有一个RD,但是却可以为同一个前缀同时分配一个或多个RTo 为了更好地理解MPLS使用RT的方式,下面将首先考虑一个更为通用性的RT 定义,然后再以示例方式介绍PE使用RT的机制: MPLS通过RT来确定PE应该将学自iBGP的路由放到哪个VRF中。 图11-16基于图11-14和图11-15,现在主要关注PE如何利用RT来确定应该将 路由添加到哪个VRF中。图11-16显示了导出RT (exportRT)的配置情况(在VRF 配置模式下配置该值),为VRF ̄A和VRF-B分别设置了不同的导出RT值o 了每个VRF的导人RT (importRT) PEl给出 (也要在VRF配置模式下配置该值),导人RT的 作用是允许PEl选择将哪些BGP表项安装到每个vRF的RIB中。 虽然图11-16包含了大量细节信息,但整个工作流程并不复杂,请特别关注最后 11.3 MPLs>PN 473 两步。图中的处理过程如下。 第1步:在PE2上为两个VRF配置导出RT值。 路由器PE2 路由器PEl 图11-16 MPLSRT的工作机制 第2步:将VRF重分发到BGP中。 第3步‥本步骤只是为了显示导出进程(将VRF重分发到BGP中)在PE2的BGP 表中设置适当的RT值。 第4步: 第5步: PE2通过iBGP宣告这些路由。 PEl检查新BGP表项并将RT值与已配置的导人RT值进行对比,由该 RT值来标识哪些BGP表项应该进人哪个VRFo 第6步: PEl将这些路由重分发到备个VRF中,具体来说,就是将RT值与VRF 中配置的导人RT相匹配的路由重分发到VRF中。 主:有时也可嵌将术语导出(跳pO市理解为“从VRF重分发到BGP中∵将术语导入(出po市 疆蹬龋 獭撬鹅撼鹃撼撬撬疆霞撬疆 每个VRF都至少要导出和导人一个RTo例11-16仅显示了一个方向:在右侧(PE2) 上导出,在左侧(PEl)上导人。不过,由于PE2需要知道连接CE-Al和CE-Bl的子 网的路由,因而PEl需要从CE学习这些路由并以某个导出RT值将这些路由重分发 到BGP中,然后再利用iBGP将这些路由宣告给PE2,最后再由PE2将正确的路由(基 于PE2的导人RT)导人到PE2的VRF中。 事实上,对于简单的MPLS VPN部署方案来说,如果每个VPN都包含单个用户 的所有站点,那么大多数配置都只要使用单个RT值即可,此时客户的每个VRF都将 474 第11章 MPLS 导人和导出该RT值。 4.重叠>PN MPLS利用RT的概念来支持重叠VPNo如果至少有一个CE站点需要能够被其 他VPN中的CE可达,那么就会出现重叠VPN的问题。 目前存在多种形式的重叠VPNo由于SP可以为多个客户提供服务,因而SP需要 部署能够被一部分客户访问的CE站点。同时某些SP客户可能希望通过MPLS网络与它 们的合作伙伴建立网络连接。例如,客户A可能希望自已的某些站点能够将数据包发 送给客户B的站点。 无论出于何种商业目的, RT的概念都允许MPLS网络将来自多个VRF的路由泄露 给指定VRF,而且BGP还支持为每条BGP表项添加多个扩展团体PAo这样就可以利用 一个RT来导出单个前缀,该RT的作用是“确保VPN-A中的所有VRF都有该路由”,同 时为该相同前缀分配另一个RT,该RT的作用是“将该路由泄露到重叠VEN的VRF中”。 图11-17给出了重叠MPLSVPN示意图,图中规划了一个集中式业务VPN,与以 镭子网 集中式服务器10.4.4.O/24 图11-17 集中式业务>PN 往一样,所有的客户A站点都能向其他的客户A站点发送数据包,所有的客户B站 点也能向其他的客户B站点发送数据包,而且客户A的站点都不能与客户B的站点 进行通信。除了上述常规要求之外, CE-Al和CE-B2还能与CE-Sev 了一组集中式服务器)进行通信。 (该路由器连接 11.3 MPLs>PN 475 为了实现上述设计目标,每个PE都要配置多个VRF,利用多个VRF导出和导人多 个RTo例如, PEl需要两个VRF来支持客户A:一个VRF仅为客户A导人路由;另一 个VRF则负责导人客户A的路由以及到达集中式业务VPN的路由。与此相似, PE2需 要为集中式业务vPN配置一个VRF,需要同时导人VPN-A和VPN-B中的部分路由0 11.3.4 MPLSVPN配置 MPLS VPN的配置重点是控制平面功能:创建VRF及相关联的RD和RT、配置 MP-BGP以及在客户使用的IGP与MPLS网络内使用的BGP之间进行路由重分发。 本节将主要讨论这些控制平面的配置方式,有关数据平面的配置方式将在下一节 “MPLS VPN数据平面”进行讨论o MPLS VPN的配置需要用到大量命令。为了更好地学习简单MPLS (仍然需要很多配置命令) ,本节将以图11-18显示的互连网络为例介绍相应的配置示例。 除非特别标注,所有IP地址均以192.168开头 r名盖 L.。_ LIDl.「.1.「 LID2.2.2.2 s∵萤醇、擎 」霞←ヽ鞋靳一 」禹翰 跳月ヽヽ 162 0us,-A L,03+。.3 SO/1/O F绅37疆疆矗 圈圈冒 一f蒲÷ 圈墅圈 Cust-B VPN的配置方式 LID 疆疆酵 10331/24 「0331/24 4.4.4.4 图例 启用MPLs的链路 未启用MPLs的链路 图11-18 配置MPLSVPN的互连网络示意图 该互连网络的MPLS VPN设计方案使用了与上一节“MPLS VPN控制平面”完全 相同的RD和RT值,后面将介绍具体的配置过程。在讨论MPLS VPN的具体配置细 节之前,需要记住的是图11-18中的互连网络已经配置了部分命令,特别是: ■ P路由器和PE路由器之间的所有链路均配置了IP地址,而且都能ping通每 条链路对端的IP地址,同时这些接口都已经通过接口子命令mpIs 帧模式MPLS ■ ip启用了 3 所有的P和PE路由器均使用相同的IGP (本例为ASN200的EIGRP ),并且宣 告了P和PE路由器之间的所有环回接口及子网,因而所有的P和PE路由器都 能ping通这些路由器上的所有接口的IP地址,包括这些路由器上的环回接日; ■ PE和CE之间每条链路均配置了IP地址,而且链路均处于正常运行状态,但 目前还没有通过路由协议宣告这些子网; 攻城狮论坛 476 bbs.vlan5.com 第11章 #^_^# 版权归原作者所有 本资料仅供试读 . MPLS ■ PE路由器连接CE路由器的接口没有配置接口子命令mpIsip,因为这些接口 不需要启用MPLS 发和接收数据包) ■ (mpIs ip命令的作用是告诉IOS应该利用MPLS标签来转 ; 未配置与MPLSVPN相关的任何功能特性o MPLS VPN的配置需要很多新命令以及这些命令的多个实例。为了更好地解释配 置过程,本节将整个配置过程划分为以下四个部分0 1.创建每个VRF、 RD和RT,同时将面向客户侧的PE接日与正确的VRF关联起来0 2.在PE和CE之间配置IGPo 3.在IGP与BGP之间配置相互重分发0 4.在PE之间配置MP-BGPo 为了清楚起见,图11-19以图形方式给出了上述四个主要配置部分的示意图。后 面将根据该示意图分别介绍相应的配置方式以及相关的EXEC命令。 誓∴瓮 图11-19 MPLSVPN的四个主要配置部分 1.配置>RF及关联接口 理解了VRF、 RD和RT的概念之后(如前面的“MPLS VPN控制平面”一节所述) , 就很容易理解MPLS VPN的配置过程了。当然,设计方案越简单(就像本节示例给出 的基本的非重叠MPLS VPN设计方案) ,配置过程也就越简单。为了更好地理解MPLS VPN的配置过程,本节使用的RD和RT值与图11-15及图11-16完全相同,仅VRF 名称有少许差别: ■ VRFCust ̄A, RDl:111, RTl:100 ■ VRFCust-B, RD2:222, RT2:200 上述配置仅涉及PE路由器,客户路由器无需感知MPLS, MPLS P路由器也不需要感知 VPNo上述配置需要用到以下4条命令: ■ 利用命令ipvrfv所脚阴e配置VRF; ■ 利用vRF子命令rdJ存vcJ/ae配置RD; 攻城狮论坛(技术+生活)2群 1813097 MPLS>PN 11.3 ■ 利用VRF子命令route-target ■ 利用接口子命令ip 在接口上应用了ip ( importlexport vrfforwarding ) 477 r+vcz′ae配置RT; l,所栅J?re关联接口与VRFo vrfforwarding命令之后,接日的IP地址就会被删除,因而需 要重新应用IP地址。 例11-6给出了vRF的配置示例以及相应的解释信息。 在PEl矽PE2上/乾置>RF 励∥ ̄6 ! The !亡he ! next and ip exp〇r亡(亡O vrf rd cormand defini亡i〇n creates of 亡he MP-BGP) RD 亡his rou亡e with its vRF, and case-SenSi亡ive bo亡h 亡he name, imp〇rt followed (from by MP-BGP) 亡argets. l:111 iInport l‥100 route-target export l‥100 route-target import 2:200 route-target eXPOrt 2:200 vrf cugt-B 2:222 rd ! The ! (Cus亡一A) nex亡 interface 1p highligh亡ed The ! (Cus亡一B) nex亡 interface lp addregg vrf ass〇Cia亡es 亡he in亡erface (FaO/1) wi亡h a VRF 亡he in亡erface (FaO/0) wi亡h a VRF 255.255.255.0 cormand associa亡es fastethernetO/O vrf rd 192.168.15.1 highligh亡ed ip ip cormand fastethernetO/1 addregg ! f゜rwarding Cust-B 192.168.16.1 255.255.255.0 cugt-A l:111 r゜ute-target imp゜rt l:100 route-target eXPOrt l:100 route-target import 2:200 route-target eXPOrt 2:200 1p VRF cugt-A route-target ip 亡he f〇r vrf rd cugt-B 2:222 interface fastethernetO/1 ip vrf forwarding ip address interface Cust-A 255.255.255.O 192.168.37.3 fastethernetO/O ip vrf f゜Ⅳarding ip address cugt-B 192.168.38.3 从例11-6可以看出, 255.255.255.0 PEl和PE2均配置了两个VRF (每个客户一个VRF),每个 vRF都配置了RD以及至少一个导人和导出路由标记。为了保证两台路由器之间能够 478 第11章 MPLs 通过MP-BGP交换路由信息,要求每台PE路由器上的导出RT必须与远程PE上的导 人RT相匹配,反之亦然。对于本例来说,由于不存在重叠的VPN站点,因而为了避 免混淆,工程师为每个客户都规划了一个恒定的RT值并配置在每台PE上。 除了上述很明显的配置内容之外,例11-6还隐藏了一些微小的配置信息。首先, 如果导人RT和导出RT使用相同值,那么就可以使用route-target 该命令分解成例中的route-target 令ip vrf import和route-target both命令o IOS会将 eXPOrt命令。此外,接口子命 forwarding会删除接口的IP地址并显示相应的报告消息。为了完成上述配置 过程,例11-6显示了在每个接口上重新配置相同IP地址的过程,因为IP地址已经被自 动删除0 2.配置PE与CE之间的IGP 第二个重要配置步骤就是在PE和CE之间配置路由协议。该路由协议不但允许 PE路由器学习客户路由,而且还允许CE路由器学习PE从MPLS网络中的其他PE 学到的客户路由。 任何IGP或BGP都能用作PE和CE之间的路由协议。一般来说,客户都愿意使 用自已喜欢的IGP,而且MPLS提供商也能接受客户的选择,有时服务提供商可能会 指定路由协议(如BGP)。本节的示例将使用EIGRP作为PE和CE之间的路由协议。 无论在PE和CE之间使用何种路由协议,所有的新配置命令也都仅涉及PE路由 器。工程师将CE路由器配置为PE路由器的对等体时,只要使用传统的IGP或BGP 命令(无任何新命令)即可。但是,由于PE路由器必须感知VRF,因而必须将VRF 的名称以及在发现VRF内部的邻居时应该考虑哪些接口等信息告诉给PE路由器。 将EIGRP配置为PE ̄CE路由协议的步骤如下。 ■ 利用全局命令router eigrp c7撇配置EIGRP进程,使用的ASN不需要与CE 路由器相匹配。 ■ 利用路由器子命令addressrfumiIy ipv4 vrf v矿J7CZ″re autonomouS-SyStem Crs77 标识需要应用其他配置命令的vRFo ■ 在VRF配置子模式下(利用address-famiIyipv4vrf命令进人该模式),仍然 可以配置ASN以匹配CE路由器的全局命令router 用autonomous-SyStem ■ eigrp cLS77,配置方式是使 CZS7?命令,但需要注意的是,该命令已被废除。 在VRF配置子模式下配置network命令,该命令仅匹配包含接口子命令ip forwarding v所栅″re的接口,同时还要提供与address-family 匹配的vRF名称。 ipv4 vrf vrf命令相 11.3 MPLS>PN 479 在VRF配置子模式下,配置所有需要的传统IGP路由器子命令(如no ■ auto-Summary和redistribute命令) 。 继续前面的示例,客户A和客户B都使用EIGRP,它们都在routereigrp命令中 使用EIGRPASN 的VRF 励77-7 lo PEl将成为CE-Al与CE-Bl的EIGRP邻居,但是仅相对于各自 (Cust ̄A和Cust-B)而言。 /乾置E/GRP, CErA7、 CE-B7 #及PE7 摧 router elgrpl network192.168.15.0 networklO.0.O.0 赢 r゜uter eigrpl network 192.168.16.0 networklO.0.0.0 close !Pay PEl# conf En亡er a亡ten亡ion to 亡he cormandpromp亡S andm〇des t configuration cormands,One Perline.Endwi亡hCNTL/Z. PEl(COnfig-rou亡er-af)# network192.168.15.10.0.0.0 PEl(COnfig-rou亡er-af)# address-familyipv4 PEl(COnfig-router-af)# aut゜nomouS-SySteml PEl(config-rou亡er-af)# network192.168.16.10.0.0.0 PEl(COnfig-rou亡er-af)# no vrf Cust-B auto-Surmary 请注意例11-7示例配置中的两个注意事项。第一个就是router 的ASN eigrp 65001命令 (65001)不必与CE路由器的ASN值相匹配,但是地址簇子模式下的 autonomous-SyStem子命令中列出的ASN必须匹配(需要记住的是,该命令隐藏在上 下文相关的帮助中)。本例中的客户A和客户B均使用相同的EIGRPASN (1),目的 是表达这些数值不必唯一。 第二个需要关注的问题就是仅应用于VRF Cust-A命令后面的命令。例如, 分配给VRF Cust-A及其接口的addressrfumily netWOrk 192.168.15.1 Cust-A的接口(即本例中的FaO/1 ) ipv4 vrf 0.0.0.0命令的作用是让IOS仅查找 ,并且仅匹配使用该network命令的接口。 请注意,图11-19右侧的PE2与两台CE路由器之间也要进行相似的配置,但是 没有列在例11 ̄7中。 到目前为止,每个PE都已经配置了VRF,而且已经将PE-CE接口分配给了vRFo PE路由器也已经从CE路由器学到了路由信息,因而PE路由器应该已经与CE路由 器建立了EIGRP邻居关系,而且也应该学到了每个VRF中的客户路由。例11-8给出 了PEl的VRF Cust-A的show命令输出结果示例,从输出结果可以看出PE上的每个 480 第11章 MPLs vRF都是独立的。 励∥-8 ! The COrmand nex亡 工P-E|GRP Codes‥ Topol〇gy P - r - sh〇WS Table Passive, rePly Via COrmand ac亡ually 亡he E|GRP 工P-E工GRP H neighbors Upda亡e, FD is - Q Query, FD is E工GRP used for neighbors, 亡〇 1 for eXChange ! nex亡 pr〇CeSS jus亡 VRF for VRF Cus亡一A, inside lines lists route omi亡亡ed vrf for H〇ld Uptime D lO.1.1.0 is 工P 1 Cus亡一A. for 亡he VRF MPLS No亡e 亡ha亡 Cus亡一B, PEl and 亡WO for cIoud. 12 rou亡es for SRTT 00‥21‥40 VRF RTO Q Seq Cn亡 (ms) 200 1 0 Num 3 Cus亡一A Cust-A brevi亡y S 10.0.0.0/24 Reply, I |nterface COrmand ip - Fas亡E亡herne亡0/1 r〇u亡es FaO/1 sh゜W R 28160 (SeC) !亡he Cus亡一A 156160 (156160/128256), neighb〇rS‥ Address PEl# VRF FastE亡herne亡0/1 shows ins亡ance f〇r jus亡 S亡a亡us successors, E|GRP 4 has - U sia successors, Connected, nex亡 亡able, topol〇gy AS(1)/工D(192.168.15.1) - S 192.168.15.5 1 The 且IGRP Ac亡ive, S亡a亡us, 1 Via for - A 亡he FastE亡herne亡0/1 direc亡Iy subne亡亡ed, [90/156160] via 1 subne亡S 192.168.15.5, 00‥21:56, Fas亡EthernetO/1 PEl# ! Finally,亡he ! any ! be亡Ween PEl# routes PEl COrmand las亡 for customer and CE-Al shows route tha亡∴亡he normal lO.1.1.0/24, n〇r 亡able rou亡ing f〇r 亡he d〇eS c〇nneC亡ed have nO亡 subne亡 (192.168.15.0/24). show ip route l include lO.1.1 show ip route l include 192.168.15 PEl# PEl# PEl# 虽然例11 ̄8的大多数show命令输出结果看起来都比较熟悉,但这些show命令 的语法形式还是有些差异的。这些show命令通常都列出了标识特定VRF (通过名称 来标识)的参数。 在这些有关VRF和MPLS 和show ip VEN的新配置命令中,请特别注意show ip route命令的输出结果。第一条命令列出了PEI route vrfCustLA FaO/1接口上的直连路由 (192.168.15.0亿4)和一条通过EIGRP学到的路由(10.1.1.0/24,学自CE-Al)。但最后两条 show ip route命令(显示普通皿路由表中的路由)却没有显示VRF 一条路由,这是因为接口FaO/1和EIGRP配置将这些路由与VRF 3.配置PE-cE Cust-A中看到的任何 Cust-A关联起来了0 IGP与MP-BGP之间的重分发 完成了第1步和第2步配置操作之后(基于图11-19), PE路由器已经通过IGP 11.3 学到了每个VRF中的客户路由,但是还无法将这些路由宣告到MPLS MPLs>PN 481 VPN网络中, 接下来就要利用重分发特性提取这些学自IGP的路由并注人到BGP表中。与此同时, PE路由器也需要通过重分发特性将BGP学到的路由注人到相应vRF的IGP中。 为了在PE路由器之间通过BGP来宣告路由,必须首先将IP前缀注人到路由器的 BGP表中。如第1章所述,将新路由注人到BGP表中的两个最常用方法就是重分发 和BGP network命令: BGP 业所使用的公有IP地址前缀) network命令适用于注人少量可预测前缀(例如,注人企 ;如果前缀无法预测且数量可能较大,而且路由不是要 进人Intemet核心路由器的路由表的(使用MPLS的MP-BGP都没有问题),那么就可 以采用重分发进程。因此, 配置MPLS MPLS VPN的BGP配置通常都使用重分发特性。 VPN相互重分发机制时,必须告诉IGP和BGP将要对哪个VRF执行 重分发操作。重分发特性会从IP路由表中提取路由。为指定vRF配置了重分发特性 之后,重分发操作将针对该指定vRF的IP路由表。 赛靛 在BGP和IGP进程下配置redistribute命令时,可以利用address-family ipv4 vrf 谭蠢所Jra讹命令来设置VRF上下文(如例11-7所示),然后redistribute命令就可以应 用于该vRF之上。除了这一点属于新内容之外,整个重分发配置过程与我们前面介绍 VRF概念之前的配置过程完全相同。例11-9给出了路由器PEl的重分发配置示例。 励∥-9 j骚置PE7 PEl# conf En亡er #E/GRP #互置分发 t configura亡ion ! The ! cormand ! |OS COrmand nex亡 亡O ex及BGP cormands, moves iden亡ifies take PEl(COnfig)# EIGRP r゜uter the 亡he Per user VRF, rou亡es bgp One and from 亡O Next,亡he same BGP 亡he 亡he c〇nCeP亡is configured # address-family PEl (COnfig-router-af) # redistribute Nex亡, inside E工GRP the is c〇nfigured, c〇nteX亡 PEl (COnfig-rou亡er-af) PEl (COnfig-r〇uter) # 〇f # ! nex亡,亡he PEl same 亡he (COnfig-rou亡er-af) Wi亡h router # eigrp eigrp f〇llowing sequence 亡ells 亡able. VRF 可以利用redistribute命令、 Cust-B l vRFs due to cormand 亡he being issued address-family cormands. 65001 bgp vrf Cust-A 65001 configured,亡his redistribute Cus亡一B. vrf redis亡ribu亡e ipv4 address-family 使用的度量值。从例11-9可以看出, for 亡he redistribute concep亡is PEl(COnfig-router-af)# The in l ipv4 respective address-family PEl(COnfig-router-af)# CNTL/Z. m〇de. cormand routing eigrp (COnfig-router-af) ! wi亡h config third VRF PEl ! End 65001 edistribute ! line. ipv4 bgp metric 亡ime vrf 65001 f〇r loooo VRF looO 255 1 1500 Cus亡一B. Cust-B metric 5000 500 255 1 1500 default-metric命令或route-maP命令配置重分发特性 redistribute bgp命令设置了EIGRP度量,这是因 482 第11章 MPLs 为将路由重分发到EIGRP中时, 用的是默认度量(BGP MED) EIGRP无默认度量。但是,由于BGP为重分发路由使 ,因而不需要在redistribute eigrp命令中设置默认度量。 假设在其他PE路由器上也进行了相似(如果不相同)配置,那么此时所有PE路 由器的BGP表中都应该有了客户路由(如例11-10所示)。 色含客户A矽B铭励缀铭PEI 励∥-10 ! The ! locally ! ○亡her PEl# BGP BGP show ip of bgp codes: S codes‥ 192.168.15.0 ★> 192.168.16.0 ! Nex亡, ! ei亡her P耳1# note MPLS is succession, lis亡ed, but no are lis亡ed rou亡es f〇r nex亡. 亡he No亡e 亡hat prefixes on only 亡he cloud. 21, local d R工B-failure, 一IGP, 亡hat in are all vpnv4 e Nex亡 ★> VRFs, SuPPreSSed, i Ne亡WOrk all rou亡es 亡he version r origin for injec亡ed side 亡able S亡a亡us 亡able BGP表 - rou亡er S h is l.1.1.1 his亡Ory, ★ valid, LocPrf i - in亡ernal, Path Weigh亡 156160 32768 ? 0.0.0.0 0 32768 ? 192.168.16.2 156160 32768 ? 0.0.0.0 0 32768 ? ip bes亡, ?一incomple亡e Metric 192.168.15.5 show > S亡ale EGP, Hop |D damped, bgp d〇eS not lis亡 the BGP 亡able en亡ries f〇r VRF. show ip bgp PEl# ! Nex亡, PEl# BGP an show 亡able S亡a亡us eXamPle ip bgp S r origin codes: i Ne亡WOrk how 亡O vpnv4∴rd version codes‥ of is 21, d R|B-failure, 工GP, Nex亡 e BGP 亡able en亡ries per vRF. l:111 local SuPPreSSed, 一 display - Hop rou亡er damped, S 10.1.1.O/24 192.168.15.5 192.168.15.0 0.0.0.0 l.1.1.1 ★ valid, > bes亡, i - in亡ernal, ?一inc〇mPle亡e Me亡ric ★> is his亡Ory, S亡ale EGP, ★> 工D h LocPrf 156160 0 Weigh亡 32768 ? 32768 ? Path 4.配置PE之间的MP ̄BGP 第四步也是最后一步就是定义PE之间的MP-BGP连接。配置了MP ̄BGP之后, PE之间就能以VPNv4 (IPv4的VPN)格式交换前缀,也就是说, 之前添加RD,使每个前缀都具备唯一性。 BGP在IPv4前缀 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 . 11.3 MPLS>PN 483 配置每个对等体的时候,有些命令与非MPLS配置中的常规BGP配置相同,而有 些命令则需要在新的VPNv4地址簇上下文中进行配置。对比MPLS VPN的BGP配置 与传统的BGP配置之后可以发现: ■ PE邻居是在主BGP进程下配置的,而不针对某个特定地址簇; ■ 常规的MPLS neighbor ■ VPN设计方案都将环回接口作为PE路由器的更新源,此时的 update-SOurCe命令也是在主BGP进程下配置的; 激活PE邻居的操作是在VPNv4地址簇(addressrfemily neighbor ■ vpnv4)下通过 activate命令完成的; 必须告诉BGP发送团体PA (在addressrfemily Send■COmmunity命令) ; vpnv4命令下使用neighbor ■ VPNv4地址簇并不特指任何特定VRF; ■ 每个远程PE都只需要一个iBGP邻居关系,不需要为远程PE上的每个VRF 都配置一个邻居关系。 例11-11给出了PEl和PE2第4步的配置示例。 励∥-∥∴在PE路甸嚣PEl矽PE2上乾置BGP ! note ! suffix PEl # Enter the new of coni configura亡ion "一af" at∴亡he end sub-mode of the for 亡he cormand address family, With 亡he promp亡. t configura亡ion PEl(config)# router cormands, bgp One Per line. End with CNTL/Z. 65001 PEl(COnfig-rou亡er)# neighbor 3.3.3.3 remote-aS PEl (COnfig-rou亡er) # ne土ghbor 3.3.3.3 update-SOurCe PEl (COnfig-r〇u亡er) # PEl (COnfig-rou亡er-af) PE2 (C〇nfig)# PE2 (COnfig-rou亡er)# neighbor l.1.1.1 rem゜te-aS PE2 (C〇nfig-rou亡er)# neighbor l.1.1.1 update-SOurCe PE2 (COnfig-rou亡er) # PE2 (COnfig-r〇u亡er) # PE2 (C〇nfig-router-af)# neighb°r l.1.1.1 activate PE2 (C〇nfig-rou亡er-af) neighb゜r l.1.1.1 send-COmmunity r゜uter bgp l°OPO 65001 address-family # 65001 65001 l゜OPO vpnv4 至此就可以建立BGP邻居关系,整个配置过程也就完成了(至少对于本例来说是 完成了)。虽然本例已经使用了很多配置命令(本节的配置示例大概为PEl的MPLS 配置使用了35条命令),但仍然存在大量配置选项,而且还有很多可用的show命令 和debug命令。例11-12给出了部分show命令的输出结果,通过这些输出结果可以 确定控制平面当前所处的状态。 攻城狮论坛(技术+生活)2群 1813097 484 第11章 MPLs 励∥-12 ! /晒置壳成后铂BGP当虏枕疥 The COrmand nex亡 !亡he show PEl# sh゜w ip ip bgp confirms 亡ha亡∴the MP-BGP prefixes are no亡 displayed by cormand. bgp PEl# COrmand ! The ! overlapping nex亡 亡able BGP Status versi〇n codes: S codes: 亡he 33, is per-RD local d 一IGP, 一 e BGP the rou亡er S table. two |D damped, R|B-failure, i 〇f par亡 SuPPreSSed, r origin sh〇WS lO.3.3.0/24 h The highligh亡ed cus亡OmerS' is *> R〇u亡e 且GP, valid, ★ Dis亡inguisher: 2‥222 0 100 O (defaul亡 for 3.3.3.3 156160 *> 192.168.16.0 0.0.0.0 0 ★>i192.168.38.0 3.3.3.3 0 The ! next sh゜W lines C cormand |P lis亡S r゜ute omi亡ted Vrf f〇r B is is direc亡Iy subne亡亡ed, D B The !亡he nex亡 route CE-Al# ! show lines C [200/0] COrmand for ip ? ? ? ? 32768? 0 ? 32768? 100 table 0 for ? Cust-A. FastE亡herne亡0/1 subne亡S 3.3.3.3, 3.3.3.3, 亡ha亡∴亡he aS for 01‥33:49 02‥02‥31, Fas亡E亡herne亡0/1 01‥33:49 cus亡Omer adver亡ised by rou亡er (CE-Al) has learned CE-A2. brevity is is directly subnet亡ed, ia D 0 100 192.168.15.5, via confirms 192.168.15.0/24 is in亡ernal, route omi亡亡ed lO.1.1.O - Cus亡一B) routing connec亡ed, 2 via lO.3.3.0/24, lO.O.0.0/24 C i Cust-A [90/156160] 192.168.37.0/24 ! per-VRF via 10.1.1.0 bes亡, brevi亡y 192.168.15.0/24 10.0.0.0/24 亡he 0 32768 vr王 ★>ilO.3.3.0/24 PEl# 11.3.5 100 156160 ! > 32768 156160 3.3.3.3 10.2.2.0/24 亡he ?一inc〇mPle亡e 192.168.16.2 ★> shows Stale 0.0.0.O 192.168.15.0 lines spaces. l.1.1.1 his亡Ory, 156160 ★>i192.168.37.0 address direc亡Iy 192.168.37.0/24 2 c〇nneCted, 192.168.15.1, connected, [90/28416] Vlanlll subne亡S via 01:34:12, Vlanlll Loopbackl 192.168.15.1, 01:34:12, Vlanlll MPLSVPN数据平面 掌握了VRF、 RD和RT的功能特性之后,就可以很容易地理解MPLS 平面的大多数细节信息o 重叠), VPN控制 VRF允许PE存储学自不同CE的路由(即使这些前缀存在 RD允许PE将路由宣告为唯一前缀(即使IPv4前缀存在重叠),而RT则可以 告诉PE应该将哪些路由添加到每个VRF中,这不但提供了更大的控制灵活性,而且 11.3 MPLS>PN 485 还允许从多个vPN访问站点。 不过,在结束配置过程以支持数据包转发操作之前,人站PE还需要拥有相应的 FIB表项, P和PE也需耍拥有相应的LFIB表项。本节将解释使用MPLS VPN时LSR 添加FIB和LFIB表项的方式。 与前面备节相似,本节仍然讨论如何将数据包转发到客户A 10.3.3.0/24中。在分析MPLS vPN的子网 VPN数据平面的配置之前,先考虑图11-20,该图采用 了与图11-13相同的转发示例,但给出了人站PE路由器的FIB表项细节信息以及P 和出站PE路由器的LFIB表项细节信息。 图11-20中的处理过程如下。 第1步‥无标签数据包到达分配给VRF ̄A的接口之后,人站PEl将使用VRF-A 的FIB做出转发决策。 荤翰 篱墅 壹翰 图11-20 入站PE的FIB以及其他路由器的LFIB 第2步:人站PEl的VRF-A关于10.3.3.0/24的FIB表项列出了出站接口SO/0/1 和携带两个标签的标签栈(内层标签3333,外层标签1Ⅱ1),因而PEl在数据包的IP 报头前打上这两层标签之后转发该数据包。 第3步: Pl为人站(本地)标签11Ⅱ使用LFⅢ表项,将外层标签替换成标签22220 第4步: PE2执行两次LFIB查找操作o PE2在LFIB表中发现标签2222之后弹 出该标签,还剩下内层标签。然后PE2在LFIB继续查找该内层标签3333,发现也是 弹出操作,同时还列出了出站接口,因而PE2从接口SO/1/0向外转发该无标签数据包。 本例给出了正确添加FIB和LFIB表项之后的数据平面处理过程,接下来讨论的 MPLS VPN数据平面的配置内容将解释MPLS 继续学习本节内容之前,请务必记住MPLS VPN LSR正确构建这些表项的方式。在 VPN使用外层标签和内层标签的主要目的: 486 第11章 MPLs ■ 外层标签负责标识人站PE与出站PE之间的LSP的段落,但不标识出站PE 应该如何转发数据包; ■ 内层标签负责标识出站PE的转发信息,特别是无标签数据包的出站接口0 1.构建(内层)>PN标签 内层标签负责标识出站PE应该通过哪个出站接口转发无标签数据包。内层标签也称 为VPN标签,必须为添加到每个客户VRF中的每条路由都分配一个内层标签。具体而 言,客户CE将路由宣告给PE之后, 够将数据包转发给这些客户子网, PE需要将这些路由存储到客户的VRF中。为了能 PE必须分配一个新的本地标签,并将该标签与前缀(以 及该路由的下一跳皿地址和出站接口)关联起来,然后再将该信息存储到LF皿中。 图11-21给出了PE2的路由10.3.3.0/24 (包括VRF-A和VRF-B)及其LFIB表项信 息,显示了PE2为这两条路由分别分配一个本地标签并利用BGP宣告这些标签的整个过 程(请注意, LFIB并不是基于每个VRF的表,对于PE2来说,只有唯一的一个LFIB)。 swo-V盯A 童重盏子网 霜童酵 蠢霞器撇。 ④ lBGP到PEl vRF-A路由表 前缀 源 下一跳 出接口 LF.B ..∵③ VRF-B路由表 源 前缀 下一跳 出接口 图11 ̄21在出站PE上创建VPN标签的LFIB表项 图11-21中的处理过程如下。 第1步:将路由10.3.3.0/24添加到VRF-A之后, PE2为该路由分配一个本地标签 (3333)并与该路由相关联。然后PE2再将该本地标签及其下一跳IP地址和出接口(针 对VRF-A的路由10.3.3.0/24)存储到LIB 第2步: (图中未显示)和LFIB中。 PE2为每个VRF中的每条路由(包括第2步显示的VRF-B中的路由) 重复第1步操作。收到VRF-B中的路由10.3.3.0/24之后, PE2分配了一个不同的本地 标签(4444),并将该标签与该路由的下一跳IP地址及出站接口关联起来,然后将该 信息存储到一个新的LFIB表项中。 第3步:将路由重分发到BGP中时, 表项中。 PE2将这些路由的本地标签都添加到BGP 11.3 第4步: PE2利用iBGP将这些路由宣告给PEl MPLs>PN 487 (在BGP更新中包含VPN标签)。 图11-21中的前两步完成后,如果PE2收到了有标签数据包并分析出标签值为 3333,那么PE2就能将数据包正确转发给CE-A20与此类似, PE2也能将收到的标签 值为4444的有标签数据包正确转发给CE ̄B20 2.创建LFIB表项以将数据包转发给出站PE 外层标签定义了从人站PE到出站PE的LSPo具体而言,外层标签定义了将数据 包转发给BGP下一跳地址(在BGP更新中宣告的)的LSPo从概念上来说,人站PE 添加外层标签的目的是请求MPLS网络的核心“将数据包转发给出站PE一就是宣 告该特定BGP下一跳地址的PE”o MPLS VPN利用IGP和LDP学习路由和标签信息,特别是外层标签使用的标签 值。为了能够更好地将这些概念串在一起,有必要考虑与LSP (用于外层标签)相关 的整个控制平面进程,即接着前面的第4步开始。 第1步: PE从CE学习路由,该PE将成为该特定路由的出站PEo 第2步:出站PE利用iBGP将该路由宣告给人站PEo 第3步:学到的iBGP路由列出了下一跳IP地址。 第4步‥为了保证MPLS VPN的正常工作, PE和P路由器必须已经宣告了到达 BGP下一跳地址的路由。 第5步:与此相似,为了保证MPLS VPN的正常工作, PE和P路由器必须已经 利用LDP宣告了与到达BGP下一跳地址的路由相对应的标签。 第6步:每个P和PE路由器都要将自已所属的端到端完整LSP的那部分添加到 自已的LFIB中,使得人站PE能够向出站PE发送数据包。 例如,图11-21中的PE2正在向PEl宣告两条路由,这两条路由的BGP下一跳 IP地址都是3.3.3.30为了保证MPLS的正常运行, P路由器和PE路由器都需要宣告 到达3.3.3.3的IGP路由,并通过LDP宣告标签,因而可以采用标签交换方式将数据 包转发给出站PE (相应的进程如图11-22所示)。需要注意的是,这部分进程与本章 前面讨论过的单播IP转发给出的简单IGP及LDP进程非常相似。 图中的操作步骤显示了为前缀3.3.3.3/32 (与PE2的BGP下一跳IP地址相匹配) 创建LFIB表项的过程(请注意,图11-22并没有显示所有的LDP宣告消息,而仅显 示了与本例相关的LDP宣告消息)。 第1步: 第2步: PE2学到前缀3.3.3.3/32的路由之后,立即分配一个本地标签22220 PE2为该本地标签更新其LFIB,列出弹出操作。 488 第11章 MPLs 第3步:与正常情况一样, PE2将前缀3.3.3.3/32与标签2222的标签绑定信息宣 告给LDP邻居。 第4步: Pl和P2均通过IGP学到了前缀3.3.3.3/32,为该前缀分配本地标签(Pl 的标签是1111, P2的标签是5555)并更新备自的LFIBo PI LFIB 入标签 操作 11∥ 交换 出标签 出接口 入标签 图11 ̄22 入标签 操作 5555 交换 出标签 操作 出接口 弹出 LoopO 出接口 创建LFIB表项以到达出口PE的BGP下一跳 第5步‥Pl和P2向它们的对等体宣告3.3.3.3/32以及相应的本地标签的绑定信息。 图11 ̄20给出了将数据包从CE ̄Al转发到CE-A2 (具体来说就是转发到子网 10.3.3.0/24中)所需的FIB和LFIB表项信息。图11-21和图11-22则解释了LFIB表 项的创建过程。接下来将讨论如何在PEl上创建所需的FIB表项0 3.为入站PE创建>RFFIB表项 有关数据平面讨论的最后一部分内容就是人站PE,特别是分析人站PE在收到人 站无标签数据包之后的处理过程。 第1步:利用与人站接口相关联的vRF (静态配置的)处理人站数据包。 第2步:利用VRF的FIB转发数据包。 为了支持MPLS VPN, FIB表项需要拥有两个标签,一个外层标签(负责标识到 达出站PE的LSP)和一个内层标签(负责标识出站PE的LFIB表项, LFIB表项中包 含出站PE的正确出站接日)。虽然看起来很简单,但为了完整起见,人站PE学习外 层标签和内层标签的方式如下: MPLSvPN 11.3 489 外层标签墓于LIB表项,具体说来就是与BGP学到的下一跳IP地址(而不 ■ 是数据包的目的IP地址)相匹配的前缀所对应的LIB表项; 内层标签基于BGP表项,具体说来就是与VRF中与数据包目的IP地址相匹 ■ 配的路由所对应的BGP表项。 图11-23基于本章前面的示例,显示了PEl将前缀10.3.3.0/24的FIB表项添加到 vRF-A中的处理过程o BGP表 Dn v A F ●↑↑.↑●●:●..↑↑↑ ① 前缀 下一跳 出接口 出标签 ' 10.3.3.0/24sO/O/13.3.3.3 ◆ ● ■膏 .. LI ∴’④ B ∵ 圈圈 图11-23 为VRF-A创建入站PE(PEl 霞 )的F旧表项 目前PEl已经学到了所有需要的BGP和LDP信息,已经准备好安装VRF路由表 和FIBo PEl的BGP表保存了VEN标签(3333),而PEl的LIB则保存了从PEl的两个LDP 邻居学到的两个标签(Pl和P2,标签分别为1111和5555)。对于本例来说, 下一跳3.3.3.3的最佳路由恰好指向Pl PEl匹配BGP (而不是P2),因而本例使用学自Pl的标签11Ⅱ。 图Ⅱ-23中的处理过程如下。 第1步: PEl将路由从BGP重分发到VRF-A的路由表中(基于导人RT)。 第2步: PEl为刚刚添加到VRF-A路由表中的路由构建VRF-AFIB表项。 第3步:新FIB表项需要包含VPN标签(PEl在关联的BGP表项中找到的标签)。 第4步:新FIB表项还要包含外层标签(即用来到达BGP下一跳IP地址[3.3.3.3]的 标签),因而PEl需要查找LIB,以找到匹配3.3.3.3的最佳LIB表项并取出标签(1…)。 攻城狮论坛 490 bbs.vlan5.com 第11章 #^_^# 版权归原作者所有 本资料仅供试读 . MPLs 第5步‥人站PEl插人MPLS报头(包含两个标签的标签栈)。 至此,PEl在分配给VRF ̄A的接口上收到数据包之后,PEl将查找VRF-A的FIBo 如果该数据包去往前缀10.3.3.0/24中的某个地址,那么PEl将匹配图中显示的表项, 从而以标签11Ⅱ和3333经接口SO/0/1向外转发该数据包0 4.倒数第二跳弹出 虽然到目前为止的MPLS VPN数据平面操作一切正常,但出站PE的操作方式效 率低下,其原因在于出站PE收到携带两层标签(位于标签栈中)的数据包之后必须 执行两次LFIB查找操作。例如,图11-24再次列出了本章一直在用的数据平面转发示 例,图中标出了每台路由器的处理逻辑。请注意,图中的出站PE (PE2)必须考虑其 LFIB中的两个表项。 矗■矗幅■ 图11-24 需要在出站PE上执行两次LF旧查找操作 为了避免最后一台LSR的额外操作, MPLS引人了PHP (Penultimate 倒数第二跳弹出)特性。这里所说的PenuItimate Hop Popping, (倒数第二)指的是最后一个的前一个, 因而倒数第二跳并不是处理有标签数据包的最后一台LSR,而是处理有标签数据包的倒 数第二台LSRo PHP可以让倒数第二跳LSR弹出外层标签,这样一来最后一台LSR (最 后一跳)收到的数据包将仅包含VPN标签。由于只有单个标签,因而出站PE只耍在LFIB 中查找一个表项即可。图11-25给出了启用PHP特性之后的数据平面处理过程。 国■国■国 倒数第二个 (最后一个的前一个) 最后一个 (最后) MPLs跳 MPLs跳 图11 ̄25 启用了PHP之后只需要在出站PE上执行一次LFIB查找操作 攻城狮论坛(技术+生活)2群 1813097 11.4 11.4 其他MPLS应用 491 其他MPLs应用 由于本章的最后一节将讨论其他MPLS应用所使用的协议信息,因而本节肾解释FEC (Forwarding Equivalence αass ,转发等价类)的概念并概括不同MPLS应用所用的FEC情况。 虽然本章已经讨论了与术语FEC相关的所有概念,但为了更好地比较备种不同的 MPLS应用,有必要进一步理解并掌握FEC的概念。 一般来说, FEC就是一组由单个LSR赋予相同转发属性的数据包。对于简单的 MPLS单播IP转发来说,每个IPv4前缀就是一个FECo对于MPLSVPN来说,每个 VRF中的每个前缀就是一个FEC (因而vRF-A中的前缀10.3.3.0/24不同于VRF-B中 的前缀10.3.3.0/24)。作为可选方式,如果部署了QoS机制,那么某个FEC就有可能 是VRF-A中去往10.3.3.0/24且数据包中的DSCP值为EF的一组数据包,而另一个FEC 则有可能是位于相同VPN、去往相同子网但DSCP值不同的一组数据包。 对于每个FEC来说,每台LSR在转发FEC中的数据包时都要使用一个标签(或 一个标签栈)。为每个FEC都使用唯一的一个标签或一组标签之后,路由器就能够分 配不同的转发属性(出站接日和下一跳路由器)。 对比备种MPLS应用时可以分析这些应用在确定FEC时使用的信息。例如,MPLS TE (Tra雕c Engineering,流量工程)允许MPLS网络基于流量负荷选择通过特定LSP 发送部分数据包、通过其他LSP发送其他数据包(即使实际的目的端很可能位于同一 个地点)。这样做的目的是让SP能够管理数据流量通过高速核心网络进行传输,避免 路由协议选择出来的最佳路由出现超负荷而几乎不使用替代路由。为了实现上述功能, MPLS TE在定义MPLS TE隧道时在一定程度上使用了FEC的概念。 对比不同MPLS应用时也可以列出这些应用学习标签信息时使用的控制平面协 议。例如,本章在前面已经解释了MPLS VPN利用LDP和MP-BGP交换标签信息的 方式,但某些MPLS应用可能使用LDP,而某些MPLS应用则可能根本就不使用LDPo 表11 ̄5列出了多种常见的MPLS应用以及确定FEC时所用的信息和宣告FEC-tO-1abel (FEC到标签)绑定信息的控制平面协议。 不同MPLS应用使用的控制平面协议 表11-5 一 膏 ==酣.藕 ー.. 日 '. 日 . ≠ 日 . ●● . 瞄 捷 古 . .- ー.1 . '. .. 熏 492 第11章 11.5 MPLs 部署Multi-VRFCE vRF (VRFLite) Lite也称为Multi-VRF CE,可以在单台路由器上提供多个IP路由表实例。 路由器将每个接口/子接口与多个vRF实例关联在一起之后,就可以实现三层隔离机 制,类似于二层LAN域中的二层VLAN隔离。有了vRFLite之后,工程师就可以在 不部署NAT (NetworkAddress Thanslation,网络地址转换)的情况下创建允许重叠IP 地址空间的互连网络,同时还可以避免数据包越界进人其他vRF,从而提供了更好的 安全性,而且还将MPLSVPN的概念扩展到CE路由器,提供了更灵活的应用能力o VRF Lite的配置命令与前面“MPLS VRF Lite的时候将首先介绍VRF VRF Lite将MPLS VPN配置”一节描述的命令相同。后面在讨论 Lite的配置方式(无MPLS) ,然后再解释如何利用 VPN服务扩展到CE路由器0 11.5.1无MPLS的>RFLite 从本质上来说, VRF Lite特性允许工程师将IP互连网络划分为多个不同的域或 组,而不需要隔离路由器或者隔离物理连接。如果要提供三层域隔离功能,通常可以 采用以下方式:利用ACL过滤数据包、利用路由过滤器过滤路由、利用NAT解决地 址空间重叠问题以及隔离站点之间的物理链路。由于每台路由器都只有一个IP路由 表,因而对于使用独立路由器已经完美解决了的问题来说,此时却是一个非常严峻的 挑战o VRF Lite的配置机制与本章前面“MPLS VPN配置”一节讨论过的第1步和第2步 相同。首先需要为路由器配置多VRF,然后再将接口与VRF相关联,这样一来路由 器就能在转发数据包的时候根据人站接口所关联的VRF来选择所要使用的VRFo最 后再在指定vRF上运行路由协议。 例如,图11-26给出了一个简单的互连网络设计方案。图中的两家企业已经合并 了,由于两家企业在图中的两个城市都有办公室,因而决定将每个城市的员工都迁移 到同一个写字楼中。为了保证用户之间的隔离性,计划将合并前每家企业的用户都放 在与该企业相关的指定VLAN中。 图11 ̄26 VRF Lite设计方案示意图 部署MuIti一VRFCE 11.5 (VRFLite ) ∴493 从图Ⅱ一26石侧的设计方案可以看出,存在重叠十网(10.3.3.0/24)。嵌然工程帅 可以为其中的莱个子网重新分配IP地址井忽略VRF Life,仙是出r其他安全性考忠. 网络设计方案还要求不允许合井前的两家企业的主机之同枷互将数据包发送给付方厅 网,此时的解决方案之一.就是为每台路山器都创建两个vRFo 除丁前面已经讨沦过的MPLSVPN刚骨(如.●MPLSVPN配墙●●一节中的第1砂和 第2步所述)之外,还要增加一个新的耻置步骤,以确保路出器有文持多vRF流毒的 链路上使用子接口。由于VRFLde要求每个接日或r接日都必须丁▲个VRF棚关联. 因而为了能够在多个vRF.之间共享同--.条物埋链路,必须在刚苦巾包含了接日。例如. 如果互连网络设计方案采品以太网.那么就需要配蒂中继以及榔关联的子接=。 ‘但是对于专线应用场景来说,常规的HDLC (High-Level DataLinkContro上高级 数据链路控制规程)和申P响.案井不允许了接日.因而此…勺大多数配置方案都采出 帧中继封装方式.该方式支持千接l!。何需要注患的是,此可井不击要.个其正的帧 中继网络,工程师只要为每个VC选择.个DLα 据链路连接标识符) (Data-LinkCormection ldentifier.数 (VC西端的DHα柏同)井为每个这样的DLα配吊一个点市点 子接口即可。 例Ⅱ一13给出了图Ⅱ一26所示设计方案的VRF Lite完整配置示例,包括中行链路 上的帧中继配置示例。 励∥一13 J酵出嚣L″e-1铂>R产」″e靡:置 ! C三三.二s∴req、工二 ! dn∴l邯〕〇〕∵ ip ce董 ip vr王 rd ∴∴e ∵士(○∴‥.C三∴ ∴∴二()∴ ∵;∴ ∴ _ cOI-1 Vrf rd b°ch ll:11 boch 22:22 CO|一2 22:22 rouce-car9ec inc∴gO/0/O encap8ulac ion∴王rame- clock∴rate no 8huc co inc∴80/O/0.101 量薯am-r゜lay ip relay 1536000 de8cripcion. addre8g no 8hucdown lp '阴Ⅱ: Lice-2 poinc-cO-p゜inc l叠c゜量量●゜゜一dlcl 192.168.4.1 f゜Iw●rdln゜ cOI-1 ÷)∴.、 ∴' ̄●】, ll:11 rouce-cafgec 1P e(工. /cxpor〔∴干∴ lol 255.255.255.252 ‥∴ :士 ∵二二∴ ∵三;/○.∴ (士∵ ∵c▲.上∵三:∴二∵c三∴ !三)士出三 ▲日((上. 494 第11章 MPLs inc∴gO/0/O.102 fr量me-r゜1ay ip addre8g p゜inc-cO-p゜inc lαceff●c゜一dlcl 192.168.4.5 no 8hucdown ip vf量 量ofw●rdln9 lO2 255.255.255.252 cOI-2 inc∴iaO/O no lp no 8huc addre鲁8 de8cripcion∴co c-1 inc∴iaO/0.1 encap8ulacion∴doclq ip vI量∴f°Ⅰ|'afdlα9 ip addr lol c°Ⅰ一1 255.255.255.O lO.1.1.100 inc∴量aO/0.2 encap8ulaci゜n∴doclq 1p v刊E io膏wardln゜ ip addr roucer ( e19rp lpv4 C`n. vI量 cOI-1 vIf cOI-2 l lO.O.0.O lpv4 auc゜nom゜u8一鲁ygcem necwork 11.5.2 ∵d( auco-gummary ●ddf゜g゜一量a血11y no CL∴∵〇∴∴:∵C士士工∴:○ 65001 auc゜n゜moug-8y鲁cem necw°rk ∴○_ ∵)二∵二←∴C addf゜゜鲁一餐刨nlly no 255.255.255.0 lO.2.2.100 ∴二】三,士S’ ‥ lO2 cOI-2 l lO.0.o.O auco-8ummary 有MPLS的VRF出e VRF Lite也称为Multi-VRF CE.实际上该名称定义的是VRF Lite在MPLS VPN 中的应用。从技术角度来看,该功能特性允许CE路由器感知VRF,但仍然保持CE 的角色.因而应用Multi-VRFCE特性之后的CE可以使用多个VRF,但是却不必承担 部署LDP、 It人/弹出标繁或充当LSR所需的大量负荷。 从斤案设计的角度来看. Multi-VRF 且还能将PE负责的很多工作量分散到不同设备上o 就是一个典型的应用案例. MTU CE特性允许提供商更灵活地选择设备平台,而 (Multillmant Unit,多租户单元) SP将三层设备与多台客户设备都放置在同一栋楼内。虽然SP 工释帅可以让CPE胳由器充当PE.但是如果让CPE路由器充当CE,同时部署Multi-VRF CE特性.那么SP就能更简单地在三层实现用户隔离.而不用购买大量功能强大的三层 CPE设备以支持全部的PE功能。图Ⅱ一27给出了相应的VRFLite应用示例。 11.6 '_■L l N A L V cEl 篮厂了一、ヽ 12 客户2 VRF 图11 ̄27 495 /// i童量 盘窒主 圈… VLAN 理解与记忆 Lite设计方案示例 备考任务 请大家仔细阅读并学习本章的“基本主题”内容,重点复习标注“考试要点”图 标的相关内容0 理解与记忆 11.6 与所有的Cisco CCIE笔试一样, CCIE路由和交换笔试也包含了非常广泛的考试 主题,因而本节提供了一些有用工具,来帮助大家加深理解并记忆本章所涵盖的考试 主题0 11.6.1凭记忆完成要点表 附录E包含了每章考试要点的摘要空表,请打印附录E并根据本章的表格信息, 根据记忆填表,并参考附录F以作检查0 定义关键术语 11.6.2 请写出本章涉及的下列关键术语,然后在术语表中核对正确答案: FIB、 MPLS LIB、 ll.6.3 MPLS单播IP路由、 MPLSVPN、 TTL传播、本地标签、远程标签、标签绑定、 层标签、外层标签、 出站PE、 LFIB、 VRF VPN标签、 Lite、 PHP、 Multi-VRF FEC、 LSR、 LDP、 VRF、 TDP、 RD、 E-LSR、 PE、 LSP、 LSP段、 RT、重叠VPN、内 CE、 P、人站PE、 CE 推荐读物 Cisco Press出版了大量与MPLS相关的书籍(www.ciscopress.com) www.cisco.com/go/mpIs还提供了大量MPLS信息。 ,而且网站 攻城狮论坛 bbs.vlan5.com #^_^# 版权归原作者所有 本资料仅供试读 附录A “我已经知道了吗? ’’测试题答案 第1章 1. D 2. C 3. AD 4. D 5. 6. C 7. AC 8. ADE 9. D lO. ll. ACE 12. AB AB C 第2童 1. BD 2. C 3. A 4. AB 5. 6. AC 7. BC 8. A 9. E lO. ll. 12. C D 13. AD 14. B A C 第3童 1. C 6. AB ll. 2. AD 3. ABE 4. BD 5. 7. D 8. BE 9. A 10. A AB CD 第4章 1. C 2. AB 3. E 6. A 7. C 8. D 1. C 2. C 3. BCD 6. C 7. AC 8. A 1. B 2. D 3. CD 6. D 5. AB 第5章 4. A 5. B 4. B 5. C 第6章 攻城狮论坛(技术+生活)2群 1813097 . 498 附录A “我已经知道了吗? ”测试题答案 第7章 1. BCD 3. AD 4. D 5. D 1. C 4. CE 5. AC 8. CD 9. ACD 4. ABE 8. AB 7. E 第8章 第9章 第10童 1. B 2. 5. ACE 6. 9. ACDF 3. C 4. D C 7. AE 8. BE 2. D 3. B 4. A 6. B 7. B 8. BC C 第11章 lO. AC ll. AE