Ⅰ FAST路由器的BGP的正确应用方法
一、Internet路由表中的BGP路由条目,目前规模已经达到十几万。
在面对庞大的Internet路由表时,我们免不了需要进行路由过滤。在处理如此大规模的路由表时,如果利用地址前缀去过滤BGP路由,那么一来有可能配置比较繁琐,二来且有新的路由加入不好维护,所以提出了利用AS_PATH进行BGP路由过滤的办法。
二、由于Internet核心AS的分布都是有记录的
所以利用AS的过滤更有针对性,例如可以使用AS_PATH作过滤,解决过滤从某个AS_PATH始发的全部路由,只需一个AS_PATH列表即可,当然利用AS_PATH过滤可以解决的问题远不仅如此,这还需要我们在下文中慢慢体会。
三、AS_PATH与正则表达式介绍,AS_PATH,公认必遵属性。这个属性在传递UPDATE报文中标识了到达一个目的地所经过的AS信息,AS_PATH有4种类型:
AS_SEQUENCE(用于路由AS路径记录);
AS_SET(用于聚合路由的明细路由AS集合);
AS_CONFED_SEQUENCE(用于联盟路由AS路径记录);
AS_CONFED_SET(用于联盟聚合路由)。
四、从AS_PATH的显示格式看出,AS_PATH可以看成一个由数字0-9,“()”,“[]”,“{}”和空格组成的字符串。
当然例子中是最复杂的格式,实际应用中并不是所有字段都有填充的,当我们想利用匹配AS_PATH做路由过滤的时候,怎么实现对AS_PATH匹配呢?根据之前分析过AS_PATH可以看作是字符串的'这一特点,我们找到了处理字符串的强大工具正则表达式这把利剑来帮我们实现匹配,这样正则表达式就在BGP的舞台登场了。
五、正则表达式是按照一定的模板来匹配字符串的公式。
在BGP中,正则表达式可以应用于基于AS_PATH的ACL,根据BGP路由的AS_PATH属性决定路由的接受与拒绝。利用介绍的符号来对AS_PATH进行匹配,看看这些符号能够给我们带来多么奇妙的效果。
1、^$表示匹配的字符串为空,即AS_PATH为空,表示只匹配本地路由。
2、.*表示匹配任意字符串,即AS_PATH为任意,表示匹配所有路由。
3、^100表示匹配字符串开始为100,即AS_PATH最左边AS前3位(最后一个AS)为100、1001、1002等,表示匹配AS100、1001、1002等邻居发送的路由。
4、^100_表示匹配字符串开始为100后面为符号,即AS_PATH最左边AS(最后一个AS)为100,表示匹配AS100邻居发送的路由,比较前一个表达式,”_”的好处就体现出来了,它可以和用来帮助我们限制匹配单独的一个AS。
5、_100$表示匹配字符串最后为100,即AS_PATH最右边AS(起始AS)为100,表示匹配AS100始发的路由。
6、_100_表示字符串中间有100,即AS_PATH中有100,表示匹配经过AS100的路由。
7、(65535_表示匹配字符串为(65535后面为符号,即AS_CONFED_SEQUENCE最左边AS(最后一个AS)为65535,表示匹配联盟AS65535邻居发送的路由,我们知道,AS_CONFED_SEQUENCE是用”(”、“)”表示的,”(”、“)在正则中是特殊字符,有特殊用处,所以对于这种特殊字符,可以使用””来去除其特殊意义进行匹配,同理AS_CONFED_SET使用的”[“、”]”,AS_SET使用的”{”、”}”都可以使用””符号来去除这些特殊符号的特殊意义,举例[65533_,{202_。
8、(.*_205_.*)表示字符串AS_CONFED_SEQUENCE中间有205,即AS_CONFED_SEQUENCE中有205,表示匹配经过联盟AS205的路由。
9、_207)表示匹配字符串最后为207),即AS_PATH最右边AS_CONFED_SEQUENCE(起始AS)为207,表示匹配联盟AS207始发的路由。
Ⅱ 什么是BGP
BGP主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由。中国联通 、中国电信、中国铁通和一些大的民营IDC运营商都具有AS号,全国各大网络运营商多数都是通过BGP协议与自身的AS号来实现多线互联的。使用此方案来实现多线路互联,IDC需要在CNNIC(中国互联网信息中心)或APNIC(亚太网络信息中心)申请自己的IP地址段和AS号,然后通过BGP协议将此段IP地址广播到其它的网络运营商的网络中。使用BGP协议互联后,网络运营商的所有骨干路由设备将会判断到IDC机房IP段的最佳路由,以保证不同网络运营商用户的高速访问。
BGP有动态跟静态之分,目前市面上大部分是属于静态BGP,动态的话目前了解到的只有小鸟云计算开通了华南BGP机房以及香港BGP机房,采用的动态BGP线路,完美解决了跨网访问高延迟、南北互联不互通的问题。随着云计算行业的高速发展,BGP线路将会会成为公有云计算行业标配。
Ⅲ “RIP、OSPF、BGP”这三个动态路由协议在工作原理上的区别是什么
“RIP、OSPF、BGP”这三个动态路由协议在工作原理上的区别:BGP是自治系统间相互访问所使用的,它涉及到ISP运营商;RIP是距离矢量路由协议,它通过交换明确的路由来达到全网互通,即是说他所获得的路由都是通过邻居发送过来的;OSPF是链路状态路由协议,他不发送路由信息
RIP、OSPF、BGP”这三个动态路由协议在工作原理上的区别对比:
1、RIP协议
RIP( Routing Information Protocol )路由信息协议:是在一个AS系统中使用地内部路由选择协议,是基于距离向量路由选择的协议。RIP有两个版本:RIPv1和RIPv2,它们均基于经典的距离向量路由算法,最大跳数为15跳。
RIP的算法简单,但在路径较多时收敛速度慢,广播路由信息时占用的带宽资源较多,它适用于网络拓扑结构相对简单且数据链路故障率极低的小型网络中,在大型网络中,一般不使用RIP。
RIP使用UDP数据包更新路由信息。路由器每隔30s更新一次路由信息,如果在180s内没有收到相邻路由器的回应,则认为去往该路由器的路由不可用,该路由器不可到达。如果在240s后仍未收到该路由器的应答,则把有关该路由器的路由信息从路由表中删除。
2.OSPF协议
OSPF( Open Shortest Path First,开放最短路径优先)协议:采用链路状态路由选择技术,开放最短路径优先算法。路由器互相发送直接相连的链路信息和它拥有的到其它路由器的链路信息。每个 OSPF 路由器维护相同自治系统拓扑结构的数据库。从这个数据库里,构造出最短路径树来计算出路由表。当拓扑结构发生变化时, OSPF 能迅速重新计算出路径,而只产生少量的路由协议流量。
3、BGP协议
BGP (边界网关协议,Border Gateway Protocol )是自治系统之间的路由选择协议。BGP用于连接Internet。作为最新的外部网关协议,现有四个版本。
BGP 是唯一一个用来处理像因特网大小的网络协议,也是唯一能够妥善处理好不相关路由域间的多路连接协议。BGPv4是一种外部的路由协议。可认为是一种高级的距离向量路由协议。
Ⅳ 【网络工程师路由篇】BGP 入门实验
R1、R2、R3属于AS 123;R4属于AS 400;
R1、R2、R3运行OSPF,运行OSPF的目的是为了打通AS 123内的路由;
R3-R4之间建立EBGP邻居关系,R2不运行BGP;
R1-R3之间建立IBGP邻居关系;
在R4上,将路由4.4.4.0/24发布到BGP。
R1的配置如下(省略接口IP地址的配置):
R2的配置比较简单,就是运行OSPF而已,这部分配置不再赘述。
R3的配置如下:
R4的配置如下:
完成上述配置后,在R3上查看BGP路由表:
我们看到R3已经学习到了R4通告过来的BGP路由4.4.4.0/24。并且该条BGP路由的NextHop属性值为10.1.34.4,这个下一跳地址是路由可达的。该条路由在R3的BGP路由表里有“* >” 标记,其中“*”表示这条路由是可用的(valid),只有当BGP路由的NextHop为路由可达时,该BGP路由才会被视为可用;而“>”则表示这条路由是被优选的路由,或者说是到达该目的网络的最优路由。
BGP路由的NextHop属性是一个非常重要的属性,它是所有BGP路由都会携带的路径属性,它指示了到达目的网络的下一跳地址。
在R3上查看路由表:
R3已经将到达4.4.4.0/24的BGP路由加载到了全局路由表中。
对于R3而言,到达4.4.4.0/24的路由已经被优选,接下来,它会将该路由通告给IBGP邻居R1。
在R1上查看BGP路由表:
我们看到,R1的BGP路由表中已经出现了4.4.4.0/24路由,而这条路由的NextHop属性值是10.1.34.4,但是R1在本地路由表中没有到达10.1.34.4的路由,因此10.1.34.4不可达,如此一来,该BGP路由也就不可用了(在BGP路由表中没有*号标记),既然不可用,自然就不能装载进路由表中使用。
那么怎么解决这个问题呢?一个最简单的方法是,为R1配置一条静态路由:ip route-static 10.1.34.0 24 10.1.23.3,这样一来R1的路由表里就有了到达10.1.34.4的路由,那么BGP路由4.4.4.0/24的下一跳地址就可达了,对应的BGP路由自然也就可用了。但是这种方法太“笨拙”。另一种方法是,在R3的OSPF进程中将10.1.34.0/24网段也注入进去,使得R1能够通过OSPF学习到10.1.34.0/24路由,这种方法也是可行的。但是由于R3-R4之间的互联链路被视为AS外部链路,因此10.1.34.0/24作为外部网段往往不会被宣告进AS内的IGP。那么还有什么其他办法能解决这个问题么?
BGP路由器在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。如下图所示,R4将4.4.4.0/24通告给R3时,下一跳为10.1.34.4,也就是R4的GE0/0/0接口地址。
BGP路由器将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
BGP路由器在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。
例如下图所示,R3收到R4通告的EBGP路由,该路由的下一跳属性值为10.1.34.4,它将该条路由通告给IBGP对等体R1的时候,路由的下一跳属性值不会发生改变,仍然为10.1.34.4。
这就造成了我们上面所述的问题,由于R1没有到达10.1.34.0/24的路由,因此下一跳地址10.1.34.4不可达,从而导致BGP路由4.4.4.0/24不可用。
还有一个方法可以解决这个问题:在R3上使用next-hop-local命令,可修改BGP路由的下一跳属性值为自身。在下图中,我们在R3上增加了peer 10.1.12.1 next-hop-local命令,那么这样一来,当R3再将EBGP路由通告给R1的时候,会将这些路由的下一跳属性值修改为自己的更新源地址(10.1.23.3),而R1已经通过OSPF获知到达10.1.23.0/24的路由,因此10.1.23.3是可达的。
完成配置后,我们在R1上查看BGP路由表:
可以手工指定用于建立BGP连接的源接口及源IP地址。命令如下:[Router-bgp] peer x.x.x.x connect-interface intf [ ipv4-src-address ]缺省情况下,BGP使用报文的出接口作为BGP报文的源接口。当用户完成peer命令的配置后,设备会在自己的路由表中查询到达该对等体地址的路由,并从该路由得到出接口信息。如果peer命令中没有指定接口(connect-interface)和IP地址(ipv4-src-address),那么设备将会使用前述出接口和该接口的IP地址作为BGP报文的源接口和源地址。
为了使物理接口在出现问题时,设备仍能发送BGP报文,可将发送BGP报文的源接口配置成Loopback接口。在使用Loopback接口作为BGP报文的源接口时,必须确认BGP对等体的Loopback接口的地址是可达的。由于一个AS内往往会运行IGP协议,因此AS内的设备能够通过该IGP协议获知到达其他设备的Loopback接口的路由。在AS内部,IBGP邻居关系通常基于Loopback接口建立。
EBGP邻居之间通常使用直连接口的IP地址作为BGP报文源地址,如若使用环回接口建立EBGP邻居关系,要配置peer ebgp-max-hop命令,允许EBGP通过非直连方式建立邻居关系。
同样是上面的环境,我们稍作变更,在R1及R3上创建loopback0,地址分别为1.1.1.1/32及3.3.3.3/32,然后设备各自将loopback0宣告进OSPF,使得彼此都能通过OSPF学习到对方的Loopback0路由。
我们修改BGP的配置,使得R1-R3之间的IBGP邻居关系基于Loopback0来建立。
R1的关键配置如下:
R3的关键性配置如下:
注意,务必要将R1及R3的Loopback0接口激活OSPF。
经过前面的讲解,我们的环境现在是这样的:R1-R3之间建立了基于Loopback接口的IBGP邻居关系;R3对R1配置了next-hop-local;R3与R4之间仍然维持基于直连接口的EBGP邻居关系;R4在BGP中发布路由4.4.4.0/24。
现在R1是能够学习到BGP路由4.4.4.0/24的,并且该路由也是被优选的,此时这条路由会被R1装载进全局路由表使用,但是,这是不是意味着R1就能够ping通4.4.4.4了呢?经过测试你可能会发现:无法ping通?因为数据包在R2这里就被丢弃了,R2并没有运行BGP,因此它无法学习到BGP路由4.4.4.0/24。
怎么才能让R1 ping通4.4.4.4呢?方法之一是在R3上将BGP路由重发布进OSPF,使得R2能够通过OSPF学习到BGP路由4.4.4.0/24,但是这种方法存在一定的风险,因为我们知道BGP承载的前缀数量往往是非常庞大的;另一种方法是,让R2也运行BGP,并与R1、R3建立IBGP邻居关系,这样一来问题就解决了。那么BGP邻居关系就变成了如下图所示。具体配置此处不再赘述。
通常情况下,EBGP邻居之间必须具有直连的物理链路,EBGP邻居关系也将基于直连接口来建立,如果不满足这一要求,则必须使用peer ebgp-max-hop命令允许它们之间经过多跳建立TCP连接。
peer ebgp-max-hop命令用来配置允许BGP同非直连网络上的对等体建立EBGP连接,并同时可以指定允许的最大跳数。命令格式如下:[Router-bgp] peer ipv4-address ebgp-max-hop [ hop-count ]
如上图所示,R1及R2要基于Loopback口建立EBGP邻居关系。这种情况也属于EBGP邻居之间不基于直连接口建立邻居关系的场景,必须配置peer ebgp-max-hop命令。图中R1与R2之间的两条物理链路是为了冗余性考虑。R1的关键配置如下:
R2的关键配置如下:
BGP邻居表
BGP表
查看BGP条目的详细信息:
路由表,display ip routing-table
Ⅳ BGP是什么路由
满意答案流星划过夜空。ゞ9级2009-04-14BGP(Border Gateway Protocol)是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治系统号(AS)序列属性的路径可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的路由策略。与OSPF 和RIP 等在自治区域内部运行的协议对应,BGP 是一类EGP(Exterior Gateway Protocol)协议,而OSPF 和RIP 等为IGP(Interior Gateway Protocol)协议。BGP 协议经常用于ISP 之间。BGP 协议从1989 年以来就已经开始使用。它最早发布的三个版本分别是RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),当前使用的是RFC1771(BGP- 4)。 随着INTERNET 的飞速发展,路由表的体积也迅速增加,自治区域间路由信息的交换量越来越大,影响了网络的性能。BGP 支持无类别域间选路CIDR(Classless Interdomain Routing),可以有效的减少日益增大的路由表。BGP-4 正迅速成为事实上的Internet 边界路由协议标准。特性描述如下:BGP 是一种外部路由协议,与OSPF、RIP 等的内部路由协议不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最好的路由。通过携带AS 路径信息,可以彻底解决路由循环问题。为控制路由的传播和路由选择,它为路由附带属性信息。是一种在自治系统之间动态交换路由信息的路由协议。BGP是为取代最初的外部网关协议EGP设计的。它也被认为是一个路径矢量协议。
Ⅵ BGP的路由优选规则和负载分担
1.Preferred-Value数值
Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。Preference_Value值越大,越优先,默认缺省值为0 只能改变自己的入向选路。
默认情况下,会选择Router id小的作为自己的最优下一跳
step1:在R1上使用ip-prefix或者acl筛选出路由条目
step2:使用路由策略(由于首选值只在本地路由器生效,所以只能应用在本设备的入方向)
step3:在R1的BGP进程中调用路由策略
step4:验证现象(R1到达4.4.4.4/32的下一跳指向R3,首选值被修改成100)
小结:Pre-Value最大,Preference_Value值越大,越优先,默认缺省值为0,且只在本地路由器有效。
2. Local_Preference
Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。一般用来控制本区域流量怎么出去,默认情况下Local-Pref值为100 该数值越大 优先级越高
默认情况下,会选择Router id小的作为自己的最优下一跳(即R2)
step1:在R1上使用ip-prefix后者acl筛选出路由条目
step2:使用路由策略
step3:在BGP进程中调用路由策略
1:R1中BGP进程里指向R3的入方向上(改大)
2:R3中BGP进程里指向R1的出方向上(改大)
3:R3中BGP进程里指向R4的入方向上 (改大)
4:R1中BGP进程里指向R2的入方向上 (改小)
5:R2中BGP进程里指向R1的出方向上 (改小)
6:R2中BGP进程里指向R4的入方向上 (改小)
不能调用在R4的export方向上面(因为Local-preference只能在本AS内进行传递的)
step:验证现象
3.路由生成方式
Aggregate>Summary>Network>import>从邻居学习的路由
BGP在IPv4网络中支持自动聚合和手动聚合两种方式,而IPv6网络中仅支持手动聚合方式:
1:自动聚合:对BGP引入的路由进行聚合。配置自动聚合后,BGP将按照自然网段聚合路由(例如非自然网段A类地址10.1.1.1/24和10.2.1.1/24将聚合为自然网段A类地址10.0.0.0/8),并且BGP向对等体只发送聚合后的路由。
2:手动聚合:对BGP本地路由表中存在的路由进行聚合。手动聚合可以控制聚合路由的属性,以及决定是否发布具体路由。
为了避免路由聚合可能引起的路由环路,BGP设计了AS_Set属性。AS_Set属性是一种无序的AS_Path属性,标明聚合路由所经过的AS号。当聚合路由重新进入AS_Set属性中列出的任何一个AS时,BGP将会检测到自己的AS号在聚合路由的AS_Set属性中,于是会丢弃该聚合路由,从而避免了路由环路的形成。
自动聚合summary
step1:在R4上使用ip-prefix或者acl筛选出目标路由,使用Route policy调用。
step2:在BGP进程中将路由引入,并配置自动聚合命令
step3:在R4上查看BGP路由表,发现明细路由被抑制
step4:在R1上查看BGP路由表,发现路由被聚合成自然网段。
手动聚合
step1:在R4的BGP进程里宣告4.4.4.4/24的路由,并配置手工聚合,并抑制明细路由
step2:在R4上查看BGP路由表,明细路由通过detail-suppressed被抑制。
step3:在R1上查看BGP路由表,发现只收到R1的聚合路由。
手工聚合
1:as-set信息在避免路由环路时很重要,因为它记录了被聚合路由所经过的AS
2:attribute-policy 设置聚合路由的属性
3:detail-suppressed参数是把明细给抑制,如果不加的话,会把明细路由和聚合路由都传过去
4:origin-policy仅选择符合route-policy的具体路由来生成聚合路由(只要有这条路由信息,我才能产生聚合路由)
5:suppress-policy能产生聚合路由,但抑制指定路由的通告,可以使用route-policy和if-match子句有选择的抑制一些具体路由,其他具体路由仍被通告(抑制聚合中的某些路由)
路由聚合产生的问题
如果路由聚合后携带所有明细路由经过的AS信息,当明细路由发生频繁震荡时,聚合路由也可能受其影响频繁刷新。因此,聚合路由是否携带丢失的AS_Path信息,需要设计者综合考虑网络环境
4:AIGP
BGP优选AIGP较小的路由。AIGP属性是一种新的BGP路由属性,用于传递并累加IGP Cost值,该属性为可选非过渡属性。在一个AIGP域内部署AIGP属性,可以使BGP像IGP那样基于路由的Cost值优选出最优路由,从而保证一个AIGP域内的设备都按照最优路径进行数据转发。AIGP的比较遵循如下规则:
1:有AIGP属性的路由优先级高于没有AIGP属性的路由。
2:如果路由都存在AIGP属性,则比较AIGP属性与其下一跳的IGP Cost之和,优选该值较小的。
AIGP属性只能通过路由策略添加。在BGP引入、接收或发送路由时,可以人为通过路由策略里的 apply aigp { cost | inherit-cost }命令设置AIGP属性值的大小。其中,在BGP引入IGP路由时,若不进行设置,BGP路由没有AIGP属性值。
bgp 200(R4)
#
ipv4-family unicast
peer 14.1.1.2 aigp //使能与对等体之间的AIGP能力
peer 15.1.1.2 aigp //使能与对等体之间的AIGP能力
peer 14.1.1.2 route-policy 1 export
peer 15.1.1.2 route-policy 1 export
#
route-policy 1 permit node 10 //定义路由策略的第一个节点,设置路由4.4.4.4/32的AIGP为10
if-match ip-prefix prefix1
apply aigp 10
#
route-policy 1 permit node 20 //定义路由策略的第二个节点,不设置匹配条件,允许其他路由通过路由策略
if-match ip-prefix prefix1
apply aigp 5
#
ip ip-prefix prefix1 index 10 permit 4.4.4.4 32 //定义地址前缀列表prefix1,匹配路由
R2:
ipv4-family unicast
peer 14.1.1.1 aigp //使能与对等体之间的AIGP能力
R3:
ipv4-family unicast
peer 15.1.1.2 aigp //使能与对等体之间的AIGP能力
5.AS_Path
AS_Path属性有四种形式,分别是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。
AS_Sequence:它是到目的地的路径上所经过的AS号的有序集合,按照顺序记录了路由经过的所有AS。
AS_Set:它是到目的地的路径上所经过的AS号的无序集合。AS_Set通常用在路由聚合的场景。
AS_Confed_Sequence:是联盟内子AS的一个有序集合。
AS_Confed_Set:是联盟内子AS的一个无序集合,主要用在联盟内路由聚合的场景。
AS号追加
route-policy 1 permit node 10 //定义路由策略add_asn的第一个节点
if-match ip-prefix prefix1 //匹配IP地址前缀列表prefix1
apply as-path 65003 65003 65003 additive
AS号替换
配置 apply as-path 命令时,如果选择 overwrite 参数,则可以对AS_Path中的编号进行替换。AS编号替换的应用比较灵活,主要有以下几种情况:
隐藏路由的真实路径信息。
如果配置了 as-path-limit 命令,接收路由时会检查AS_Path属性中的AS号是否超限,如果超限则丢弃路由。这样对于AS_Path较长的路由,在接收之前,可以把AS_Path替换成较短的AS_Path,防止路由由于AS号超限而被丢弃。
缩短AS_Path长度,使路由被优选。
AS号替换还可以用于形成负载分担
6.Origin
Origin属性主要有三种:
IGP:具有最高的优先级。路由是用 network 命令注入到BGP路由表中的,则Origin属性为IGP。
EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。
Incomplete:优先级最低。路由是用 import-route 命令注入到BGP路由表中的,则Origin属性为Incomplete。
3种Origin属性的优先级为:i>e>Incomplete(?)
7.MED(越小越优,默认为0)
特点:仅在AS内部或者相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS
MED属性相当于IGP使用的度量值(Metrics),它用于判断流量进入AS时的最佳路由(用于比较来自相同AS的路由)
修改方法:
注意要点:
执行 compare-different-as-med 命令后,BGP将强制比较来自不同AS的路由的MED值。除非能够确认不同的AS采用了同样的IGP和路由选择方式,否则不要使用 compare-different-as-med 命令(可能产生环路)。
执行 bestroute med-none-as-maximum 命令后,BGP选路时将该路由的MED值按最大值4294967295来处理,选路结束后,MED值恢复为原始值。
执行 bestroute med-confederation 命令后,只有当AS_Path中不包含外部AS号(不属于联盟的子AS),且AS_CONFED_SEQUENCE的第一个AS号相同时,才能比较MED值的大小。
执行 deterministic-med 命令后,将消除路由接收顺序对选路结果的影响。
step1:在R4上使用ip-prefix或者acl命令匹配路由
step2:使用Route policy匹配ip-prefix或者acl,apply cost
step3:在R1上验证
8.邻居类型(EBGP优于IBGP路由)
在运营商网络存在多个出口设备从Internet获取路由的场景,出口设备会经常比较邻居类型。
所有设备处于同一个AS。SwitchA和SwitchB做为运营商网络的出口设备,之间建立IBGP邻居关系,并且和其他的设备也都建立IBGP邻居关系。做为运营商网络的出口设备,SwitchA和SwitchB同时从Internet获取路由,然后将EBGP路由向自己的所有IBGP邻居发布。在这种情况下,SwitchA和SwitchB上分别有一条IBGP路由和EBGP路由,并且二者的AS_Path属性相同。通过邻居类型的比较,SwitchA和SwitchB都选择EBGP路由做为最优路由。
9.IGP的开销值
默认情况下:R1会优先选择R2作为到达4.4.4.4/32的下一跳(router id小)
在R1的G0/0/0接口下使用命令ospf cost 10,使IGP的开销值大于默认开销值1.
验证如下:
10.Cluster_list
step2:RR收到客户机Client 1的update报文后,RR第一次反射该路由时,会把cluster-ID添加到Cluster_List,如果RR没有cluster_ID属性,则自己创建一个再添加。同时也会把Originator_ID添加进去,标识此条路由的发起设备(Router ID值)
11. Router ID (越小越优)
Router ID在自治系统AS中可以标识一台路由器:
如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由。缺省情况下,BGP在选择最优路由时在Cluster-List之后比较Originator-ID。配置 bestroute routerid-prior-clusterlist 命令后,BGP在选择最优路由时在Cluster-List之前比较Originator-ID。
12:对等体地址
多链路场景EBGP之间一般用loopback0接口作为更新源地址,也可以使用不同的接口地址作为更新源
负载分担:
配置BGP负载分担后,满足如下所有条件的多条BGP路由会成为等价路由,进行负载分担:
1:首选值(PrefVal)相同。
2:本地优先级(Local_Pref)相同。
3:都是聚合路由,或者都不是聚合路由。
4:AIGP值相同。
5:AS_Path属性完全相同。
6:Origin类型(IGP、EGP、Incomplete)相同。
7:MED(Multi_Exit Discriminator)值相同。
8:都是EBGP路由或都是IBGP路由。配置 maximum load-balancing eibgp 命令后,BGP在选择最优VPN路由时忽略该条比较。
AS内部IGP的Metric相同。配置 maximum load-balancing eibgp 命令后,BGP在选择最优VPN路由时忽略该条比较。
此外,需要特别指出的是,携带标签的BGP路由与不携带标签的BGP路由即使满足上述条件,也不能形成负载分担。
step1:在R4的BGP进程中network一条路由之后,R1的路由表中存在两条到达4.4.4.4/32的BGP路由,但是只会优选下一跳为R2作为自己的下一跳,因为router id小,此时查看路由表如下所示:
step2:在R1的BGP进程中使用maximum load-balancing ibgp 2命令(ebgp也可以)实现负载分担。
Ⅶ BGP对等路由器,主要包含了那些功能
主要是交换路由信息功能。对等路由器互相交换自己的路由信息给对方。
Ⅷ 【网络工程师配置篇】——BGP路由基础配置(eNSP)
1、BGP(Border Gateway Protocol)是一种不同自治系统的路由设备之间进行通信的外部网关协议(Exterior Gateway Protocol,EGP),其主要功能是在不同的自治系统(Autonomous Systems,AS)之间交换网络可达信息,并通过协议自身机制来消除路由环路。BGP 使用TCP协议作为传输协议,通过 TCP 协议的可靠传输机制保证 BGP 的传输可靠性。运行 BGP 协议的 Router称为 BGP Speaker,建立了 BGP 会话连接(BGP Session)的 BGP Speakers 之间被称作对等体(BGP Peers)。
2、BGP Speaker之间建立对等体的模式有两种:IBGP(Internal BGP)和EBGP(External BGP)。IBGP 是指在相同 AS内建立的 BGP 连接,EBGP是指在不同 AS 之间建立的 BGP连接。二者的作用简而言之就是:EBGP 是完成不同 AS 之间路由信息的交换,IBGP是完成路由信息在本 AS内的传递。
组建BGP网络是为了实现网络中不同AS之间的通信。配置BGP的基本功能是组建BGP网络最基本的配置过程,主要包括三部分:
1、创建BGP进程:只有先创建BGP进程,才能开始配置BGP的所有特性。
2、建立BGP对等体关系:只有成功建立了BGP对等体关系,设备之间才能交换BGP消息。
3、引入路由:BGP协议本身不发现路由,只有引入其他协议的路由才能产生BGP路由。
1.拓扑图
注意:缺省情况下,BGP会自动选取系统视图下的Router ID作为BGP协议的Router ID。如果选中的Router ID是物理接口的IP地址,当IP地址发生变化时,会引起路由的振荡。为了提高网络的稳定性,可以将Router ID手动配置为Loopback接口地址。
2.实验目的:
要使AS100网络(R1:1.1.1.1)和AS200(R4:4.4.4.4)网络路由可达。需要在所有router间运行BGP协议,R1和R2、R3之间建立EBGP连接,R2、R3和R4之间建立IBGP全连接。在AS200内,使用IGP协议来计算路由(该例使用OSPF作为IGP协议)。
3.配置思路:
1)搭建好拓扑图环境,标出规划好的IP地址
2)修改网络设备默认名称、配置好IP地址
3)配置基本OSPF(在AR2、AR3、AR4内做IBGP)
4)配置EBGP
4.配置过程:
步骤一:修改网络设备默认名称、配置好IP地址
1)配置各PC信息 (略)
2)配置路由器AR1默认名称及接口IP
<Huawei>sys //进入系统视图模式
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1 //修改设备名称
[AR1]int g0/0/0 //进入接口
[AR1-GigabitEthernet0/0/0]ip add 192.168.12.1 24 //给接口配IP
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 192.168.13.1 24
[AR1-GigabitEthernet0/0/1]int loopback 0
[AR1-LoopBack0]ip add 192.168.1.1 32
2)配置路由器AR2默认名称及接口IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR2
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 192.168.12.2 24
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 192.168.24.2 24
[AR2-GigabitEthernet0/0/1]int loopback 0
[AR2-LoopBack0]ip add 192.168.2.2 32
3)配置路由器AR3默认名称及接口IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR3
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 192.168.13.3 24
[AR3-GigabitEthernet0/0/0]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip add 192.168.34.3 24
[AR3-GigabitEthernet0/0/1]int loopback 0
[AR3-LoopBack0]ip add 192.168.3.3 32
4)配置路由器AR4默认名称及接口IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR4
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]ip add 192.168.34.4 24
[AR4-GigabitEthernet0/0/0]int g0/0/1
[AR4-GigabitEthernet0/0/1]ip add 192.168.24.4 24
[AR4-GigabitEthernet0/0/1]int loopback 0
[AR4-LoopBack0]ip add 192.168.4.4 32
步骤二、配置基本OSPF(在AR2、AR3、AR4内做IBGP):
[if !supportLists]1) [endif]R2
[AR2]ospf router-id 2.2.2.2 //使能OSPF,并配置router-id
[AR2-ospf-1]area 0 //配置area区域
[AR2-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255 //发布AS内网段
[AR2-ospf-1-area-0.0.0.0]network 192.168.2.2 0.0.0.0
[if !supportLists]2) [endif]R3
[AR3]ospf router-id 3.3.3.3
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.0]network 192.168.3.3 0.0.0.0
3)R4
[AR4]ospf router-id 4.4.4.4
[AR4-ospf-1]area 0
[AR4-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]network 192.168.4.4 0.0.0.0
4)配置验证,配置IBGP后,同一个AS内的网段可以互通,不同AS的网段不能互通
步骤三、配置EBGP
[if !supportLists]1) [endif]R1:
[AR1]bgp 100
[AR1-bgp]router-id 1.1.1.1
[AR1-bgp]peer 192.168.12.2 as-number 200
[AR1-bgp]peer 192.168.13.3 as-number 200
[AR1-bgp]network 192.168.1.1 32
[if !supportLists]2) [endif]R2:
[AR2]bgp 200 //创建bgp编号200 (AS200)
[AR2-bgp]router-id 2.2.2.2 //指定router-id
[AR2-bgp]peer 192.168.12.1 as-number 100 //和邻居网络建立邻接关系
[AR2-bgp]peer 192.168.24.4 as-number 200 //和邻居网络建立邻接关系
[AR2-bgp]peer 192.168.24.4 next-hop-local //要将BGP路由发送给192.168.24.4这个邻居时,将路由的下一跳设置成自己的地址,这个地址是与192.168.24.4建立邻居所使用的源地址
该提示信息说明BGP邻居建立成功
[if !supportLists]3) [endif]R3:
[AR3]bgp 200
[AR3-bgp]router-id 3.3.3.3
[AR3-bgp]peer 192.168.13.1 as-number 100
[AR3-bgp]peer 192.168.34.4 as-number 200
[AR3-bgp]peer 192.168.34.4 next-hop-local
4)R4:
[AR4]bgp 200
[AR4-bgp]router-id 4.4.4.4
[AR4-bgp]peer 192.168.24.2 as-number 200
[AR4-bgp]peer 192.168.34.3 as-number 200
[AR4-bgp]network 192.168.4.4 32
配置EBGP后,我们发现由BGP控制选路后,从AR4到AR1的报文走的是AR2这条路径
1)查看不同AS之间的连通性:
通过Ping命令结果,我们发现在配置EBGP后,相同AS与不同AS之间都可以互相通信
2)在AR1查看路由表:
在路由表可以发现,EBGP目标地址是192.168.4.4,下一跳是192.168.12.2,说明192.168.1.1与192.168.4.4之间的通信是经过的路由器AR2。
3)查看抓包信息:
在AR1与AR2相连的接口开启抓包,可以抓到AR4与AR1通信的TCMP报文,同时我们发现BGP的传输协议是TCP,端口号为179
在AR1与AR3相连的接口上开启抓包,发现,在这里没有AR4与AR1通信的信息,说明,通过BGP选路之后,AR4要到AR1的数据会通过AR2发送。
至此,BGP实验完成,我们在实验中讲到,BGP自动完成了选路,那么要怎么手动控制选路呢?加入交流群696283186获取更多实验详细配置
总结:BGP具有以下几个特性:
1) 传输协议:TCP,端口号179;
2) BGP是外部路由协议,用来在AS之间传递路由信息;
3) 是一种增强的路径矢量路由协议;
4) 拥有可靠的路由更新机制;
5) 具备丰富的Metric度量方法;
6) 无环路协议设计;
7) 为路由条目附带多种属性信息;
8) 支持CIDR(无类别域间选路);
9) 丰富的路由过滤和路由策略;
10) 无须周期性更新;
11) 路由更新时只发送增量路由;
12) 周期性发送KeepAlive报文,以保持TCP连通性;