Похоже, что трафик IPVS не проходит через сетевой фильтр на узле директора

У меня есть следующие настройки на узле-директоре, на котором запущен keepalived:

  • собственный IP 10.65.5.72
  • VIP 10.65.5.230
  • Активирован режим DR с поддержкой активности для порт 80 и 443

Я отлаживал проблему, при которой я не мог получить доступ к службе IPVS из самого узла-директора, и во время этого процесса заметил, что трафик IPVS, похоже, не проходит через сетевой фильтр. Для проверки я установил следующее правило в необработанной таблице в iptables:

Chain PREROUTING (policy ACCEPT 143K packets, 133M bytes)
 pkts bytes target     prot opt in     out     source               destination
    1    60 MARK       all  --  *      *       10.65.5.72           10.65.5.230          MARK and 0xffffffff

, а затем я запустил

nc -v -s 10.65.5.72 10.65.5.230 80

Я ожидал, что счетчик пакетов увеличится, но этого не произошло.

Если я изменю номер порта в команду nc на любое значение, кроме 80 и 443, тогда счетчик делает приращение.

Между тем, я действительно видел приращение счетчика пакетов в выводе

ipvsadm -L -n --stats

, когда я запускал вышеупомянутую команду nc, что должно указывать на то, что был сгенерирован пакет, который куда-то попал.

Это ожидаемое поведение ipvs? Из материалов, которые я нашел в Интернете, кажется, что трафик ipvs должен проходить через netfilter. Что может быть причиной наблюдаемого мной поведения?

0
задан 5 March 2019 в 22:02
1 ответ

Чтобы ответить на мой собственный вопрос, как указано в http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.LVS-DR.html ,

Когда пакет CIP-> VIP достигает директора, он помещается в цепочку OUTPUT как пакет уровня 2 с dest = MAC-адрес реального сервера.

После добавления того же правила в цепочку OUTPUT , Теперь я вижу, что пакеты попадают под правило.

0
ответ дан 5 December 2019 в 03:51

Теги

Похожие вопросы