Рассмотрим, как в Solaris реализован механизм, когда роутер обслуживает несколько подсетей. По умолчанию, возвратные пакеты посылаются по всем активным интерфейсам по round-robin. Но нам нужно что бы пакет отправлялся туда, откуда пришёл. Повлиять на это может параметр ip_strict_dst_multihoming (который по умолчанию имеет значение 0). Установка параметра в 1 решает эту проблему:
# ndd ip ip_strict_dst_multihoming
0
# ndd -set ip ip_strict_dst_multihoming 1
# ndd ip ip_strict_dst_multihoming
1
Примечание.
Для IPv6 существует аналогичный параметр ip6_strict_dst_multihoming
Для Solaris 11 можно делать и другим способом, более новым:
# ipadm show-prop -p _strict_dst_multihoming ipv4 PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv4 _strict_dst_multihoming rw 1 -- 0 0-1 # ipadm show-prop -p _strict_dst_multihoming ipv6 PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv6 _strict_dst_multihoming rw 0 -- 0 0-1 # ipadm set-prop -p _strict_dst_multihoming=1 ipv4 # ipadm show-prop -p _strict_dst_multihoming ipv4 PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv4 _strict_dst_multihoming rw 1 1 0 0-1
При этом мы установили это значение на постоянной основе. Установка через ndd носит только временный характер (до перезагрузки). То есть нужно писать стартовый скрипт, который при каждой загрузке будет выставить нужное значение.
Можно управлять этим поведением и глобально. Для этого нужно выставить значения параметра hostmodel. Приведу выдержку из документации:
Description
Controls send and receive behavior for IPv4 or IPv6 packets on a multi-homed system.
Default
weak
Range
weak, strong, or src-priority
- weak
- Outgoing packets – The source address of the packet going out need not match the address configured on the outgoing interface.
- Incoming packets – The destination address of the incoming packet need not match the address configured on the incoming interface.
- strong
- Outgoing packets – The source address of the packet going out must match the address configured on the outgoing interface.
- Incoming packets – The destination address of the incoming packet must match the address configured on the incoming interface.
- src-priority
- Outgoing packets – If multiple routes for the IP destination in the packet are available, the system prefers routes where the IP source address in the packet is configured on the outgoing interface.If no such route is available, the system falls back to selecting the best route, as with the weak ES case.
- Incoming packets – The destination address of the incoming packet must be configured on any one of the host’s interface.
Dynamic?
Yes
When to Change
If a system has interfaces that cross strict networking domains (for example, a firewall or a VPN node), set this parameter to strong.
Commitment Level
Stable