Uploaded by 178331601

CCIE路由和交换认证考试指南(第5版)(第2卷)-520

advertisement
攻城狮论坛
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
Download