前期回顾
我们上节谈到BGP的状态机
在TCP三次握手阶段有idle,connect,active,接着发送open报文、openSent报文,opencofirm报文,keepalive报文,最后是established报文。这样邻居就正常建立起来了,在邻居建立之后还会有update报文,keepalive报文,route-refresh报文、出现错误的时候会发notification报文
BGP会对路由进行计算么?
我们可以重新创建两个路由器进行如下实验:
1、如果还有之前的项目可以将其改变,主要是增加loopback 1接口
ip address 192.169.1.1 255.255.255.0
2、去除原来的bgp中的network设置,将192.168.1.1加入loopback 1
3、在R2中去除loopback 0 然后设置loopback 1加入路由192.168.2.1
最后查看各自bgp路由表发现都是空的,就可以继续开始实验了。
BGP协议的特点:
1、BGP不对路由进行计算,我们可以在通过loopback建立邻居的实验中使用以下命令查询bgp的路由表,会发现路由表中并没有存路由信息。
2、BGP只是路由的搬运工,
BGP路由的生成方式
BGP路由的生成方式有两种
1、Network
2、import-route
Network
1、Network命令是逐条将IP路由表中已经存在的路由引入到BGP路由表中。
2、BGP中的network‘命令不再具备将接口加入到BGP进程的逻辑,只是将路由表中的路由引入到BGP表中,并且通告给邻居。
3、network可以精确控制发布哪些BGP路由。
简单的说我们只要通过路由表能查到的路由,我们就可以通过network命令将它发布出去。
继续上次实验:
[R1]bgp 1
[R1-bgp]network 10.1.12.0 24
[R1-bgp]dis bgp routing-table
然后查询bgp路由表
图片.png
import-route
将路由表中的路由引入到BGP中,高效便捷。
继续试验,我们在R1中加入更多的静态路由
[R1]ip route-static 192.168.2.0 24 NULL 0
[R1]ip route-static 192.168.3.0 24 NULL 0
[R1]dis ip routing-table protocol static
我们这些静态路由可以使用network引入bgp路由表中,但是面对几百条静态路由就显得力不从心了
这个时候我们可以使用import-routele了
我们使用以下命令
[R1]bgp 1
[R1-bgp]import-route static
图片.png
就可以发现引入的静态路由都被引入了。
如果需要过滤操作,比如部分static路由引入我们可以在其后追加route-policy import(此处为以后自定义策略的名称)等的命令,以后会详细描述。
比如我们看到引入的静态路由列表中把 2.2.2.2的路由也引入进去了,我现在只想要引入2.2.2.2的静态路由。
现在我们进行以下操作
1、我们先添加一条路由策略,定义一条名为test的前缀列表为1的路由策略。
[R1]ip ip-prefix 1 permit 2.2.2.2 32
[R1]route-policy test permit node 10
Info: New Sequence of this List.
[R1-route-policy]if-match ip-prefix 1
2、进入bgp 1中
我们只引入名字为test的策略路由
[R1-bgp]import-route static route-policy test
现在我们看bgp的路由表
图片.png
总结:
1、network命令可以逐条的将IP路由表中已经存在的路由引入到bgp路由表中。
2、import-route命令是根路由协议(rip、ospf、ISIS)将路由引入到BGP路由表中,同时import命令还可以引入直连和静态路由。
网友评论