nft를 사용하여 특정 주소로 가는 모든 트래픽을 localhost로 라우팅하는 방법은 무엇입니까?

nft를 사용하여 특정 주소로 가는 모든 트래픽을 localhost로 라우팅하는 방법은 무엇입니까?

외부 IP로 가는 트래픽을 가로채서 localhost로 다시 라우팅해야 합니다. iptables를 사용하면 매우 간단하지만 nft를 통해 작동시키는 방법을 이해할 수 없었습니다. nft 내에 테이블과 체인을 생성했지만 규칙을 생성할 수 없습니다. nft에서는 작업이 지원되지 않는다고 말합니다.

테이블

sudo /usr/sbin/nft list ruleset
table ip filter {
        chain OUTPUT {
                type filter hook output priority filter; policy accept;
        }
}

규칙

sudo /usr/sbin/nft  add rule ip filter OUTPUT ip daddr $EXTERNAL_ADDRESS counter dnat to 127.0.0.1
Error: Could not process rule: Operation not supported

커널 모듈

lsmod | grep nf_tables
nf_tables             360448  1 nft_nat
libcrc32c              12288  3 nf_conntrack,nf_nat,nf_tables
nfnetlink              20480  1 nf_tables

내 규칙에 어떤 문제가 있나요? 아니면 간단하게 만들 수 있나요?

답변1

호스트에 IP 주소를 할당합니다. 모든 트래픽을 라우팅하는 것은 전달 테이블의 목적이며 방화벽에서 이를 수행할 수 있지만 종종 필요하지 않습니다.

예를 들어, Linux에서 루프백을 위해 구성한 IP 주소를 할당합니다.

  ip a add 2001:db8:114:6402::1020 dev lo

단일 호스트 경로로서 일반적으로 인터넷의 다른 곳에 존재하더라도 우선순위를 갖습니다. 루프백 인터페이스에서 다른 호스트는 이에 대해 알지 못하며 동일한 호스트를 "나가는" 트래픽을 통해서만 연결할 수 있습니다.

호스트가 라우터인 경우 이를 다른 라우터에 알리려는지 여부를 결정하십시오.

독자를 위한 연습: 이를 IPAM 및 DNS에 등록하세요. 배포판의 네트워크 관리자를 사용하여 지속적으로 만드세요.

관련 정보