Solaris IPMP的原理及其不足

在《Linux Bond的原理及其不足》文章中,我们介绍了Linux Bond的原理及其不足。那么如果是在Solaris下,对应的就是IPMP(IP Multi Path)了。今天这儿介绍Solaris IPMP原理及其不足。

原理
Solaris IPMP原理
IPMP的最基本单元是组(Group),组里面包含了两个网口,每个网口分别有一个测试IP地址,称为test IP,一个浮动IP地址(上层应用使用的IP地址)。
IPMP需要一个网关地址(Target),IPMP的后台进程,使用两个网口的测试IP地址,定时地,分别向Target发送ICMP(Internet Control Message Protocol)包(可以简单理解为ping包,ping是使用ICMP协议实现的一个工具),并统计丢报率,当丢报率达到一定上限时候,认为此网口到Target是不能连通的,此网口被标记为故障。
若此时浮动IP地址绑定在此网口上,则浮动IP地址会被切换到另外一个网口上。

IPMP是网口驱动上层的实现,不会更改网口的驱动(这点与Bond不一样),因此,IPMP组里面的两个网口,是独立的,可以被用作其他用途使用的。这两个网口可以绑定上其他的IP地址,用作其他用途。

不足
IPMP的不足有两点。
第一,每个IPMP组需要三个IP地址:两个测试IP地址,一个应用IP地址。
IP地址是稀缺资源,不论是内部组网的小网IP地址还是Internet的IP地址,更多的IP地址意味着更多的资源消耗。

第二,链路监测使用的是ICMP协议,在某些环境下,ICMP默认是不允许的(安全考虑),因此这种情况下,IPMP就彻底歇菜了。
Bond的ARP链路监测不存在此问题,ARP(地址解析协议)是必须的一个协议,是不可能被禁用的。

转载请注明:运维派 » Solaris IPMP的原理及其不足

0
2.8k
1
  1. IPMP有两种类型,分别是test-based和link-based。你这里只提到了test-based IPMP, link-based IPMP是不需要配置测试IP的。