2.8.4. ローカル DNS サーバー
CDK は、オフラインの使用のために DNS サーバーを提供し、テスト中に DNS レコードを上書きする可能性があります。これにより、インターネットなしで OpenShift ルートにアクセスできます。
DNS サーバーはプロファイルに固有のものです。
DNS サーバーの起動は、以下のように実行できます。
minishift dns start
$ minishift dns start
DNS サーバーを起動したら、このネームサーバーを使用するようにデバイス設定を設定する必要があります。start コマンドには、オフラインでの使用を入力したときに使用できる一時的なオプションが表示されます。
現在の実装では、サーバーを起動し、ホスト設定に必要な変更を手動で変更する必要があります。DNS 設定は永続的ではなく、デバイスのネットワーク状態が変更するとリセットされる可能性があります。
DNS サーバーの停止は、以下のように実行できます。
minishift dns stop
$ minishift dns stop
DNS サーバーの状態を取得するには、次のコマンドを実行します。
minishift dns status
$ minishift dns status
2.8.4.1. macOS のローカル DNS セットアップ
最新バージョンの macOS はオフラインモードで DNS クエリーを送信せず、CDK からローカル DNS サーバーを使用するプロセスは、他のオペレーティングシステムよりも多く関与します。
2.8.4.1.1. tap デバイスの有効化
/dev に tap
デバイスが存在するかどうかを確認します。
ls /dev | grep tap
$ ls /dev | grep tap
tap
デバイスがない場合は、tuntap パッケージをインストールします。
brew install tuntap
$ brew install tuntap
2.8.4.1.2. tap デバイスを使用したネットワークサービスの作成
root で /Library/Preferences/SystemConfiguration/preferences.plist ファイルを開き、<key>NetworkServices</key>
要素の下に以下の XML を追加します。
<key>D16F22CE-6DDE-4E63-837C-E16538EA5CCB</key> <dict> <key>DNS</key> <dict /> <key>IPv4</key> <dict> <key>Addresses</key> <array> <string>10.10.90.1</string> </array> <key>ConfigMethod</key> <string>Manual</string> <key>SubnetMasks</key> <array> <string>255.255.0.0</string> </array> </dict> <key>IPv6</key> <dict> <key>ConfigMethod</key> <string>Automatic</string> </dict> <key>Interface</key> <dict> <key>DeviceName</key> <string>tap0</string> <key>Hardware</key> <string>Ethernet</string> <key>Type</key> <string>Ethernet</string> <key>UserDefinedName</key> <string>MiniTap</string> </dict> <key>Proxies</key> <dict> <key>ExceptionsList</key> <array> <string>*.local</string> <string>169.254/16</string> </array> <key>FTPPassive</key> <integer>1</integer> </dict> <key>SMB</key> <dict /> <key>UserDefinedName</key> <string>MiniTap</string> </dict>
<key>D16F22CE-6DDE-4E63-837C-E16538EA5CCB</key>
<dict>
<key>DNS</key>
<dict />
<key>IPv4</key>
<dict>
<key>Addresses</key>
<array>
<string>10.10.90.1</string>
</array>
<key>ConfigMethod</key>
<string>Manual</string>
<key>SubnetMasks</key>
<array>
<string>255.255.0.0</string>
</array>
</dict>
<key>IPv6</key>
<dict>
<key>ConfigMethod</key>
<string>Automatic</string>
</dict>
<key>Interface</key>
<dict>
<key>DeviceName</key>
<string>tap0</string>
<key>Hardware</key>
<string>Ethernet</string>
<key>Type</key>
<string>Ethernet</string>
<key>UserDefinedName</key>
<string>MiniTap</string>
</dict>
<key>Proxies</key>
<dict>
<key>ExceptionsList</key>
<array>
<string>*.local</string>
<string>169.254/16</string>
</array>
<key>FTPPassive</key>
<integer>1</integer>
</dict>
<key>SMB</key>
<dict />
<key>UserDefinedName</key>
<string>MiniTap</string>
</dict>
2.8.4.1.3. ネットワークサービスを ServiceOrder アレイに追加
/Library/Preferences/SystemConfiguration/preferences.plist ファイルで <key>ServiceOrder</key>
要素を見つけます。root で、MiniTap ネットワークサービスの UUID をこのアレイに追加します。
<key>ServiceOrder</key> <array> <string>06BFF3C7-13DA-420F-AE9C-B036401184D7</string> <string>58231F56-CA25-4D41-930F-46D83CA07BFE</string> <string>304203B0-AC87-459F-9761-C2799EEBB2E3</string> <string>8655D244-C6E7-4CC0-BF06-BB18F9C3BB85</string> <string>3C26FB9D-D918-4B79-9C7B-ADECD8EFE00F</string> <string>D16F22CE-6DDE-4E63-837C-E16538EA5CCB</string> </array>
<key>ServiceOrder</key>
<array>
<string>06BFF3C7-13DA-420F-AE9C-B036401184D7</string>
<string>58231F56-CA25-4D41-930F-46D83CA07BFE</string>
<string>304203B0-AC87-459F-9761-C2799EEBB2E3</string>
<string>8655D244-C6E7-4CC0-BF06-BB18F9C3BB85</string>
<string>3C26FB9D-D918-4B79-9C7B-ADECD8EFE00F</string>
<string>D16F22CE-6DDE-4E63-837C-E16538EA5CCB</string>
</array>
- 1
- MiniTap ネットワークサービスの UUID です。
2.8.4.1.4. ネットワークサービスを Service ディクショナリーに追加
/Library/Preferences/SystemConfiguration/preferences.plist ファイルで <key>Service</key>
要素を見つけます。root で以下の XML をそのディクショナリーに追加します。
<key>Service</key> <dict> <key>06BFF3C7-13DA-420F-AE9C-B036401184D7</key> <dict> <key>__LINK__</key> <string>/NetworkServices/06BFF3C7-13DA-420F-AE9C-B036401184D7</string> </dict> <key>304203B0-AC87-459F-9761-C2799EEBB2E3</key> <dict> <key>__LINK__</key> <string>/NetworkServices/304203B0-AC87-459F-9761-C2799EEBB2E3</string> </dict> <key>3C26FB9D-D918-4B79-9C7B-ADECD8EFE00F</key> <dict> <key>__LINK__</key> <string>/NetworkServices/3C26FB9D-D918-4B79-9C7B-ADECD8EFE00F</string> </dict> <key>58231F56-CA25-4D41-930F-46D83CA07BFE</key> <dict> <key>__LINK__</key> <string>/NetworkServices/58231F56-CA25-4D41-930F-46D83CA07BFE</string> </dict> <key>8655D244-C6E7-4CC0-BF06-BB18F9C3BB85</key> <dict> <key>__LINK__</key> <string>/NetworkServices/8655D244-C6E7-4CC0-BF06-BB18F9C3BB85</string> </dict> <key>D16F22CE-6DDE-4E63-837C-E16538EA5CCB</key> <dict> <key>__LINK__</key> <string>/NetworkServices/D16F22CE-6DDE-4E63-837C-E16538EA5CCB</string> </dict> </dict>
<key>Service</key>
<dict>
<key>06BFF3C7-13DA-420F-AE9C-B036401184D7</key>
<dict>
<key>__LINK__</key>
<string>/NetworkServices/06BFF3C7-13DA-420F-AE9C-B036401184D7</string>
</dict>
<key>304203B0-AC87-459F-9761-C2799EEBB2E3</key>
<dict>
<key>__LINK__</key>
<string>/NetworkServices/304203B0-AC87-459F-9761-C2799EEBB2E3</string>
</dict>
<key>3C26FB9D-D918-4B79-9C7B-ADECD8EFE00F</key>
<dict>
<key>__LINK__</key>
<string>/NetworkServices/3C26FB9D-D918-4B79-9C7B-ADECD8EFE00F</string>
</dict>
<key>58231F56-CA25-4D41-930F-46D83CA07BFE</key>
<dict>
<key>__LINK__</key>
<string>/NetworkServices/58231F56-CA25-4D41-930F-46D83CA07BFE</string>
</dict>
<key>8655D244-C6E7-4CC0-BF06-BB18F9C3BB85</key>
<dict>
<key>__LINK__</key>
<string>/NetworkServices/8655D244-C6E7-4CC0-BF06-BB18F9C3BB85</string>
</dict>
<key>D16F22CE-6DDE-4E63-837C-E16538EA5CCB</key>
<dict>
<key>__LINK__</key>
<string>/NetworkServices/D16F22CE-6DDE-4E63-837C-E16538EA5CCB</string>
</dict>
</dict>
macOS を再起動すると、ネットワーク設定 GUI に MiniTap サービスが表示されるはずです。このサービスは切断されます。有効にするには、以下のコマンドを実行します。
exec 4<>/dev/tap0 ifconfig tap0 10.10.90.1 255.255.0.0 ifconfig tap0 up
$ exec 4<>/dev/tap0
$ ifconfig tap0 10.10.90.1 255.255.0.0
$ ifconfig tap0 up
2.8.4.1.5. リゾルバー設定の追加
以下の内容で /etc/resolver/nip.io
ファイルを作成します。
nameserver <ip_address_of_the_minishfit_vm> search_order 1
nameserver <ip_address_of_the_minishfit_vm>
search_order 1