11.3. ポリシーベースのルーティングの設定
コントローラーノードで、異なるネットワークからの無制限のアクセスを設定するには、ポリシーベースのルーティングを設定します。複数のインターフェイスを持つホストでは、ポリシーベースのルーティングはルーティングテーブルを使用し、送信元のアドレスに応じて特定のインターフェイス経由でトラフィックを送信することができます。送信先が同じであっても、異なる送信元からのパケットを異なるネットワークにルーティングすることができます。
たとえば、デフォルトのルートが External ネットワークの場合でも、パケットの送信元アドレスに基づいてトラフィックを Internal API ネットワークに送信するようにルートを設定することができます。インターフェイスごとに特定のルーティングルールを定義することもできます。
Red Hat OpenStack Platform では os-net-config
ツールを使用してオーバークラウドノードのネットワーク属性を設定します。os-net-config
ツールは、コントローラーノードの以下のネットワークルーティングを管理します。
-
/etc/iproute2/rt_tables
ファイルのルーティングテーブル -
/etc/sysconfig/network-scripts/rule-{ifname}
ファイルの IPv4 ルール -
/etc/sysconfig/network-scripts/rule6-{ifname}
ファイルの IPv6 ルール -
/etc/sysconfig/network-scripts/route-{ifname}
のルーティングテーブル固有のルート
前提条件
- アンダークラウドが正常にインストールされていること。詳しい情報は、Director Installation and Usageの Installing director を参照してください。
-
openstack-tripleo-heat-templates
ディレクトリーからのデフォルトの.j2
ネットワークインターフェイステンプレートをレンダリングしていること。詳細は、「カスタマイズのためのデフォルトネットワークインターフェイステンプレートのレンダリング」 を参照してください。
手順
~/templates/custom-nics
ディレクトリーからのカスタム NIC テンプレートにroute_table
およびinterface
エントリーを作成し、インターフェイスのルートを定義し、デプロイメントに関連するルールを定義します。$network_config: network_config: - type: route_table name: custom table_id: 200 - type: interface name: em1 use_dhcp: false addresses: - ip_netmask: 192.0.2.1/24 routes: - ip_netmask: 10.1.3.0/24 next_hop: 192.0.2.5 route_options: "metric 10" table: 200 rules: - rule: "iif em1 table 200" comment: "Route incoming traffic to em1 with table 200" - rule: "from 192.0.2.0/24 table 200" comment: "Route all traffic from 192.0.2.0/24 with table 200" - rule: "add blackhole from 172.19.40.0/24 table 200" - rule: "add unreachable iif em1 from 192.168.1.0/24"
run-os-net-config.sh
スクリプトの場所を、作成する各カスタム NIC テンプレートの絶対パスに設定します。スクリプトは、アンダークラウドの/usr/share/openstack-tripleo-heat-templates/network/scripts/
ディレクトリーにあります。resources: OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: group: script config: str_replace: template: get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh
ご自分のデプロイメントに該当するその他の環境ファイルと共に、カスタム NIC 設定およびネットワーク環境ファイルをデプロイメントコマンドに追加します。
$ openstack overcloud deploy --templates \ -e ~/templates/<custom-nic-template> -e <OTHER_ENVIRONMENT_FILES>
検証
コントローラーノードで以下のコマンドを入力して、ルーティング設定が正しく機能していることを確認します。
$ cat /etc/iproute2/rt_tables $ ip route $ ip rule