2.8.4. ローカル DNS サーバー

CDK は、オフラインの使用のために DNS サーバーを提供し、テスト中に DNS レコードを上書きする可能性があります。これにより、インターネットなしで OpenShift ルートにアクセスできます。

注記

DNS サーバーはプロファイルに固有のものです。

DNS サーバーの起動は、以下のように実行できます。

$ minishift dns start

DNS サーバーを起動したら、このネームサーバーを使用するようにデバイス設定を設定する必要があります。start コマンドには、オフラインでの使用を入力したときに使用できる一時的なオプションが表示されます。

注記

現在の実装では、サーバーを起動し、ホスト設定に必要な変更を手動で変更する必要があります。DNS 設定は永続的ではなく、デバイスのネットワーク状態が変更するとリセットされる可能性があります。

DNS サーバーの停止は、以下のように実行できます。

$ minishift dns stop

DNS サーバーの状態を取得するには、次のコマンドを実行します。

$ minishift dns status

2.8.4.1. macOS のローカル DNS セットアップ

最新バージョンの macOS はオフラインモードで DNS クエリーを送信せず、CDK からローカル DNS サーバーを使用するプロセスは、他のオペレーティングシステムよりも多く関与します。

2.8.4.1.1. tap デバイスの有効化

/devtap デバイスが存在するかどうかを確認します。

$ ls /dev | grep tap

tap デバイスがない場合は、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>	1
<dict>
    <key>DNS</key>
    <dict />
    <key>IPv4</key>
    <dict>
        <key>Addresses</key>
        <array>
            <string>10.10.90.1</string>		2
        </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>			3
        <key>Hardware</key>
        <string>Ethernet</string>
        <key>Type</key>
        <string>Ethernet</string>
        <key>UserDefinedName</key>
        <string>MiniTap</string>		4
    </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>			5
</dict>
1
これは、ネットワークサービスの UUID です。この値は、uuidgen の出力に置き換えます。
2
ネットワークサービスの IP アドレスです。
3
使用する /dev/tap デバイスです。
4 5
ネットワークサービスの名前です (Network Preferences GUI に表示されます)。
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>	1
    </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>				  1
        <dict>
            <key>__LINK__</key>
            <string>/NetworkServices/D16F22CE-6DDE-4E63-837C-E16538EA5CCB</string>2
        </dict>
    </dict>
1
MiniTap サービスの UUID です。
2
この UUID は、MiniTap サービスの UUID に置き換えます。

macOS を再起動すると、ネットワーク設定 GUI に MiniTap サービスが表示されるはずです。このサービスは切断されます。有効にするには、以下のコマンドを実行します。

$ exec 4<>/dev/tap0			1
$ ifconfig tap0 10.10.90.1 255.255.0.0  2 3
$ ifconfig tap0 up			4
1 2 4
このデバイスを、MiniTap サービスで使用する /dev/tap デバイスに置き換えます。
3
IP アドレスは、MiniTap サービス定義の IP アドレスと同じでなければなりません。
2.8.4.1.5. リゾルバー設定の追加

以下の内容で /etc/resolver/nip.io ファイルを作成します。

nameserver <ip_address_of_the_minishfit_vm>
search_order 1