路由器模块二十四 BGP.docx
- 文档编号:28501655
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:59
- 大小:179.46KB
路由器模块二十四 BGP.docx
《路由器模块二十四 BGP.docx》由会员分享,可在线阅读,更多相关《路由器模块二十四 BGP.docx(59页珍藏版)》请在冰豆网上搜索。
路由器模块二十四BGP
模块二十四BGP
通常可以将路由协议分为IGP(内部网关协议)和EGP(外部网关协议)。
EGP主要用于ISP之间交换路由信息。
目前使用最为广泛的EGP是BGP版本4,它是第一个支持CIDR和路由汇总的BGP版本。
RFC1772对BGP有详细的定义。
第一讲BGP概述
一、BGP特征
BGP被称为是路径向量路由协议,它的任务是在自治系统之间交换路由信息,同时确保没有路由环路,其特征如下:
1.用属性(attribute)描述路径,而不是用度量值;
2.使用TCP(端口179)作为传输协议,继承了TCP的可靠性和面向连接的特性;
3.通过keepalive信息来检验TCP的连接;
4.具有丰富的属性特征,方便实现基于策略的路由;
5.拥有自己的BGP表;
6.支持VLSM和CIDR;
7.适合在大型网路中使用。
在详细讨论BGP之前,首先应该掌握如下BGP术语:
1.对等体(peer):
当两台BGP路由器之间建立了一条基于TCP的连接后,就称它们为邻居或对等体;
2.AS:
是一组处于统一管理控制和策略下的路由器或主机。
AS号由因特网注册机构分配,范围为1-65535,其中64512-65535是私有使用的;
3.IBGP:
当BGP在一个AS内运行时,被称为内部BGP(IBGP);
4.EBGP:
当BGP运行在AS之间时,被称为外部BGP(EBGP);
5.NLRI(网络层可达性信息):
BGP通过NLRI支持CIDR的。
NLRI是BGP更新报文的一部分,用于列出可到达的目的地的集合;
6.同步:
在BGP能够通告路由之前,该路由必须存在于当前的IP路由表中。
也就是说,BGP和IGP必须在网络能被通告前同步。
Cisco允许通过命令“nosynchronization”来关闭同步;
7.IBGP水平分割:
通过IBGP学到的路由不能通告给其它的IBGP邻居。
二、BGP属性
BGP具有丰富的属性,为网络管理员进行路由控制带来很大的方便,BGP路径属性分为4类:
1.公认必遵(Well-KnownMandatory):
BGP更新报文中必须包含的,且必须被所有BGP厂商实现所能识别的,包括ORIGIN,AS_PATH和Next_Hop三个属性。
(1)ORIGIN(起源):
这个属性说明了源路由是怎样放到BGP表中的。
有三个可能的源:
IGP,EGP以及INCOMPLETE。
路由器在多个路由选择的处理中使用这个信息。
路由器选择具有最低ORIGIN类型的路径。
ORIGIN类型从低到高的顺序为:
IGP (2)AS_PATH(AS路径): 指出包含在UPDATE报文中的路由信息所经过的自治系统的序列; (3)Next_HOP(下一跳): 声明路由器所获得的BGP路由的下一跳。 对EBGP会话来说,下一跳就是通告该路由的邻居路由器的源地址。 对于IBGP会话,有两种情况,一是起源AS内部的路由的下一跳就是通告该路由的邻居路由器的源地址;二是由EBGP注入AS的路由,它的下一跳会不变的带入IBGP中; 2.公认自决(Well-KnownDiscretionary): 指必须被所有BGP实现所识别,但是在BGP更新报文中可以发送,也可以不发送的属性,包括LOCAL_PREF和ATOMIC_AGGREGATE两个属性。 (1)LOCAL_PREF(本地优先级): 本地优先级属性是用于告诉自治系统内的路由器在有多条路径的时候,怎样离开自治系统。 本地优先级越高,路由优先级越高。 这个属性仅仅在IBGP邻居之间传递; (2)ATOMIC_AGGREGATE(原子聚合): 原子聚合属性指出已被丢失了的信息。 当路由聚合时将会导致信息的丢失,因为聚合来自具有不同属性的不同源。 如果一个路由器发送了导致信息丢失的聚合,路由器被要求将原子聚合属性附加到该路由上。 3.可选过渡(OptionalTransitive): 可选过渡属性并不要求所有的BGP实现都支持。 如果该属性不能被BGP进程识别,它就会去看过渡标志。 如果过渡标志被设置了,BGP进程会接受这个属性并将它不加改变的传送,包括AGGREGATOR和COMMUNITY。 (1)AGGREGATOR(聚合者): 此属性标明了实施路由聚合的BGP路由器ID和聚合路由的路由器的AS号; (2)COMMUNITY(团体): 此属性指共享一个公共属性的一组路由器。 4.可选非过渡(OptionalNontransitive): 可选非过渡属性并不要求所有的BGP实现都支持。 如果这些属性被发送到不能对其识别的路由器,这些属性将会被丢弃,不能传送给BGP邻居,包括MED、ORIGINATOR_ID和CLUSTER_LIST。 (1)MED(多出口区分): 该属性通知AS外的路由器采用哪一条路径到达AS。 它也被认为是路由的外部度量,低的MED值表示高的优先级。 MED属性在自治系统间交换,但MED属性不能传递到第三方AS; (2)ORIGINATOR_ID(起源ID): 路由反射器会附加到这个属性上,它携带本AS源路由器的路由器ID,用以防止环路; (3)CLUSTER_LIST(簇列表): 此属性显示了采用的反射路径。 三、BGP路由判定 BGP使用了描述路由特性的很多属性。 这些属性和每一个路由一起在BGP更新报文中被发送。 路由器使用这些属性去选择到目的地的最佳路由。 理解BGP路由判定的过程很重要的,下面按优先顺序给出了路由器在BGP路径选择中的判定过程: 1.如果下一跳不可达,则不考虑该路由; 2.优先选取具有最大权重(weight)值的路径,权重是Cisco专有属性; 3.如果权重值相同,优先选取具有最高本地优先级的路由; 4.如果本地优先级相同,优先选取源自于本路由器(即下一跳为“0.0.0.0”)上BGP的路由; 5.如果本地优先级相同,并且没有源自本路由器的路由,优先选取具有最短AS路径的路由; 6.如果具有相同的AS路径长度,优先选取有最低起源代码(IGP 7.如果起源代码相同,优先选取具有最低MED值的路径; 8.如果MED都相同,在EBGP路由和联盟EBGP路由中,首选EBGP路由,在联盟EBGP路由和IBGP路由中,首选联盟EBGP路由; 9.如果前面所有属性都相同,优先选取离IGP邻居最近的路径; 10.如果内部路径也相同,优先选取具有最低BGP路由器ID的路径。 第二讲实验1: IBGP和EBGP基本配置 1.实验目的 通过本实验可以掌握 (1)启动BGP路由进程。 (2)BGP进程中通告网络。 (3)IBGP邻居配置。 (4)EBGP邻居配置。 (5)BGP路由更新源配置。 (6)next-hop-self配置。 (7)BGP路由汇总配置。 (8)BGP路由调试。 2.拓扑结构 实验拓扑如图24-1所示。 图24-1IBGP和EBGP基本配置 3.实验步骤 因为本实验中IBGP的路由器(R1,R2和R3)形成全互联(FULLMESH)的邻居关系,所以路由器R1、R2和R3均关闭同步。 IBGP路由器之间运行的IGP是EIGRP,为了提供BGP建立邻居关系的TCP连接和BGP下一跳可达。 (1)步骤1: 配置路由器R1。 R1(config)#routereigrp1 R1(config-router)#network1.1.1.0255.255.255.0 R1(config-router)#network12.12.12.0255.255.255.0 R1(config-router)#noauto-summary R1(config)#routerbgp100//启动BGP进程 R1(config-router)#nosynchronization//关闭同步 R1(config-router)#bgprouter-id1.1.1.1//配置BGP路由器ID R1(config-router)#neighbor2.2.2.2remote-as100//指定邻居路由器及所在的AS R1(config-router)#neighbor2.2.2.2update-sourceLoopback0//指定更新源 R1(config-router)#neighbor3.3.3.3remote-as100 R1(config-router)#neighbor3.3.3.3update-sourceLoopback0 R1(config-router)#network1.1.1.0mask255.255.255.0//通告网络 R1(config-router)#noauto-summary//关闭自动汇总 (2)步骤2: 配置路由器R2。 R2(config)#routereigrp1 R2(config-router)#network2.2.2.0255.255.255.0 R2(config-router)#network12.12.12.0255.255.255.0 R2(config-router)#network23.23.23.0255.255.255.0 R2(config-router)#noauto-summary R2(config)#routerbgp100 R2(config-router)#nosynchronization R2(config-router)#bgprouter-id2.2.2.2 R2(config-router)#neighbor1.1.1.1remote-as100 R2(config-router)#neighbor1.1.1.1update-sourceLoopback0 R2(config-router)#neighbor3.3.3.3remote-as100 R2(config-router)#neighbor3.3.3.3update-sourceLoopback0 R2(config-router)#noauto-summary (3)步骤3: 配置路由器R3。 R3(config)#routereigrp1 R3(config-router)#network3.3.3.0255.255.255.0 R3(config-router)#network23.23.23.0255.255.255.0 R3(config-router)#noauto-summary R3(config)#routerbgp100 R3(config-router)#nosynchronization R3(config-router)#bgprouter-id3.3.3.3 R3(config-router)#neighbor1.1.1.1remote-as100 R3(config-router)#neighbor1.1.1.1update-sourceLoopback0 R3(config-router)#neighbor1.1.1.1next-hop-self //配置下一跳自我,即对从EBGP邻居传入的路由,在通告给IBGP邻居时,强迫路由器通告自己是发送BGP更新的下一跳,而不是EBGP邻居 R3(config-router)#neighbor2.2.2.2remote-as100 R3(config-router)#neighbor2.2.2.2update-sourceLoopback0 R3(config-router)#neighbor2.2.2.2next-hop-self R3(config-router)#neighbor34.34.34.4remote-as200 R3(config-router)#noauto-summary (4)步骤4: 配置路由器R4。 R4(config)#routerbgp200 R4(config-router)#nosynchronization R4(config-router)#bgprouter-id4.4.4.4 R4(config-router)#neighbor34.34.34.3remote-as100 R4(config-router)#noauto-summary R4(config-router)#network4.4.0.0mask255.255.255.0 R4(config-router)#network4.4.1.0mask255.255.255.0 R4(config-router)#network4.4.2.0mask255.255.255.0 R4(config-router)#network4.4.3.0mask255.255.255.0 R4(config-router)#network4.4.0.0mask255.255.252.0 //用network做路由汇总通告 R4(config)#iproute4.4.0.0255.255.252.0null0 //在IGP表中构造该汇总路由,否则不能用network通告 【技术要点】 ①一台路由器只能启动一个BGP进程; ②命令“neighbor”后边跟的是邻居路由器BGP路由更新源的地址; ③BGP中的“network”命令与IGP不同,它只是将IGP中存在的路由条目(可以是直连、静态路由或动态路由)在BGP中通告。 同时“network”命令使用参数“mask”来通告单独的子网。 如果BGP的自动汇总功能没有关闭,如果在IGP路由表中存在子网路由,在BGP中可以用“network”命令通告主类网络的。 如果BGP的自动汇总功能关闭,则通告必须严格匹配掩码长度; ④在命令“neighbor”后边跟“update-source”参数,是用来指定更新源的。 如果网络中有多条路径,那么用环回接口建立TCP连接,并作为BGP路由的更新源,会增加BGP的稳健性; ⑤在命令“neighbor”后边跟“next-hop-self”参数是为了解决下一跳可达的问题,因为当路由通过EBGP注入到AS时,从EBGP获得的下一跳会被不变的在IBGP中传递,“next-hop-self”参数使得路由器会把自己作为发送BGP更新的下一跳来通告给IBGP邻居; ⑥BGP的下一跳是指BGP路由表中路由条目的下一跳,也就是相应“neighbor”命令所指的地址。 4.实验调试 (1)showtcpbrief,该命令用来查看TCP连接信息摘要。 R3#showtcpbrief TCBLocalAddressForeignAddress(state) 64752BAC3.3.3.3.110021.1.1.1.179ESTAB 64753B5C3.3.3.3.110002.2.2.2.179ESTAB 647270834.34.34.3.1100134.34.34.4.179ESTAB 【注】以上输出标明路由器R3和路由器R1、R2和R4的179端口建立了TCP连接。 建立TCP连接的双方使用BGP路由更新源的地址。 只要两台路由器之间建立了一条TCP连接,就可以形成BGP邻居关系。 (2)showipbgpneighbors,该命令用来查看邻居的TCP和BGP连接的详细信息。 R3#showipbgpneighbors34.34.34.4 BGPneighboris34.34.34.4,remoteAS200,externallink BGPversion4,remoterouterID4.4.4.4 BGPstate=Established,upfor00: 50: 29 Lastread00: 00: 21,holdtimeis180,keepaliveintervalis60seconds Neighborcapabilities: Routerefresh: advertisedandreceived(old&new)AddressfamilyIPv4Unicast: advertisedandreceived ...... 【注】以上输出表明路由器有一个外部BGP邻居路由器R4(34.34.34.4)在AS200。 此邻居的路由器ID号是4.4.4.4。 命令“showipbgpneighbors”显示出的信息最重要的一部分是“BGPstate=”那一行。 此行给出了BGP连接的状态。 “Established”状态表示BGP对等体间的会话是打开的并正在运行。 如果显示的是其它状态,如Idle、Connect、Active、OpenSent或OpenConfirm,那就存在问题。 (3)showipbgpsummary,该命令用来查看BGP连接的摘要信息。 R3#showipbgpsummary BGProuteridentifier3.3.3.3,localASnumber100 //路由器ID及本地AS BGPtableversionis11,mainroutingtableversion11 //BGP表的内部版本号(BGP表变化时号码会逐次加1)和注入到主路由表的最后版本号 5networkentriesusing505bytesofmemory //网络条目和使用的memory 5pathentriesusing240bytesofmemory //路径条目和使用的memory 2BGPpathattributeentriesusing120bytesofmemory 1BGPAS-PATHentriesusing24bytesofmemory 0BGProute-mapcacheentriesusing0bytesofmemory 0BGPfilter-listcacheentriesusing0bytesofmemory BGPusing889totalbytesofmemory BGPactivity5/0prefixes,6/1paths,scaninterval60secs NeighborVASMsgRcvdMsgSentTblVerInQOutQUp/DownState/PfxRcd 1.1.1.141008081110000: 38: 291 2.2.2.241007477110001: 12: 460 34.34.34.442007174110001: 07: 474 【注】以上输出的邻居表的各个字段的含义如下: ①Neighbor: BGP邻居的ID; ②V: BGP的版本为4; ③AS: 邻居所在的AS号码; ④MsgRcvd: 接收的信息; ⑤MsgSent: 发送的信息; ⑥TblVer: BGP表的内部版本号; ⑦Up/Down: 邻居关系建立的时间; ⑧State/PfxRcd: BGP连接的状态或者通告的路由前缀。 (4)showipbgp,该命令用来查看BGP表的信息。 R3#showipbgp BGPtableversionis11,localrouterIDis3.3.3.3 //BGP表的内部版本号和本路由器的BGP路由器ID Statuscodes: ssuppressed,ddamped,hhistory,*valid,>best,i-internal,rRIB-failure,SStale Origincodes: i-IGP,e-EGP,? -incomplete NetworkNextHopMetricLocPrfWeightPath r>i1.1.1.0/241.1.1.101000i *>4.4.0.0/2434.34.34.400200i *>4.4.0.0/2234.34.34.400200i *>4.4.1.0/2434.34.34.400200i *>4.4.2.0/2434.34.34.400200i *>4.4.3.0/2434.34.34.400200i 【注】以上输出中,路由条目表项的状态代码(Statuscodes)的含义解释如下: ①s: 表示路由条目被抑制; ②d: 表示路由条目由于被惩罚而受到抑制,从而阻止了不稳定路由的发布; ③h: 表示该路由该路由正在被惩罚,但还未达到抑制阀值而使它被抑制; ④*: 表示该路由条目有效; ⑤>: 表示该路由条目最优,可以被传递,达到最优的重要前提是下一跳可达; ⑥i: 表示该路由条目是从IBGP邻居学到的; ⑦r: 表示将BGP表中的路由条目放入到IP路由表中失败。 【注】以上输出中,起源代码(Origincodes)的含义解释如下: ①i: 表示路由条目来源为IGP; ②e: 表示路由条目来源为EGP; ③? : 表示路由条目来源不清楚,通常是从IGP重分布到BGP的路由条目。 【注】下面具体地解释BGP路由条目“r>i1.1.1.0/241.1.1.101000i”的含义: ①r: 因为路由器R3通过EIGRP学到“1.1.1.0/24”路由条目,其管理距离为90,而通过IBGP学到“1.1.1.0/24”路由条目的管理距离是200,而且关闭了同步,BGP表中的路由条目放入到IP路由表中失败,所以出现代码“r”; ②>: 表示该路由条目最优,可以继续传递; ③i: 表示该路由条目是从IBGP邻居学到的; ④1.1.1.1: 表示该BGP路由的下一跳; ⑤0(标题栏对应Metric): 表示该路由外部度量值即MED值为0; ⑥100: 表示该路由本地优先级为100; ⑦0(标题栏对应W
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路由器模块二十四 BGP 路由器 模块 十四