dnat 규칙을 생성할 때 다음 명령을 지정할 수 있습니다.
nft 'add rule ip twilight prerouting ip daddr 1.2.3.0/24 dnat ip prefix to ip daddr map { 1.2.3.0/24 : 2.3.4.0/24 }'
그런 다음 매핑된 주소의 dnat를 가져옵니다 1.2.3.4 -> 2.3.4.4
. 예를 들어 명령은 예상대로 nftables v1.0.4 (Lester Gooch #3)
응답에 따라 작동합니다.여기.
ipv6으로 동일한 작업을 수행하려면 다음 명령을 사용합니다.
nft 'add rule ip6 twilight prerouting ip6 daddr aa:bb:cc:dd::/64 dnat ip6 prefix to ip6 daddr map { [aa:bb:cc:dd::]/64 : [bb:cc:dd:ee::]/64 }'
nft 'add rule ip6 twilight prerouting ip6 daddr aa:bb:cc:dd::/64 dnat ip6 prefix to ip6 daddr map { aa:bb:cc:dd::/64 : bb:cc:dd:ee::/64 }'
nft 'add rule ip6 twilight prerouting ip6 daddr aa:bb:cc:dd::/64 dnat ip6 prefix to ip6 daddr map { "aa:bb:cc:dd::/64" : "bb:cc:dd:ee::/64" }'
그러면 다음과 같은 오류 메시지가 나타납니다.
Error: syntax error, unexpected newline
add rule ip6 twilight prerouting ip6 daddr aa:bb:cc:dd::/64 dnat ip6 prefix to ip6 daddr map { [aa:bb:cc:dd::]/64 : [bb:cc:dd:ee::]/64 }
^
Error: syntax error, unexpected newline
add rule ip6 twilight prerouting ip6 daddr aa:bb:cc:dd::/64 dnat ip6 prefix to ip6 daddr map { aa:bb:cc:dd::/64 : bb:cc:dd:ee::/64 }
^
Error: syntax error, unexpected newline
add rule ip6 twilight prerouting ip6 daddr aa:bb:cc:dd::/64 dnat ip6 prefix to ip6 daddr map { "aa:bb:cc:dd::/64" : "bb:cc:dd:ee::/64" }
^
nftables에서 익명의 ipv6 매핑을 만드는 방법이 있습니까?
답변1
핵심요약: 최소한 nftables 버전 >= 1.0.5가 필요합니다.
존재하다버전 1.0.5:
scanner: allow prefix in ip6 scope
어느 것이 일치하는가이번에 제출하세요:
스캐너: IP6 범위의 접두사 허용
"ip6 접두사"는 유효한 구문이므로 스캐너가 ip6 컨텍스트에서도 이를 인식하는지 확인하십시오.
테스트 케이스도 추가하세요.
[...]
diff --git a/tests/shell/testcases/sets/0046netmap_0 b/tests/shell/testcases/sets/0046netmap_0 index 2804a4a2..60bda401 100755 --- a/tests/shell/testcases/sets/0046netmap_0 +++ b/tests/shell/testcases/sets/0046netmap_0 @@ -8,6 +8,12 @@ EXPECTED="table ip x { 10.141.13.0/24 : 192.168.4.0/24 > } } } + table ip6 x { + chain y { + type nat hook postrouting priority srcnat; policy accept; + snat ip6 prefix to ip6 saddr map { 2001:db8:1111::/64 : 2001:db8:2222::/64 } + } + } " set -e
해당 회귀 테스트는 OP의 시도와 유사합니다. OP의 구문은 nftables 1.0.7에서 제대로 테스트되었습니다.