目录
实验拓扑图
实验要求:
第一步、IP地址规划
第二步、配置接口IP地址
第三步、AS 200使用IGP OSPF实现网络互通
第四步、建立BGP对等体关系
1、R1与R2使用直连链路建立EBGP关系。
2、R2与R4使环回建立非直连IBGP关系。
3、R4与R5使用环回建立EBGP关系。
第五步、使用BGP宣告R1环回,R5环回。
实验拓扑图
实验要求:
1、R1与R2使用直连链路建立EBGP关系。
2、R2与R4使环回建立非直连IBGP关系。
3、R4与R5使用环回建立EBGP关系。
4、AS 200使用IGP OSPF实现网络互通。
5、所有环回基于192.168.1.0/24进行合理分配,R1、R5的环回使用BGP进行宣告,能够互相访问。
第一步、IP地址规划
第二步、配置接口IP地址
R1
<Huawei>system-view
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 12.1.1.1 24
[R1-GigabitEthernet0/0/0]int lo0
[R1-LoopBack0]ip address 192.168.1.1 32
[R1-LoopBack0]qu
R2
<Huawei>system-view
[Huawei]sysname R2
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 12.1.1.2 24
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 23.1.1.2 24
[R2-GigabitEthernet0/0/0]int lo0
[R2-LoopBack0]ip address 192.168.1.2 32
[R2-LoopBack0]qu
R3
<Huawei>system-view
[Huawei]sysname R3
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 23.1.1.3 24
[R3-GigabitEthernet0/0/1]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 34.1.1.3 24
[R3-GigabitEthernet0/0/0]int lo0
[R3-LoopBack0]ip address 192.168.1.3 32
[R3-LoopBack0]qu
R4
<Huawei>system-view
[Huawei]sysname R4
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]ip address 34.1.1.4 24
[R4-GigabitEthernet0/0/1]int g0/0/0
[R4-GigabitEthernet0/0/0]ip address 45.1.1.4 24
[R4-GigabitEthernet0/0/0]int lo0
[R4-LoopBack0]ip address 192.168.1.4 24
[R4-LoopBack0]qu
R5
<Huawei>system-view
[Huawei]sysname R5
[R5]int g0/0/1
[R5-GigabitEthernet0/0/1]ip address 45.1.1.5 24
[R5-LoopBack0]int lo0
[R5-LoopBack0]ip address 192.168.1.5 32
[R5-LoopBack0]int lo1
[R5-LoopBack1]ip address 192.168.1.15 32
[R5-LoopBack1]qu
第三步、AS 200使用IGP OSPF实现网络互通
R2
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 23.1.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]qu
[R2-ospf-1]qu
R3
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.1.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 23.1.1.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 34.1.1.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]qu
[R3-ospf-1]qu
R4
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 34.1.1.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 192.168.1.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]qu
[R4-ospf-1]qu
在R3上看OSPF邻居建立关系。
使用R2环回pingR4环回,已经实现AS 200 IGP可达。
第四步、建立BGP对等体关系
1、R1与R2使用直连链路建立EBGP关系。
R1
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 12.1.1.2 as-number 200
[R1-bgp]qu
R2
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 12.1.1.1 as-number 100
[R2-bgp]qu
在R1或R2上查看BGP关系建立结果,状态为Established,建立成功。
2、R2与R4使环回建立非直连IBGP关系。
R2
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 192.168.1.4 as-number 200
R4
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.1.2 as-number 200
在R2或R4上查看BGP关系建立结果,状态为Active,一直处于反复建立连接状态。
因为使用的是环回建立对等体关系,所以需要给对端指定是用的环回某个接口进行的建立对等体关系,所以还需要在R2与R4之间互相配置如下命令:
R2
[R2-bgp]peer 192.168.1.4 connect-interface LoopBack 0
R4
[R4-bgp]peer 192.168.1.2 connect-interface LoopBack 0
现在来查看R2与R4的BGP对等体建立关系,状态为Established,建立成功。
BGP 6种状态机
3、R4与R5使用环回建立EBGP关系。
R4
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.1.5 as-number 300
[R4-bgp]peer 192.168.1.5 connect-interface LoopBack 0
R5
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.1.4 as-number 200
[R5-bgp]peer 192.168.1.4 connect-interface LoopBack 0
在R4或R5上查看BGP关系建立结果,状态为Idle,是处于TCP建立阶段。
因为BGP是处于IGP之上,R4的环回没有路由到达R5环回的路由,现在互相指定去往环回的路由。
R4
[R4]ip route-static 192.168.1.5 32 45.1.1.5
R5
[R5]ip route-static 192.168.1.4 32 45.1.1.4
现在去查看R4与R5的对等体结果,发现还是处于Idle状态,并且在日志中看出一直处于连接当中。
BGP规定EBGP邻居间默认所有的BGP数据包TTL值为1,每经过一个路由器、三层交换机、防火墙等三层网络时就会减1,导致环回建立邻居关系服务不正常。因此我们需要修改EBGP的TTL值,我这里修改为2。
R4
[R4-bgp]peer 192.168.1.5 ebgp-max-hop 2
R5
[R5-bgp]peer 192.168.1.4 ebgp-max-hop 2
现在再来看R4与R5的BGP对等体建立结果,状态为Established,建立成功。
第五步、使用BGP宣告R1环回,R5环回。
R1
[R1-bgp]network 192.168.1.1 32
R5
[R5-bgp]network 192.168.1.5 32
现在去R1和R5上查看BGP宣告的路由,然而发现,都只有自己宣告的路由,并没有学到对方宣告的路由。
R1
R5
去R2上面看学习到R1上的宣告的路由,没有学习到R5上面的路由,但是学习到R1宣告的路由192.168.1.1可用且优(可以传递)。
再去R4上面看,都学习到了,但是发现都不可用,也不优,就导致无法传递。
因为R4去往192.168.1.1这条路由的下一跳是12.1.1.1,而在AS 200 IBGP内没有12.1.1.1网段,12.1.1.1网段不可达,加表不优。所以在R2上做以下配置,告诉R4去R2的下一跳为本地。
R2
[R2-bgp]peer 192.168.1.4 next-hop-local
R4 同理
[R4-bgp]peer 192.168.1.2 next-hop-local
再去R4上查看BGP路由,看到R1 BGP宣告的路由可用且可传递,而R5 BGP宣告的路由还是不可用也无法传递。因为逻辑悖论:我们在建立BGP对等体关系前,需要两环回互通,写了静态路由,如果不写静态路由,会导致BGP对等体关系失败。所以通常在实际工程中,是以一个环回来单独建立BGP对等体关系,其他业务网段不与该环回共用。
R5
[R5-bgp]network 192.168.1.15 32
再去R1上查看,学习到了R5新宣告的路由192.168.1.15
补充:
*号表示可用。
>号表示条目优秀,可以加表,可以传递(共享给本地的其他邻居,如果不优,原因:1、下一跳不可达AS-BY-AS。
状态处的i表示该条目通过IBGP邻居关系学习。
现在R1与R5互相学习到非建邻环回接口宣告的路由,但是还是没办法互通,这就是BGP路由黑洞导致的问题,该实验模拟环境出现在R3上,解决方法:
1、物理或逻辑链路全连。
2、全连的BGP邻居关系,所有设备运行bgp---设备成本高
3、将BGP路由条目重发布到IGP协议中---只适合在实验模拟环境中。
4、MPLS(多协议标签交换)---最佳方案。
该实验模拟环境中采用第二种方式解决,两两设备之间建立BGP对等体关系。
R2-R3
R2
[R2]bgp 200
[R2-bgp]peer 192.168.1.3 as-number 200
[R2-bgp]peer 192.168.1.3 next-hop-local
[R2-bgp]peer 192.168.1.3 connect-interface LoopBack 0
R3
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 192.168.1.2 as-number 200
[R3-bgp]peer 192.168.1.2 next-hop-local
[R3-bgp]peer 192.168.1.2 connect-interface LoopBack 0
R4-R3
R3
[R3-bgp]peer 192.168.1.4 as-number 200
[R3-bgp]peer 192.168.1.4 connect-interface LoopBack 0
[R3-bgp]peer 192.168.1.4 next-hop-local
R4
[R4]bgp 200
[R4-bgp]peer 192.168.1.3 as-number 200
[R4-bgp]peer 192.168.1.3 connect-interface LoopBack 0
[R4-bgp]peer 192.168.1.3 next-hop-local
现在在R3上查看已经有BGP非建邻宣告的环回路由。
去R1上去用192.168.1.1环回ping192.168.1.15,访问可达。