目录
- 实验要求
- ospf协议启动
- 关于BGP基本知识点
- BGP关系建立的配置
- BGP的宣告
实验要求
如下实验拓扑,各个自治系统区域和网段已经标注
基本的ip配置,环回配置就不再展示。
要求:除了R5的环回外,其他环回均可以互相访问
ospf协议启动
该协议就只在as2中启动就好
命令不再解释
对R2
[r2]ospf 1 router-id 3.3.3.3
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
对R3
[r3]ospf 1 router-id 3.3.3.3
[r3-ospf-1]area 0
[r3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[r3-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
[r3-ospf-1-area-0.0.0.0]network 34.1.1.0 0.0.0.255
对R4
[r4]ospf 1 router-id 4.4.4.4
[r4-ospf-1]area 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.1.1.0 0.0.0.255
到这里as2之间是可以互通了,接下来让整个AS通
关于BGP基本知识点
1,属于无类别的路径矢量协议,EGP协议中最流行的技术,工作在AS(自治系统)之间
2,BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目
3,AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路等
一,BGP特点:
1)无类别路径矢量 -----距离矢量的升级版---AS--BY--AS
2)使用单播更新来发送所有信息;基于TCP 179端口工作
3)增量更新--仅触发无周期
4)具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
5)可以在进项和出项对流量实施强大的策略--可控性
6)默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
7)BGP支持认证和聚合(汇总)
二,BGP数据包:
基于TCP的179端口工作,故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障。
过程:
1,TCP的三次握手来寻找到邻居
Open 仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
Keeplive 保活 周期1min查询邻居关系是否存在;实际保活TCP会话;hold time 默认3min
Update 携带路由条目 目标网络号+各种属性
Notification 出现错误数据时收发;
三,BGP工作过程:
1、配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输
2,会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表
3,邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)
4,2、邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP表
5,收敛完成,仅keeplive周期保活即可
6,若出现错误信息,邻居间将使用Notification报文进行报错操作
四,概念名词
邻居---直连 因为BGP协议中存在非直连邻居的需求,故BGP邻居称为毗邻关系;
EBGP邻居关系 ---- 外部BGP邻居关系,建邻的两台设备处于不同的AS中
IBGP邻居关系 ---- 内部BGP邻居关系,建邻的两台设备处于相同的AS中
五,BGP的路由黑洞问题
非直连建邻到达控制层面路由条目可传递,递归计算路由可达,而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回
解决办法:
1、 物理、逻辑拓扑全连 -- 物理链路直连、或者vpn
2、 邻居关系全连 – 网络中所有设备运行BGP
3、 BGP重发布到IGP(LAB中使用的)
4、 MPLS 多协议标签交换--- 推荐做法
六,BGP的防环机制 –水平分割
1、EBGP水平分割是为了解决EBGP环路;
依赖了BGP路由条目中的一种属性来进行防环;
BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;
本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;
AS-BY-AS在一个AS内部条目传递的过程中,默认不会修改任何的属性;
解决办法:
在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目,必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;
后期可以依赖打破水平分割的机制来解决: 联邦、路由反射器
BGP关系建立的配置
图中可以看出,R1和R5为EBGP
对EBGP R1
[r1]bgp 1 启动bgp协议,as号为1
[r1-bgp]router-id 1.1.1.1 建议写一个router-id
[r1-bgp]peer 12.1.1.2 as-number 2 宣告邻居并且说明它所在的as号
对ibgp R2
[r2]bgp 2
[r2-bgp]router-id 2.2.2.2
[r2-bgp]peer 12.1.1.1 as-number 1
对EBGP R5
[r5]bgp 3
[r5-bgp]peer 45.1.1.1 as-number 2
[r5-bgp]router-id 5.5.5.5
对iBGP R4
[r4]bgp 3
[r4-bgp]peer 45.1.1.2 as-number 3
IBGP邻居关系建立,在一个AS内部,拓扑正常较为负载;建议使用环回接口地址作为源、目标ip地址
为了避免BGP路由黑洞的产生,as2中所有的设备均运行bgp协议,为了让传入的路由为优秀可以传递和加表,需要修改下一跳。
R2与R3和R4建邻
[r2-bgp]peer 3.3.3.3 as-number 2
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 说明连接的源接口为环回口
[r2-bgp]peer 4.4.4.4 as-number 2
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r3-bgp]peer 2.2.2.2 as-number 2
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r4-bgp]peer 2.2.2.2 as-number 2
[r4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
R3和R4建立邻居
[r3-bgp]peer 4.4.4.4 as-number 2
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r4-bgp]peer 3.3.3.3 as-number 2
[r4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
这里所有的bgp邻居配置完成了
当建邻配置完成后,邻居间通过三次握手,建立TCP的会话,如图R2 上面看到的与其连接的tcp状态
当TCP会话建立后,邻居间BGP协议将正常收发一次open报文,建立BGP邻居关系;生成邻居表
BGP的宣告
运行BGP协议的路由可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连; 而本地通过BGP协议学习到的路由,只要在本地依然优秀,将继续将本地的其他BGP邻居传输;
注意:宣告时,宣告的条目必须同本地路由表中的记录完全一致
一旦进行宣告配置,条目将加载于本地的BGP表中—装载本地发出及接收到的所有路由信息
对R1宣告
[r1]bgp 1
[r1-bgp]network 1.1.1.1 24
这时可以在R1上查看bgp表情况,如下图
这一条路由显示为 *> 说明这一条路由可以传递并且入表,说明R2是可以接受到,这时又在R2上面继续查看发现可以看到任然为优秀,所以还可以传,到R3上面看发现这一条路由前面显示的是 i ,为不优秀,所以不能加表和继续传输。原因在于下一跳的问题,2个as间传递路由时下一跳将会自动改,而as之间的传递就不能自动改下一跳。
这个实验中R1和R2在不同的as,R1将路由传给R2时,R2会自动将下一跳改为 12.1.1.1 ,而在R2,R3之间是同一个as,则R3上不能自动改下一跳,R3不认识12.1.1.1这一网段,所以不优秀,不能继续传递和加表。
这个时候就要手动在路由器上面修改下一跳为本地
对R2
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 next-hop-local
对R3
[r3]bgp 2
[r3-bgp]peer 4.4.4.4 next-hop-local
最后宣告各个路由器的直连网段即可R1环回ping通R5的环回