收藏 分享(赏)

自我总结IPsec隧道和传输模式.doc

上传人:gsy285395 文档编号:6560236 上传时间:2019-04-17 格式:DOC 页数:6 大小:400KB
下载 相关 举报
自我总结IPsec隧道和传输模式.doc_第1页
第1页 / 共6页
自我总结IPsec隧道和传输模式.doc_第2页
第2页 / 共6页
自我总结IPsec隧道和传输模式.doc_第3页
第3页 / 共6页
自我总结IPsec隧道和传输模式.doc_第4页
第4页 / 共6页
自我总结IPsec隧道和传输模式.doc_第5页
第5页 / 共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 包头的更外层添加一个以 set pe

2、er 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 的感兴趣流匹配, (感兴趣流定义 perm

3、it 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.1 到 20.0.0.2 的流

5、量,因为是在物理接口上绑定的 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 subnetsS 2.2.2.2 is directly connected, Tunnel0也就是数据包首先到达 tunnel0 接口,然后进行 GRE 封装,添加新的 IP 包头(如下图所示) ,然后送到物理口s0/0,这时在 s0/0 接口上有一个 CRYPTO MAP 查看感兴趣流是否触发加密

6、(感兴趣流为 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 接口首先发出一个 ping 包 目的地址为 2.2.2.2 源地址

7、为 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 的封装了。所以数据包从原本的物理接口送出。也就没有实现 IPsec over GRE。

8、但是有一点比较疑惑就是为什么 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 触发了 IPsec 的感兴趣流,然后IPsec 将这个数据包再封

9、装一次,源到目的为 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 或者 ESP IP 包头S 1.1.1.1D 2.2.2.2下面说一个 IPsec over GRE 成功的例子,并解释其原理:还是如图所示Crypto Map: “zzz“ i

10、db: 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 sets=zhang,Interfaces using crypto m

11、ap zzz:Tunnel02.0.0.0/32 is subnetted, 1 subnetsS 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 的安全链接,又由于是传输模式,set peer 2.2.2.2 和原始数据包中

12、目的地址匹配,且发送的源地址为 loopback0 的地址(和 R2 的配置匹配) 。所以不对数据包进行再次封装,插入 AH 的头后从 tunnel0 口发出,出 tunnel0 的时候tunnel0 口负责对数据包进行再次封装,也就是添加最外层的包头 10.0.0.1 到 20.0.0.2 然后从物理口发出,成功完成了 IPsec over GRE。总结:需要了解数据包封装的先后次序,在那个接口放了 crypto map,数据包进入接口的时候就查看是否和 IPsec的感兴趣流匹配。IPsec 处理完后接口相应的协议再处理,例如绑定在 tunnel 接口,首先 IPsec 对数据包进行封装,如

13、过封装后符合从 tunnel 接口发出的路由,则再用 GRE 封装,完成 IPsec over GRE。所有的协议如 IPsec 和 GRE 总是处理最外层的 IP 包,外层以内的数据包他们不关心。还有就是要注意发出的源地址是否和对端的 set peer 匹配,如果不匹配不能完成 IKE 阶段 1 或者阶段 2 的协商。最后就是要注意 ctypto map zzz local-address tunnel 0 的源地址为 tunnel 完成封装后的物理接口的地址。最后附一个截图,是 IPsce over GRE 的隧道模式的截图GRE 只负责封装画红色框的 IP 包头,而不负责封装最里面的 I

14、P 包头。同理 IPsec 也一样好像说的比较混乱,下面说一下每条命令对包的封装情况:首先 GRE 定义 tunnel source x.x.x.x 这个就是 GRE 封装在最外面的数据包的源地址,然后是定义 tunnel destination y.y.y.y 这个是控制 GRE 封装在最外面的目的地址。如图所示GRE 封装的 IP 包S x.x.x.xD y.y.y.yGRE 头 原始 IP 包S 1.1.1.1D 2.2.2.2所有通过 tunnel 口出去的包都会经过 GRE 的封装,所以可以在路由协议中宣告 tunnel 口的 IP 地址来运行路由协议。12.0.0.0/24 is

15、subnetted, 1 subnetsC 12.12.12.0 is directly connected, Tunnel0如果把这个接口宣告进 ospf 进程则可以运行路由协议。运行后包格式如下图GRE 封装的 IP 包S x.x.x.xD y.y.y.yGRE 头 原始 IP 包S 12.12.12.1D 224.0.0.5IPsec 中Crypto map 中的 set peer x.x.x.x 是最外面的目的地址。Crypto map zzz local-address interface 接口地址为源地址来封装数据包IPsec 封装 IP 包S y.y.y.y(Crypto map

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

17、的 crypto map 不会再次进行封装,而只是由 tunnel 口封装 GRE 后发出。R1#show crypto isakmp key Keyring Hostname/Address Preshared Keydefault 0.0.0.0 0.0.0.0 ciscoR1#R1#show crypto map Crypto Map: “zzz“ idb: Loopback1 local address: 11.11.11.11Crypto Map “zzz“ 1 ipsec-isakmpPeer = 22.22.22.22Extended IP access list aaccess

18、-list a permit ip host 1.1.1.1 host 2.2.2.2Current peer: 22.22.22.22Security association lifetime: 4608000 kilobytes/3600 secondsPFS (Y/N): NTransform sets= z, Interfaces using crypto map zzz:Tunnel0R1#show ip route1.0.0.0/24 is subnetted, 1 subnetsC 1.1.1.0 is directly connected, Loopback02.0.0.0/3

19、2 is subnetted, 1 subnetsS 2.2.2.2 is directly connected, Tunnel021.0.0.0/32 is subnetted, 1 subnetsC 21.21.21.1 is directly connected, Loopback222.0.0.0/24 is subnetted, 1 subnetsS 22.22.22.0 is directly connected, Tunnel011.0.0.0/24 is subnetted, 1 subnetsC 11.11.11.0 is directly connected, Loopba

20、ck112.0.0.0/24 is subnetted, 1 subnetsC 12.12.12.0 is directly connected, Tunnel014.0.0.0/24 is subnetted, 1 subnetsC 14.14.14.0 is directly connected, FastEthernet0/0S* 0.0.0.0/0 1/0 via 14.14.14.4在 IPsec Over GRE 情况下物理口收到流量的处理方式和从 loopback 口收到流量的处理方式有所不同。从 loopback 接口中收到流量的方式就是我以上说的处理方式,但是从物理口接受流量的处理方式是:当一个包进入后查询路由表发现下一跳从 tunnel 口发出,数据被送到 tunnel 口,此时路由器发现 tunnel 口有一个 crypto map,于是进行 IPsec 封装,封装后不再重新查询路由表,而是直接从 tunnel 口发出,此时 tunnel 口会继续进行 GRE 的封装,此时导致有两层封装。如图所示虽然目的地址 14.14.14.1 下一跳不是 tunnel 口,但是依然会进行 GRE 的封装,因为没有再次查询路由表,而是依然在 tunnel 口内再次进行 GRE 封装。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报