如何使用 IPtables 标记流量?

如何使用 IPtables 标记流量?

我正在尝试标记流量,我该如何写以下code内容IPtables?

/ip firewall mangle> add chain=prerouting src-address=10.1.1.1/32 action=mark-connection \
new-connection-mark=server_con

/ip firewall mangle> add chain=forward connection-mark=server_con action=mark-packet  \
new-packet-mark=server


/ip firewall mangle> add chain=prerouting src-address=10.1.1.2 
action=mark-connection new-connection-mark=workstation_con
/ip firewall mangle> add chain=prerouting src-address=10.1.1.3 
action=mark-connection new-connection-mark=workstation_con
/ip firewall mangle> add chain=prerouting src-address=10.1.1.4 
action=mark-connection new-connection-mark=workstation_con

/ip firewall mangle> add chain='''forward''' connection-mark=workstation_con  action=mark-packet \
new-packet-mark=workstations

上面codemikrotik firewall,我想实现它们LinuxBox

答案1

您可以轻松地将 MikroTik 防火墙规则转换为 Linux iptables 规则。唯一真正的区别是 iptables 标记不太漂亮,它喜欢 32 位标志而不是漂亮的长名称,但大多数情况下“1”就足够了。

根据 iptables 手册页:

  • add chain=prerouting: -t mangle -A PREROUTING(将新规则附加到 mangle PREROUTING 链的末尾)
  • src-address=10.1.1.1/32:(-s 10.1.1.1/32源地址为10.1.1.1/32的数据包触发)
  • action=mark-connection new-connection-mark=server_con:(-j CONNMARK --set-mark 1将这些连接标记为“1”)
  • connection-mark=workstation_con action=mark-packet new-packet-mark=workstations:(-m connmark --mark 1 -j MARK --set-mark 1用数据包标记“1”标记与连接“1”关联的所有数据包)

您应该能够使用这些翻译来创建一组规则来满足您的需求。

相关内容