Mac で IP を手動設定するときは必ず DNS を指定する
Mac ではインターフェイスに DNS の指定をしないと、インターフェイスに設定したデフォルトルートが有効になりません。
IPの疎通確認をする際に同セグメントには通信できるが、別セグメントには通信できないという事象が発生します。
検証
以下の環境で解説します。
~ % sw_vers ProductName: Mac OS X ProductVersion: 10.15.4 BuildVersion: 19E287 ~ %
次のように IP, Default GW, DNS を手動設定します。
Mac のデフォルトルートを確認します。
~ % route -n get default route to: default destination: default mask: default gateway: 192.168.1.254 interface: en0 flags: <UP,GATEWAY,DONE,STATIC,PRCLONING> recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire 0 0 0 0 0 0 1500 0 ~ %
設定したデフォルトルートがMac に反映されていることがわかります。
続いてDNSの設定を削除して、デフォルトルートを確認してみます。
~ % route -n get default route: writing to routing socket: not in table ~ %
設定は行っているのにも関わらず、デフォルトルートが Mac に反映されていません。この状態から ping を実行してみます。
~ % ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1): 56 data bytes ping: sendto: No route to host ^C --- 1.1.1.1 ping statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss ~ %
ping: sendto: No route to host
:宛先へのルートがないことを示すメッセージが表示されました。
まとめ
Mac で IP を手動設定する際の注意点についてまとめました。Mac をネットワークの検証に使用するときは、DNS の指定を忘れないようにしましょう。