首振りDNSの無い環境で、NGNの経路情報サーバにアクセスする

# (追記) 経路情報サーバーのアドレス
下記にある経路情報サーバーのアドレスは古いため、[こちらの記事](https://qiita.com/air-gh/items/173d2e1a7bf3c9939159)もご参照ください。
以下本題。

# NGN
サービス情報サイトの前身のフレッツ・スクウェアの時代から、フレッツ網内のDNSは、インターネットとは別に用意されている。よって、インターネットと同時接続する場合は、DNSを使い分ける必要がある。
YAMAHAのルーターには、これを実現する「[DNS 問い合わせの内容に応じた DNS サーバーの選択](http://www.rtpro.yamaha.co.jp/RT/manual/nvr500/dns/dns_server_select.html)」ができるようになっている。便利。これを[SEILのページ](https://www.seil.jp/blog/2.html)では首振りDNS proxy機能と呼んでいた。(が、既にそのコメントは消えている模様…)

# NGNのDNSを参照する必要があるケース
無料の[フレッツ・v6オプション](https://flets.com/v6option/)だけで使えるケースで思いつくものは…

1. [サービス情報サイト](https://flets.com/square/)を閲覧する
2. ネームを参照してNGN内ホストにアクセスする
3. 経路情報サーバにアクセスする

くらいしか思いつかない。
1.は、AAAAならインターネットのDNSで名前が引ける(後述)ので、NGNのDNSを参照する必要が無い。
2.のネームはまず使うことはない気がする。お友達がいない。
3.も逸般の方だけだとは思うのだが、あるんですよ、時々チェックしたくなることが。

NGN内通信は便利だが、IPv4はPPPoEセッションを1つ消費する。全部IPv6 IPoEでやりたいので、IPv6の経路情報は整備しておきたい。だが、手持ちのルーターは経路情報サーバを用いた自動経路設定には非対応。面倒なので手動設定でいいや。
この記事は、その時のための備忘録。
下記情報は、いずれも執筆時現在、NTT東日本のもの。

# (まず)NGNのDNSサーバーのアドレス
IPv4ではPPPoEのIPCP拡張で、IPv6 IPoEではひかり電話の有無に関わらずDHCPv6で、それぞれ取得できる。(参考:[SEILのページ](https://www.seil.jp/blog/10.html))

## IPv4のDNSサーバーアドレス

```text:SEIL/x86
# show status ppp
Interface: pppoe1
  LCP state: opened
  IPCP state: opened
  IPv6CP state: initial
  BCP state: initial
  LCP negotiated options:
        magic number 0xyyyyyyyy
  IPCP negotiated options:
        address 123.107.xxx.xxx
        primary dns address 123.107.190.6
        secondary dns address 123.107.190.5
  IPv6CP negotiated options:
        none
  BCP negotiated options:
        none
  keepalive: disabled
```

## IPv6のDNSサーバーアドレス

```text:SEIL/x86
# show status dhcp6
========================================
DHCPv6 client: running

----------------------------------------
Interface:          lan1
State:              bound

Client DUID:        xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Server DUID:        xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Server Preference:  0

DNS Servers:        2404:1a8:7f01:b::3
                    2404:1a8:7f01:a::3

SNTP Servers:       2404:1a8:1102::b
                    2404:1a8:1102::a

Last Updated:       2016/08/27 17:09:39
```

# (脱線)サービス情報サイトのDNS
本家によると、[NGNのIPv6では](https://flets.com/next/square/connect/)`flets-east.jp`という名前、[NGNのIPv4では](https://flets.com/next/square/connectv4/)`www.v4flets-east.jp`という名前。

## AAAAレコード
インターネットで引ける。

```text
$ dig @8.8.8.8 flets-east.jp aaaa

; <<>> DiG 9.8.3-P1 <<>> @8.8.8.8 flets-east.jp aaaa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36528
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;flets-east.jp.			IN     	AAAA

;; ANSWER SECTION:
flets-east.jp. 		14804  	IN     	AAAA   	2404:1a8:ff06::1

;; Query time: 47 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Aug 27 16:52:02 2016
;; MSG SIZE  rcvd: 59
```

## Aレコード
インターネットでは引けない。

```text
$ dig @8.8.8.8 www.v4flets-east.jp

; <<>> DiG 9.8.3-P1 <<>> @8.8.8.8 www.v4flets-east.jp
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 22108
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.v4flets-east.jp.  		IN     	A

;; AUTHORITY SECTION:
jp.    			513    	IN     	SOA    	z.dns.jp. root.dns.jp. 1472283004 3600 900 1814400 900

;; Query time: 47 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Aug 27 16:57:25 2016
;; MSG SIZE  rcvd: 84
```

NGNのDNSサーバーなら引ける。

```
$ dig @123.107.190.5 www.v4flets-east.jp

; <<>> DiG 9.8.3-P1 <<>> @123.107.190.5 www.v4flets-east.jp
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30824
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.v4flets-east.jp.  		IN     	A

;; ANSWER SECTION:
www.v4flets-east.jp.   	5209   	IN     	A      	123.107.190.13

;; AUTHORITY SECTION:
v4flets-east.jp.       	5209   	IN     	NS     	ns1.v4flets-east.jp.
v4flets-east.jp.       	5209   	IN     	NS     	ns2.v4flets-east.jp.

;; ADDITIONAL SECTION:
ns1.v4flets-east.jp.   	4969   	IN     	A      	123.107.190.5
ns2.v4flets-east.jp.   	4969   	IN     	A      	123.107.190.6

;; Query time: 12 msec
;; SERVER: 123.107.190.5#53(123.107.190.5)
;; WHEN: Sat Aug 27 17:14:33 2016
;; MSG SIZE  rcvd: 121
```


# (本題)経路情報サーバのDNS
[本家](https://flets.com/pdf/ip-int-flets-3.pdf)によると、`route-info.flets-east.jp`。

```text
$ dig @2404:1a8:7f01:b::3 route-info.flets-east.jp aaaa

; <<>> DiG 9.8.3-P1 <<>> @2404:1a8:7f01:b::3 route-info.flets-east.jp aaaa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43533
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;route-info.flets-east.jp.     	IN     	AAAA

;; ANSWER SECTION:
route-info.flets-east.jp. 60218	IN     	AAAA   	2404:1a8:c020:3::10

;; Query time: 9 msec
;; SERVER: 2404:1a8:7f01:b::3#53(2404:1a8:7f01:b::3)
;; WHEN: Sat Aug 27 17:23:44 2016
;; MSG SIZE  rcvd: 70
```

ちなみに、Aレコードは無いので、IPv6でのみアクセスできる。

```text
$ dig @2404:1a8:7f01:b::3 route-info.flets-east.jp a

; <<>> DiG 9.8.3-P1 <<>> @2404:1a8:7f01:b::3 route-info.flets-east.jp a
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43204
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;route-info.flets-east.jp.     	IN     	A

;; AUTHORITY SECTION:
flets-east.jp. 		7      	IN     	SOA    	ns0a.flets-east.jp. dnsmaster.flets-east.jp. 2124328960 86400 43200 2419200 900

;; Query time: 8 msec
;; SERVER: 2404:1a8:7f01:b::3#53(2404:1a8:7f01:b::3)
;; WHEN: Sat Aug 27 17:24:33 2016
;; MSG SIZE  rcvd: 93
```

# 経路情報サーバから経路情報の入手

[本家](https://flets.com/pdf/ip-int-flets-3.pdf)の通りにアクセス。ググると、2011年、2013年の経路情報は目にしたが、2014年にも更新されている模様。

```text
$ telnet 2404:1a8:c020:3::10 49881
Trying 2404:1a8:c020:3::10...
Connected to 2404:1a8:c020:3::10.
Escape character is '^]'.
GET /v6/route-info HTTP/1.1
Host: route-info.flets-east.jp:49881
Accept: */*
Connection: close

HTTP/1.1 200 OK
Date: Sat, 27 Aug 2016 08:28:27 GMT
Content-Type: text/plain;charset=EUC-JP
Content-Length: 369
Connection: close

0000,2014/01/17 16:24:31
1111,2404:01a8:7e00:0000:0000:0000:0000:0000/40
1211,2404:01a8:0000:0000:0000:0000:0000:0000/32
1212,2001:0c90:0000:0000:0000:0000:0000:0000/33
1311,2408:0210:0000:0000:0000:0000:0000:0000/30
1411,2400:2410:0000:0000:0000:0000:0000:0000/30
1412,2409:0010:0000:0000:0000:0000:0000:0000/30
1413,240b:0010:0000:0000:0000:0000:0000:0000/30
Connection closed by foreign host.
```

# よく考えたら
RTX1200も持ってた。

```text:RTX1200
ipv6 lan3 dhcp service client ir=on
dns service recursive
dns server select 2 dhcp lan3 any flets-east.jp
```

```
$ dig @192.168.100.1 route-info.flets-east.jp aaaa

; <<>> DiG 9.8.3-P1 <<>> @192.168.100.1 route-info.flets-east.jp aaaa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46330
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;route-info.flets-east.jp.     	IN     	AAAA

;; ANSWER SECTION:
route-info.flets-east.jp. 58495	IN     	AAAA   	2404:1a8:c020:3::10

;; Query time: 12 msec
;; SERVER: 192.168.100.1#53(192.168.100.1)
;; WHEN: Sat Aug 27 17:52:21 2016
;; MSG SIZE  rcvd: 70
```

# 次は
経路情報サーバから入手した経路をルーターに自動設定するスクリプトの調査。