实验要求:
实验过程:
1.IP地址的规划以及拓扑的搭建
AS1:
环回接口:1.1.1.1/24 骨干链路:12.1.1.0/24 15.1.1.0/24
AS3:
环回接口:8.8.8.8/24 骨干链路:78.1.1.0/24
AS2:
AS2总网段地址为172.16.0.0/16
环回(建邻):172.16.0.0/32
骨干:
R2和R3:172.16.1.0/30 R3和R4:172.16.1.4/30 R4和R7:172.16.1.8/30
R7和R6:172.16.1.12/30 R6和R5:172.16.1.16/30 R5和R2:172.16.1.20/30
R3和R6:172.16.1.24/30
剩下的环回:172.16.2.0/24 172.16.3.0/24 172.16.4.0/24
172.16.5.0/24 172.16.6.0/24 172.16.7.0/24
2.底层(各个路由器接口以及环回配置IP)
R1:
R2:
R3:
R4:
R6:
R7:
R8:
3.在AS内部使用OSPF , 实现AS2内部互通
以R2为例:
AS2内部路由器与R2配置一样,完成之后查看路由表,并进行测试,保证AS2内部可以互通
路由表:
在实际工程中路由器会连接用户,路由会携带原有的掩码来进行传递,但在实验中,用户会用环回代替,导致在路由器中传的路由会以32为掩码传递(最后5条)。
解决办法:修改路由器用户接口的工作类型
[r2]int l 1
[r2-LoopBack1]ospf network-type broadcast
再次查看路由表发现以32位掩码传递的路由,会变成自己手写的24位掩码
测试:
【1】EBGP之间建邻(采用直连接口建邻)
[r1]bgp 1 启动时需要定义真实的AS号,没有多进程概念
[r1-bgp]router-id 1.1.1.1 建议手工配置RID,--手工—环回最大值---物理接口最大值
[r1-bgp]peer 12.1.1.2 as-number 2 对端IP地址,及对端所在的AS号
上图是R1和R2之间的建邻,同理完成R1和R5,R7和R8之间的建邻
【2】IBGP之间建邻(采用环回接口建邻)
由于AS2中R3/4/6不得运行BGP协议,所以R2/5/7之间两两建邻
5.MPLS配置
在AS2内部配置MPLS,在MPLS中直连设备间将建立邻居关系
以R3为例:
[r3]mpls lsr-id 172.16.0.3 必须先定义mpls的router-id,要为本地设备的真实ip地址,且邻居可达,因为 该地址将用于建立TCP会话,建议使用环回地址
[r3]mpls 再开启mpls协议
[r3-mpls]mpls ldp 再激活LDP协议
[r3-mpls-ldp]q
之后需要在所有标签经过的接口上开启协议
[r3]interface GigabitEthernet 0/0/1
[r3-GigabitEthernet0/0/1]mpls 先开启MPLS
[r3-GigabitEthernet0/0/1]mpls ldp 再激活LDP协议
[r3-GigabitEthernet0/0/1]int g0/0/0
[r3-GigabitEthernet0/0/0]mpls
[r3-GigabitEthernet0/0/0]mpls ldp[r3-GigabitEthernet0/0/1]int g0/0/2
[r3-GigabitEthernet0/0/2]mpls
[r3-GigabitEthernet0/0/2]mpls ldp[r3]mpls
[r3-mpls]lsp-trigger all 开启功能,将对fib表中所针有路由进行标签号的分配
同理完成R4和R6的配置,然后查看邻居表
R3:
因为MPLS并不会为通过BGP协议学习到的路由条目分配标签号;而是在访问这些BGP路由目标网段时,在流量中压入到达这些网段的BGP下一跳设备地址的标签号。来穿越中间没有运行BGP协议的设备,实现打破路由黑洞
注:华为设备默认不为BGP协议执行下一跳标签机制,cisco默认执行;
华为设备需要开启 route recursive-lookup tunnel 路由基于隧道进行递归查找
所以在运行BGP 的路由器(R2/5/7)上写如上命令来开启“路由基于隧道进行递归查找”的功能
以R2为例:
[r2]route recursive-lookup tunnel 路由基于隧道进行递归查找
7.配置缺省路由
由于AS2内部存在不使用BGP的路由器,因此这些路由器需要配置缺省路由(静态缺省,原因是稳定)指向AS2内部最近的BGP路由器
所以我们在R3/4/6路由器上配置缺省路由
[r3]ip route-static 0.0.0.0 0.0.0.0 172.16.1.1
[r4]ip route-static 0.0.0.0 0.0.0.0 172.16.1.10
[r6]ip route-static 0.0.0.0 0.0.0.0 172.16.1.18
8.路由宣告
AS1和AS3在R1和R8上直接宣告
[r1]bgp 1
[r1-bgp]network 1.1.1.0 24
[r8]bgp 3
[r8-bgp]network 8.8.8.0 24
先逐条宣告客户端明细路由,再进行聚合配置
[r1-bgp]aggregate 20.1.0.0 22 配置完成后,本地自动生成空接口防环路由
此时明细和聚合条目同时发出
[r2]ip route-static 172.16.0.0 21 NULL 0
[r2]bgp 2
[r2-bgp]network 172.16.0.0 21
同理完成R5和R7的配置,路由全部学过来了
9.路由策略
BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为为cost)
BGP协议在特定条件下携带本地到达目标的cost值;本地宣告(重发布)自己路由表中的路由后,将其传递给本地的ebgp邻居,将携带cost值;对于其他AS的设备学习到从同一个as传递过来的路由,优选MED最小的路径;
管理员可以在控制层面传递路由的过程中,手工修改MDE;最常用于干涉ebgp选路;
R1到AS2中R2/3/4用户网段基于R5访问
[r1]ip ip-prefix 2 permit 172.16.2.0 24
[r1]ip ip-prefix 3 permit 172.16.3.0 24
[r1]ip ip-prefix 4 permit 172.16.4.0 24
[r1]route-policy med permit node 10
[r1-route-policy]if-match ip-prefix 2
[r1-route-policy]apply cost 100
[r1-route-policy]q
[r1]route-policy med permit node 20
[r1-route-policy]if-match ip-prefix 3
[r1-route-policy]apply cost 100
[r1-route-policy]q
[r1]route-policy med permit node 30
[r1-route-policy]if-match ip-prefix 4
[r1-route-policy]apply cost 100
[r1-route-policy]q
[r1]route-policy med permit node 40
[r1-route-policy]q
[r1]bgp 1
[r1-bgp]peer 12.1.1.2 route-policy med export
R1到AS2中R5/6/7用户网段基于R2访问
[r1]ip ip-prefix 5 permit 172.16.5.0 24
[r1]ip ip-prefix 6 permit 172.16.6.0 24
[r1]ip ip-prefix 7 permit 172.16.7.0 24
[r1]route-policy med2 permit node 10
[r1-route-policy]if-match ip-prefix 5
[r1-route-policy]apply cost 100
[r1-route-policy]q
[r1]route-policy med2 permit node 20
[r1-route-policy]if-match ip-prefix 6
[r1-route-policy]apply cost 100
[r1-route-policy]q
[r1]route-policy med2 permit node 30
[r1-route-policy]if-match ip-prefix 7
[r1-route-policy]apply cost 100
[r1-route-policy]q
[r1]route-policy med2 permit node 40
[r1-route-policy]q
[r1]bgp 1
[r1-bgp]peer 15.1.1.5 route-policy med2 import
查看R1的BGP表
可以发现,已经按照实验要求3的路线走了,同时保留流量备份路由,满足了实验要求4
10.测试
至此满足实验所有的要求,实验结束。