光只是知道理论还不行,还是要多动手练练,就练一个bgp实验吧,梳理一下做题思路
实验要求:
大体要求就是:R1的环回可以ping通R2-R5的环回,R5同理
思路:
基础配置:
第一步先把地址环回先都配了
如
[r1]int g 0/0/1
[r1-GigabitEthernet0/0/1]ip add 12.1.1.1 24
[r1]int lo0
[r1-LoopBack0]ip add 1.1.1.1 24
第·二步就是在AS2内起OSPF协议,让AS内互通
[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]dis this
[V200R003C00]
#
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.1.1.1 0.0.0.0
#--------------------------------------------------------------------------------------------------------------------
[r3]ospf 1 router-id 3.3.3.3
[r3-ospf-1]area 0
[r3-ospf-1-area-0.0.0.0]dis this
[V200R003C00]
#
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 23.1.1.2 0.0.0.0
network 34.1.1.1 0.0.0.0
#---------------------------------------------------------------------------------------------------------------------
return
[r4]ospf 1 router-id 4.4.4.4
[r4-ospf-1]area 0
[r4-ospf-1-area-0.0.0.0]dis this
[V200R003C00]
#
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 34.1.1.2 0.0.0.0
#
BGP配置
第三步就是配EBGP和IBGP(在同一个as内的配IBGP,不在一个as的配EBGP)
1) 直连的EBGP邻居关系建立
[r1]bgp 1 启动BGP协议,启动时需要键入AS号;没有多进程概念
[r1-bgp]router-id 1.1.1.1 建议配置RID;若不配置将自动生成—规则同OSPF相同
[r1-bgp]peer 12.1.1.2 as-number 2 对端IP地址,及对端所在的AS编号
[r2]bgp 2
[r2-bgp]dis this
[r2-bgp] router-id 2.2.2.2
[r2-bgp]peer 3.3.3.3 as-number 2 ,对端所在AS号
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack0 对端环回接口ip地址
[r2-bgp]peer 4.4.4.4 as-number 2
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack0
[r2-bgp]peer 12.1.1.1 as-number 1
[r3]bgp 2
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 2.2.2.2 as-number 2
[r3-bgp] peer 2.2.2.2 connect-interface LoopBack0
[r3-bgp] peer 4.4.4.4 as-number 2
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack0
[r4]bgp 2
[r4-bgp] router-id 4.4.4.4
[r4-bgp] peer 2.2.2.2 as-number 2
[r4-bgp]peer 2.2.2.2 connect-interface LoopBack0
[r4-bgp]peer 3.3.3.3 as-number 2
[r4-bgp] peer 3.3.3.3 connect-interface LoopBack0
[r4-bgp] peer 5.5.5.5 as-number 3
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack0
[r5]bgp 3 AS3区域
[r5-bgp] router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 2
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack0
可能有好奇的小明问?为什么不用它实际的物理链路地址如23.1.1.1呢,而是用环回如3.3.3.3?
答:在实际的网络中,这里的环回相当于用户,我们真正做的是用户之间能互相通信,同时,在一个AS内部,拓扑正常较为复杂 ,两个路由器之间不可能只有一个物理链路,还会有备份链路,所以我们只需要用户能互通,不用管是走的哪个链路。
EBGP邻居间存在多条物理链路时如R4-R5,也建议使用环回接口地址来建立
第四步:IP可达,建议静态路由
[r4]ip route-static 5.5.5.5 255.255.255.255 45.1.1.2
[r4]ip route-static 5.5.5.5 255.255.255.255 54.1.1.2[r5]ip route-static 4.4.4.0 255.255.255.0 45.1.1.1
[r5]ip route-static 4.4.4.0 255.255.255.0 54.1.1.1
正常环回做为源、目ip地址建立邻居关系
第五步:默认IBGP邻居间数据包的TTL值为255,EBGP邻居间TTL为1;故一旦使用环回建立ebgp邻居关系,必须修改TTL值,否则无法建立
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
[r5-bgp]peer 4.4.4.4 ebgp-max-hop 2
当建邻配置完成后,邻居间通过三次握手,建立TCP的会话
[r2]display tcp status
当TCP会话建立后,邻居间BGP协议将正常收发一次open报文,建立BGP邻居关系;生成邻居表:
[r2]display bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 2
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
12.1.1.1 4 1 8 8 0 00:06:36 Established 0
表格最后的数值,标识本地从该邻居处学习到的路由条目的数量;
第六步:BGP的宣告;
运行BGP协议的路由器可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连; 而本地通过BGP协议学习到的路由,只要在本地依然优秀,将继续将向本地的其他BGP邻居传输;
注意:宣告时,宣告的条目必须同本地路由表中的记录完全一致
[r1-bgp]network 1.1.1.0 24
[r2-bgp]network 2.2.2.0 24
[r3-bgp]network 3.3.3.0 24
[r4-bgp]network 4.4.4.0 24
[r5-bgp]network 5.5.5.0 24
旦进行宣告配置,条目将加载于本地的BGP表中;--装载本地发出及接收到的所有路由信息
[r1]display bgp routing-table 查看BGP表 BGP Local router ID is 1.1.1.1 Status codes: * - valid, > - best, d - damped, • h - history, i - internal, s - suppressed, S - Stale • Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 1 • Network NextHop MED LocPrf PrefVal Path/Ogn *> 1.1.1.0/24 0.0.0.0 0 0 i
状态 目标网络号 属性
状态-- * 可用 > 优秀 *>同时存在—可以加表(路由表) 可以传递(传递给
本地的其他BGP邻居)
状态处若出现i代表该条目是本地通过IBGP邻居学习到的
优秀的条件:1、同步问题(默认不关注) 2、下一跳可达
基于AS-BY-AS规则,条目在一个AS内部传递时将不修改条目属性;导致通过IBGP邻居学习到的BGP路由可能出现下一跳不可达;导致条目不优;
第七步:改下一跳为本地
[r2-bgp]peer 3.3.3.3 next-hop-local 将BGP路由传递给本地的邻居3.3.3.3时修改下一跳地址为本地与3.3.3.3建立邻居关系的源ip地址
[r2-bgp]peer 4.4.4.4 next-hop-local
[4-bgp]peer 2.2.2.2 next-hop-local
[r2-bgp]peer 3.3.3.3 next-hop-local
当路由条目传递给本地的EBGP邻居时,属性将自动发生变化,包括下一跳地址;
最后,由于R5是静态路由配置的,我们需要把掩码改一下
[r4]undo ip route-static 5.5.5.0 24
[r4]ip route-static 5.5.5.5 32 45.1.1.2
[r4]ip route-static 5.5.5.5 32 54.1.1.2
结果: