一、实验要求
1、每个路由器上都有一个环回
2、所有路由器都开启BGP协议,R1在AS1,R2~R4在AS2,R5在AS3
3、R2、R3和R4使用OSPF进行宣告
4、所有环回均可互相访问
二、实验步骤
1、IP配置和开启OSPF
路由器的IP配置如图所示。然后在每个路由器在分别配置一个环回接口,接口IP为1.1.1.0/24、2.2.2.0/24等以此类推,R5上在额外配置一个环回接口,接口IP为99.1.1.0 24
IP配置完成后,我们就在R2、R3、R4上启用OSPF,进行宣告。
注意:R2的左边接口和R4的右边接口不用进行宣告
宣告完成后,我们查看数据库表
2、BGP邻居关系建立
在BGP配置过程中, BGP邻居关系建立,与路由条目宣告是分开的配置的,所以我们先进行邻居关系的建立。
建立邻居关系有三种方法;
1) 直连的EBGP邻居关系建立,用此方法建立R1和R2的邻居关系
在R1上
[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上也进行重复操作
配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话
[r2]display tcp status 可以查看会话是否建立成功
2) IBGP邻居关系建立,在一个AS内部,拓扑正常较为复杂;建议使用环回接口地址作为源、目标ip地址;存在备份链路,同时可以多条物理链路传递;
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 as-number 2
切记:一旦使用环回接口建立BGP的邻居关系;必须将源地址也修改为环回接口
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
由于IBGP的水平分割:本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居。所以R2、R3、R4要两辆建立邻居关系
建立完成后,我们查看会话是否建立成功
3)EBGP邻居间存在多条物理链路时,也建议使用环回接口地址来建立
当R4和R5的环回接口来建立BGP的邻居时,因本地路由表上没有到对方的路由条目,所以我们还需要使用静态路由添加路由表,是的IP可达
然后正常环回做为源、目ip地址建立邻居关系
[r4]bgp 2
[r4-bgp]peer 5.5.5.5 as-number 3
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
因为AS-BY-AS,路由条目在一个AS内部条目传递的过程中,即在IBGP邻居间传递过程中,数据包的TTL值为255;而EBGP邻居间TTL为1;故一旦使用环回建立ebgp邻居关系,必须修改TTL值,否则无法建立
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
这样,BGP的邻居建立就完成了
3、BGP宣告
BGP的宣告;运行BGP协议的路由器可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连;
注意:宣告时,宣告的条目必须同本地路由表中的记录完全一致
在R1上宣告1.1.1.0/24 网络段
[r1-bgp]network 1.1.1.0 24
一旦进行宣告配置,条目将加载于本地的BGP表中;
[r1]display bgp routing-table 查看BGP表
图片上有个*>的符号
状态:* 可用 > 优秀 *>同时存在表示可以加表(路由表)也可以传递(传递给本地的其他BGP邻居)
状态处若出现 i 代表该条目是本地通过IBGP邻居学习到的
优秀的条件:1、同步问题(默认不关注) 2、下一跳可达
此时我们查看R3上的BGP表
R3上学习到的这一条路由是R2传递的,因为基于AS-BY-AS规则,条目在一个AS内部传递时将不修改条目属性;导致通过IBGP邻居学习到的BGP路由可能出现下一跳不可达;导致条目不优;
所以在R2上
[r2-bgp]peer 3.3.3.3 next-hop-local
将BGP路由传递给本地的邻居3.3.3.3时修改下一跳地址为本地与3.3.3.3建立邻居关系的源ip地址
当路由条目传递给本地的EBGP邻居时,属性将自动发生变化,包括下一跳地址;
R1上的宣告完成后,我们就可以宣告R5上的两个接口
R5上的5.5.5.0/24 宣告时会发现问题
这其实是一个逻辑悖论:R4通过BGP学习R5的5.5.5.0/24是为了有该路由条目路由表,但是我们刚刚已经配置R4到5.5.5.0/24的静态路由。
为了解决这个问题也很简单,将R4到R5的静态路由改为5.5.5.5/32的主机路由
AS2上宣告
AS上有两个宣告方法,一个是R2和R4宣告,另一个是每个路由器都宣告自己的直连路由。我选择的是第一个方法。
当在R2上宣告3.3.3.0/24和4.4.4.0/24会发现宣告不了,查看路由表会发现这两条路由条目的掩码为32
这是因为环回接口在ospf的网络工作方式为点到点,是的路由器通过OSPF学习到的其他环回接口IP的子网掩码是32,所以要修改接口工作方式
[r2-LoopBack0]ospf network-type broadcast
修改完成后在宣告就可以了
BGP的配置就完成了!