IPoE 環境で ER-X の内部 DNS を優先する備忘録です.
先日,OCN が IPoE にやっと対応したことと,PPPoE から IPoE へ接続方法を見直したことを書きましたが,
その影響(だと思う)で,ER-X(Ubiquiti edgerouter-X) で運用していた(個人的に必要な自宅に設置してあるネットワーク機器なんかのアドレスを返してくれる)DNS を引けなくなってしまいました.
と言うことで,その対策です.
原因は?
原因は2つです.まず,一つ目は,
最近の OS って,IPv6 と IPv4 の両方の DNS Server の情報がある場合,IPv6 のアドレスを優先してしまう
こと,そして二つ目が,
IPoE になって,DHCPv6 で DNS Server の情報が伝送されるようになった(んじゃないかなと思う)
ことです.
PPPoE から PoE に切り替えただけですから,ER-X の dhcp にはなにも変更を加えていません.したがって,ER-X はきちんと内部 DNS Server (IPv4 のもの)の情報をクライアントに渡してくれていました.しかし,新たに,IPv6 の RA で IPv6 のプロバイダ側アドレスがクライアントにも渡されており,そちらを優先してクライアントが使うので,ローカルの DNS が利用されなくなってしまった,どうもそういうことのようです.
なお,IPv6 のアドレス自動設定については個人的には,
辺りが分かりやすいのでは無いかと思います.
対策は?
であれば,思いつく対策は以下のいずれかでしょう.
- IPv6 の利用を止める
- 必要なクライアントの HOST ファイルに必要な情報を書く
- IPv4 の DNS を優先するようクライアントの設定を変更する
- IPoE の DNS Server のローカルへの伝送を止める
もちろん1と2と3は論外です.せっかく IPv6 が使えるようになったのに今更 IPv4 だけに戻すとかちょっとアレですし,クライアントごとの設定もいくら自宅で台数が少ないとは言え,面倒でやってられません.
と言うことで,4の設定を行うべく ER-X の設定を色々調べてみると……ありますねぇ.DNS の情報を PD 経由で伝送したくないインターフェースに
no-dns
を設定すれば良いようです.
実際には以下のような感じで設定すれば良いようです.
# set interfaces ethernet eth4 dhcpv6-pd no-dns
これで eth4 につながれた機器には DNS 情報が DHCPv6-PD 経由で渡らないみたいです.
しかし,この辺り分かりにくいですねぇ…….これ,IPv6 の仕様が複雑で,どの仕様に従って DNS の情報が受け渡されているのかがすぐには分からないのと,ER-X のマニュアルがイマイチあるんだか無いんだかというのが原因なんですけどね.
この辺り,もう少し整理されて分かりやすくなってくれると助かるなぁ……と思う今日この頃です.
以上!