边界网关协议(BGP,Border Gateway Protocol)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。
IBGP——内部BGP协议(IBGP)的主要作用是向你的内部路由器提供更多信息。IBGP路由器必须以全网状结构相连,以防止路由环回。如果使用了路由反射器或路由联盟,那么IBGP网状结构可能遭遇收敛问题,而导致路由黑洞。
EBGP —— (External Border Gateway Protocol) 外部边界网关协议,用于在不同的自治系统间交换路由信息。
EBGP与IBGP的区别:
1、路由环路的避免措施不一样,IBGP强制规定ibgp speaker不允许把从一个IBGP邻居学习到的前缀传递给其它IBGP邻居,因此IBGP要求逻辑全连接。EBGP没有这样的要求,EBGP对路由环路的避免是通过AS_PATH属性来实现的。
2、使用的BGP属性不同,例如IBGP可以传递LOCAL_PREF(本地优先属性),而EBGP不行。
3、IBGP有同步的要求,而EBGP没有同步的要求
4、IBGP不需要IBGP邻居之间有物理连接,只需要逻辑连接即可,而EBGP下一般情况下都要求EBGP邻居之间存在物理连接。
一、实验目的
1、实现IBGP的配置
2、实现EBGP的配置
3、观察BGP的邻居表
4、实现BGP更新源的配置
5、实现EBGP多跳的配置
6、观察IBGP和EBGP中路由的下一跳的变化。
二、实验背景
你是公司的网络管理员。公司的网络采用了BGP协议作为路由协议。公司的网络由多个自治系统组成,不同的分支机构使用了不同的AS号,现在你需要完成公司网络的搭建工作。在公司总部使用了OSPF作为IGP ,公司内部不同分支机构使用的是私有的BGP AS 号。在完成网络搭建以后﹐你还需要观察BGP路由信息的传递。
三、实验拓扑
四、实验配置
1、设备IP地址配置。
</>code
- [R1]int LoopBack 0
- [R1-LoopBack0]ip address 10.0.1.1 24
- [R1-LoopBack0]quit
- [R1]int g0/0/0
- [R1-GigabitEthernet0/0/0]ip address 10.0.12.1 24
- [R1-GigabitEthernet0/0/0]quit
- [R2]int LoopBack0
- [R2-LoopBack0]ip address 10.0.2.2 24
- [R2-LoopBack0]quit
- [R2]int g0/0/0
- [R2-GigabitEthernet0/0/0]ip address 10.0.12.2 24
- [R2-GigabitEthernet0/0/0]quit
- [R2]int g0/0/1
- [R2-GigabitEthernet0/0/1]ip address 10.0.23.2 24
- [R2-GigabitEthernet0/0/1]quit
- [R3]int LoopBack 0
- [R3-LoopBack0]ip address 10.0.3.3 24
- [R3-LoopBack0]quit
- [R3]int g0/0/0
- [R3-GigabitEthernet0/0/0]ip address 10.0.34.3 24
- [R3-GigabitEthernet0/0/0]quit
- [R3]int g0/0/1
- [R3-GigabitEthernet0/0/1]ip address 10.0.23.3 24
- [R3-GigabitEthernet0/0/1]quit
- [R4]int LoopBack 0
- [R4-LoopBack0]ip address 10.0.4.4 24
- [R4-LoopBack0]quit
- [R4]int g0/0/0
- [R4-GigabitEthernet0/0/0]ip address 10.0.34.4 24
- [R4-GigabitEthernet0/0/0]quit
- [R4]int g0/0/1
- [R4-GigabitEthernet0/0/1]ip address 10.0.45.4 24
- [R4-GigabitEthernet0/0/1]quit
- [R5]int LoopBack 0
- [R5-LoopBack0]ip address 10.0.5.5 24
- [R5-LoopBack0]quit
- [R5]int g0/0/1
- [R5-GigabitEthernet0/0/1]ip address 10.0.45.5 24
- [R5-GigabitEthernet0/0/1]quit
#在R2、R4上检查IP地址连通性:
2、配置AS 64512内的OSPF。
R2、R3、R4使用Loopback0接口地址作为Router ID。
#配置R2,在Loopback0、GE0/0/2接口上激活OSPF:
</>code
- [R2]ospf 1 router-id 10.0.2.2
- [R2-ospf-1]area 0
- [R2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0
- [R2-ospf-1-area-0.0.0.0]network 10.0.23.2 0.0.0.0
- [R2-ospf-1-area-0.0.0.0]quit
- [R2-ospf-1]quit
- [R3]ospf 1 router-id 10.0.3.3
- [R3-ospf-1]area 0
- [R3-ospf-1-area-0.0.0.0]network 10.0.23.3 0.0.0.0
- [R3-ospf-1-area-0.0.0.0]network 10.0.34.3 0.0.0.0
- [R3-ospf-1-area-0.0.0.0]network 10.0.3.3 0.0.0.0
- [R3-ospf-1-area-0.0.0.0]quit
- [R3-ospf-1]quit
- [R4]ospf 1 router-id 10.0.4.4
- [R4-ospf-1-area-0.0.0.0]network 10.0.34.4 0.0.0.0
- [R4-ospf-1-area-0.0.0.0]network 10.0.4.4 0.0.0.0
- [R4-ospf-1-area-0.0.0.0]quit
- [R4-ospf-1]quit
#在R3上查看OSPF邻居的概要信息:
R3与R2、R4之间已经建立起OSPF邻居关系。
#在R3 上查看OSPF路由表:
R3已经学习到R2、R4的 Loopback0接口路由。其中:
Type:是指这条目的路由的类型,有Stub和Transit类型;标志TransitNet的都是直连接口,需要通过这条链路维护邻居的链路信息;TransitNet是需要维护邻居的链路类型,StubNet是指不需要邻居的链路类型。
AdvRouter:指的是谁发布的这条路由,也就是产生相应的LSA的那个路由器的router-id。
3、配置AS 64512内的全互联IBGP对等体关系。
在R2、R3、R4之间基于Loopback0接口建立全互联的IBGP对等体关系。
</>code
- [R2]bgp 64512
- [R2-bgp]router-id 10.0.2.2
- [R2-bgp]peer 10.0.3.3 as-number 64512
- [R2-bgp]peer 10.0.3.3 connect-interface LoopBack 0
- [R2-bgp]peer 10.0.4.4 as-number 64512
- [R2-bgp]peer 10.0.4.4 connect-interface LoopBack 0
- [R3] bgp 64512
- [R3-bgp] router-id 10.0.3.3
- [R3-bgp] peer 10.0.2.2 as-number 64512
- [R3-bgp] peer 10.0.2.2 connect-interface LoopBack0
- [R3-bgp] peer 10.0.4.4 as-number 64512
- [R3-bgp] peer 10.0.4.4 connect-interface LoopBack0
- [R4]bgp 64512
- [R4-bgp]peer 10.0.2.2 as-number 64512
- [R4-bgp]peer 10.0.2.2 connect-interface LoopBack 0
- [R4-bgp]peer 10.0.3.3 as-number 64512
- [R4-bgp]peer 10.0.3.3 connect-interface LoopBack 0
#查看BGP邻居信息:
可以看到R2、R3、R4之间已经相互建立了全互联的IBGP对等体关系。
4、配置AS 64512、AS 64513、AS 64514之间的EBGP对等体关系。
在R1与R2、R4与R5之间基于Loopback0接口建立EBGP对等体关系﹐为保证能够正常建立,在R1、R2上配置静态路由使Loopback0之间路由可达(R4、R5同样操作)。
</>code
- [R1]ip route-static 10.0.2.2 32 10.0.12.2
- [R2]ip route-static 10.0.1.1 32 10.0.12.1
- [R4]ip route-static 10.0.5.5 32 10.0.45.5
- [R5]ip route-static 10.0.4.4 32 10.0.45.4
#配置R1、R2之间的EBGP对等体:
</>code
- [R1]bgp 64513
- [R1-bgp]router-id 10.0.1.1
- [R1-bgp]peer 10.0.2.2 as-number 64512
- [R1-bgp]peer 10.0.2.2 ebgp-max-hop 2
- [R1-bgp]peer 10.0.2.2 connect-interface LoopBack 0
- [R2]bgp 64512
- [R2-bgp]peer 10.0.1.1 as-number 64513
- [R2-bgp]peer 10.0.1.1 ebgp-max-hop 2
- [R2-bgp]peer 10.0.1.1 connect-interface LoopBack 0
默认情况下,EBGP连接允许的最大跳数为1,这导致EBGP对等体之间只能使用直连链路建立 EBGP对等体关系,为使用环回口作为更新源需要手动修改EBGP连接允许的最大跳数。
</>code
- [R4]bgp 64512
- [R4-bgp]peer 10.0.5.5 as-number 64514
- [R4-bgp]peer 10.0.5.5 ebgp-max-hop 2
- [R4-bgp]peer 10.0.5.5 connect-interface LoopBack 0
- [R5]bgp 64514
- [R5-bgp]router-id 10.0.5.5
- [R5-bgp]peer 10.0.4.4 as-number 64512
- [R5-bgp]peer 10.0.4.4 ebgp-max-hop 2
- [R5-bgp]peer 10.0.4.4 connect-interface LoopBack 0
#查看R1、R5的BGP邻居信息:
R1与R2、R4与R5之间已经成功建立EBGP对等体关系。
5、在R1、R5上将Loopback1接口路由发布到BGP,在R2、R4上修改BGP下一跳地址。
#在R1、R5上将Loopback1接口路由发布到BGP,在R1、R5上通过network命今发布路由:
</>code
- [R1]int LoopBack 1
- [R1-LoopBack1]ip address 10.1.1.1 24
- [R1-LoopBack1]quit
- [R1]bgp 64513
- [R1-bgp]network 10.1.1.1 24
- [R5]int LoopBack 1
- [R5-LoopBack1]ip address 10.1.5.5 24
- [R5-LoopBack1]quit
- [R5]bgp 64514
- [R5-bgp]network 10.1.5.5 24
#在R3上查看BGP路由表:
可以看到此时R3上已经学习到R1、R5上发布的BGP路由,但是都是非有效路由﹐这是因为它们的下一跳在R3上都不可达﹐为此可以在R2、R4 上通过next-hop-local 命宁修落卜一跳地址为R2、R4的更新源地址。
</>code
- [R2]bgp 64512
- [R2-bgp]peer 10.0.3.3 next-hop-local
- [R2-bgp]peer 10.0.4.4 next-hop-local
- [R4]bgp 64512
- [R4-bgp]peer 10.0.2.2 next-hop-local
- [R4-bgp]peer 10.0.3.3 next-hop-local
#再次在R3上查看BGP路由表:
此时两条BGP路由都变成了有效、最优的状态。
#测试R1、R5的Loopback 1之间的连通性: