BGP-community
- 格式:docx
- 大小:118.02 KB
- 文档页数:6
bgp的状态机
⼀,idle(空闲)初始状态。
⼆,connect 此时建⽴TCP三次握⼿。
a,bgp启动重传定时器,并等待TCP建⽴连接。
b,如果tcp建⽴成功,此时开始发送open报⽂协商参数,并进⼊opensent状态。
c,如果tcp建⽴失败,此时进⼊active状态。
d,如果重传定时器超时,bgp没有收到bgp对等体的回应,会尝试和其他对等体建⽴邻居,停留在connect状态。
(底层igp路由不可达,TCP不可达,防⽕墙过滤179端⼝号,acl过滤open报⽂,状态检测防⽕墙来回路径不⼀致,ebgp邻居⾮直连TTL值未修改)
三,active 尝试重新建⽴TCP连接,建⽴成功转到connect状态,定时器超时进⼊connect状态。
四,opensent bgp等待对等体的open报⽂开始协商参数。
(版本号,AS号,认证信息等等)
a,如果协商成功,发送keepalive报⽂,转⾄openconfirm。
b,如果协商失败,发送notification报⽂,转⾄idle。
五,openconfirm bgp等待对等体的keepalive报⽂
a,如果收到keepalive,进⼊established。
b,如果收到notification,进⼊idle。
六,estabished 开始和对等体交互keepalive,update,notification,route-refrech报⽂。
如果收到错误的update和keepalive报⽂,则发送notification报⽂通知对⽅,并进⼊idle。
bgp 正则表达式摘要:1.BGP 简介2.BGP 正则表达式的作用3.BGP 正则表达式的基本语法4.BGP 正则表达式的应用实例5.总结正文:1.BGP 简介BGP(Border Gateway Protocol,边界网关协议)是一种用于在不同自治系统(AS)之间交换路由信息的协议。
BGP 主要用于互联网中的路由选择,它可以在不同的网络运营商之间传递路由信息,以实现互联网上的数据传输。
2.BGP 正则表达式的作用在BGP 协议中,正则表达式被广泛应用于路由策略和路由匹配。
正则表达式允许用户通过特定的模式来描述路由信息,从而实现更灵活的路由控制。
3.BGP 正则表达式的基本语法BGP 正则表达式的基本语法遵循正则表达式的一般规则,如“.”匹配任意字符,“*”匹配零个或多个前面的字符,“^”表示字符串的开始,“$”表示字符串的结束等。
在BGP 中,正则表达式通常用于路由策略和路由映射。
4.BGP 正则表达式的应用实例假设有一个AS,它的IP 地址范围是192.168.1.0/24 到192.168.3.0/24,我们希望将这些地址范围的路由信息发布给其他AS。
我们可以使用BGP 正则表达式来实现这个目标。
首先,在BGP 路由策略中配置正则表达式,如下所示:```route-policy example {import {ip-prefix: 192.168.0.0/16}from 192.168.0.0/16;if ip-prefix 192.168.1.0/24 or ip-prefix 192.168.2.0/24 or ip-prefix 192.168.3.0/24 then {export;}}```在这个例子中,我们使用了正则表达式“ip-prefix 192.168.1.0/24 or ip-prefix 192.168.2.0/24 or ip-prefix 192.168.3.0/24”,表示匹配192.168.1.0/24、192.168.2.0/24 或192.168.3.0/24 这三个地址范围。
B GP路由反射器(RR)路由反射器相关角色在一个AS内部关于路由反射器有以下几种角色:1、路由反射器RR(Route Reflector):允许把从IBGP对等体学到的路由反射到其他IBGP对等体的BGP设备,类似OSPF网络中的DR。
2、客户机(Client):与RR形成反射邻居关系的IBGP设备。
在AS内部客户机只需要与RR直连。
3、非客户机(Non-Client):既不是RR也不是客户机的IBGP设备。
在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全连接关系。
4、始发者(Originator):在AS内部始发路由的设备。
Originator_ID属性用于防止集群内产生路由环路。
5、集群(Cluster):路由反射器及其客户机的集合。
Cluster_List属性用于防止集群间产生路由环路。
路由反射器作用:简化设备配置,减少了邻居条目两种主要角色:R R:router reflector,路由反射器C lient:RR客户端路由反射器规则:1、从非客户端收到的路由,发布给所有客户端(客户端和非客户端都是IBGP邻居)2、从客户端收到的路由,发布给所有的客户端和非客户端(客户端和非客户端都是IBGP邻居)3、从EBGP邻居收到路由,发布给所有的客户端和非客户端其他:R R将路由反射时不会修改以下的BGP路径属性:Next_Hop、AS_Path、 Local_Preference、MED,如果反射器修改这几个路径属性的值则有可能产生路由环路路由反射器防环Originator-idRR内部防环O riginator-id属性与自身的router-id相同,则会忽略Cluster-listR R之间的防环C luster-list包含了自身的Cluster-id,则会忽略。
2.1 无类别域间路由自治系统与外部路由协议的创建解决了20世纪80年代Internet的扩展性问题,但是,到了20世纪90年代早期,Internet出现了各种不同的扩展性问题,如下所述:∙Internet路由表爆炸。
以指数增长的路由表开始变得难以管理(包括路由器的处理时间以及管理员),仅仅是路由表尺寸就已经耗用了大量的Internet资源,再加上日复一日的拓扑结构变化以及网络的不稳定性,使得Internet更加不堪重负。
∙B类地址空间的逐渐耗尽。
截止到1993年1月,16 382个B类地址已经被分配了7 133个,如果以1993年的地址分配速度,那么整个B类地址空间将在两年不到的时间内被分配完毕(如RFC 1519所述)。
∙全部32位IP地址空间的最终耗尽。
无类别域间路由为前两个问题提供了短期解决方案,另一个短期解决方案就是将在第4章中讨论的NAT(Network Address Translation,网络地址转换)。
这些解决方案为Internet 架构师们赢得了足够的时间来创建一个拥有足够地址空间的新IP版本,在这一思路下创建的IPng(IP Next Generation,下一代IP)最终形成了IPv6(IPv6采取了128位的地址格式)。
将在第8章中讨论的IPv6技术是第三个问题的长期解决方案,但非常有趣的是,CIDR和NA T都取得了巨大的成功,以至于很少再有人像当初那样迫切地希望将网络迁移到IPv6。
CIDR仅仅是一种明智地利用了Internet分层结构的地址汇总方案,因而在进一步讨论CIDR之前,有必要先回顾一下汇总和无类别路由选择,并了解一下当前的Internet发展状况。
2.1.1 汇总概述汇总(summarization)或路由聚合(route aggregation)(详见《TCP/IP路由技术(第一卷)》)指的是用一个较不精确的地址来宣告一个连续的地址集合。
从本质上来看,汇总/路由聚合是通过减小子网掩码的长度直至屏蔽了所有被汇总地址的公共bit来实现的。
bgp atomic-aggregate和aggregator的描述-回复BGP(边界网关协议)是一种自治系统(AS)之间交换路由信息的协议。
在BGP中,当一条路由从一个AS传递给另一个AS时,路由属性可能会有所改变。
在这篇文章中,我们将讨论BGP中的两个关键概念:atomic-aggregate和aggregator。
首先,让我们来了解atomic-aggregate(原子聚合)。
在拓扑复杂的互联网中,路由表可能会变得非常大。
为了减小路由表的大小,BGP引入了聚合(aggregation)的概念。
通过聚合,多个具有相同前缀的路由可以被替换为一个更具体(更长)的路由,从而减小路由表的大小。
在BGP中,当政策引擎将多个路由聚合成一个路由时,会将被聚合的路由标记为“原子聚合”(atomic–aggregate)。
这个标记告诉其他AS,该路由是经过聚合后的结果,原始路由已经丢失了。
为了使原子聚合正确识别和使用,BGP引入了aggregator属性。
aggregator属性记录了聚合后的路由的来源信息,即聚合发生的AS号和IP地址。
通过aggregator属性,BGP可以告知其他AS这条路由是如何聚合得到的。
了解了atomic-aggregate和aggregator的概念,让我们深入探讨一下它们在BGP中的使用。
首先,让我们重点关注atomic-aggregate。
当一个路由聚合后,政策引擎会在新的聚合路由上设置原子聚合的标志。
这个标志通常被称为"Atomic Aggregate"属性,它被添加到被聚合的路由的BGP更新中。
该属性的值是一个标志,表示该路由已经被聚合。
当AS中的其他路由器收到这个带有原子聚合属性的BGP更新时,它们将知道该路由已经经过聚合,原始路由已不可用。
在处理原子聚合时,路由器通常根据配置的策略来决定如何处理被聚合的路由。
有几种可能的策略:1. 静默丢弃(Silently Discard):路由器可以选择在处理原子聚合时静默丢弃该路由。
BGPIGP:RIP,OSPF,EIGRP,IGRP,ISISEGP:EGP,BGP,EGP既是一类协议的统称,又是一个单独的协议,该协议在INTERNET早期的EGP协议,该协议不支持VLSM,不支持CIDR。
BGP是一个距离矢量路由选择协议,称为另一类(一类是EIGRP)的高级距离矢量路由选择协议(路径矢量路由选择协议),该协议也会生成三张表。
该协议支持VLSM和CIDR,是一个无类路由选择协议,该协议工作在OSI的7层(应用层),BGP是全球唯一一款基于TCP 的传输层做为传输层封装的协议,基于TCP端口号179。
BGPv4:该版本只能为IPv4提供路由BGPv4 plus:Multihoming:多宿主Autonomous Systems:自治系统,一组属于相同组织拥有相同管理标准的设备集合。
AS使用一个AS号的概念在internet中唯一的表示一个园区网。
AS号的取值范围:0-65535。
第一段0-64511,公有AS号,第二段64512-65535,私有AS号。
要运行BGP需要有一个共有的AS 号。
私有AS号一般用于实验室,没有办法保证AS的全球唯一。
BGP运行在AS和AS之间。
IGP使用HOP-BY-HOP,BGP使用AS-BY-AS。
一条BGP路由在一个AS内被转发传递的时候,很多属性不会被改变(包括下一跳属性),仅当把一条BGP路由条目从一个AS传递给另一个AS时,会强制把该BGP路由条目的下一跳属性改变为这台路由器发包接口的IP地址(一般是该园区网的边界路由器),该路由被传递到邻居AS后,在邻居AS内传递时,下一跳地址依旧保持不变。
BGP基于TCP,所以可以提供可靠传输。
BGP发送任何报文只能基于单播,因为当TCP三次握手连接建立后,只能发送单播报文。
需要指定BGP的目的地址,告诉BGP将路由条目发给哪个地址。
BGP只支持触发更新,增量更新。
BGP不追踪路由条目的状态,追踪邻接关系。
bgp协议报文类型
BGP协议的报文类型包括以下几种:
1. Open报文:用于建立BGP邻居关系,包括协商BGP版本
号、BGP标识符、支持的可选参数等信息。
2. Update报文:用于交换路由信息,包括撤销或更新已经接
收的路由信息。
3. Notification报文:用于通知邻居发生的错误或中断连接。
4. Keepalive报文:用于维持BGP邻居关系的活性,周期性地
发送给邻居。
5. Route-Refresh报文:用于请求邻居重新发送路由信息。
以上是BGP协议常用的报文类型,根据实际需求还可以有其
他类型的扩展报文。
bgp中group定义BGP中的Group定义BGP(Border Gateway Protocol)是互联网中最常用的外部网关协议之一,它用于实现不同自治系统(AS)之间的路由信息交换。
在BGP中,Group是一种重要的配置项,它可以帮助管理员更好地管理和控制路由信息的传输。
本文将详细介绍BGP中Group的定义及其作用。
一、Group的概念及作用在BGP中,Group是指将一组相似的邻居(Neighbor)归为一类,并为这类邻居配置一组共同的属性和策略。
Group的作用主要有以下几个方面:1. 简化配置:通过使用Group,管理员可以将相同属性和策略的邻居归为一类,统一进行配置。
这样可以大大简化配置的复杂度,提高配置的效率和准确性。
2. 统一管理:Group可以帮助管理员对一组邻居进行统一管理。
例如,当需要对一组邻居进行策略调整或属性修改时,只需对Group 进行相应的配置,而不需要逐个修改邻居的配置,从而提高了管理的灵活性和效率。
3. 提高可靠性:通过将邻居划分为不同的Group,可以对不同组别的邻居配置不同的属性和策略。
这样可以提高网络的可靠性,当某个组别的邻居发生故障或异常时,可以通过调整Group的配置来快速应对,减少故障对整个网络的影响。
二、Group的配置方式在BGP中,Group的配置方式主要包括两种:基于邻居IP的Group 和基于邻居AS的Group。
1. 基于邻居IP的Group:这种方式是根据邻居的IP地址将其分组。
管理员可以根据不同的IP地址范围或子网将邻居划分为不同的Group,并为每个Group配置相应的属性和策略。
这种方式适用于邻居之间没有明显的关联性,但具有相似属性和策略的情况。
2. 基于邻居AS的Group:这种方式是根据邻居的自治系统号(AS)将其分组。
管理员可以将属于同一个AS的邻居划分为一个Group,并为该Group配置相应的属性和策略。
这种方式适用于邻居之间具有明确的关联性,且需要统一配置的情况。
bgp路由生成方式一、背景介绍BGP(Border Gateway Protocol)是一种基于TCP协议的路由协议,主要用于在互联网中实现自治系统(AS)之间的路由交换。
BGP路由生成方式是指通过BGP协议生成和发布路由信息的过程。
二、BGP路由生成方式1. BGP邻居建立在BGP协议中,两个自治系统之间的路由交换需要先建立邻居关系。
当两个AS之间建立BGP邻居后,它们可以交换本地网络的路由信息。
2. 路径选择算法在BGP协议中,路径选择算法决定了如何选择最佳路径,并将其作为当前的活动路径。
常见的路径选择算法包括AS-PATH长度、NEXT-HOP地址、本地优先级等。
3. 路径属性在BGP协议中,每个路径都有一组属性,这些属性描述了该路径的特征和状态。
常见的路径属性包括AS-PATH、NEXT-HOP、ORIGIN等。
4. BGP路由策略每个自治系统都有自己的BGP路由策略,用于控制进入和离开该自治系统的流量。
常见的策略包括过滤、限制、重定向等。
5. 路由聚合在BGP协议中,路由聚合是指将多个具有相同前缀的路由汇聚成一个更具体的路由。
这样可以减少路由表的大小,提高路由表查询效率。
三、BGP路由生成过程1. BGP邻居建立在BGP协议中,两个自治系统之间的路由交换需要先建立邻居关系。
当两个AS之间建立BGP邻居后,它们可以交换本地网络的路由信息。
2. 路径选择算法在BGP协议中,路径选择算法决定了如何选择最佳路径,并将其作为当前的活动路径。
常见的路径选择算法包括AS-PATH长度、NEXT-HOP地址、本地优先级等。
3. 路径属性在BGP协议中,每个路径都有一组属性,这些属性描述了该路径的特征和状态。
常见的路径属性包括AS-PATH、NEXT-HOP、ORIGIN等。
4. BGP路由策略每个自治系统都有自己的BGP路由策略,用于控制进入和离开该自治系统的流量。
常见的策略包括过滤、限制、重定向等。
community属性。这是不同于选路属性的一个属性。该属性具有以下几个特点: 1 community是一个任选可透明传送属性,它可以简化策略的执行。 2 它是cisco的一个专有属性,现在在RFC1997中已被标准化。 3 commnity属性标明一个目的地作为一些目的地团体中的一个成员,这些目的地共享一个或多个共同的特性。
NO_EXPORT:带有这一团体值的路由在收到后,不应把该路由通告给
一个联盟之外的对等体。 NO_ADVERTISE:带有这一团体值的路由在收到后,不应把该路由通告给任何的BGP对等体。 LOCAL-AS:带有这一团体值的路由在收到后,可以把该路由通告给它的IBGP对等体,但不应通告给任何的EBGP对等体(包括联盟内的EBGP对等体)。 INTERNET:带有这一团体值的路由在收到后,可以通告给所有的其他路由器。 4 community值可以自己定义,另外有几个已经定义好的团体属性: NO_ADVERTISE: 表示携带该值的路由不能公布给EBGP和 IBGP邻居 NO_EXPORT:表示携带该值的路由不能公布给EBGP邻居 LOCAL_AS:(NO_EXPORT_SUBCONFED)携带该值的路由可以公布给联盟内的其它子自治系统但不能在构成联盟的AS以外进行公布。 试验步骤如下: 配置BGP,在本实验中要建立联邦 我们顺便学习一下联邦 配置团体属性,让2.2.2.0网络只被R2学习到 配置团体属性,让22.22.22.0网络只被R2,R3学习到 配置团体属性,让222.222.222.0网络只被R2,R3,R4学习到 配置团体属性,让R1不传递2.2.2.0 这条路由
二 试验配置 配置BGP r1#sh run | b r b router bgp 100 no synchronization network 2.2.2.0 mask 255.255.255.0 network 22.22.22.0 mask 255.255.255.0 network 222.222.222.0 neighbor 12.0.0.2 remote-as 234 no auto-summary
r2#sh run | b r b router bgp 64512 no synchronization bgp confederation identifier 234 /指明联邦号是234 neighbor 12.0.0.1 remote-as 100 neighbor 23.0.0.3 remote-as 64512 /R3跟它处于联邦内同一个子AS中 neighbor 23.0.0.3 next-hop-self /指定下一跳是它自己 no auto-summary
r3#sh run | b r b router bgp 64512 no synchronization bgp confederation identifier 234 bgp confederation peers 64513 /指明该联邦内的另一个子AS neighbor 23.0.0.2 remote-as 64512 neighbor 34.0.0.4 remote-as 64513 /R4跟它处于联邦内不同子AS之间 no auto-summary
r4#sh run | b r b router bgp 64513 no synchronization bgp confederation identifier 234 bgp confederation peers 64512 neighbor 34.0.0.3 remote-as 64512 neighbor 45.0.0.5 remote-as 500 no auto-summary
r5#sh run | b r b router bgp 500 no synchronization neighbor 45.0.0.4 remote-as 234 no auto-summary
查看网络 r2#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 12.0.0.1 0 0 100 i *> 22.22.22.0/24 12.0.0.1 0 0 100 i *> 222.222.222.0 12.0.0.1 0 0 100 i r3#sh ip bgp Network Next Hop Metric LocPrf Weight Path *>i2.2.2.0/24 23.0.0.2 0 100 0 100 i *>i22.22.22.0/24 23.0.0.2 0 100 0 100 i *>i222.222.222.0 23.0.0.2 0 100 0 100 i 在R2上已经修改了下一跳,所以这时下一跳已经是R2自己了。 r4#sh ip bgp Network Next Hop Metric LocPrf Weight Path * 2.2.2.0/24 23.0.0.2 0 100 0 (64512) 100 i * 22.22.22.0/24 23.0.0.2 0 100 0 (64512) 100 i * 222.222.222.0 23.0.0.2 0 100 0 (64512) 100 i 注意在R4上看,下一跳依然是R2;为什么不是R3呢?因为R3,R4虽然在同一联邦内,但它们在不同的子AS之间,应该是EBGP关系。EBGP之间传递路由时,下一跳因该是EBGP邻居。但这里为什么不是呢。这就是联邦内EBGP与联邦外EBGP的不同之处。所以现在这些路由的下一跳对于R4来说是不可达的,所以现在路由无法优化,也就无法向R5传递。现在在R3上修改下一跳 r3(config)#router bgp 64512 r3(config-router)#neighbor 34.0.0.4 next-hop-self r4#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 34.0.0.3 0 100 0 (64512) 100 i *> 22.22.22.0/24 34.0.0.3 0 100 0 (64512) 100 i *> 222.222.222.0 34.0.0.3 0 100 0 (64512) 100 i 这时,在R4上看,下一跳已经变成了R3,路由可以优化。注意在AS路径中可以看到路由经过了子AS 64512 r5#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 45.0.0.4 0 234 100 i *> 22.22.22.0/24 45.0.0.4 0 234 100 i *> 222.222.222.0 45.0.0.4 0 234 100 i R5上也可以收到这些路由了,注意R5的AS路径看不到子AS ,只能看到联邦的总AS号。因此可以得出这样的结论:联邦内的子AS对于联邦外部来说是隐藏的,不可见的。
到现在为止,所有路由器都可以学习到路由,下面就要应用团体属性来控制路由的传递了。 三 配置团体属性,让2.2.2.0网络只被R2学习到 这里最合适的community属性应该是:no_advertise 因为它不会向任何EBGP IBGP邻居公布路由。 r1(config)#access-list 1 permit 2.2.2.0 0.0.0.255 /用ACL匹配该路由 r1(config)#route-map WY permit 10 r1(config-route-map)#match ip add 1 r1(config-route-map)#set community no-advertise /设定团体属性 r1(config)#route-map WY permit 20 /与ACL一样 route-map最后也隐藏了一句deny any ,所以在这里要允许所有,要不然其它两条路由会因为匹配不上而无法从R1传递出去。 r1(config)#router bgp 100 r1(config-router)#neighbor 12.0.0.2 route-map WY out /在进程下出方向调用route-map r1(config-router)#neighbor 12.0.0.2 send-community /让R2传递该社团属性
先在R2上进行查看; r2#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 12.0.0.1 0 0 100 i *> 22.22.22.0/24 12.0.0.1 0 0 100 i *> 222.222.222.0 12.0.0.1 0 0 100 i R2可以学习到该路由 在R3上查看 r3#sh ip bgp Network Next Hop Metric LocPrf Weight Path *>i22.22.22.0/24 23.0.0.2 0 100 0 100 i *>i222.222.222.0 23.0.0.2 0 100 0 100 i 可以看到R3已经收不到2.2.2.0这个网络了,往后的路由器也无法收到了。所以社团属性 No_advertise 满足了只让R2学到该路由的需求。
四 配置团体属性,让22.22.22.0网络只被R2,R3学习到 因为R2,R3处于联邦内同一个子AS,意思是该路由不能传递出这个子AS,所以可以用