Добрый день!
Пытаюсь настроить conntrackd для резервирования брандмауэра/балансировщика/маршрутизатора. Имитирую ситуацию когда мастер неожиданно упал (пакет туда через один хост, обратно через другой).
conntrackd.conf:
Sync {
Mode FTFW {
DisableExternalCache On
}
Multicast {
IPv4_address 225.0.0.100
Group 3780
IPv4_interface 10.93.0.101 # и 10.93.0.102 на другом хосте
Interface ens224
SndSocketBuffer 1249280
RcvSocketBuffer 1249280
Checksum on
}
Options {
ExpectationSync On
}
}
General {
Nice -20
HashSize 32768
HashLimit 131072
LogFile on
LockFile /var/lock/conntrack.lock
UNIX {
Path /var/run/conntrackd.ctl
Backlog 20
}
NetlinkBufferSize 2097152
NetlinkBufferSizeMaxGrowth 8388608
Filter From Userspace {
Protocol Accept {
TCP
SCTP
DCCP
UDP
ICMP
}
Address Ignore {
IPv4_address 127.0.0.1 # loopback
IPv4_address 10.93.0.101 # и 10.93.0.102 на другом хосте
IPv4_address 10.98.0.100 # virtual IP 1
IPv4_address 10.98.0.101 # и 10.98.0.102 на другом хосте
}
}
}
Данные о соединениях при этом кажется) синхронизируются. По крайней мере после прохождения пакета через один хост:
[root@host01 ~]# conntrack -L -g -s 10.100.65.48 -d 10.98.1.69
tcp 6 119 SYN_SENT src=10.100.65.48 dst=10.98.1.69 sport=57021 dport=80 [UNREPLIED] src=10.98.255.85 dst=10.100.65.48 sport=80 dport=57021 mark=0 secctx=system_u:object_r:unlabeled_t:s0 use=1
[root@host02 ~]# conntrack -L -g -s 10.100.65.48 -d 10.98.1.69
tcp 6 108 SYN_SENT src=10.100.65.48 dst=10.98.1.69 sport=57021 dport=80 [UNREPLIED] src=10.98.255.85 dst=10.100.65.48 sport=80 dport=57021 mark=0 secctx=system_u:object_r:unlabeled_t:s0 use=1
А дальше не понятно, ответный пакет идет через второй хост и попадает под правило:
-A FORWARD -s 10.98.254.0/23 -m conntrack --ctstate INVALID -j DROP
conntrack -L
никаких изменений нет