悪霊にさいなまれる世界 -The Demon-Haunted World

30代独身機械系技術者が雑記/セキュリティ/資産運用なんかを書きます/PGP・GPG Key:BC884A1C8202081B19A7A9B8AB8B419682B02FF8

RaspberryPiにUnboundを入れたので、IPv4/v6デュアルスタック環境でIPv6のDNSサーバした件

TL;DR. ラズパイのリンクローカルアドレスを指定してやることでIPv6DNSサーバ化に成功したけど、パーミッションの設定がとてもスマートじゃないので今後なんとかしたい。

→2018/05/28:とりあえず解決。ラストに追記

science-as-a-candle-in-the-dark.hatenablog.com

 昨日の続きです。

f:id:scienceasacandleinthedark:20180408193417p:plain

と言うわけで、リンクローカルアドレスを調べてみました。その結果、

  • IPv6に対応した機器は必ずFE80::/10の範囲で一つは持つ
  • MACアドレスから生成される
  • ルータを越えない、名前の通りローカルな通信のためのアドレス

と言うことが判明。早速RaspberryPiでifconfigをかけてみると、確かにそれっぽいアドレスが割り振られてます。これを母艦PCで、IPv6DNSサーバに設定すればいいわけですね。そういうわけで早速試してみました。

f:id:scienceasacandleinthedark:20180409161741p:plain

さぁこれでどうだ。

f:id:scienceasacandleinthedark:20180409162252p:plain

Query refused. はいそうです。Unbound側で許可してるIPアドレスはループバックと192.168.11.0/24だけでした。初歩的なミスですね。母艦PCのIPv6アドレスを許可してやる必要がありますが、当然母艦PCにもリンクローカルアドレスが振られているはずです。そういうわけでunbound.confに次の1行を追加してみます。

access-control: fe80::/10 allow

これでUnboundを再起動して、もう一度チャレンジ。

f:id:scienceasacandleinthedark:20180409162716p:plain

f:id:scienceasacandleinthedark:20180409163036p:plain

思わず昔懐かしのAAを使ってしまいますが、うまく行きました。

と言うわけでこれで万事OK。Problem Solved.です。つかさ先生の次回作にご期待ください。

 

 

本当にfe80::/10をAllowしてて大丈夫なんでしょうか?

「ルータは越えない」とは言っても、我が家のルータはIPv6はブリッジさせる…つまり素通りさせるだけのシロモノ。気がついたらオープンリゾルバになってましたとかそういう悲しいことは避けたい。のでUnbound.confをさらに書き換え。

#access-control: fe80::/10 allow
#MainPC
access-control: fe80::****/128 allow

と、母艦PCのリンクローカルアドレスを直接指定してやりました。正直、すっごく筋の悪い対処法な気がします。PCやタブレットが増えるたびに許可を1行ずつ追加してやらなきゃならないと言う全然スマートさが感じられないアレ。

ま、とりあえず動いてるのでよしとしますが、ここらへんも今後の課題と言うことで。

 

2018/05/28追記:

Wiresharkで流れてくるパケットを眺めてみたりする限り、どうやらfe80::/10をAllowしても大丈夫な模様。そういうわけで

access-control: fe80::/10 allow
#MainPC
#access-control: fe80::****/128 allow

と言うパーミッションに変更。ログとかも一応チェックしましたが、まぁ多分大丈夫でしょう。