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