1.BGP属性
可支持ipv4和ipv6单播,也支持vpnv6等。
2.BGP的三张表
1.Neighbor table邻居表 show ip bgp summary/neighbors
2. BGP table转发数据库 show ip bgp
3. IP routing table路由表 show ip route bgp
3.BGP应用场景
-
应用BGP的环境
1.当允许数据包穿越As号去访问其他AS号的时候
2.对于一个用户的AS号,如果他需要同时连接到多个AS号时。
3.当需要对数据进入或离开AS,进行人为控制/操纵的时候
-
不应该应用BGP的环境
1.与isp只有单连接,没有同时连接到多个ISP
2.如果链路带宽不足,或者硬件设备的档次不够
3.对BGP路由操纵理解有限,无法预计BGP后的结果
4.BGP路由传递规则(很重要)!!!!
1.从EBGP学习到的路由会传递给所有的IBGP邻居
2.从IBGP学习到的路由不会传递给任何IBGP邻居(在AS内部避免环路)
3.从IBGP学习到的路由会不会传递给EBGP邻居,看是否开启了同步功能
3.1 若开启了同步功能,则会查看从IBGP学习到的路由是否存在于IGP路由表中,存在则传递给EBGP,不存在则不传递给EBGP
3.2 若关闭了同步功能,则直接传递给EBGP
5.宣告路由的方式
1.Network方式 (i)
2.redistribute方式 (?)
6.BGP4中的IBGP
6.1 IGP中的network
1) 传递路由
2) 从network包含的接口中发出hello
6.2 IBGP
IBGP使用环回口建立邻居,TTL=255。使用环回口建邻居时,注意BGP报文的源IP地址,通常采用路由更新源update-source(可以只写一边)。使得环回口间互相通信时,默认路由无效,必须使用明细;
router bgp 100
neighbors 2.2.2.2 remote-as 100
neighbors 2.2.2.2 update-source loopback0
从EBGP学习到的路由传递给IBGP时,由于默认不更改下一跳,会导致IBGP邻居对该路由的下一跳不可达,需要更改为当前设置。因此,解决下一跳不可达的办法可以采用两种方式:
- 使用静态或IGP使下一跳可达
- next-hop-self,该命令使其下一跳强制为更新源地址 [控制层面解决] neighbor 2.2.2.2 next-hop-self;一般放在边界EBGP路由上.
7.BGP4中的EBGP
EBGP一般使用直连口建立,也可使用多跳方式(注意update-source和multihop)。BGP建立邻居的TCP连接时随机的,邻居间都会建立两条TCP连接,但会随机DOWN一条。
- 直连方式(TTL=1)
router bgp 100
neighbors 12.1.1.1 remote-as 200
- 环回口方式(修改TTL)
若使用环回口建立EBGP邻居关系
- 将TTL设置成大于1
- 使用静态路由或IGP使得环回口间能互相通讯
- 建邻居接口不要宣告BGP中,否则会导致BGP邻居关系翻滚
router bgp 100
neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 ebgp-multihop 2
- 手工写静态路由 NULL 0
network 汇总路由
ip route 172.16.0.0 255.255.248.0 Null0
outer bgp 1
network 172.16.0.0 mask 255.255.248.0
8.BGP聚合
- BGP在汇总路由时,默认会发出汇总和明细路由,如果想阻止明细发出,可在后面添加summary-only;
aggregate-address 3.3.0.0 255.255.252.0 summary-only
- 聚合后,AS-PATH信息会丢失,可能导致路由环路,可加入as-set将其还原;
aggregate-address 3.3.0.0 255.255.252.0 summary-only as-set
9.BGP的防环机制
- EBGP之间使用as-path进行防环;
- IBGP之间使用水平分割法则防环;
水平分割:从IBGP路由之间,只能传递一跳;
解决水平分割:
1.全互联
2.路由反射器:客户端和非客户端; 非非不传;适用于星型网络;
客户端——>客户端 可传递
非客户端——>客户端 可传递
客户端——>非客户端 可传递
非客户端——>非客户端 不可传递
router bgp 123
neighbor 1.1.1.1 route-reflecctor-client
3.联邦:适用于线型网络;
router bgp 65060
bgp confederation identifier 100 //bgp联盟为100
bgp confederation peers 65050 //bgp联盟内的EBGP邻居AS
neighbor 20.0.0.1 remote-as 65050 //指定联盟内部的EBGP邻居
neighbor x.x.x.x remote-as 65060 //指定联盟内部的IBGP邻居
10.BGP的PEER-GROUP配置方式
- 1.简化配置,适用于EBGP或者IBGP
- 2.减少buffer(缓冲)
router bgp 200
neighbor IBGP1 peer-group
neighbor IBGP1 remote-as 200
neighbor IBGP1 update-source Loopback0
neighbor IBGP1 router-reflector-client
neighbor 2.2.2.2 peer-group IBGP1
neighbor 4.4.4.4 peer-group IBGP1
neighbor 5.5.5.5 peer-group IBGP1