笔记:
BGP定义
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择优选路由的距离矢量路由协议。
BGP目的
为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。BGP协议被用于实现在AS之间动态交换路由信息、进行路由优选、避免路由环路、更高效率地传递路由和维护大量的路由信息。
BGP---边界网关协议
IGP----内部网关协议---OSPF、RIP、ISIS
EGP---外部网关协议---EGP、BGP
AS---自治系统:由单一的组织或者机构独立维护的网络设备以及网络资源的集合
原因:网络范围太大
为了区分不同的AS,网络世界IANA提出了AS号---0-65535 0和65535一般做保留AS号1-65534(真正允许运营商使用1-64511---公有AS号,64512-65534---私有AS号)
拓展AS号:将原本16位AS号拓展到32位
IGP(链路状态)与BGP(矢量距离)
相同点:
都是实现路由信息的交换、学习
都能实现路由的功能
不同点:
BGP一般用于大型网络,可容纳的路由信息更多;而IGP协议,对于路由条目的存储量是有限的,比如OSPF协议,最多也只能容纳1W条路由
IGP是内部网关协议,在AS内部实现路由信息的交换;BGP是边界网关协议,在AS之间实现路由信息的交换
BGP的实现,需要IGP作为其底层的通信基础
BGP是建立的可靠的TCP基础上的,端口号为179
IGP的设计重点是对路由的学习与交换,发现路由等,而BGP的设计,主要是为了控制路由的传播,即进行路径选择,BGP有丰富的选路策略,与其说BGP是一个路由协议,倒不如说BGP是一个路径选择协议
BGP数据包
BGP公共头部
条件:
![](https://i-blog.csdnimg.cn/blog_migrate/0d5f8ff695ea21ce6390bb5a270fac66.png)
![](https://i-blog.csdnimg.cn/blog_migrate/48c5ede98ad2a67b91b15548376781b4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/510c772d5c9312dc01c2f5da42136f6f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7bb371553819cf57612178a2e515ab87.png)
原因:控制层面的可达
数据层面实际不可达
IGP内部存在没有运行BGP的设备,当访问BGP网段的流量来到这些设备之后,由于控制层面可达,数据层面不可达(这些设备没有运行BGP,没有BGP网段的路由信息),那么将丢弃这些流量。
解决办法:
1.所有设备均运行BGP(成本高)
2.重发布
3.MPLS---最早专门用来解决BGP路由黑洞
同步机制---当设备学习到一条BGP路由,如果本地IGP路由表不可达,将视为该BGP路由无效。(默认关闭)
BGP的防环----水平分割
EBGP水平分割
![](https://i-blog.csdnimg.cn/blog_migrate/4bd315ed32054995c6f186df170028ce.png)
当运行BGP的设备从IBGP对等体处学到一条IBGP路由,那么将不在转发给其他IBGP对等体(一个AS内部传一跳)。
解决方案---在IBGP对等体之间构建全连的IBGP对等体关系,1,增加拓扑的复杂性导致网络可拓展性变差。2,增大了资源占用
BGP的基础配置:
[R1]bgp 100 -----启动BGP协议,并指定自身AS号
[r1-bgp]router-id 1.1.1.1---手工配置BGPRID
[R1-bgp]peer 12.0.0.2 as-number 200 -----直连建邻,指定建邻的IP地址和对应的as号
[R1]display bgp peer --查看BGP邻居关系(BGP的邻居表)
IBGP之间使用环回建邻
[r2-bgp]peer 3.3.3.3 as-number 200
bgp 200
router-id 2.2.2.2
peer 3.3.3.3 as-number 200
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 ---注意环回建邻必须改变更新源地址,地址不一致将导致建邻失败
EBGP对等体之间使用环回建邻方法
[r5]ip route-static 4.4.4.0 24 45.0.0.1-----必须实现路由可达(建议使用静态)
bgp 300
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0---使用环回建邻注意:必须修改更新源
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2----修改EBGP数据包TTL值
[r5-bgp]peer 4.4.4.4 ebgp-max-hop ----默认直接回车将修改TTL值为255
BGP的路由发布
[R1-bgp]network 1.1.1.0 24------宣告含义仅发布路由信息,并且注意:只能发布路由表中存在的路由信息
[R1]display bgp routing-table ----查看BGP表---记录发布的和接收到的所有BGP路由信息
Network
Total Number of Routes: 3 Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
Network----接收到的网段信息
NextHop----下一跳,如果是本地始发的BGP路由信息该字段为0.0.0.0
*> ---状态码
*valid----有效,首先当BGP设备接收到一条BGP路由信息,首先将验算下一跳是否可达,如果下一跳可达则代表该路由可用,如果下一跳不可达则认为该路由无效。注意:只有可用的路由信息才会参与BGP路由的选举,并加载到路由表中
> best---最优的路由信息最终根据路径属性选择的结果,只有最优的路由信息才会最终加载到路由表中,并且只有最优的路由才会被BGP传递
I----internal内部通过IBGP对等体学到的
[r2-bgp]peer 3.3.3.3 next-hop-local ------当IBGP对等体学到一条EBGP路由,由于AS-BY-AS属性导致下一跳不可达,协议在传递这条IBGP路由的IBGP设备上修改下一跳为本地
BGP不能发布建立对等体的网段
2.宣告BGP网段的方法---重发布
[r2-bgp]import-route ospf 1
重发布的路由信息本地下一跳也是0.0.0.0相当于本地始发
Ogn------起源码:象征该路由通过何种方式学习到的
I---表示该路由是通过IBGP对等体学到的路由信息,包括Network宣告的路由
E--表示该路由是由EGP协议处学习到的路由信息,保留仅为了兼容性
?--除了前两种都是?
BGP的路由聚合-----自动聚合 手工聚合
1.创建前缀列表抓取想要发布的路由网段
[R1]ip ip-prefix aaa permit 172.16.0.0 16 greater-equal 24 less-equal 24
2.创建路由策略
[R1]route-policy aaa permit node 10 ----大的方向一定选择运行,否则视为拒绝发布这些匹配到的网段
route-policy aaa permit node 10
if-match ip-prefix aaa-----匹配前缀列表抓取的流量
实验:
实验要求:
一,配置ip
二,配置as200中的ospf
[r2-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[r3-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[r3-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
[r3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[r4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[r4-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
ping测试
三,BGP建邻
r1r2
[r1]bgp 100
[r1-bgp]peer 12.0.0.2 as
[r1-bgp]peer 12.0.0.2 as-number 200
[r2-bgp]peer 12.0.0.1 as-number 100
r2r3
[r2-bgp]peer 3.3.3.3 as-number 200
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0改变更新源
[r3-bgp]peer 2.2.2.2 as-number 200
r3r4
[r3-bgp]peer 4.4.4.4 as-number 200
[r4-bgp]peer 3.3.3.3 as-number 200
[r4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
r4r2
[r2-bgp]peer 4.4.4.4 as-number 200
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r4-bgp]peer 2.2.2.2 as-number 200
[r4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
r4r5 环回建邻
[r4]ip route-static 5.5.5.0 24 45.0.0.2
[r4-bgp]peer 5.5.5.5 as-number 300
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
[r5]ip route-static 4.4.4.0 24 45.0.0.1
[r5-bgp]peer 4.4.4.4 as-number 200
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r5-bgp]peer 4.4.4.4 ebgp-max-hop
查看BGP
四,路由发布
r1发布路由
[r1-bgp]network 1.1.1.0 24
[r2-bgp]network 1.1.1.0 24
[r2-bgp]peer 3.3.3.3 next-hop-local
[r2-bgp]peer 4.4.4.4 next-hop-local
r5发布
[r5-bgp]network 5.5.5.0 24
[r5-bgp]network 100.0.0.0 24
[r4-bgp]network 5.5.5.0 24
[r4-bgp]network 100.0.0.0 24
[r4-bgp]peer 2.2.2.2 next-hop-local
[r4-bgp]peer 3.3.3.3 next-hop-local
发布静态和汇总172.16.0.0网段
[r2-bgp]import-route ospf 1
[R1]ip ip-prefix aaa permit 172.16.0.0 16 greater-equal 24 less-equal 24
[R1]route-policy aaa permit node 10
[R1-route-policy]if-match ip-prefix aaa
[R1-bgp]import-route direct route-policy aaa
ping通测试
查表