Пакеты, помеченные как НЕДЕЙСТВИТЕЛЬНЫЕ в правиле FORWARD

Пакеты, помеченные как НЕДЕЙСТВИТЕЛЬНЫЕ в правиле FORWARD

У меня есть брандмауэр с 3 IP-псевдонимами на 1 физическом интерфейсе. Пакеты отбрасываются между этими 3 интерфейсами (ICMP, HTTP или что-то еще). Мы отследили это до того, что эти пакеты были помечены как НЕДЕЙСТВИТЕЛЬНЫЕ в правиле FORWARD и отброшены из-за этого правила:

chain FORWARD {
    policy DROP;

    # connection tracking
    mod state state INVALID LOG log-prefix 'INVALID FORWARD DROP: '; 
    mod state state INVALID DROP;
    mod state state (ESTABLISHED RELATED) ACCEPT;
}

(То есть мы видим INVALID FORWARD DROPлоги в dmesg)

Что может быть причиной этого?

решение1

Используйте macvlan в режиме моста вместо IP-псевдонимов и оставьте физический интерфейс в режиме promisc.

например

  1. eno1 — это интерфейс, который вы хотите использовать.
  2. Затем создайте macvlan1@eno1, macvlan2@eno1 и macvlan3@eno1.
  3. Оставьте eno1 в режиме promisc.

Ниже приведена последовательность создания интерфейса macvlan.

# /sbin/ip link add link eno1 macvlan1 type macvlan mode bridge

# /sbin/ip addr add 192.168.1.1/24 dev macvlan1

# /sbin/ip link set macvlan1 address aa:bb:bb:dd:ee:ff up

Воспользуйтесь командой ниже, чтобы включить режим promisc для eno2

# /sbin/ip link set eno1 promisc on

решение2

Состояние INVALIDозначает, что пакет не связан с известным соединением (и не начинает новое соединение). Единственные причины, которые я могу придумать, это то, что что-то очищает таблицу отслеживания соединений, таблица переполнена или записи слишком быстро истекают по времени. Вы можете проверить размер таблицы отслеживания соединений с помощью sudo conntrack -L | wc -lи максимальное количество записей с помощью cat /proc/sys/net/netfilter/nf_conntrack_max.

Связанный контент