投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2018年9月16日日曜日

【Linux CentOS 7】特定のパケットのみ別のルーティングテーブルを用いて転送する方法(ポリシールーティング)


IPパケットルーターとして動作しているLinuxマシンにおいて、
到達した特定のパケットのみを、異なるルーティングルールに基づいて、
別のデフォルトゲートウェイへ転送させる。(ポリシールーティング)

次のような処理で上記の動作は可能である。

1、特定のパケットをマークして識別可能にする。
2、マークされたパケットを指定したルーティングテーブルで処理する。



例えば、特定の送信元からのパケットのみ、指定したデフォルトゲートウェイを使うようにできる。

まず、最初、次の通常のデフォルトルートに従って、
192.168.100.0/24からのパケットが、192.168.0.1をゲートウェイとして、
192.168.200.0/24へ流れるようになっているものとする。

○通常のデフォルトルート設定
# ip route add default via 192.168.0.1 dev eth0

# ip route list
default via 192.168.0.1 dev eth0 proto static metric 100

そして、以下の設定を加えることによって、
さきのパケットのみ、別のデフォルトルートへ流れるようにする。


■新しいルーティングテーブルの編集

新しいテーブル101上にデフォルトルート設定

# ip route add default via 192.168.9.1 dev eth9 table 101

(ここで、同様にしてその他のネットワークへのルートを設定することもできる。)

登録したルートを確認

# ip route list table 101
default dev eth9 scope link


■マークされたパケットと作成したルーティングテーブルの関連付け

101(=0x65)でマークされたパケットが、作成済みルーティングテーブル101を使って、
ルーティング処理を行われるようにルール作成

# ip rule add fwmark 101 table 101

# ip rule list
0: from all lookup local
32765: from all fwmark 0x65 lookup 101
32766: from all lookup main
32767: from all lookup default

■作成したルーティングテーブルを用いて処理したいパケットの識別

ルーティング前の対象のパケットに対して、101をマークしている。
このマークはカーネル内で有効な情報である。

# iptables -t mangle -A PREROUTING -s 192.168.100.0/24 -d 192.168.200.0/24 -j MARK --set-mark 101

# iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination       
MARK       all  --  192.168.100.0/24     192.168.200.0/24   MARK set 0x65
Chain INPUT (policy ACCEPT)
target     prot opt source               destination       
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination       
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination       
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination


変更に伴って、FORWARDのフィルタも適切に変更しておくこと。

これで、他のパケットがデフォルトゲートウェイ 192.168.0.1 へ流れる一方で、
この対象パケットのみデフォルトゲートウェイ 192.168.9.1 へ流れるようになる。

以上

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad