IPsec 标准定义了 IPsec 操作的两种不同模式:传输模式和隧道模式。传输模式和隧道模式之间的主要差异在于策略的应用位置。在隧道模式中,原始包在另一个 IP 头中封装。另一个头中的地址可以有所不同。
在每种模式下,包可以由 AH、ESP 或同时由这二者提供保护。这些模式在策略应用方面存在差异,具体如下所示:
在传输模式中,外部头中的 IP 地址用于确定将应用于包的 IPsec 策略。
在隧道模式中,会发送两个 IP 头。内部 IP 包会确定保护其内容的 IPsec 策略。
隧道模式可以应用于任何端点系统与中间系统的组合,例如安全网关。
在传输模式下,IP 头、下一个头以及下一个头支持的任何端口都可用于确定 IPsec 策略。实际上,IPsec 可在一个端口不同粒度的两个 IP 地址之间强制实行不同的传输模式策略。例如,如果下一个头是 TCP(支持端口),则可为外部 IP 地址的 TCP 端口设置 IPsec 策略。
隧道模式仅对 IP-in-IP 包有效。在隧道模式下,系统在内部 IP 包的内容上强制执行 IPsec 策略。可针对不同的内部 IP 地址强制实施不同的 IPsec 策略。也就是说,内部 IP 头、其下一个头及下一个头支持的端口,可以强制执行策略。与传输模式不同,在隧道模式下,外部 IP 头并不指示其内部 IP 包使用的策略。
因此,在隧道模式下,可为路由器后面的 LAN 的子网和这些子网上的端口指定 IPsec 策略。也可在这些子网上为特定的 IP 地址(即主机)指定 IPsec 策略。这些主机的端口也可以具有特定的 IPsec 策略。但是,如果有动态路由协议在隧道上运行,请勿使用子网选择或地址选择,因为对等网络上的网络拓扑的视图可能会更改。更改可能使静态 IPsec 策略失效。有关包括配置静态路由的隧道设置过程示例,请参见使用 IPsec 保护 VPN。
在 Oracle Solaris 中,隧道模式只能在 IP 隧道网络接口上强制执行。有关隧道接口的信息,请参见在 Oracle Solaris 11.2 中管理 TCP/IP 网络、IPMP 和 IP 隧道 中的第 4 章 关于 IP 隧道管理。IPsec 策略会提供 tunnel 关键字,选择 IP 隧道网络接口。当规则中出现 tunnel 关键字时,在此规则中指定的所有选定器都应用到内部包中。
下图显示了不受保护的 TCP 包的 IP 数据包头。
图 6-3 携带 TCP 信息的不受保护的 IP 包
在传输模式下,ESP 按下图所示的方式保护数据。阴影部分表示包的加密部分。
图 6-4 携带 TCP 信息的受保护的 IP 包
在隧道模式中,整个包位于 ESP 头内部。Figure 6–3 中的包由外部 IPsec 头以隧道模式保护(在此示例中为 ESP),如下图所示。
图 6-5 以隧道模式保护的 IPsec 包
IPsec 策略为隧道模式和传输模式提供关键字。有关更多信息,请查看以下内容:
有关每个套接字策略的详细信息,请参见 ipsec(7P) 手册页。
有关每个套接字策略的示例,请参见如何使用 IPsec 保护 Web 服务器与其他服务器的通信。
有关隧道的更多信息,请参见 ipsecconf(1M) 手册页。
有关隧道配置的示例,请参见如何在隧道模式下使用 IPsec 保护两个 LAN 之间的连接。