Red Hat Training

A Red Hat training course is available for RHEL 8

7.2.4. 使用 nftables 脚本中的变量

要在 nftables 脚本中定义变量,请使用 define 关键字。您可以在变量中存储单个值和匿名集合。对于更复杂的场景,请使用 set 或 verdict 映射。

只有一个值的变量

以下示例定义了一个名为 INET_DEV 的变量,其值为 enp1s0

define INET_DEV = enp1s0

您可以通过在变量名称后写入 $ 符号来使用脚本中的变量:

...
add rule inet example_table example_chain iifname $INET_DEV tcp dport ssh accept
...
包含匿名集合的变量

以下示例定义了一个包含匿名集合的变量:

define DNS_SERVERS = { 192.0.2.1, 192.0.2.2 }

您可以通过在变量名称后写入 $ 符号来使用脚本中的变量:

add rule inet example_table example_chain ip daddr $DNS_SERVERS accept
注意

请注意,在规则中使用大括号时具有特殊的意义,因为它们表示变量代表一个集合。