Solaris настройка IPMP

Для повышения отказоустойчивости сетевых соединений в Solaris настроим IP multipath (IPMP)
Есть несколько вариантов настройки:
1. Link-Based FailureDetection – мониторинг наличия или отсутствия соединения на сетевом интерфейсе.
2. Probe-Based FailureDetection – проверка работоспособности сетевых служб, по средствам отправки и получения ICMP пакетов, используя тестовые адреса.
Cетевые интерфейсы IPMP группы, должны находиться в одной подсети.
Необходимо запустить демон (in.mpathd) осуществляющий мониторинг
# /usr/lib/inet/in.mpathd -a
Настройка Link-Based FailureDetection:
# vi /etc/hostname.e1000g0
10.0.0.1 netmask + broadcast + group test_ipmp up

# vi /etc/hostname.e1000g1
10.0.0.2 group test_ipmp up

Перезапускаем сервис network/physical:
# svcadm restart network/physical
Проверяем конфигурацию:
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 10
        inet 10.0.0.1 netmask ff000000 broadcast 10.255.255.255
        groupname test_ipmp
        ether 0:c:29:8:43:e9
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 9
        inet 10.0.0.2 netmask ff000000 broadcast 10.255.255.255
        groupname test_ipmp
        ether 0:c:29:8:43:f3

Проверяем работоспособность (отсутствие соединения на интерфейсе e1000g0):
 # ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
e1000g0: flags=19000802<BROADCAST,MULTICAST,IPv4,NOFAILOVER,FAILED> mtu 0 index 10
        inet 0.0.0.0 netmask 0
        groupname test_ipmp
        ether 0:c:29:8:43:e9
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 9
        inet 10.0.0.2 netmask ff000000 broadcast 10.255.255.255
        groupname test_ipmp
        ether 0:c:29:8:43:f3
e1000g1:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 9
        inet 10.0.0.1 netmask ff000000 broadcast 10.255.255.255

В данной ситуации видно, что интерфейс e1000g0 не доступен, а его IP адрес был создан виртуальным сетевым интерфейсом e1000g1:1
Настройка Probe-Based FailureDetection:
В режиме Probe-Based можно использовать конфигурации active-active и active – standby
Конфигурация active-active:
# vi /etc/hostname.e1000g0
10.0.0.1 netmask + broadcast + group test_ipmp up
addif 10.0.0.3 deprecated -failover netmask + broadcast + up

# vi /etc/hostname.e1000g1
10.0.0.2 netmask + broadcast + group test_ipmp up
addif 10.0.0.4 deprecated -failover netmask + broadcast + up
Опции:
deprecated - Указывает, что тест адрес не используется для исходящих пакетов.
-failover – Определяет наличие тест адреса при сбое интерфейса
standby – Standby интерфейс не используются для передачи трафика, пока не произошел сбой. В случае сбоя интерфейса, его адрес переходит на standby интерфейс.
test_ipmp – имя ipmp группы

Перезапускаем сервис network/physical:
# svcadm restart network/physical

Проверяем конфигурацию:
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 10
        inet 10.0.0.1 netmask ff000000 broadcast 10.255.255.255
        groupname test_ipmp
        ether 0:c:29:8:43:e9
e1000g0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 10
        inet 10.0.0.3 netmask ff000000 broadcast 10.255.255.255
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 9
        inet 10.0.0.2 netmask ff000000 broadcast 10.255.255.255
        groupname test_ipmp
        ether 0:c:29:8:43:f3
e1000g1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 9
        inet 10.0.0.4 netmask ff000000 broadcast 10.255.255.255

Конфигурация active-standby:
# vi /etc/hostname.e1000g0
10.0.0.1 netmask + broadcast + group test_ipmp up
addif 10.0.0.3 deprecated -failover netmask + broadcast + up

# vi /etc/hostname.e1000g1
10.0.0.2 netmask + broadcast + deprecated group test_ipmp -failover standby up

Дополнительная информация