FortigateのVDOMで遊んでみた

network
Published: 2012-04-02

 念願のFortiOS4.0が動くFortigateを手に入れたぞ!!という事で、VDOMで遊んでみました。環境はFortigate50BとFortiOS4.0 MR3 Patch 6です。

構成図

 上の箱がFortigate50B、下の箱がCisco892Jです。1台のFortigate50Bの中にL3SW1台と2台のFWを作ってみました。VDOM rootはインターネットとFWをつなぐL3SW、VDOM14はLAN側のNICが二つ(InternalとDMZ)があるFW、VDOM15はLAN側のNICが一つだけのFWをイメージしています。今回のエントリーはVDOM14に関する部分だけです。

Global設定

 インターフェースの設定は下記の通りです。各VDOMのWAN側にグローバルIPアドレスを振る余裕はないので、グローバルIPアドレスを振ったWAN1をVDOM rootにルーテッドポートで接続します。そして、VDOM配下の端末がインターネットと通信できる様、VDOMリンクを利用してVDOM-14/15とVDOM rootを接続します。VDOMリンクはVLAN-14の様にIPアドレスを固定で設定する方法だけでなく、VDOM-15の様にunnumberedにすることもできます。

 LAN側のInternalはルーテッドにしてしまうと1つしかIPアドレスが振れないので、tagVLANで分割しVLANインターフェースにします。それぞれのVLANインターフェースにIPアドレスとVLAN-ID、所属するVDOMを設定します。

VDOM root設定

 VDOM rootにインターネット向けのデフォルトルートと、下にぶら下がっているVDOM向けのルーティングを追加します。VDOM向けのネクストホップはVDOMリンクのIPアドレスです。unnumbered設定の場合、ネクストホップは不要です。初めは少々混乱しましたが、FW間の物理リンクが仮想的なVDOMリンクに置き換わっただけです。

 VDOM rootのFWポリシーは全開けし、個別の制御は各VDOMに任せます。VDOMからInternetへのルールはNATを有効にします。

VDOM14設定

 VDOM14のインターフェースを確認すると、グローバルで設定した通りWAN側1つ、LAN側2つになっています。

 インターネットと通信するために、デフォルトルートをVDOM root側のVDOMリンクアドレスに向けます。

 それっぽいルールを追加します。Internal⇒DMZ、DMZ⇒Internet、DMZ⇒Internalです。InternalからInternetへの通信は許可しません。記載されているホストは、ルータのSVIに振ってあるIPアドレスです。

動作確認

 Cisco892Jから疎通確認を行います。各SVIはVRFで論理分割されているので、SVI間の通信は必ずVDOM14を経由します。想定通り動きました。

■InternalからDMZへの疎通確認
Router#traceroute vrf vlan14 192.168.13.254
Type escape sequence to abort.
Tracing the route to 192.168.13.254
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.14.200 4 msec 0 msec 0 msec ←VDOM14を経由してる
  2 192.168.13.254 12 msec *  0 msec

■DMZからInternalへの疎通確認
Router#traceroute vrf vlan13 192.168.14.254
Type escape sequence to abort.
Tracing the route to 192.168.14.254
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.13.200 4 msec 0 msec 0 msec ←VDOM14を経由してる
  2 192.168.14.254 0 msec *  0 msec

■DMZからInternetへの疎通確認
Router#traceroute vrf vlan13 8.8.8.8       
Type escape sequence to abort.
Tracing the route to google-public-dns-a.google.com (8.8.8.8)
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.13.200 0 msec 0 msec 0 msec ←VDOM14
  2 192.168.16.1 0 msec 0 msec 4 msec  ←VDOM root
  3 153.16.66.xxx 0 msec 0 msec 4 msec
中略
 14 tyo-t1600-xe4-0-2-17.jp.apan.net (203.181.249.174) 16 msec 20 msec 20 msec
 15 tpr2-ae0-6.jp.apan.net (203.181.249.97) 20 msec 20 msec 24 msec
 16 as15169.dix-ie.jp (202.249.2.189) 20 msec 20 msec 16 msec
 17 209.85.255.80 [MPLS: Label 404514 Exp 4] 20 msec 20 msec 20 msec
 18 209.85.249.192 16 msec 132 msec 20 msec
 19 209.85.243.59 20 msec 16 msec 20 msec
 20 209.85.241.139 24 msec 20 msec 24 msec
 21 google-public-dns-a.google.com (8.8.8.8) 20 msec 20 msec 20 msec

■InternalからInternetへの疎通確認
Router#traceroute vrf vlan14 8.8.8.8
Type escape sequence to abort.
Tracing the route to google-public-dns-a.google.com (8.8.8.8)
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.14.200 0 msec 0 msec 0 msec
  2  *  *  *  ←FWのルールがないので通信不可。

その他

 何もしないと装置のリソースを全てのVDOMで共有しますが、VDOM単位で装置全体のリソースを固定割り当てすることもできます。

 

 また、CLIで操作する時には、都度どのVDOMを操作するか選ぶ必要があります。

FGT50Bxxxxxxxxxx # config 
global    config global
vdom      config vdom
 
FGT50Bxxxxxxxxxx # config vdom ←VDOMの設定に移動

FGT50Bxxxxxxxxxx (vdom) # 
edit      add/edit a table value
delete    delete a table value
end       end and save last config
 
FGT50Bxxxxxxxxxx (vdom) # edit 
<vdom>    Virtual Domain Name
VDOM-14
VDOM-15
root

FGT50Bxxxxxxxxxx (vdom) # edit VDOM-14 ←VDOM14の設定に移動                                                               
current vf=VDOM-14:2

FGT50Bxxxxxxxxxx (VDOM-14) # 
config      config object
get         get dynamic and system information
show        show configuration
diagnose    diagnose facility
execute     execute static commands
next        config next table entry
abort       end and discard last config
end         end and save last config
 
FGT50B3G08625936 (VDOM-14) # 

まとめ

 これはすごい。設定はGUIでぽちぽち、各VDOM上の操作も通常のFortigateと変わりません。動作確認はしていませんが、VDOM単位でアカウントを作成して権限を付与できそう。

 複数のFWを統合して管理コストを削減したり、1台のFWを仮想化して複数のユーザを異なるポリシーで収容したり、Virtual Private Firewallみたいな事をしたりと、色々な使い方ができるなーと思いました。自宅でどう使うかはこれから考えます。。。