BGP作用: 在不同的大型网络之间 , 长时间以稳定的方式传输大量的路由 并且能够实现路由的灵活控制同时,确保无环
BGP工作过程: 1、建立邻居表; 2、同步数据库; 3、计算路由表
BGP选路原则: 1.preference-value ,华为私有属性,仅仅在设备本地起作用。值越大越好; 不会随着更新报文,传递给其他的路由器的; 2.local-preference,本地优先级,值越大越好;默认是100; 3.比较该路由是否“本地起源”:本地产生的,要优于从其他邻居学习过来的; #自己产生的 :手动聚合 > 自动聚合 > network > import-route #从邻居学习过来的; 4.as-path , 比较的是 as-path的长短,越短越好; 5.比较起源属性 :i > e > ? 6.比较MED,值越小越好; 7.比较路由的类型, EBGP > IBGP 8.比较去往BGP路由的 下一跳 的 Metric 的大小,越小越好。 9.比较的是 cluster-list 的长短,越短越好; 10.比较的是 originator-id,越小越好; 11.比较的router-id,越小越好; 12.比较的邻居设备的 IP 地址,越小越好;
BGP路由宣告和传递: -宣告方式: network -->将该路由放入到BGP的数据库; -传递: 1.外部BGP邻居之间传递路由的时候,下一跳是变化的; 2.内部BGP邻居之间传递路由的时候,下一跳是不变的; -如果不变化,有可能导致下一跳不可达。
配置命令:
[R1]bgp200
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.2.2 as-number 64512 注:192.168.2.2必须是对方设备的接口的真实的IP地址,并且是可以通的; 不能是对方的 router-id ; # as-number 指的是对方的 as 号,不是自己的。 [R1-bgp]network 192.168.1.0 255.255.255.0 【宣告网段】 [R1-bgp]peer 192.168.2.2 next-hop-local R1向 BGP 邻居 192.168.2.2发送路由的,下一跳IP地址都 设置为自己与对方建立邻居时所使用的IP地址;
注意: BGP数据库中的路由,最优的时候,有以下两个行为: 1.将该路由放入到本地的路由表; 2.将该路由发送给 BGP 邻居
BGP在AS内的防环机制:IEGP水平分割
- 一个 BGP路由器在主机的 IBGP 邻居收到的路由,
- 不会再次发送给自己的另外一个 IBGP 邻居
IBGP 水平分割的 解决方案: 1 -IBGP邻居全互联 2 - BGP 联盟 3 - BGP 路由反射器 (route-reflector)
BGP 路由的属性更改: 1.抓取感兴趣路由 2.配置路由策略,对感兴趣路由更改属性 3.调用策略
route-policy 通过不同的名字进行区分
route-policy 包含多个条目,每个条目通过不同的 node / 序列号进行区分;
route-policy 在执行时,按照 node 号从小到大开始执行策略的匹配 如果有一个 node 条目匹配住了,则停止匹配。就不会看下面的条目了; 如果明确的匹配条目,则会一直匹配下去,直到最后一个“隐含的拒绝所有”
route-policy 最后有一条隐含的拒绝所有的条目: route-policy {name} deny node {最大的数值} 里面不包含任何的 “if-match”语句,表示的是 match 所有。
route-policy 如何表示允许所有: route-policy {name} permit node { 最大的数值} 其中不需要写任何的 match 语句;
[R3]ip ip-prefix 123 permit 20.20.20.0 24 【允许ip前缀匹配20.20.20.0网段】 [R3]route-policy 456 permit node 10 【aaa路由策略序列为10】 [R3-route-policy]if-match ip-prefix 123 【匹配策略123 】 [R3-route-policy]apply local-preference 200 【匹配成功会应用此策略,优先级为200】 [R3-bgp]peer 192.168.2.1 route-policy 456 export 【针对邻居启用策略在出端口进行应用】