在创建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 }'然后得到像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" }
^有没有方法可以在nftable中生成匿名ipv6映射?
发布于 2023-03-31 16:23:21
TL;DR:您至少需要nftable版本的>= 1.0.5。
在版本1.0.5中:
scanner: allow prefix in ip6 scope
它与此承诺匹配:
扫描程序:允许ip6作用域中的前缀'ip6前缀‘是有效的语法,因此确保扫描器也在ip6上下文中识别它。还添加测试用例。
...
diff --git /test/shell/testcase/set/0046netmap_0 b/test/shell/testcase/set/0046netmap_0索引2804a4a2.60bda 401--a/test/shell/testcase/set/0046netmap_0 +++ b/test/shell/testcase/set/0046netmap_0@ -8,6 +8,12 @@ EXPECTED=“表ip x{ 10.141.13.0/24 : 192.168.4.0/24 >}}}+表ip6 x{+链式y{+类型nat钩子后置优先;策略接受;+ snat ip6前缀到ip6鞍映射{ 2001:db8:1111::/64 : 2001:db8:2222::/64 }+}+}“set -e”
相应的回归检验与OP的尝试相似。这里用nftable 1.0.7测试了OP的语法。
https://unix.stackexchange.com/questions/741579
复制相似问题