欢迎来到天天文库
浏览记录
ID:1261907
大小:400.00 KB
页数:6页
时间:2017-11-09
《自我总结ipsec隧道和传输模式》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、即使使用传输模式,在L2L的模型中,SetPeerX.X.X.X的IP地址和原本IP包头中的目的地址不相同的话,也会在外层再添加一个新的IP包头,这个新的包头就是setpeerX.X.X.X为目的地址的包头,源地址用发出接口的地址来发出数据包。等于自动转换成了隧道模式。所以必须要做到原始数据包中的目的IP地址和setpeer语句中的ip地址一样才能是传输模式,否则会自动转换为隧道模式如GREoverIPsec就可以使用传输模式。而且推荐使用传输模式。因为如果是隧道模式IPsec将会在原来的最外层ip包头的
2、更外层添加一个以setpeerx.x.x.x为目的地址和本身发出接口地址为源地址的数据包,如图所示:这个是传输模式,配置了setpeer为20.0.0.2因为匹配最外层IP数据包的地址,所以不在更外层添加新的地址。说一下过程,pingR2的Loop接口,路由器首先查看路由表,发现下一条是tunnel接口,所以用tunnel接口事先定义的源和目的地址来封装数据包。也就是用10.0.0.1到20.0.0.2来封装数据包,然后送到S0/0物理接口,由于在物理接口上有一个cryptomap路由器查看这个流量是否和
3、crypomap的感兴趣流匹配,(感兴趣流定义permitgrehost10.0.0.1host20.0.0.2)由于与定义的感兴趣流匹配,也就是GRE协议的10.0.0.1到20.0.0.2,所以与setpeer对端建立IKE阶段12的协商,由于是传输模式,而且setpeer的地址同最外层IP包头的地址相同,所以不进行再次封装。而是直接插入AH头后从物理口送出。这个是隧道模式,可以看到在最外层的数据包的更外层又添加了一个新的匹配setpeerx.x.x.x的IP包头,浪费了资源这个是setpeer1.1
4、.1.1符合IP包目的地址的数据包分析,可以运行在传输模式,要注意让源地址也要符合对方的目的地址才可以建立连接可以用cryptomapnamelocal-addressinterface来定义封装数据包的源端口。总结:setpeer定义了封装的目的地址。cryptomapnamelocal-addressinterface定义了封装的源地址,(默认是用出接口的地址)。如果是传输模式那么要求Setpeer的地址和原始的(也就是最内层的)IP数据包的目的地相同,否则自动变为隧道模式有一点要注意就是IPSEC也
5、是只处理最外部的IP包头,比如下图的这种情况,如果要指定感兴趣流,只能制定10.0.0.1到20.0.0.2的流量,因为是在物理接口上绑定的cryptomap而GRE的封装发生在进入这个物理口之前。所以IPsec不管GRE封装里面的原始地址(1.1.1.1到2.2.2.2),他只能加密外层的(10.0.0.1到20.0.0.2)2.0.0.0/32issubnetted,1subnetsS2.2.2.2isdirectlyconnected,Tunnel0也就是数据包首先到达tunnel0接口,然后进行G
6、RE封装,添加新的IP包头(如下图所示),然后送到物理口s0/0,这时在s0/0接口上有一个CRYPTOMAP查看感兴趣流是否触发加密(感兴趣流为iphost1.1.1.1host2.2.2.2),但是由于最外面封装的是10.0.0.1到20.0.0.2的IP包,所以不会触发加密,所以以明文传输。对于IPsecoverGRE来说,举一个失败的例子。首先定义crymap,设置对等体(setpeer)为R2的物理接口地址(20.0.0.2)。设置感兴趣流为1.1.1.1到2.2.2.2。crymap绑定在tu
7、n0接口。传输集为传输模式。设置静态路由为从1.1.1.1到2.2.2.2出口为tun0接口首先发出一个ping包目的地址为2.2.2.2源地址为1.1.1.1这个包先到达tun0接口,由于tunnel0接口上有一个cryptomap所以路由器查看cryptomap,发现这个流量和感兴趣流匹配,虽然是传输模式,但是由于setpeer的地址(20.0.0.2)和原本数据包的目的地址(2.2.2.2)不匹配,所以用目的地址20.0.0.2和源地址——送出接口的IP地址,封装原本的数据包。但是这样封装后,最外层
8、的IP包(10.0.0.1到20.0.0.2)就不是经过tunnel0的数据包了,所以也就不会在触发GRE的封装了。所以数据包从原本的物理接口送出。也就没有实现IPsecoverGRE。但是有一点比较疑惑就是为什么setpeer不指定tunnel0的接口地址?原因是发出数据包的源地址为物理接口也就是s0/0的地址。即使指定crymapzzzlocal-addresstunnel0系统也是认为是发出的源地址为物理接口地址(tun
此文档下载收益归作者所有