Ser*_*hyk 6 networking nat iptables traffic-shaping
我需要标记发送到指定 MAC 地址的数据包。
我需要这个在 shaper 中使用tc。
--mac-destination不存在于iptables.
我也尝试使用ebtables:
ebtables -t nat -A POSTROUTING -d 9c:4e:36:aa:bb:cc -j mark --set-mark 0x2003 --mark-target ACCEPT
但它没有标记任何东西(至少ebtables -t nat -L --Lc显示了 0 个计数器)
请帮忙!太感谢了!
诀窍是将 iptables--mac-source与以下内容结合起来CONNMARK:
--mac-source匹配来自您感兴趣的 mac 地址的数据包。这是错误的方向,因为您对发送到该 mac 地址的数据包感兴趣,但现在您可以CONNMARK标记整个连接,即两个方向(!)和--restore-mark# lan interface
if_lan=eth0
# create 'mark_mac' table for marking connections:
iptables -t mangle -N mark_mac
iptables -t mangle -A mark_mac -j MARK --set-mark 1234
iptables -t mangle -A mark_mac -j CONNMARK --save-mark
# mark connections involving mac address:
iptables -t mangle -A PREROUTING -i $if_lan -m state --state NEW -m mac --mac-source 9c:4e:36:aa:bb:cc -j mark_mac
# mark packets going to mac:
iptables -t mangle -A POSTROUTING -o $if_lan -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark
Run Code Online (Sandbox Code Playgroud)
最初我认为这仅适用于源自 lan 的 tcp 连接,但考虑到它的定义,--state NEW它应该适用于 tcp 和 udp 的两个方向(!)
另请参阅基于发送者 MAC 地址的 Linux 上的策略路由,这是此答案的灵感来源。
| 归档时间: |
|
| 查看次数: |
13769 次 |
| 最近记录: |