web-dev-qa-db-ja.com

IPtablesを使用してトラフィックをマークする方法は?

トラフィックをマークしようとしています。IPtables?に関して次のcodeをどのように記述すればよいですか。

/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に実装したい

2
Adi

MikroTikファイアウォールルールをLinuxiptablesルールに非常に簡単に変換できます。唯一の本当の違いは、iptablesのマーキングはそれほどきれいではなく、Niceの長い名前の代わりに32ビットのフラグが好きですが、ほとんどの場合「1」で十分です。

Iptablesのマニュアルページによると:

  • add chain=prerouting-t mangle -A PREROUTING(マングル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」でマークします)

これらの翻訳を使用して、ニーズを満たす一連のルールを作成できるはずです。

3
Smiling Dragon