FORWARD 규칙에 INVALID로 표시된 패킷

FORWARD 규칙에 INVALID로 표시된 패킷

1개의 물리적 인터페이스에 3개의 IP 별칭이 있는 방화벽이 있습니다. 패킷은 이 3가지 인터페이스(ICMP, HTTP 등) 사이에서 삭제됩니다. FORWARD 규칙에서 INVALID로 표시되고 이 규칙으로 인해 삭제된 패킷을 추적했습니다.

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

IP 별칭 대신 브리지 모드에서 macvlan을 사용하고 물리적 인터페이스를 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

eno2에 대해 promisc 모드를 활성화하려면 아래 명령을 참조하십시오.

# /sbin/ip link set eno1 promisc on

답변2

상태 INVALID는 패킷이 알려진 연결과 연결되어 있지 않으며 새 연결도 시작하지 않음을 의미합니다. 제가 생각할 수 있는 유일한 이유는 무언가가 연결 추적 테이블을 지우고 있거나, 테이블이 오버플로되거나, 항목이 너무 빨리 시간 초과되는 것입니다. 로 연결 추적 테이블의 크기 sudo conntrack -L | wc -l와 최대 항목 수를 확인할 수 있습니다 cat /proc/sys/net/netfilter/nf_conntrack_max.

관련 정보