v4v6移行が終わらない
問題文
概要
おお久しぶり!!
君が居ないあいだに社内ネットワークを IPv6 only にしておいたんだ。外向きのIPアドレスは v4 しかないけどルーターで NAT64 をしているからインターネットにはつながるようになっているよ。
ただ名前解決ができないのと社内ネットワークにある Web に繋がらなくなっちゃったんだ、これ以上は手が付かないから君がなんとかしてくれないかな?
初期状態
ubuntu-1からcurl https://blog.icttoracon.net/をしてもつながらないubuntu-1からcurl http://[2403:bd80:c000:900::1]/をしてもつながらない
終了状態
ubuntu-1からcurl https://blog.icttoracon.net/をするとステータスコード200のレスポンスが返ってくる。ubuntu-1からcurl http://[2403:bd80:c000:900::1]/をするとステータスコード200のレスポンスが返ってくる。
配点
ubuntu-1からcurl https://blog.icttoracon.net/をするとステータスコード200のレスポンスが返ってくる- 80%
ubuntu-1からcurl http://[2403:bd80:c000:900::1]/をするとステータスコード200のレスポンスが返ってくる- 20%
技術的な解説
unbound と Apache2 の設定が適切になされていないことで起こる問題です。
unbound
dns64-prefix は ubuntu-router の JOOL の設定を参照する必要があります。これを確認すると dns64-prefix が 64:ff9b::/96 で有ることがわかります。
また、blog.icttoracon.net ではデュアルスタック方式を採用しているおり dns64-synthall が no に設定されていると、blog.icttoracon.net にもともと設定されている IPv6 アドレスが AAAA レコードとして名前解決されるため、 ubuntu-1 からアクセスすることができなくなってしまいます。
さらに、この dns-1 のサーバーは NAT64 ネットワーク内に設置されているために forward-addr が 8.8.8.8 になっていると通信が行えません。forward-addr: 64:ff9b::808:808 に変更する必要があります。
Apache2
IPv6 アドレスで Listen されていないので1行追記するだけです。
解答例
問題が発生している原因は2つ存在している。1つ目は、unbound に DNS64 の設定が正しくされていない点である。これを解決するために /etc/unbound/unbound.conf.d/dns.conf を以下のように変更する。
server:
verbosity: 2
pidfile: "/var/run/unbound.pid"
use-syslog: yes
module-config: "dns64 iterator"
dns64-prefix: 64:ff9b::/96
dns64-synthall: yes
interface: ::0
access-control: ::0/0 allow
forward-zone:
name: "."
forward-addr: 64:ff9b::808:808これにより https://blog.icttoracon.net/ にアクセスできるようになる。
2つ目の原因は ubuntu-router の Web (Apache2) の Listen Address が適切に設定されていないことにある。これを解決するために以下の一行を config に追記する。
Listen [::0]:80