LoginSignup
12
12

More than 5 years have passed since last update.

BIG-IPでRoute Domainを使う

Posted at

はじめに

このページは、F5 BIG-IPの機能である「Route Domain」について、自習した内容をまとめたものです。

Route Domainとは

一言で言うなら「バーチャルルータ」。
Cisco(IOS)のVRF、LinuxのNetwork NameSpaceに似た機能です。

以下のように、1台のBIG-IPにルートドメインを複数作成することにより、複数の独立したルーティングテーブルでネットワークを制御できます。

Route_Domain_image_1(1).png

VRFやNetwork Namespaceと同じく、Route Domainでも、ルートドメインが異なれば、同じIPアドレスを利用することも可能です。

Route_Domain_image_2.png

ちなみに、BIG-IPでは、実際には複数のルーティングテーブルを持つのではなく、ルーティングのレコードにドメインIDという識別子を持たせることで、実装してるようです。'(tmsh) show net route' コマンドでルーティングテーブルを表示してみると、ちょっと気持ち悪い感じがします。

root@(bigip-ve)(cfg-sync Standalone)(Active)(/Common)(tmos)# show net route 

--------------------------------------------------------------------------------------------------
Net::Routes             
Name                      Destination               Type       NextHop                   Origin
--------------------------------------------------------------------------------------------------
172.16.0.0%200/12         172.16.0.0%200/12         interface  /Common/VLAN_201          connected
172.16.0.0%100/12         172.16.0.0%100/12         interface  /Common/VLAN_101          connected
10.0.0.0%200/8            10.0.0.0%200/8            interface  /Common/VLAN_200          connected
10.0.0.0%100/8            10.0.0.0%100/8            interface  /Common/VLAN_100          connected
127.1.1.0%200/24          127.1.1.0%200/24          interface  tmm%200                   connected
127.1.1.0%100/24          127.1.1.0%100/24          interface  tmm%100                   connected
・・・

一つのルーティングテーブル上に、「x.x.x.x%ID」という形でレコードが表示されます。上記の場合、172.16.0.0%200/12 は「ルートドメイン200上の、172.16.0.0/12」という意味になります。ルーティングテーブルを分けているつもりが、1つのテーブル内で表示されるのが気持ち悪い上に、とても読みにくい。これはなんとかして欲しいところ・・・

Route Domainの利点

上記の通り、複数の、独立したルーティング情報を持つことができます。ルートドメインを分けることで、それぞれ個別に、論理的にはトラフィックが混ざることなく、ネットワークを設計・構築することができます。

ネットワークアドレスが重複することもできるので、いわゆるマルチテナントにも利用できます。

Route Domain 0

Route Domain 0は、最初から存在するルートドメインです。ルートドメインを作っていなければ、全てのVLANはこのドメインに属します。このルートドメインは削除できません。

Route Domainの設定

Route Domainを利用する場合は、まず、新しいRoute Domainを作成することが必要です。ドメインはID(番号)で区別されているので、各ドメインのIDは重複できません。また、そのRoute Domainに所属させるVLANを設定します。

(tmos)# create net route-domain RD100 { id 100 vlans add { VLAN_100 VLAN_101 } }
(tmos)# create net route-domain RD100 { id 200 vlans add { VLAN_200 VLAN_201 } }
(tmos)# list net route-domain
net route-domain 0 {
    id 0
    vlans {
        http-tunnel
        socks-tunnel
    }
}
net route-domain RD100 {
    id 100
    vlans {
        VLAN_101
        VLAN_100
    }
}
net route-domain RD200 {
    id 200
    vlans {
        VLAN_200
        VLAN_201
    }
}

Route Domainを作成したら、そのドメイン上に作成する各種オブジェクト(Self IP, Node, Virtual Server, Routing, SNAT 等々)を作成します。この時、IPアドレスの後ろに『%ID』を付与します。

例えば、Route Domain 100上VLAN 100に、10.0.0.1/24 というSelf IPを作成する場合は、次のようになります。

(tmos)# create net self vlan100_self { address 10.0.0.1%100/8 vlan VLAN_100 } 
(tmos)# list net self
net self vlan100_self {
    address 10.0.0.1%100/8
    traffic-group traffic-group-local-only
    vlan VLAN_100
}

Route Domainを超える通信

Route Domain作成時、設定に「Strict Isolation」と「Parent Domain」という設定欄があり、それぞれ、デフォルトでは「Strict Isolation は Enabled」、「Parent Domain は None」と設定されています。

Route_Domain_Config_SS.png

このデフォルト状態の設定であれば、他のドメインへの通信は行いません。

Strict Isolationと、Parent Domainについて

Strict Isolationが無効な場合、通信が自ドメインのルーティングにヒットしない場合は、単純に他のドメインのルーティングに回されます。この機能を無効にする場合は、注意が必要です。(個人的には、Strict Isolationを無効にする状態で、複数のRoute Domainを使う必要性がわかりません。)

Strict Isolationが有効な場合、パケットの宛先が自ドメイン内のルーティングにヒットしない場合にはParent Domainに指定したドメイン(親ドメイン)のルーティングが参照されます。そして、ヒットする経路がある場合は、親ドメイン上の宛先VLANへパケットを送信します。

Route_Domain_Parent_Domain.png

Parent Domainが「None」になっているということは、そのドメインは親ドメインがないことを表します。

このParent Domainの仕組みは何に使えるのだろうと考えたのですが、例えば、インターネットとLANの境界にBIG-IPが設置されているときは、次のように使えるのかなと思います。(あくまで想像です)

Route_Domain_2.png

この場合、Route Domain100では送信元IPが重複する可能性があるので、SNATも使用する必要があります。

Route DomainとPartition

Route Domainは便利ですが、設定の都度、IPアドレスの後ろに「%ID」をつけなければならないのが辛いところです。

Route Domainはネットワークを分離しますが、Partitionを使うと、設定の管理を分離できます。

Partitionを使用すると、Partitionごとに"Default Route Domain" を設定でき、そのPartition内の操作をするとき、Route Domainを意識する必要が(かなり)なくなります。Route Domainを使うときは、Partitionとあわせて使うのが良いのではないでしょうか。

参考URL

免責事項

本ページの内容に誤り等があり、参考にされた方がなんらかの損害を被った場合、一切の責任は負いません。

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12