实验内容
MED(Multi-Exit-Discriminator)属性:用于判断流量进入AS时的最佳路由。
Local_Pref属性:用于判断流量离开AS时的最佳路由。越大越优,默认是100
背景
科技公司网络使用了BGP协议来进行不同AS之间的路由信息传递,根据拓扑规划,底层通信使用ospf动态协议。
需求分析
据公司网络环境的分析,AR1处于自治系统AS100,AR2、AR3与AR4处于同一个自治系统AS 200,使用环回口建立IBGP邻居,使用ospf协议使得底层路由可达;处于自治系统AS100的AR1分别与处于自治系统AS200的AR2、AR4使用直接口建立EBGP邻居关系。
详细规划要求如下图1-1拓扑所示:
搭建拓扑图
按照拓扑图1-1所示,搭建实验拓扑图。
图1-1 拓扑图
实验目的
- 掌握IBGP与EBGP邻居的建立基本配置命令。
- 掌握更改更新源、修改下一跳的命令。
- 掌握ip-prefix前缀列表配置命令。
- 掌握route-policy策略工具的使用。
- 掌握BGP通告路由原则。
实验方案设计
- 搭建相关实验拓扑图。
- 基本配置:按照规划配置接口IP地址,并测试直连链路网段的连通性。
- 系统模式下手工指定Router id(所有协议都可以使用)。
- 根据拓扑图1-1,处于AS200内的AR2、AR3、AR4配置OSPF协议。
- AR2、AR3、AR4使用环回口建立IBGP邻居关系;
- AR1与AR2、AR4使用直连接口建立EBGP邻居关系。
- AR1与AR3上使用network命令向BGP注入环回口接口1的路由。
- 配置ip-prefix、ACL与route-policy路由策略结合使用完成拓扑要求
实验配置过程
路由器的基础配置
- 路由器的基础配置(设备名称、接口IP地址及环回口地址等等)。根据图1-1拓扑图里标注,配置IP地址,这里不特例讲了,省略。不清楚可以看实验配置命令。
- 配置完了IP地址,用ping命令测试查看AR2与AR1、AR3直连链路连通性;同样也可以用该命令测试AR4与AR1、AR3的直连链路连通性。如图1-2所示:
图1-2 AR2上测试连通性
从图1-2上可以看到AR2与AR1、AR4设备之间直连链路可以ping通,没有问题。
配置ospf
1、AR2与AR3、AR4在同一个自治系统AS200内,它们之间使用环回口建立IBGP邻居关系,前提是路由要可达,不然邻居建立不起来,即AR2配置ospf协议如下:(AR3、AR4配置类似,省略,4.8有全部实验命令)
[AR2] router id 2.2.2.2 [AR2] ospf [AR2-ospf-1]area 0 [AR2-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0 [AR2-ospf-1-area-0.0.0.0] network 10.1.23.0 0.0.0.255 [AR2-ospf-1-area-0.0.0.0] quit [AR2-ospf-1] quit |
2、测试:在AR3上ping AR2、AR4的环回接口0地址。
图1-3 AR3上测试连通性
建立IBGP邻居
IBGP邻居:运行在相同AS内部的BGP路由器。
配置IBGP邻居关系,这里以AR2为例,AR3、AR4配置类似,省略,4.8有完整的实验命令)AS200内的AR2与AR3、AR4用环回口接口建立,配置如下:
[AR1] router id 2.2.2.2 | 系统模式下手动指定router id为2.2.2.2 |
[AR2] bgp 200 | 进入bgp 200 进程视图下 |
[AR2-bgp] peer 3.3.3.3 as-number 200 | 配置IPv4对等体3.3.3.3的对端AS号为200 |
[AR2-bgp] peer 3.3.3.3 connect-interface LoopBack 0 | 指定发送bgp报文的源接口为环回接口0 |
[AR2-bgp]peer 3.3.3.3 next-hop-local | 对等体3.3.3.3通过路由时,将下一跳属性修改设为自身的IP地址 |
[AR2-bgp] quit | 退出 |
在AR3上使用display bgp peer命令查看BGP对等体信息。如下图所示:
图1-4 AR3上显示对等体的信息
BGP邻居当前状态是Established说明邻居建立成功了,该BGP对等体间可以交换Update消息、Notification消息和Keepalive消息。
建立EBGP邻居
处于不同AS的AR1与AR2、AR4使用直连链路建立EBGP邻居关系。
[AR1] router id 1.1.1.1 | 系统模式下指定router id为1.1.1.1 |
[AR1] bgp 100 | 进入bgp 100进程视图下 |
[AR1-bgp] peer 10.1.12.2 as-number 200 | 配置IPv4对等体10.1.12.2的对端AS号为200 |
[AR1-bgp] peer 10.1.14.4 as-number 200 | 配置IPv4对等体10.1.14.4的对端AS号为200 |
[AR1-bgp] quit | 退出 |
[AR2] bgp 200 [AR2-bgp] peer 10.1.12.1 as-number 100 [AR2-bgp] quit [AR4] bgp 200 [AR4-bgp] peer 10.1.14.1 as-number 100 [AR4-bgp] quit |
在AR1设备上使用display bgp peer 命令查看BGP对等体信息。如下图所示:
图1-5 显示对等体的信息
从图1-5中,可以看到AR1有两个对等体,且BGP邻居当前状态都是Established说明邻居建立成功了。
使用network方式注入路由
不同IGP路由协议,BGP自身不会发现并计算产生路由,它是将IGP路由表中的路由注入到BGP路由表,并通过Update报文传递给BGP对等体。
- 所以使用display routing-table命令在设备上看bgp的路由信息,发现都是空的。没有任何bgp的路由信息。
- 因为还没有注入路由,bgp注入路由的方式有两种:network、import-route;
- 本次实验是分别在AR1、AR3上使用network方式注入它们的环回接口1网段;
在AR1、AR3上使用network命令将它们环回接口1的网段宣告进bgp,配置如下:
[AR1]bgp 100 [AR1-bgp]network 10.1.1.0 24 [AR3]bgp 200 [AR3-bgp]network 10.1.2.0 24 |
在AR1使用display bgp routing-table查看bgp路由信息、display ip routing-table查看全局IPv4路由表信息。情况如下图所示:
图1-6 AR1的bgp路由、IPv4路由表信息
在AR3使用display bgp routing-table查看bgp路由信息、display ip routing-table查看全局IPv4路由表信息。情况如下图所示:
图1-7 AR3的bgp路由、IPv4路由表信息
从图1-6 AR1的bgp路由表中可以看到AR1对于10.1.2.0网段是可以通过EBGP邻居AR2、AR4两个方向学习到。
有个默认选举规则,在没有改变任何属性下,是根据router id大小来选举的,优选router id小的,AR2的router id为2.2.2.2比AR4的router id 为4.4.4.4的小,所以优选从AR2学习。即有效且最优路由会被放入IP路由表中。
图1-7同理,AR3的bgp路由表也是优选从AR2学到10.1.1.0/24网段。
在AR1上使用tracert –a 10.1.1.1 10.1.2.3命令查看AR1访问AR3上的10.1.2.3走向,如下图所示:
图1-8 AR1追踪去往10.1.2.3路径走向
从图1-8上,可以发现AR1的10.1.1.1访问AR3的10.1.2.3是通过AR2转发的。成功实现了实验要求2。
怎么实现AR3(10.1.2.3)返回的数据是走AR4进入AS100呢?往下看:
配置IP-Prefix前缀列表匹配路由修改本地优先级
想要AR3从AR4学习到路由10.1.1.0/24,在AR3上创建前缀列表,名为AR3-AR4;创建路由策略,名为locprf;将前缀列表AR3-AR4匹配路由策略locprf;修改本地优选级,在bgp进程200,调用路由策略。
配置如下:
[AR3] ip ip-prefix AR4-AR3 index 10 permit 10.1.1.0 24 #创建前缀列表名为AR4-AR3,序号为10,允许10.1.1.0/24网段 [AR3] route-policy locprf permit node 10 #创建名为locpref路由策略,允许模式,节点号10 [AR3-route-policy] if-match ip-prefix AR3-AR4 #如果匹配前缀例表AR4-AR3 [AR3-route-policy] apply local-preference 200 #修改本地优先级为200,默认为100,越大越优 [AR3-route-policy] quit [AR3]bgp 200 [AR3-bgp] peer 4.4.4.4 route-policy locprf import #在出方向调用策略locprf [AR3-bgp]quit 如果吧生效,可以退到用户视图模式下刷新bgp入方向路由 |
在AR3上使用display bgp routing-table、display ip routing-table命令查看bgp、IP路由表,情况如下图所示:
图1-9 AR3的bgp路由、IPv4路由表信息
从图1-9中可以发现,AR3优选从AR4传来的路由,实现了实验要求3。
配置ACL匹配路由修改MED值
改med值针对进入AS时流量选择最优路径,越小越优,默认是0。
现在修改它的MED值,让AR1从AR4上优选学到10.1.2.0/24网段
[AR2]acl 2000 [AR2-acl-basic-2000]rule permit source 10.1.2.0 0.0.0.255 [AR2-acl-basic-2000]quit [AR2]route-policy med permit node 10 Info: New Sequence of this List. [AR2-route-policy]if-match acl 2000 [AR2-route-policy]apply cost 10 [AR2-route-policy]quit [AR2]bgp 200 [AR2-bgp]peer 10.1.12.1 route-policy med export [AR2-bgp]quit [AR2] |
优先MED值小的
验证实验结果
在AR3上使用tracert –a 10.1.2.3 10.1.1.1命令追踪路径,使用带有源地址ping测试到AR1的环回接口1地址的连通性同时在GE0/0/0、GE0/0/1接口上抓包。情况如下图所示:
图1-10测试连通性
AR3的10.1.2.3去往AR1的10.1.1.1是通过AR4转发的,连通性没有问题。
图1-11 AR3的GE0/0/0接口抓包情况
从图1-11中可以看到在AR3的GE0/0/0接口(连接AR4的接口)抓包只看到request包,没有回复包;
request包通过AR4转发到达AR1之后,因为AR1优选从AR2进入AS200,所以正常情况reply包不会再从AR4再转发回来;
流量到达AR1之后,会通过AR2进入AS200,所以在AR3连接AR2的GE0/0/1接口抓包都是reply包。如下图所示:
图1-12 AR3的GE0/0/1接口抓包情况
实验配置命令
<AR1>display current-configuration # sysname AR1 # router id 1.1.1.1 # interface GigabitEthernet0/0/0 ip address 10.1.12.1 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.1.14.1 255.255.255.0 # interface LoopBack0 ip address 1.1.1.1 255.255.255.255 # interface LoopBack1 ip address 10.1.1.1 255.255.255.0 # interface LoopBack2 bgp 100 peer 10.1.12.2 as-number 200 peer 10.1.14.4 as-number 200 # network 10.1.1.0 255.255.255.0 network 100.1.1.1 24 peer 10.1.12.2 enable peer 10.1.14.4 enable # <AR1> <AR2>display current-configuration # sysname AR2 # router id 2.2.2.2 # interface GigabitEthernet0/0/0 ip address 10.1.12.2 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.1.23.2 255.255.255.0 # interface LoopBack0 ip address 2.2.2.2 255.255.255.255 # bgp 200 peer 3.3.3.3 as-number 200 peer 3.3.3.3 connect-interface LoopBack0 peer 10.1.12.1 as-number 100 # ipv4-family unicast undo synchronization peer 3.3.3.3 enable peer 3.3.3.3 next-hop-local peer 10.1.12.1 enable # ospf 1 area 0.0.0.0 network 2.2.2.2 0.0.0.0 network 10.1.23.0 0.0.0.255 # <AR2> <AR3>display current-configuration # sysname AR3 # router id 3.3.3.3 # interface GigabitEthernet0/0/0 ip address 10.1.34.3 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.1.23.3 255.255.255.0 # interface LoopBack0 ip address 3.3.3.3 255.255.255.255 # interface LoopBack1 ip address 10.1.2.3 255.255.255.0 # bgp 200 peer 2.2.2.2 as-number 200 peer 2.2.2.2 connect-interface LoopBack0 peer 4.4.4.4 as-number 200 peer 4.4.4.4 connect-interface LoopBack0 # ipv4-family unicast undo synchronization network 0.0.0.0 network 10.1.2.0 255.255.255.0 peer 2.2.2.2 enable peer 2.2.2.2 next-hop-local peer 4.4.4.4 enable peer 4.4.4.4 route-policy locprf import peer 4.4.4.4 next-hop-local # ospf 1 area 0.0.0.0 network 3.3.3.3 0.0.0.0 network 10.1.23.0 0.0.0.255 network 10.1.34.0 0.0.0.255 # route-policy locprf permit node 10 if-match ip-prefix AR3-AR4 apply local-preference 200 # ip ip-prefix AR3-AR4 index 10 permit 10.1.1.0 24 # <AR3> <AR4>display current-configuration # sysname AR4 # router id 4.4.4.4 # interface GigabitEthernet0/0/0 ip address 10.1.34.4 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.1.14.4 255.255.255.0 # interface LoopBack0 ip address 4.4.4.4 255.255.255.255 # bgp 200 peer 3.3.3.3 as-number 200 peer 3.3.3.3 connect-interface LoopBack0 peer 10.1.14.1 as-number 100 # ipv4-family unicast undo synchronization peer 3.3.3.3 enable peer 3.3.3.3 next-hop-local peer 10.1.14.1 enable # ospf 1 area 0.0.0.0 network 4.4.4.4 0.0.0.0 network 10.1.34.0 0.0.0.255 # <AR4> |