LoginSignup
1
0

More than 1 year has passed since last update.

NSX ALB 21.1 で DNS Provider (DNS サーバー) を構成してみる

Last updated at Posted at 2022-11-22

はじめに

VMware NSX Advanced Load Balancer (NSX ALB) は、クラウドネイティブ時代にピッタリなソフトウェアベースのロードバランサーです。旧 Avi Networks の技術を活用しており、マルチクラウド環境においても、柔軟にスケールし、かつ WAF (Web Application Firewall) や GSLB (Global Server Load Balancing) など、豊富な機能を備えていることが特徴です。
また、トラヒックの可視化や分析の機能が非常に優れており、個人的に、とても好きなソリューションです。

もし、ご興味を持っていただけたら、VMware Japan Blog に、面白い記事が沢山ありますので、ぜひ、参考にしていただければと思います。

今回は、この NSX ALB を使って、DNS サーバー (実体としては DNS 用の Virtual Service) を構成する方法をご紹介します。

ただ、「なぜ、わざわざ LB を使って DNS サーバーなんて建てるの?」と思われるかも知れません。
これは、GSLB を構成する際に必須となることに加えて、Kubernetes と NSX ALB を組合せて、Ingress を構成する際に、NSX ALB が Ingress リソースに対する名前解決を自動で構成してくれるので、非常に便利だからです。
NSX ALB を使った Ingress の構成は、別の機会に記事にできればと思います。

前提

NSX ALB の公式ドキュメントに従って、NSX ALB Controller が構成され、クラウド環境として vCenter との連携が構成されていることを想定しています。

また、利用している製品のバージョンは下記の通りです。

  • NSX Advanced Load Balancer 21.1.4-2p3 (Build 9210)
  • vCenter 7.0 Update 3h (Build 20395099)
  • ESXi 7.0 Update 3g (Build 20328353)

手順

DNS Profile の設定

まず、NSX ALB がホストすべきドメインを Profile として構成します。

[Templates] -> [Profiles] -> [IPAM/DNS Profiles] のページまで進み、右上の [CREATE] のボタンを押して、[DNS Profile] を選択します。

[Name] に、この Profile の名前を設定し、[Domain Name] の部分に、NSX ALB がホストすべきドメイン (の候補) を設定します。
ここでは TTL をデフォルト値のまま、[Save] しています。
Screen Shot 2022-11-18 at 23.31.18.png

DNS Virtual Service の作成

実際に、DNS 用の Virtual Service (VS) を作成していきます。

[Applications] -> [Dashboard] のページまで進み、[CREATE VIRTUAL SERVICE] から [Advanced Setup] で、VS 作成ウィザードを開始します。

[Name] に、この VS の名前を設定し、[Profiles] -> [Application Profile] において [System-DNS] を選択します。
そして、[Service Port] -> [Services] の部分のポート番号が、自動で 53 になっていることを確認します。
Screen Shot 2022-11-19 at 0.39.14.png

[VIP Address] -> [VS VIP] の部分では、[Create VS VIP] から、VS VIP の作成ウィザードを開始します。

[Name] の部分は自動生成されたもので、特に問題無ければ、そのままで構いません。
Screen Shot 2022-11-19 at 0.21.06.png

まずは、[VIPs] の [ADD] ボタンから、VIP を指定していきます。

[IPv4 Address] として、DNS 用の VS が持つべき IP を指定します。
Screen Shot 2022-11-19 at 0.23.21.png

[Placement Network] の部分は、VS が配置されるべきネットワークを指定します。
Screen Shot 2022-11-19 at 0.30.21.png

そして、それぞれ [SAVE] を実行し、下記の画面まで戻って来たら、DNS の部分を指定していきます。
Screen Shot 2022-11-19 at 0.32.22.png

ここでは、VS 名を DNS 用の VS のホスト名として指定しています。
Screen Shot 2022-11-19 at 0.33.17.png

ここまでの内容が [SAVE] できたら、下記の画面まで戻って来ます。
Screen Shot 2022-11-19 at 0.39.14.png

[Pool] の部分はオプションですが、設定することで、NSX ALB でホストしないレコードに関しては、Pool のメンバーに登録された DNS サーバーに名前解決を転送することができます。

ここでは、Health Monitor として [System-DNS] を指定しつつ、
Screen Shot 2022-11-19 at 0.42.32.png

172.19.31.254 という DNS サーバー (実体は DNS Forwarder) を Pool メンバーとして設定しています。
Screen Shot 2022-11-19 at 0.41.50.png

[Advanced] 設定の画面では、利用する Service Engine Group を忘れず、指定してください。
Screenshot 2023-01-13 at 18.20.52.png

その他は、DNS 用 VS 特有の設定としては、[Static DNS Records] の画面で、静的な DNS レコードを設定することも可能です。
Screen Shot 2022-11-19 at 0.46.43.png

DNS Service の有効化

作成した VS 上での DNS Service を有効化します。

[Administration] -> [Settings] -> [DNS Service] と進み、作成した DNS 用の VS を設定します。
Screen Shot 2022-11-19 at 0.55.35.png

ここまでで、基本的な設定は完了しており、VS の VIP 上で、DNS サーバーが動作しています。

動作確認

構成した VS を DNS サーバーとして指定し、名前解決ができることを確認します。

まずは、VS 自身に対する名前解決を確認します。

$ nslookup dns01.ako.test 172.19.31.230
Server:		172.19.31.230
Address:	172.19.31.230#53

Name:	dns01.ako.test
Address: 172.19.31.230

もし、静的な DNS レコードを登録していれば、それに対する名前解決を確認しても良いと思います。

また、オプションとして紹介した機能として、Pool メンバーに上位 DNS サーバーを登録していれば、NSX ALB がホストしてないドメインについては、その DNS にリクエストを転送することができるはずです。
その場合、コマンド応答の Non-authoritative answer という部分で、リクエストが転送されたことが確認できます。

$ nslookup google.com 172.19.31.230
Server:		172.19.31.230
Address:	172.19.31.230#53

Non-authoritative answer:
Name:	google.com
Address: 142.250.189.238
Name:	google.com
Address: 2607:f8b0:4005:80e::200e

参考ドキュメント

今回の内容は、公式ドキュメントとしては、下記で解説されています。

1
0
3

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
1
0