では、今日も授業を始める。今日のテーマはPBRだ。
前回の続きね。
通常、パケットを送信する場合、宛先のIPアドレスをチェックしてどこへ送信するかを決める。
PBR(ポリシーベースルーティング)は、宛先IPアドレスではなく、送信元IPアドレスをチェックしてどこへ送信するかを決めることができる。
また、PBRはポート番号などをチェックしてどこへ送信するかを決めることもできる。
LinuxサーバでPBRを設定することもできるが、ルータなどのネットワーク機器で設定することもできる。
どちらかというと、LinuxサーバでPBRを設定することはあまりない。
Ciscoルータなどは、宛先をチェックしてルーティングしてるけど、PBRを設定して送信元IPアドレスやポート番号などの条件で、送信先を決めることができるね。
LinuxサーバのPBRのことを、iproute2といったりする。
/etc/iproute2/rt_tablesファイルを使って設定する。
例えば、以下の2つのIPアドレスがあったとする。
192.168.1.1(1個目のI/F)
10.10.1.1 (2個目のI/F)←デフォゲを持つように設定
※NIC(ネットワークインターフェース)は2つ。
※デフォルトGWが10.10.1.254で
2個目のI/Fからつながっている先に
10.10.1.254(ルータ)があると仮定
このように、LinuxサーバにI/Fが2つ以上ある場合、
例えば、クライアント(IPアドレス:X)から、Linuxサーバの192.168.1.1(1個目のI/F)へパケットが届いた場合、
パケットが届いた1個目のI/Fからパケットを戻さないと異経路になってしまう。
LinuxサーバにIPアドレス「X」のスタティックルートをあらかじめ設定しておけば
(192.168.1.1(1個目のI/F)から宛先IPアドレス「X」へ通信するようにスタティックルート設定)、
クライアント(IPアドレス:X)から、Linuxサーバへ通信の戻りは、同じI/F(1個目のI/F)になる。
よって、異経路にはならない。
しかし、クライアント(IPアドレス:X)から、Linuxサーバの10.10.1.1(2個目のI/F)へパケットが届いた場合、
パケットが届いた2個目のI/Fからパケットを戻さないと異経路になってしまうが、
スタティックルートの設定に従い、1個目のI/Fからパケットを返してしまい、異経路になる。
クライアント(IPアドレス:X)からサーバの2つ以上のI/F(IPアドレス)宛に通信が来る場合、
クライアント(IPアドレス:X)宛のスタティックルートを設定すると、異経路になるってことね。
このような場合、Linuxサーバで、10.10.1.1(2個目のI/F)へパケットが届いた場合、
届いたI/Fからパケットを返すように設定しないといけないが、PBRを設定すればこれを実現できる。
PBRでパケットが届くI/Fごとにルーティングのルールを適用することができるからだ。
クライアント(IPアドレス:X)からサーバの2つ以上のI/F(IPアドレス)宛に通信が来る場合、
パケットが届いたI/Fからパケットを返すように設定するにはPBRが必要ってことね。
でも、そもそもクライアントがIPアドレスを2つ持つように設定して、
クライアント(IPアドレス:X)からサーバの1個目のI/F(IPアドレス)宛に通信して、
クライアント(IPアドレス:Y)からサーバの2個目のI/F(IPアドレス)宛に通信するようにすれば
PBRを設定しなくても、宛先IPアドレスXへのスタティックルートと、
宛先IPアドレスYへのスタティックルートを設定すれば、
届いたパケットから通信するように設定できるね。
うむ。
では、今日はここまで。
は~い。
1.PBR=ポリシーベースルーティング
2.PBRはルータやLinuxなどで設定できる