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-nft
iptables규칙은 로컬에만 적용됩니다.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을 사용하지 마세요, 사용하지 마세요...
결론: 이 소식을 어떻게 없애야 할지 모르겠습니다.