4)路由反射器
BGP 综合实验
实验拓扑
组网环境如拓扑所示。
实验目的
- 掌握多厂商 BGP 的基本配置
- 熟悉 BGP 各个报文类型的作用
- 掌握各协议 AD 值的修改
- 掌握 BGP 路由学习的过程
- 掌握 BGP 路由黑洞解决方式
- 理解 IBGP 和 EBGP 之间的区别
- 熟悉 BGP 的属性
- 掌握 BGP 的选路控制
1) 实验需求
某数据中心在各地建设了多个机房,每个机房分别采用多厂商路由器进行组网,
5台思科设备、6台华三设备
2)基础配置
参考该拓扑,完成各路由器的基本配置,在 OSPF 区域和 RIP 区域的各路由器上,分别创建一个 loopback0 接口,作为各路由器的 RID 使用。
完成图示各区域 LAN 所在网段的地址自行规划,要求 AS1234 区域内 LAN 地址为 A 类地址,AS5789 区域内 LAN 地址为 B 类地址,AS1000、AS1100 区域内地址为 C 类地址
完成 OSPF 和 RIP 协议的基本配置,实现各区域内部的可达,不能将 LAN 地址添加进 OSPF 和 RIP 协议中。
1、AS1234区OSPF配置
R1配置
interface Loopback1
ip address 1.1.1.1 255.255.255.0interface Ethernet0/0
ip address 14.14.14.1 255.255.255.0interface Ethernet0/1
ip address 12.12.12.1 255.255.255.0router ospf 1
router-id 1.1.1.1
network 1.1.1.0 0.0.0.255 area 0
network 12.12.12.0 0.0.0.255 area 0
network 14.14.14.0 0.0.0.255 area 0
R2配置
ospf 1 router-id 2.2.2.2
interface LoopBack1
ip address 2.2.2.2 255.255.255.0
ospf 1 area 0.0.0.0interface GigabitEthernet1/0
ip address 23.23.23.2 255.255.255.0
ospf 1 area 0.0.0.0interface GigabitEthernet2/0
ip address 12.12.12.2 255.255.255.0
ospf 1 area 0.0.0.0
R3配置
interface Loopback1
ip address 3.3.3.3 255.255.255.0interface Ethernet0/0
ip address 36.36.36.3 255.255.255.0
interface Ethernet0/1
ip address 23.23.23.3 255.255.255.0router ospf 1
router-id 3.3.3.3
network 3.3.3.0 0.0.0.255 area 0
network 23.23.23.0 0.0.0.255 area 0
network 36.36.36.0 0.0.0.255 area 0
R4配置
ospf 1 router-id 4.4.4.4
interface LoopBack1
ip address 4.4.4.4 255.255.255.0
ospf 1 area 0.0.0.0
interface GigabitEthernet1/0
ip address 14.14.14.4 255.255.255.0
ospf 1 area 0.0.0.0
interface GigabitEthernet2/0
ip address 45.45.45.4 255.255.255.0
ospf 1 area 0.0.0.0
查看R1的邻居表及路由表
2、AS5678 RIP配置
R5配置
interface Loopback1
ip address 5.5.5.5 255.255.255.0interface Ethernet0/0
ip address 45.45.45.5 255.255.255.0interface Ethernet0/1
ip address 157.157.157.5 255.255.255.0router rip
version 2
network 5.0.0.0
network 57.0.0.0
network 157.157.0.0
no auto-summary
R7配置
interface LoopBack1
ip address 7.7.7.7 255.255.255.0interface GigabitEthernet1/0
ip address 167.167.167.7 255.255.255.0interface GigabitEthernet2/0
ip address 178.178.178.7 255.255.255.0interface GigabitEthernet3/0
ip address 157.157.157.7 255.255.255.0interface GigabitEthernet4/0
ip address 179.179.179.7 255.255.255.0rip 1
undo summary
version 2
network 7.0.0.0
network 157.157.0.0
network 167.167.0.0
network 178.178.0.0
network 179.179.0.0
R8配置
interface LoopBack1
ip address 8.8.8.8 255.255.255.0interface GigabitEthernet2/0
ip address 208.208.208.8 255.255.255.0interface GigabitEthernet3/0
ip address 178.178.178.8 255.255.255.0rip 1
undo summary
version 2
network 8.0.0.0
network 178.178.0.0
network 208.208.208.0
R9配置
interface Loopback1
ip address 9.9.9.9 255.255.255.0interface Ethernet0/0
ip address 209.209.209.9 255.255.255.0interface Ethernet0/1
ip address 179.179.179.9 255.255.255.0router rip
version 2
network 9.0.0.0
network 179.179.0.0
network 209.209.209.0
no auto-summary
查看R7 的路由表
3、AS6000 R6配置
interface Loopback1
ip address 6.6.6.6 255.255.255.0interface Ethernet0/0
ip address 167.167.167.6 255.255.255.0interface Ethernet0/1
ip address 201.201.201.6 255.255.255.0interface Ethernet0/2
ip address 200.200.200.6 255.255.255.0interface Ethernet0/3
ip address 36.36.36.6 255.255.255.0
4、AS1000 R10配置
interface LoopBack1
ip address 10.10.10.10 255.255.255.0interface GigabitEthernet1/0
ip address 209.209.209.10 255.255.255.0interface GigabitEthernet2/0
ip address 208.208.208.10 255.255.255.0
5、AS1100 R11配置
interface LoopBack1
ip address 11.11.11.11 255.255.255.0interface GigabitEthernet1/0
ip address 201.201.201.11 255.255.255.0interface GigabitEthernet2/0
ip address 200.200.200.11 255.255.255.0
3)BGP基础配置
配置任务
在 AS1234 区域内建立全互联 BGP 邻居关系,在 AS 区域 5789 内以 R7 作为 RR,建立基于反射器的 BGP 邻居关系,并完成各 AS 之间的 BGP 邻居建立,将 LAN 地址通告进各区域的 BGP 进程中。 址通告进各区域的 BGP 进程中。
1、AS1234
AS1234 建立IBGP 全互联,及R4与R5建立EBGP
R1配置
router bgp 1234
network 1.1.1.0 mask 255.255.255.0
neighbor 2.2.2.2 remote-as 1234
neighbor 2.2.2.2 update-source Loopback1
neighbor 3.3.3.3 remote-as 1234
neighbor 3.3.3.3 update-source Loopback1
neighbor 4.4.4.4 remote-as 1234
neighbor 4.4.4.4 update-source Loopback1
R2配置
bgp 1234
router-id 2.2.2.2
peer 1.1.1.1 as-number 1234
peer 1.1.1.1 connect-interface LoopBack1
peer 3.3.3.3 as-number 1234
peer 3.3.3.3 connect-interface LoopBack1
peer 4.4.4.4 as-number 1234
peer 4.4.4.4 connect-interface LoopBack1
address-family ipv4 unicast
network 2.2.2.0 255.255.255.0
peer 1.1.1.1 enable
peer 3.3.3.3 enable
peer 4.4.4.4 enable
R3配置
router bgp 1234
neighbor 1.1.1.1 remote-as 1234
neighbor 1.1.1.1 update-source Loopback1
neighbor 1.1.1.1 next-hop-self
neighbor 2.2.2.2 remote-as 1234
neighbor 2.2.2.2 update-source Loopback1
neighbor 2.2.2.2 next-hop-self
neighbor 4.4.4.4 remote-as 1234
neighbor 4.4.4.4 update-source Loopback1
neighbor 4.4.4.4 next-hop-self
neighbor 36.36.36.6 remote-as 6000
R4配置
bgp 1234
router-id 4.4.4.4
peer 1.1.1.1 as-number 1234
peer 1.1.1.1 connect-interface LoopBack1
peer 2.2.2.2 as-number 1234
peer 2.2.2.2 connect-interface LoopBack1
peer 3.3.3.3 as-number 1234
peer 3.3.3.3 connect-interface LoopBack1
peer 45.45.45.5 as-number 5789
address-family ipv4 unicast
peer 1.1.1.1 enable
peer 1.1.1.1 next-hop-local
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
peer 3.3.3.3 enable
peer 3.3.3.3 next-hop-local
peer 45.45.45.5 enable
2、AS6000
R6分别于与AS 1234的R3、AS5789的R7、AS1100的R11建立EBGP
R6 配置
router bgp 6000
network 6.6.6.0 mask 255.255.255.0
neighbor 36.36.36.3 remote-as 1234
neighbor 167.167.167.7 remote-as 5789
neighbor 200.200.200.11 remote-as 1100
neighbor 201.201.201.11 remote-as 1100
R11配置
bgp 1100
router-id 11.11.11.11
peer 200.200.200.6 as-number 6000
peer 201.201.201.6 as-number 6000address-family ipv4 unicast
network 11.11.11.0 255.255.255.0
peer 200.200.200.6 enable
peer 201.201.201.6 enable
查看 R6的邻居表及转发表
3、AS1000
R10与AS5789的R8、R9建立EBGP
R10配置
bgp 1000
router-id 10.10.10.10
peer 208.208.208.8 as-number 5789
peer 209.209.209.9 as-number 5789address-family ipv4 unicast
network 10.10.10.0 255.255.255.0
peer 208.208.208.8 enable
peer 209.209.209.9 enable
4)路由反射器
4.1未配置反射器
假设R7不做反射器,R5、R8、R9只与R7建立IBGP
R5配置
router bgp 5789
network 5.5.5.0 mask 255.255.255.0
neighbor 7.7.7.7 remote-as 5789
neighbor 7.7.7.7 update-source Loopback1
neighbor 7.7.7.7 next-hop-self
neighbor 45.45.45.4 remote-as 1234
R8配置
bgp 5789
router-id 8.8.8.8
peer 7.7.7.7 as-number 5789
peer 7.7.7.7 connect-interface LoopBack1
peer 208.208.208.10 as-number 1000
address-family ipv4 unicast
network 8.8.8.0 255.255.255.0
peer 7.7.7.7 enable
peer 7.7.7.7 next-hop-local
peer 208.208.208.10 enable
R9配置
router bgp 5789
network 9.9.9.0 mask 255.255.255.0
neighbor 7.7.7.7 remote-as 5789
neighbor 7.7.7.7 update-source Loopback1
neighbor 7.7.7.7 next-hop-self
neighbor 209.209.209.10 remote-as 1000
R7配置
bgp 5789
router-id 7.7.7.7
peer 5.5.5.5 as-number 5789
peer 5.5.5.5 connect-interface LoopBack1
peer 8.8.8.8 as-number 5789
peer 8.8.8.8 connect-interface LoopBack1
peer 9.9.9.9 as-number 5789
peer 9.9.9.9 connect-interface LoopBack1
peer 167.167.167.6 as-number 6000address-family ipv4 unicast
network 7.7.7.0 255.255.255.0
peer 5.5.5.5 enable
peer 5.5.5.5 next-hop-local
peer 8.8.8.8 enable
peer 8.8.8.8 next-hop-local
peer 9.9.9.9 enable
peer 9.9.9.9 next-hop-local
peer 167.167.167.6 enable
测试AS1234 与其他自治系统的通信
发现R1无法不能访问R8、R8、R9
查看R1的转发表由去往R7但没有发现有去往R8、R9、R10的路径
查看R7的转发表
查看R8 、R9、R10的转发表
发现R5学到学到1.1.1.0路由没有从R7传到R8、R9、R10里,出现了路由黑洞
反之R8、R9、R10也不能通过R7传到R1中
解决办法在AS5789上配置IBGP全互联,或者在中间设备R7配置RR,自治系统其他设备作为Client与其建立IBGP对等体
为了解决IBGP对等体连接数量过多问题,可以才用在R7设备配置RR
4.2 在R7上配置RR
R7配置
RR路由反射器,RR的Client只需要与R7建立IBGP对等体
bgp 5789
address-family ipv4 unicast
peer 5.5.5.5 reflect-client
peer 8.8.8.8 reflect-client
peer 9.9.9.9 reflect-client
再查看R1的转发表
发现有去往R8、R9、R10的路径
再看R10的转发表,同样也出现由R8传来去往R1的路由路径
再次测试
5)BGP 认证
使用合适的方式,建立 R1 与 R2 之间的邻居认证,并使用 wireshark 抓包观察 R1与 R2 之间邻居建立过程的报文交互情况。
R1和R2 BGP未启用BGP认证,抓包分析
配置BGP认证后
R1配置
思科设备配置
router bgp 1234
neighbor 2.2.2.2 password 123
其中如果只做一边的 MAD认证,思科设备报文提示
当两边都做配置但是认证密码不一致,思科设备报文提示
R2配置
华为/华三设备配置
#
bgp 1234
peer 1.1.1.1 password simple 123
再次抓取BGP的任意一个报文发现TCP字段部分会发现多一个option字段
BGP的MD5 验证只能为TCP连接检验密码
6)BGP的三张表
观察 R1、R10、R11 的 BGP 邻居表、BGP 转发表、路由表情况,解释 BGP 的路由选择原则
R1
R10
R11
选路原则
1、 从EBGP对等体获取的路由,会发布给所有BGP对等体。
2、IBGP水平分割(防护机制): 从IBGP对等体获取的BGP路由,不会再发送给其他IBGP对等体。(目的防止AS内产生环路)
3、BGP同步原则:当一台路由器从自己的 IBGP对等体学习到一条BGP路由时(这类路由被称为IBGP路由), 它将不能使用该条路由或把这条路由通告给自己的EBGP对等体
(除非它又从IGP协议(例如OSPF、静态路由等)学习到这条路由。)
4、将通过BGP学习到的最优且有效的路由加入进路由表
- 当路由器学习到BGP路由后,需对路由的下一跳进行检查
下一跳在路由表中可达,正常加表
下一跳在路由表中不可达,丢弃该路由
7) BGP路由决策
配置任务
在 LAN1 和 LAN7 分别创建一个地址,采用厂商私有属性,实现 R1 优选 R3 对 LAN7 的地址进行访问,实现 R7 优选 R6 对 LAN1 的地址进行访问,查看 BGP 转发表和使用 traceroute 命令进行验证。
分析
R1去往R7的路径时前提时下一跳可达
1、先选择厂商私有属性首选值(华为/华三 Preferred-Value)或者权重(思科 Weight)大的
从R3、R4的路由转发表可以看出,在未修改默认值时权重默认为0,不能通过首选值/权重选择出最佳路径
2、选择本地优先级(Local_Preference)大的
同理从R3、R4的路由转发表可以看出,在未修改默认值时权重默6认为100,无法通过本地优先级选择出最佳路径3、本地始发的路由优于其他对等体学习到的路由
对于R3、R4来说7.7.7.0路由来源都是其他对等体学习的,无法选择出最佳路径
4、选择AS路径最短 AS路径
对比R4去往R7的路径要比R3去往R7的路径短,优先走R4而不是走R3
-----------------------------------------------------------
对比到选出最佳路径后续不会再继续路由决策
5、选择Origin最优
6、选择MED最低 (MED Attribute 多出口鉴别器)
7、最小的 EBGP路由优先级高于IBGP路由
8、优选到下一跳的IGP度量值最小的路由(离IGP邻居最近的路径)
9、华为/华三 优选Cluster-list最短的路由 经过的RR(路由反射器)最少
思科 优选最老EBGP路径 EBGP路径越老越稳定
10、优选RID最小的设备通告的路由(都去通过同一条路由)
11、优选邻居IP地址最小的路径
R1配置
添加对应LAN地址并在对应BGP通告中
interface Loopback111
ip address 111.111.111.111 255.255.255.0router bgp 1234
network 111.111.111.0 mask 255.255.255.0
R7配置
interface LoopBack77
ip address 77.77.77.77 255.255.255.0bgp 5789
address-family ipv4 unicast
network 7.7.7.0 255.255.255.0
测试 R1对LAN7邻居访问,R1默认去往R7的路径为R3
先查看R1的转发表
再查看R3、R4的转发表
- 回到实验
- 为了先让R3的选路优先为R7而不是R4
采用ACL+路由图控制R3去往R7的权重(Weight)修改选路路径
R3配置
access-list 1 permit 7.7.7.0 0.0.0.255
route-map weight permit 10
match ip address 1
set weight 120//将权重改为120route-map weight permit 20 //配置一条空的路由图默认放行所有
并在EBGP对等体36.36.36.6 in上调用
router bgp 1234
neighbor 36.36.36.6 route-map a in
对于R3来说去往R7的下一条被修改为36.36.36.3,且权重为120
但发现R1的下跳仍为4.4.4.4
同样需要将R1去往7.7.7.0的路由下跳改为3.3.3.3
采用ACL+路由图控制R1去往R3的权重改为120
R1配置
access-list 1 permit 77.77.77.0 0.0.0.255
route-map weight permit 10
match ip address 1
set weight 120
route-map weight permit 20
并在对等体IBGP R3的in方向调用
router bgp 1234
neighbor 3.3.3.3 route-map weight in
再查看R1的转发表去往R7的下一跳变为R3
traceroute测试发现去往R2时出现环路问题
对于R1来说要优先走R3去往R7就必须需要经过R2
查看R2的转发表
R2环路问题
R2去往R7的路由下一跳先走R4
但看R2的路由表可以得知IGP的下一跳为12.12.12.1
但R1的去往R7的下跳改为为3.3.3.3先走R2再到R3,这是R2产生环路的原理
R2去往7.7.7.7优先走R3
R2配置
采用ACL+路由策略控制R2去往R7路径,并在IBGP对等体R3 in方向上调用
acl basic 2000
rule 0 permit source 7.7.7.0 0.0.0.255route-policy perf permit node 10
if-match ip address acl 2000
apply preferred-value 130route-policy perf permit node 20
bgp 1234
address-family ipv4 unicast
peer 3.3.3.3 route-policy perf import
查看R2的转发表
R2测试
对比R1去往R7两网段的路径选路
同理
通过修改首选值实现 R7 优选 R6 对 LAN1 的地址进行访问
R7配置
采用ACL+路由策略控制R7去往R1路径
acl basic 2000
rule permit source 111.111.111.0 0.0.0.255route-policy perf permit node 10
if-match ip address acl 2000
apply preferred-value 10
route-policy perf permit node 20
并在EBGP对等体R6 in方向上调用
bgp 5789
address-family ipv4 unicast
peer 167.167.167.6 route-policy perf import
查看R7去往R1的111.111.111.0 网段的路径
对比R7去往LAN1两网段的选路
8)公认可选属性(本地优先级)
配置任务
在 LAN10 上添加一个地址,使用一个公认可选属性,实现 R1 优选 R3 作为出口,访问 LAN10 的地址。
R1去往R10 网段仍然走R4而不是走R3
查看R1去往R10网段的转发表
可以通过修改Local_Preference 本地优先级的形式让R1去往R10下一跳走R3
先看R3的转发表去往R10的下一跳仍为R4
R3配置
可以在原来路由图的基础上修改去往R10的100.100.100.0的本地优先级
access-list 2 permit 100.100.100.0 0.0.0.255
route-map weight permit 10
match ip address 1
set weight 120
route-map weight permit 15
match ip address 2
set local-preference 150route-map weight permit 20
这里不需要再到EBGP对等体36.36.36.6上调用,但要对R3的BGP软清
R1去往R10网段对比测试
9)AS-PATH 属性
配置任务
在 LAN10 上再次添加一个地址,通过控制 AS-PATH 属性,实现 R1 优选 R3 对LAN10 的地址进行访问
还是去往R10网段我们的下一跳还是为R4
查看R1转发表
R4配置
这里可以通过在R4添加AS-Path路径,使R3去往R10变为最优
采用ACL+路由策略的方式加大R4去往R10AS-Path的路径
acl basic 2000
rule 5 permit source 192.168.10.0 0.0.0.255route-policy as-path permit node 10
if-match ip address acl 2000
apply as-path 1111 2222 3333
route-policy as-path permit node 20
在对等体45.45.45.5 上in方向调用
bgp 1234 address-family ipv4 unicast
peer 45.45.45.5 route-policy as-path import
再查看R1转发表
测试对比去往R10的最优路径
10) Origin Attribute 最小起源代码
针对Origin Attribute 最小起源代码 --用来 标记BGP路由来源
优先程度:IGP > EGP>Incomplete <==> i>e>?
配置任务
在 LAN7 上创建一个地址,使用起源代码,实现 R10 优选 R9 对 LAN7 的地址进行访问。
测R10 对R7 LAN7 的地址进行访问
查看R10转发表
分析
要想让R10去往R7 192.168.7.0的路径优先走R9需要将R8的起源代码优先级改低
R10配置
acl basic 2000
rule 5 permit source 192.168.7.0 0.0.0.255bgp 1000
address-family ipv4 unicast
peer 208.208.208.8 route-policy origin import
查看R10的转发表 去往R7的192.168.7.0网段最优路径改为209.209.209.0网段
11)MED 属性
配置任务
使用 MED 属性,实现 R11 优选左侧链路对 LAN1 的地址进行访问,优选右侧链路对 LAN7 的地址进行访问。
MED(类型代码为4) 作为BGP的度量值,用于比较流量进入AS时最佳路径(仅当路由来自同一个自治系统的不同邻居)
R11 优选左侧链路(200.200.200.0)对 LAN1 的地址进行访问
R11优选右侧链路对 LAN7访问
查看R11的转发表
分析对于R11去往R1还是R7时 会经过200.200.200.0 及 201.201.201.0 这条俩路,但MED开销都为默认值相同,接着会根据具有最低BGP路由器router id来定,如果router id一致(说明来自同一个设备),会比较链路的物理地址,邻居IP地址小的优先,使用去往R1还是R7经过R6都会走200.200.200.0 网段
需要把去往R7的7.7.7.0网段走200.200.200.6的MED值改大
R11配置
acl basic 2000
rule 5 permit source 7.7.7.0 0.0.0.255
rule 10 permit source 192.168.7.0 0.0.0.255route-policy med permit node 10
if-match ip address acl 2000
apply cost 10
route-policy med permit node 20bgp 1100
address-family ipv4 unicast
peer 200.200.200.6 route-policy med import
查看R11的转发表
对比去往R7的LAN的路径
12) 总结
分析关于BGP的方向调用问题无论是路由图还是路由策略都是控制路由选路,针对链路状态协议
从in 学习到的方向调用,out方向一般为发布(如重分布时适用)
当华三设备追踪问题失败时
需要手动开启
ip unreachables enable
ip ttl-expires enable
目录
实验拓扑