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