在 Oracle® Solaris 11.2 中配置和管理网络组件

退出打印视图

更新时间: 2014 年 7 月
 
 

在多宿主主机上实现对称路由

缺省情况下,具有多个接口的系统(也称为多宿主主机)基于路由表中到通信目的地的最长匹配路由来路由其网络通信。如果存在多个长度相等的到目的地的路由路径,则 Oracle Solaris 将应用等成本多路径 (Equal-Cost Multi-Path, ECMP) 算法将通信分布到这些路由。

以此方式对通信进行分布并非始终合适。例如,可能会通过多宿主主机上的一个接口发送 IP 包,但是此主机与该包中的 IP 源地址不位于同一子网上。此外,如果传出数据包是对某传入请求(例如 ICMP 回显请求)的响应,则请求和响应可能不经过相同的接口。此类型的通信路由配置称为非对称路由。如果您的 Internet 服务提供商 (Internet service provider, ISP) 按照 RFC 3704 中所述实现准入过滤,则非对称路由配置可能导致 ISP 丢弃传出数据包。

RFC 3704 旨在限制拒绝服务 (denial-of-service, DoS) 攻击在 Internet 上扩散。为了与它保持一致,必须将您的网络配置为对称路由。使用 IP hostmodel 属性可以满足此要求。此属性控制通过多宿主主机接收或传送 IP 数据包的行为。

hostmodel 属性可以具有以下三个可能值之一:

strong

对应于 RFC 1122 中定义的强端系统 (end system, ES) 模型。此值实现对称路由。

weak

对应于 RFC 1122 中定义的弱 ES 模型。在采用此值的情况下,多宿主主机使用非对称路由。

src-priority

通过使用首选路由配置数据包路由。如果路由表中存在多个目的地路由,则首选路由是使用在其上配置了传出数据包 IP 源地址的接口的那些路由。如果不存在这样的路由,则传出数据包将使用到数据包的 IP 目的地的最长匹配路由。

例如,如下所示在多宿主主机上实现 IP 包的对称路由:

# ipadm set-prop -p hostmodel=strong ipv4
# ipadm set-prop -p hostmodel=strong ipv6
# ipadm show-prop -p hostmodel ip
PROTO  PROPERTY   PERM  CURRENT  PERSISTENT  DEFAULT   POSSIBLE
ipv6   hostmodel  rw    strong   --          weak      strong,
src-priority,
weak
ipv4   hostmodel  rw    strong   --          weak      strong,
src-priority,
weak