BGP
#基本配置:
 router bgp 1
 bgp router-id 10.2.2.2
 neighbor 10.3.3.3 remote-as 1//没有自动建邻的功能,需要手动配置
 neighbor 10.3.3.3 update-source lo0//不指定默认出接口为源,修改为回环为源
 network 10.2.2.2 mask 255.255.255.255//宣告为掩码宣告,精确宣告
 BGP的宣告是依赖路由表的。
 宣告满足: 
 1)被宣告路由必须在路由表中。
 2)被宣告路由必须和路由表中的前缀掩码一致。IBGP建立邻居默认使用回环
 EBGP建立邻居没有特殊情况一般使用直连建立,如果使用非直连建立需要修改跳数,默认情况下跳数为1(不修改跳数用非直连建立邻居会建不起来)
 neighbor 10.3.3.3 ebgp-multihop //修改为255跳BGP路由传递的是BGP路由表中的路由信息
 BGP的路由表在收到路由以后需要检验该路由是否可达,如果不可达该路由一定不优设置变量,简化指令:
 neighbor kkk peer-group
 neighbor kkk remote-as 1
 neughbor kkk update-source lo0
 neighbor 10.2.2.2 peer-group kkk
 neighbor 10.3.3.3 peer-group kkk#四大类属性:
 1.公认必尊
 所有BGP路由器必须识别遵守的原则有or
 2.公认可尊
 所有路由器都能识别但不一定遵守
 3.可选传递
 不是所有BGP路由器都能识别,但是所有BGP都能传递
 4.可选非传递
 不是所有路由器都能被识别,不能识别的BGP路由器就丢弃它属性(cisco11种其他10种):
 ·weihgt(cisco私有)——选路,默认这个属性不传递(传播范围最小),适用于一台路由器在多条路径下的选路,weight大的一定选,无视邻居属性。IBGP32768、EBGP0
 修改方式:
 ①
 router bgp 2
 neighbor 10.1.34.3 weight 1 //修改该邻居所有传递过来的weight为1
 ②
 BGP不要用ACL,适用前缀列表
 router bgp 2
 neighbor 10.1.34.3 route-map a in//只针对某一个路由修改weight,主义只能用in方向
 ip prefix-list a permit 10.1.1.1/32
 route-map a permit 10
 match ip address prefix-list a
 set weight 1
 weight值的修改只能影响本路由器,不能影响到其他路由器,意味着如果as只有一个出口路由器weight选路是适用的,但是有多个出口路由器的情况系weight就不太适用了。·Origin
 起源属性,标识该路由的来源方式,0标识宣告(i),1表示EGP学到(E),3表示其他手段得到(重发布?),用i>E>?选路。—— i-igp=0 e-egp=1 ?-incomplete=3
 该属性可以选路,但是一般不用于选路。
 修改方式:
 router bgp 2
 neighbor 10.1.24.2 route-map org in //用in和out方向都行,适用于任何邻居之间
 route-map org permit 10
 match ip address prefix-list a
 set orgin ?
 igp local IGP
 incomplete unknown heritage
 set origin incomplete·AS path
 一条路由在传输过程中经历那些AS(不算自己)顺序是最近经过的as排前面,一个as的路由器拒绝接受带自己as号的路由,可以用来防环,也可以用于选路,as path短的优先
 修改方式:
 route-map org permit 10
 match ip addess prefix-list a
 set origin incomplete
 set as-path prepend 2 3 4
 route-map org permit 20
 router bgp 2
 neighbor 10.1.24.2 route-map org in我们一般在选路当中添加as会重复添加已经历的as,一般不会添加
 没有经历的as。适用于任何邻居之间,in和out方向都行。
 Nei x.x.x.x allowas-in允许和具有自己相同的as的路由进入本as//打破防环,本路由器使用
 Nei x.x.x.x as-override 把具有和其他as相同as号的路由放入这个as//邻居路由器使用·Next_hop
 到达路由的下一跳路由器IP地址,IBGP之间传路由next-hop不变,为0的时候会修改为更新源地址,EBGP之间传路由next-hop修改为更新源地址
 选路:下一跳为0的优于其他路由
 ip prefix-list a permit 10.1.4.1/24
 route-map K permit 10
 match ip address prefix-list a
 set ip-hop 1.1.1.1
 route-map K permit20
 router bgp 2
 neighbor 10.1.4.2 route-map K in
 方向无所谓,邻居无所谓都可以·Local_pref
 与weight一样也是选路属性。
 不能在EBGP邻居之间传递,可以在IBGP邻居之间传递,值越高越优(默认100),常用于当本as有多个出口路由器时,选择拥有local值大的路由器作为出口路由器。也可以是到达一个网段有多个出口路径时,选择local值大的路径。
 修改:
 ①修改路由器的默认local_pref值,该路由器通过IBGP邻居的路由都会携带修改后的local值。
 router bgp 1
 bgp default local-preference 120
 ②通过route-map修改某路由的local_pref值,EBGP只能在in方向IBGP可以是in也可以out方向。
 route-map k permit 10
 match ip address prefix-list k
 set local-preference 120
 route-map k permit 20
 router bgp 1
 neighbor 10.1.34.4 route-map k in·MED
 选路属性,本质就是metric默认为0,一般只能用于自同一个as发出路由的不同路径med值比较,两个不同as比较med没有意义。
 只能在两个as之间传递,不能传给第三个as。
 一般用于影响对方as,如果在本as使用和local_pref等同(注意不能在路由器上修改默认值)
 修改:
 route-map k permit 10
 match ip address prefix-list k
 set metric 10
 route-map k permit 20
 router bgp 1
 neighbor 10.1.34.4 route-map k inR2(config-router)#bgp always-compare-med // 开启比较不同as的med
·atomic aggregate
 汇总后某些属性不作数
 用来警告下游路由器路由聚合后产生的路由路径无丢失
 BGP支持向BGP邻居传递重叠路由可以选择多种方式
 as-set命令会使得该属性消失
 1.明细和粗略的都公布
 aggregate-address 10.0.0.0 255.0.0.0
 2.只公布明细
 aggregate-address 10.0.0.0 255.0.0.0 suppress-map
 3只公布没有重叠的as-path
 aggregate-address 10.0.0.0 255.0.0.0 summary-only as-set
 4.聚合后公布聚合后的路由
 aggregate-address 10.0.0.0 255.0.0.0 summary-only·aggregator
 用来通告汇总路由的汇聚路由器NGP_ID(cisco),方便寻找汇总者·community团体属性,为了更好地标识BGP的路由,标识格式为x:y
 团体值的设置不能在EBGP之间(IBGP之间可以),它的传递可以在IBGP之间也可以在EBGP之间。
 标记设置:
 route-map p permit 10
 match ip address prefix-list p
 set community 111
 route-map p permit 20
 router bgp 1
 neighbor KKKroute-map p out
 设置必须在IBGP之间可以用in也可以用out
 传递设置
 neighbor 10.1.24.4 send-community both/standard/extended //团体属性需要传递必须开启该指令
 匹配设置:
 ip bg-community new-format //开启扩展格式匹配
 R1(config)#ip community-list ?//专用的community匹配工具
 <1-99> Community list number(standard)
 <100-500> Community list number(expanded)
 expanded Add an expanded community-list entry
 standard Add a standard community-list entry
 R1(config)#ip community-list expanded k permit 111
 用community-list匹配完成湖route-map调用即可
 查看:
 show ip bgp 10.1.1.1 //查看路由详情可以查看团体值
 show ip bgp community //该指令可以查看具有所有团体值的路由
 show ip bgp community 111 //查看某团体值的所有路由
 standard(做路由标识) extended(MPLS VPN),可读性好
 子属性
 1.internet默认属性,可以给任何BGP发送,不对团体的携带做任何限制。
 2.no_export只能在一个AS内传递,可以在联盟内传递,该属性就是限制携带团体’ 的路由传递给EBGP邻居,联盟的EBGP除外。
 3.no_advertise不在IBGP、EBGP邻居间传递,禁止传递给任何邻居。
 4.local_as不向任何EBGP邻居发送包括联盟的EBGP邻居

·originator_id
路由器反射使用,是路由发起者产生的一个32比特的值。该值是本地路由发起者的RID,如果路由发起者从属性上看到自己的RID,说明有环路忽略。

·cluster_list
路由反射器使用,是路由进入反射器簇ID的序号,如果反射器在属性里看到自己的簇ID就说明有环路,忽略

反射器
R2(config-router)#neighbor 10.3.3.3 route-reflector-client //在反射服务端指定反射客户端,未指定的就是非客户端
反射器可以反射客户端之间,客户端与非客户端之间的路由,但不能反射非客户端之间的路由
缺点:反射器收到两个或两个以上达到同一目标路径时会判断出最优的路由然后反射给客户端与非客户端路由器,这样一来这些设备就丧失了多条路径判断最优的权利。