Netfilter 체인에 카운터 대기열을 추가하면 가상 머신이 중단되는 이유는 무엇입니까?

Netfilter 체인에 카운터 대기열을 추가하면 가상 머신이 중단되는 이유는 무엇입니까?

사용자 공간 안팎으로 패킷을 큐에 넣기 위해 Netfilter 테이블을 구성하고 있습니다. 지금까지의 테이블 구성은 다음과 같습니다.

table inet filter {

        # protocols to allow
        set allowed_protocols {
                type inet_proto
                elements = { icmp, icmpv6 }
        }

        # interfaces to accept any traffic on
        set allowed_interfaces {
                type ifname
                elements = { "lo" }
        }

        # services to allow
        set allowed_tcp_dports {
                type inet_service
                elements = { ssh, 9090 }
        }

        # this chain gathers all accept conditions
        chain allow {
                ct state established,related accept

                meta l4proto @allowed_protocols accept
                iifname @allowed_interfaces accept
                tcp dport @allowed_tcp_dports accept
        }

        # base-chain for traffic to this host
        chain INPUT {
                type filter hook input priority filter + 20
                policy accept

                jump allow
                reject with icmpx type port-unreachable
        }

        chain input {
                type filter hook input priority 0;
        }

        chain forward {
                type filter hook forward priority 0;
        }

        chain output {
                type filter hook output priority 0;
        }
}

지금까지는 잘 로드되고 있는 것 같습니다 nft -f.

그러나 이러한 명령 중 하나를 실행하면 ...

nft add inet filter input counter queue num 0

또는

nft add inet filter output counter queue num 1

...내 가상 머신이 입력에 대한 응답을 완전히 멈췄고, 연결을 종료했을 때 vagrant reload다시 시작하려면 가상 머신을 강제 종료해야 한다는 말을 들었습니다. 이러한 대기열을 올바르게 구성하는 방법에 대한 도움을 주시면 대단히 감사하겠습니다!

운영 체제:Linux fedora 5.19.8-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Sep 8 19:02:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

도보 여행가:Vagrant 2.3.0

답변1

애플리케이션이 대기열을 수신하지 않는 경우 bypass패킷을 수락 해 보세요.

nft add inet filter input counter queue num 0 bypass

이것을 읽어보세요 https://wiki.nftables.org/wiki-nftables/index.php/Queueing_to_userspace

관련 정보