手当たり次第に書くんだ

CentOS8 Policy Based Routing NetworkManager

目次に戻る

概要

Policy Based Routing(PBR)は特定の条件に応じて、参照するルーティングテーブルを変更できます。複数のネットワークアダプタを持つホストでは、通常は同じ宛先のルーティングを設定できませんが、Policy Based Routingを使用することで可能になります。

前提条件

OS

CentOS Stream 8を使用します。

SELinux

有効です。無効にする場合はこちらを参照して下さい。

Firewalld

無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。

ネットワーク構成

想定するネットワーク構成は下記の通りです。Policy Based Routingはens35で受信した戻り通信のみに適用されます。自発通信はens34が使用されます。

設定

ens34

ens34は下記の設定とします。Policy Based Routingの確認のみの為、最低限の設定としていますが、DNS等は必要に応じて設定して下さい。

[root@centos ~]# nmcli connection modify con-ens34 ipv4.method manual ipv4.addresses 192.168.100.2/24 ipv4.gateway 192.168.100.1
[root@centos ~]# nmcli connection up con-ens34

ens35

ens35のデフォルトルートはPolicy Based Routingを使用します。Policy Based Routingはデフォルトとは別のルーティングテーブルを使用し、本稿ではtable=5000としています。また、ens35のIPアドレス(192.168.101.2)から発信された場合のみtable=5000を参照するルーティングルールを設定しています。priorityはルールの優先度です。

[root@centos ~]# nmcli connection modify con-ens35 ipv4.method manual ipv4.addresses 192.168.101.2/24
[root@centos ~]# nmcli connection modify con-ens35 ipv4.routes "0.0.0.0/0 192.168.101.1 table=5000" ipv4.routing-rules "priority 100 from 192.168.101.2 table 5000"
[root@centos ~]# nmcli connection up con-ens35

Policy Based Routing確認

ルーティングルールを確認します。下記の通り、192.168.101.2から発信された場合はルーティングテーブル:5000を参照するようになります。ちなみにルーティングテーブル名称は数字である必要はないので、分かり易い名前を付けると良いでしょう。

[root@centos ~]# ip rule list
0:      from all lookup local
100:    from 192.168.101.2 lookup 5000
32766:  from all lookup main
32767:  from all lookup default

ルーティングテーブル:5000の内容は下記の通りです。

[root@centos ~]# ip route list table 5000
default via 192.168.101.1 dev ens35 proto static metric 104
192.168.101.1 dev ens35 proto static scope link metric 104

/etc/sysconfig/network-scripts/route-ens35が作成されます。

[root@centos ~]# cat /etc/sysconfig/network-scripts/route-ens35
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=192.168.101.1
OPTIONS0="table 5000"

目次に戻る

CentOS8 Policy Based Routing NetworkManager

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トップへ戻る