nft_compat을 로드하는 것

nft_compat을 로드하는 것

AlmaLinux 9를 실행 중인데 시작할 때 경고가 표시됩니다.

Warning: Deprecated Driver is detected: nft_compat will not be maintained in a future major release and may be disabled

그런데 그 드라이버에는 무엇이 로드되나요? 방화벽 서비스를 비활성화했습니다. 나는 이 경고를 (제대로) 없애고 싶습니다.

추가 정보:

[root@server ~]# lsmod | grep  nft_compat
nft_compat             20480  14
nf_tables             278528  98 nft_compat,nft_counter,nft_chain_nat
nfnetlink              20480  2 nft_compat,nf_tables


[root@server ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
NETAVARK_FORWARD  all  --  0.0.0.0/0            0.0.0.0/0            /* netavark firewall plugin rules */

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain NETAVARK_FORWARD (1 references)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            10.88.0.0/16         ctstate RELATED,ESTABLISHED
ACCEPT     all  --  10.88.0.0/16         0.0.0.0/0

Chain NETAVARK_ISOLATION_2 (1 references)
target     prot opt source               destination

Chain NETAVARK_ISOLATION_3 (0 references)
target     prot opt source               destination
DROP       all  --  0.0.0.0/0            0.0.0.0/0
NETAVARK_ISOLATION_2  all  --  0.0.0.0/0            0.0.0.0/0

답변1

메시지 자체에 관해서는 업스트림 커널 메시지가 아니라 AlmaLinux 9에 추가된 특정 메시지입니다(아마도 RHEL 9에서 상속됨).

nft_compat모듈은 다음을 실행할 수 있는 호환성 레이어입니다.iptables초과하다nftables그리고 여전히 nftables가 아닌 모듈을 사용하십시오.

CONFIG_NFT_COMPAT: nf_tables 모듈을 통한 Netfilter x_tables

[...]

  • 내장 모듈:nft_compat

도움말 텍스트

이는 nf_tables 프레임워크 위에 기존 x_tables 일치/대상 확장을 사용하려는 경우에 필요합니다.

번역 iptables-nft대신 사용되는 모든 xtables 모듈iptables-nftiptables규칙은 로컬에만 적용됩니다.nftables규칙이 nft_compat적용되어야 합니다.

깨끗한 VM으로 시작하여 네트워크와 관련된 어떤 것도 실행하지 않으므로 아무것도 nft_compat로드되지 않으며 비어 있지 않은 거의 모든 것이 로드됩니다.

다음은 수행되지 않습니다.

iptables-nft -A -j ACCEPT

왜냐하면 그것은 순전히 다음과 같이 번역되기 때문입니다.nftables암호:

# uname -r
6.1.0-0.deb11.5-amd64
# iptables -V
iptables v1.8.7 (nf_tables)
# iptables -A -j ACCEPT
# nft --debug=netlink list ruleset
ip filter INPUT 2 
  [ counter pkts 0 bytes 0 ]
  [ immediate reg 0 accept ]

table ip filter {
    chain INPUT {
        type filter hook input priority filter; policy accept;
        counter packets 0 bytes 0 accept
    }
}
# lsmod | grep nft_compat
# 

거의 모든 것이 가능합니다(사용자 공간 및 커널 버전에서 이를 네이티브로 변환할 수 있을 때까지).nftables, 따라서 이는 다음에 따라 달라질 수 있습니다.iptables버전 및 특정 규칙의 커널 버전).

# iptables -A INPUT -j REJECT
# lsmod | grep nft_compat
nft_compat             20480  1
nf_tables             286720  4 nft_compat
x_tables               61440  2 nft_compat,ipt_REJECT
nfnetlink              20480  2 nft_compat,nf_tables
# nft --debug=netlink list ruleset
ip filter INPUT 2 
  [ counter pkts 8 bytes 608 ]
  [ immediate reg 0 accept ]

ip filter INPUT 3 2 
  [ counter pkts 0 bytes 0 ]
  [ target name REJECT rev 0 ]

table ip filter {
    chain INPUT {
        type filter hook input priority filter; policy accept;
        counter packets 8 bytes 608 accept
        counter packets 0 bytes 0 reject
    }
}
# 

표시된 모든 항목에는 nft --debug=netlink ...다음 중 하나가 포함됩니다 target name(예:iptables-nft .. -j 표적) 또는 match name(iptables-nft ... -m 기준 치수x_tables)은 호환 모듈을 통해 해당 커널 모듈을 사용한다는 의미입니다 nft_compat.

이를 제거하려면 전혀 사용하지 않거나 iptables-nft해당 라이브러리 도구(libip4tc2, ...)를 사용하십시오. 물론 iptables-legacy(제공된다면?)로 되돌리는 것은 더 나쁠 것입니다. 이 레이어는 업스트림에서 더 이상 사용되지 않으며 호환성 레이어는 오랫동안 이를 대체하기 위해 유지될 예정입니다.

이는 다음을 의미할 수 있습니다. Docker를 사용하지 마세요, podman을 사용하지 마세요, 사용하지 마세요...

결론: 이 소식을 어떻게 없애야 할지 모르겠습니다.

관련 정보