Nutanix Filesバージョン4.1にて、クライアントネットワークのマルチVLANを構成を設定する機能が追加されました。
詳細は上記のドキュメントをご覧ください。
これまでのFilesネットワーク構成について
Filesは各FSVMにクライアントネットワークとストレージネットワークの2つのネットワークが存在し、それぞれが異なるネットワークに所属するか、または両方のネットワークをまとめて一つのネットワークに所属するような構成を取っていました。
▲(図1)クライアントネットワークとストレージネットワークを分離した構成 |
▲(図2)クライアントネットワークとストレージネットワークをまとめた構成 |
このような構成において、実際にユーザーが利用する際にアクセスするクライアントネットワークをセキュリティの観点から分離したいといった要件がある場合、これまでのFilesはクライアントネットワークに複数のネットワークを持つことができなかったため、複数のFilesを展開するという手法を取る必要がありました。
▲(図3)従来のFilesでネットワークを分離するための構成 |
バージョン4.1で追加されたマルチVLAN構成
ただし、マルチVLAN構成を取るにはいくつか条件があるため、予め制限を把握しておく必要があります。
設定方法
afs net.list_external
UUID Name Virtual UUID Managed Gateway Netmask/Prefixlen IPs Primary Vlan
5467672e-31b3-40bd-a7fb-dba996a282df vlan316(no ipam) 898963d1-a37a-4768-83bf-8adb77972486 No 172.17.16.1 255.255.255.0 [u'172.17.16.14', u'172.17.16.15', u'172.17.16.16'] No -
afs net.add_external <input-json-file-path>
後ろの<>内は追加するネットワーク情報を記載したjsonファイルを指定するのですが、このjsonファイルの作り方が非常にわかりづらいです。
一応jsonファイルの作り方は以下のコマンドで確認してくれと記載されていますが、
afs help net.add_external
このコマンドの実行結果が以下になります。
net.add_external: Add external networks. Usage: "net.add_external <input-json-file-path>" Input JSON file schema: [ { "virtual_network_uuid": "<uuid>" }, { "virtual_network_uuid": "<uuid>", "gateway_ip": "<gateway-ip-address>", "netmask_ip": "<netmask-ip-address>", "ip_list": [ "<fsvm-ip-address>", "<fsvm-ip-address>", ... ] }, ... ] 1. Managed network entry only requires "virtual_network_uuid" field. 2. Unmanaged network entry requires "virtual_network_uuid", "gateway_ip", "netmask_ip" and "ip_list" fields. Usage: net.add_external <json_file_path> [key=val ...] Required arguments: json_file_path (string): Input JSON file path
なんとなく、追加するネットワーク情報を記入してやれば良いのはわかりますが、正直わかりづらいと思います。
余計な記述を削っていき、最終的には以下のような形式でjsonファイルを作成します。
[ { "virtual_network_uuid": "<追加するネットワークのUUID>", "gateway_ip": "<追加するネットワークのGW>", "netmask_ip": "<追加するネットワークのサブネットマスク>, "ip_list": [ "<FSVMのクライアント側IPアドレス①>", "<FSVMのクライアント側IPアドレス②>",
"<FSVMのクライアント側IPアドレス③>"
] } ]
FSVMのIPアドレスはFSVMの台数に合わせて追加してください。
行の始め辺りにある「virtual_network_uuid」はPrimsのNetwork Configから対象のネットワークを編集する際に確認することができます。
今回はこのVLAN300というネットワークを追加することにします。
この内容にて任意の名前で拡張子を[.json]で保存し、以下のコマンドを実行します。
afs net.add_external <作成したjsonファイル>
※コマンド実行時にjsonファイルのパスを指定しない場合は、home直下が参照されます。
以下のように結果が表示されれば、正常にコマンドが実行できています。
Created network-add task: d3c723bf-8b0a-4a0c-ae7e-798eea768c0e
再度クライアントネットワークの一覧を確認すると、クライアントネットワークが2つに追加されていることがわかります。
UUID Name Virtual UUID Managed Gateway Netmask/Prefixlen IPs Primary Vlan
eb047398-594a-45f3-97e8-4fdb169ae48f VLAN.300 8e803826-495d-4d61-ac49-f37217510471 No 172.17.0.1 255.255.255.0 [u'172.17.0.91', u'172.17.0.92', u'172.17.0.93'] No 300
5467672e-31b3-40bd-a7fb-dba996a282df vlan316(no ipam) 898963d1-a37a-4768-83bf-8adb77972486 No 172.17.16.1 255.255.255.0 [u'172.17.16.14', u'172.17.16.15', u'172.17.16.16'] Yes 316
Files Consoleから構成情報を確認すると、クライアントネットワーク情報あたりに「+ 1 more」と表示されていますので、クリックします。
追加したVLAN300がクライアントネットワークが認識されていることが確認できます。
本手順で追加したネットワークは削除することができますが、プライマリネットワークは削除できないことに留意してください。
クライアントユーザーから接続時の注意点
マルチVLANの設定は完了しましたが、実際にマルチVLANのFilesを利用するにはいくつか注意点があります。
・ホスト名による接続
回避策として、DNSのレコードに異なるホスト名を手動で登録し、クライアント側IPアドレスと関連付けを行います。
これにより、プライマリネットワークと異なるネットワークでは、対応する異なるホスト名を指定することで、名前解決によって疎通可能なIPアドレスを取得することができます。
ただし、この方法は公式ドキュメントに記載された方法ではないため、あくまで自己責任となることをご留意ください。
※一応DNSレコード追加方法は以下のURLに記載されていますが、用意されている方法がよくわからないので、手動で入れてしまってもいい気がします。
https://portal.nutanix.com/page/documents/details?targetId=Files-v4_1:fil-fs-manage-dns-server-t.html
FilesのマルチVLAN機能の紹介は以上です。
一部課題もありますが、Filesで提供できる構成が増える、注目の新機能になりますので、活用できるシチュエーションがありましたら、ぜひお試しください。