Opensuse 13.2防火墙:允许openmpi

我正试图在两台服务器上运行简单的openmpitesting。

mpirun --report-bindings --host serv1.cell,serv2.cell -np 2 hostname 

两台服务器均运行OpenSuse 13.2,并具有类似的networking接口configuration:

ens2f0 – 互联网连接,外部防火墙区域

ens2f1 – 局域网连接(192.168.0.0),内部防火墙区域

ens2f2 – 绑定从属,内部防火墙区域

ens2f3 – 绑定从属,内部防火墙区域

bond0 – bonding接口(192.168.6.0),与ensf1不同的子网,内部防火墙区域

serv1.cell和serv2.cell在/ etc / hosts中定义为绑定networking中的地址(192.168.6.0)

Openmpi是使用zypper从默认回购站安装的。

如果两个防火墙都closures – 一切正常,但是当其中一个正在运行时,会发生奇怪的事情。

如果closuresserv1上的防火墙,并在serv2上运行它,则openmpi将在serv1上运行:

 serv1.cell:~ # mpirun --report-bindings --host serv1.cell,serv2.cell -np 2 hostname serv2.cell serv1.cell 

而且在serv2上不起作用:

 serv2.cell:~ # mpirun --report-bindings --host serv1.cell,serv2.cell -np 2 hostname 

如果我closuresserv2上的防火墙,并在serv1上运行它,反过来:serv2工作正常,但serv1堵塞。

我也尝试过使用netcat进行简单的testing:两个防火墙都打开,netcat监听serv1,serv2的连接和数据正常,反之亦然,所以防火墙允许任何东西通过bond0。 这不是closures防火墙的解决scheme,那么我应该如何configurationOpenMPI(或防火墙)使两台服务器正常工作?

最后发现如何告诉OpenMPI只使用指定的接口。 在/path/to/openmpi/etc/openmpi-mca-params.conf您应该通过添加来描述networking和接口

 btl_tcp_if_include = ifacename,0.0.0.0/24** oob_tcp_if_include = ifacename,0.0.0.0/24** 

这在我的情况是公正的

 btl_tcp_if_include = bond0 oob_tcp_if_include = bond0 

现在OpenMPI只使用bond0