自我总结ipsec隧道和传输模式

上传人:mg****85 文档编号:35540348 上传时间:2018-03-17 格式:DOC 页数:6 大小:400KB
返回 下载 相关 举报
自我总结ipsec隧道和传输模式_第1页
第1页 / 共6页
自我总结ipsec隧道和传输模式_第2页
第2页 / 共6页
自我总结ipsec隧道和传输模式_第3页
第3页 / 共6页
自我总结ipsec隧道和传输模式_第4页
第4页 / 共6页
自我总结ipsec隧道和传输模式_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《自我总结ipsec隧道和传输模式》由会员分享,可在线阅读,更多相关《自我总结ipsec隧道和传输模式(6页珍藏版)》请在金锄头文库上搜索。

1、即使使用传输模式,在 L2L 的模型中,Set Peer X.X.X.X 的 IP 地址和原本 IP 包头中的目的地址不相同的话,也会 在外层再添加一个新的 IP 包头,这个新的包头就是 set peer X.X.X.X 为目的地址的包头,源地址用发出接口的地址来发出数据包。等于自动转换成 了隧道模式。所以必须要做到原始数据包中的目的 IP 地址和 set peer 语句中的 ip 地址一样才能是传输模式,否则 会自动转换为隧道模式如 GRE over IPsec 就可以使用传输模式。而且推荐使用传输模式。因为如果是隧道模式 IPsec 将会在原来的最外 层 ip 包头的更外层添加一个以 se

2、t peer x.x.x.x 为目的地址和本身发出接口地址为源地址的数据包,如图所示: 这个是传输模式,配置了 set peer 为 20.0.0.2 因为匹配最外层 IP 数据包的地址,所以不在更外层添加新的地址。 说一下过程,ping R2 的 Loop 接口,路由器首先查看路由表,发现下一条是 tunnel 接口,所以用 tunnel 接口事先 定义的源和目的地址来封装数据包。也就是用 10.0.0.1 到 20.0.0.2 来封装数据包,然后送到 S0/0 物理接口,由于在 物理接口上有一个 crypto map 路由器查看这个流量是否和 crypo map 的感兴趣流匹配, (感兴趣

3、流定义 permit gre host 10.0.0.1 host 20.0.0.2)由于与定义的感兴趣流匹配,也就是 GRE 协议的 10.0.0.1 到 20.0.0.2,所以与 set peer 对端建立 IKE 阶段 1 2 的协商,由于是传输模式,而且 set peer 的地址同最外层 IP 包头的地址相同,所以不进行 再次封装。而是直接插入 AH 头后从物理口送出。这个是隧道模式,可以看到在最外层的数据包的更外层又添加了一个新的匹配 set peer x.x.x.x 的 IP 包头,浪费了 资源这个是 set peer 1.1.1.1 符合 IP 包目的地址的数据包分析,可以运行在

4、传输模式,要注意让源地址也要符合对方的 目的地址才可以建立连接 可以用 crypto map name local-address interface 来定义封装数据包的源端口。总结:set peer 定义了封装的目的地址。crypto map name local-address interface 定义了封装的源地址,(默认是用出接 口的地址)。 如果是传输模式那么要求 Set peer 的地址和原始的(也就是最内层的)IP 数据包的目的地相同,否则自动变为隧道模式有一点要注意就是 IPSEC 也是只处理最外部的 IP 包头,比如下图的这种情况,如果要指定感兴趣流,只能制定 10.0.0.

5、1 到 20.0.0.2 的流量,因为是在物理接口上绑定的 crypto map 而 GRE 的封装发生在进入这个物理口之前。所以 IPsec 不管 GRE 封装里面的原始地址(1.1.1.1 到 2.2.2.2) ,他只 能加密外层的(10.0.0.1 到 20.0.0.2) 2.0.0.0/32 is subnetted, 1 subnets S 2.2.2.2 is directly connected, Tunnel0 也就是数据包首先到达 tunnel0 接口,然后进行 GRE 封装,添加新的 IP 包头(如下图所示) ,然后送到物理口 s0/0,这时在 s0/0 接口上有一个 CR

6、YPTO MAP 查看感兴趣流是否触发加密(感兴趣流为 ip host 1.1.1.1 host 2.2.2.2) ,但是由于最外面封装的是 10.0.0.1 到 20.0.0.2 的 IP 包,所以不会触发加密,所以以明文传输。对于 IPsec over GRE 来说,举一个失败失败的例子。首先定义 cry map,设置对等体(set peer)为 R2 的物理接口地址(20.0.0.2) 。设置感兴趣流为 1.1.1.1 到 2.2.2.2。cry map 绑定在 tun0 接口。 传输集为传输模式。设置静态路由为从 1.1.1.1 到 2.2.2.2 出口为 tun0 接口 首先发出一个

7、 ping 包 目的地址为 2.2.2.2 源地址为 1.1.1.1 这个包先到达 tun0 接口,由于 tunnel0 接口上有一个 crypto map 所以路由器查看 crypto map,发现这个流量和感兴趣流匹配,虽然是传输模式,但是由于 set peer 的地 址(20.0.0.2)和原本数据包的目的地址(2.2.2.2)不匹配,所以用目的地址 20.0.0.2 和源地址送出接口的 IP 地址,封装原本的数据包。但是这样封装后,最外层的 IP 包(10.0.0.1 到 20.0.0.2)就不是经过 tunnel0 的数据包了,所以也就不会在触发 GRE 的封装了。所以数据包从原本的

8、物理接口送出。也就没有实现 IPsec over GRE。但是有一点比较疑惑就是为什么 set peer 不指定 tunnel0 的接口地址?原因是发出数据包的源地址为物理接口也就 是 s0/0 的地址。即使指定 cry map zzz local-address tunnel 0 系统也是认为是发出的源地址为物理接口地址(tunnel source 地址) 。但是这仅限于 cisco 的路由器,如果是别的路由器,tunnel0 接口的 IP 地址(12.12.12.1)为源地址的 话。应该是可以完成 IPsec over GRE 的,因为原始的数据包为 1.1.1.1 到 2.2.2.2 触

9、发了 IPsec 的感兴趣流,然后 IPsec 将这个数据包再封装一次,源到目的为 12.12.12.1 到 12.12.12.2,然后送到 tunnel 出口,tunnel 出口由事先定 义好的,tunnel source 10.0.0.1 tunnel destination 20.0.0.2 再次封装。我的理解数据包应该是这样的,但是我不确 定是不是正确IP 包头 S10.0.0.1 D20.0.0.2GRE 头IP 包头 S 12.12.12.1 D 12.12.12.2AH 或者 ESPIP 包头 S 1.1.1.1 D 2.2.2.2下面说一个 IPsec over GRE 成功的

10、例子,并解释其原理:还是如图所示 Crypto Map: “zzz“ idb: Loopback0 local address: 1.1.1.1Crypto Map “zzz“ 10 ipsec-isakmpPeer = 2.2.2.2Extended IP access list 100access-list 100 permit ip host 1.1.1.1 host 2.2.2.2Current peer: 2.2.2.2Security association lifetime: 4608000 kilobytes/3600 secondsPFS (Y/N): NTransform

11、sets=zhang,Interfaces using crypto map zzz:Tunnel02.0.0.0/32 is subnetted, 1 subnets S 2.2.2.2 is directly connected, Tunnel0这是 R1 的关键配置。传输集为传输模式。 首先 1.1.1.1 到 2.2.2.2 这个数据包到 tunnel0 接口,由于 tunnel0 接口上有一个 crypto map ,所以系统查看 crypto map 的感兴趣流设置,1.1.1.1 到 2.2.2.2 和一个感兴趣流匹配,所以开始与对等体 2.2.2.2 建立 IKE 阶段 1 的

12、安全 链接,又由于是传输模式,set peer 2.2.2.2 和原始数据包中目的地址匹配,且发送的源地址为 loopback0 的地址 (和 R2 的配置匹配) 。所以不对数据包进行再次封装,插入 AH 的头后从 tunnel0 口发出,出 tunnel0 的时候 tunnel0 口负责对数据包进行再次封装,也就是添加最外层的包头 10.0.0.1 到 20.0.0.2 然后从物理口发出,成功完 成了 IPsec over GRE。总结:需要了解数据包封装的先后次序,在那个接口放了 crypto map,数据包进入接口的时候就查看是否和 IPsec 的感兴趣流匹配。IPsec 处理完后接口相

13、应的协议再处理,例如绑定在 tunnel 接口,首先 IPsec 对数据包进行封装, 如过封装后符合从 tunnel 接口发出的路由,则再用 GRE 封装,完成 IPsec over GRE。 所有的协议如 IPsec 和 GRE 总是处理最外层的 IP 包,外层以内的数据包他们不关心。 还有就是要注意发出的源地址是否和对端的 set peer 匹配,如果不匹配不能完成 IKE 阶段 1 或者阶段 2 的协商。最后就是要注意 ctypto map zzz local-address tunnel 0 的源地址为 tunnel 完成封装后的物理接口的地址。 最后附一个截图,是 IPsce ove

14、r GRE 的隧道模式的截图 GRE 只负责封装画红色框的 IP 包头,而不负责封装最里面的 IP 包头。同理 IPsec 也一样好像说的比较混乱,下面说一下每条命令对包的封装情况: 首先 GRE 定义 tunnel source x.x.x.x 这个就是 GRE 封装在最外面的数据包的源地址,然后是定义 tunnel destination y.y.y.y 这个是控制 GRE 封装在最外面的目的地址。如图所示GRE 封装的 IP 包 S x.x.x.x D y.y.y.yGRE 头原始 IP 包 S 1.1.1.1 D 2.2.2.2所有通过 tunnel 口出去的包都会经过 GRE 的封装

15、,所以可以在路由协议中宣告 tunnel 口的 IP 地址来运行路由协 议。12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Tunnel0 如果把这个接口宣告进 ospf 进程则可以运行路由协议。运行后包格式如下图GRE 封装的 IP 包 S x.x.x.x D y.y.y.yGRE 头原始 IP 包 S 12.12.12.1 D 224.0.0.5IPsec 中 Crypto map 中的 set peer x.x.x.x 是最外面的目的地址。Crypto map zzz local-addres

16、s interface 接口地址为源地址来封 装数据包IPsec 封装 IP 包 S y.y.y.y(Crypto map zzz local-address interface 接口 的 IP 地址为源) D x.x.x.x(set peer x.x.x.x)ESP 或 AH原始 IP 包 S1.1.1.1 D2.2.2.2IPsec Over GRE 如果在 tunnel 接口挂上 crypto map 那么感兴趣流被触发后会根据 transform-set 进行封装,封装后的数据会再次查 路由表,如果封装后的包(最外层的 IP 地址)下一跳为 tunnel 则发送到 tunnel 口进行 GRE 封装。数据再次抵达 tunnel 口后由于与 tunnel 口 crypto map 中的感兴趣流不匹配,因此 ipsec 的 crypto map 不会再次进行封装,而只是 由 tunnel 口封装 GRE 后发出。R1#show crypto isakmp key Keyring Hostname/Addres

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号