目录
实验难度 | 2 |
实验复杂度 | 3 |
一、实验原理
当BGP的密钥认证数据穿越ASA防火墙时,防火墙两边的BGP路由器会断开连接的,其中一个原因就因为ASA防火墙有一个序列号扰乱功能。BGP它是基于TCP179端口进行传输路由信息,它们的数据报文中,在TCP的序列号会被防火墙扰乱,也许有人会觉得这个序列号扰乱跟BGP建立BGP密钥认证连接有关系吗?答案是,有很大的关系。这里不得不说的一个BGP的认证过程了,我们的上层数据会被配置的密钥结合起来一起做128比特的哈希(是数据与配置的密钥),得到的一个哈希值,这个数据是放在TCP的Option选项里面的(这个字段在学习TCP/IP协议的时候会有的,不懂的可以去看看我网络篇的TCP/IP的内容)。好了,现在我们来看一下BGP密钥认证信息穿越ASA防火墙时会有什么问题,首先这个序列号被扰乱了,那么就导致了,接收到这个报文的BGP路由器进行哈希时无法通过认证,所以一定会失败的。其二,TCP选项中的19号位置也是需要放行的,不然也是无法通过验证。
注:
1)进行哈希时,是密钥与数据进行哈希的,最终会得到一个哈希值;
2)发送认证数据报文时,不会把密钥一起发送出去的;
3)接收验证的报文时,会把整个报文的数据与本路由器的配置密钥一起进行哈希,得到一个哈希值,这个哈希值若不与这个数据报文的哈希值一样就不会通过验证;
4)这个BGP密钥认证不是加密数据,而是实现一个身份验证而已,两边是有不同的概念。
二、实验拓扑
三、实验步骤
1.搭建如图所示的网络拓扑图;
2.初始化路由器,配置IP地址;
3.初始化ASA防火墙,防火墙名称为ASA,inside区域的安全级别为100,outside区域的安全级别为50,如图配置IP地址,测试直连网络的连通性;
4.在两台路由器上配置静态路由,下一跳都指向ASA防火墙;
5.配置一条名称为bgp的ACL,行为:放行192.168.100.1主机到192.168.1.1的主机BGP流量;
6.在R1,R2上配置iBGP路由协议100,查看BGP的汇总信息;
7.配置BGP的密钥为ccie,查看BGP的邻接情况;
8.ASA上配置class-map,名称为bgp,行为:匹配tcp的BGP协议端口,配置TCP-MAP的名称为tcp-19,TCP-OPTION的范围为19至19的允许策略;
9.ASA上配置policy-map,名称为global_policy,调用bgp类,行为:关闭序列号扰乱功能与配置关联TCP-MAP。
四、实验过程
1.搭建如图所示的网络拓扑图;
可以使用EVE或GNS 3来搭建,过程略;
2.初始化路由器,配置IP地址;
略。
3.初始化ASA防火墙,防火墙名称为ASA,inside区域的安全级别为100,outside区域的安全级别为50,如图配置IP地址,测试直连网络的连通性;
测试:
4.在两台路由器上配置静态路由,下一跳都指向ASA防火墙;
5.配置一条名称为bgp的ACL,行为:放行192.168.100.1主机到192.168.1.1的主机BGP流量;
6.在R1,R2上配置iBGP路由协议100,查看BGP的汇总信息;
查看BGP的汇总信息:
7.配置BGP的密钥为ccie,查看BGP的邻接情况;
查看BGP的邻接情况:现在可以看到R2出现的报错信息是没有发现来看192.168.1.1的MD5哈希值
8.ASA上配置class-map,名称为bgp,行为:匹配tcp的BGP协议端口,配置TCP-MAP的名称为tcp-19,TCP-OPTION的范围为19至19的允许策略;
9.ASA上配置policy-map,名称为global_policy,调用bgp类,行为:关闭序列号扰乱功能与配置关联TCP-MAP。
现在我们来查看一下这个BGP的情况:
BGP现在又可以建立邻接关系了,说明我们的配置生效了。
代码解析:
R2(config)#do show ip bgp summary //查看BGP的简要汇总信息,里面有邻居的IP地址、相关的版本号、邻居的AS号等
ASA(config)# class-map bgp //建立一个类映射策略,名称为bgp
ASA(config-cmap)# match port tcp eq bgp //匹配tcp协议的BGP端口(这个是179)
ASA(config-cmap)# tcp-map tcp-19 //配置tcp映射的名称为tcp-19
ASA(config-tcp-map)# tcp-options range 19 19 allow //tcp-option中的行为是允许19至19号的位置数据
ASA(config-tcp-map)# exit
ASA(config)# policy-map global_policy //进入默认的global_policy策略
ASA(config-pmap)# class bgp //调用bgp类
ASA(config-pmap-c)# set connection random-sequence-number disable //关闭序列号扰乱功能
ASA(config-pmap-c)# set connection advanced-options tcp-19 //调用tcp映射策略名称
总结
本章节的实验难度适中,但是这个原理却不好理解,这个涉及到了MD5哈希过程(身份验证)、ASA序列号扰乱等方面的内容,不过这些内容接触的多了,自然会有更深理解的。好了,我们在下一个章节再见,加油!