Logo address

Aterm WH382A

2015/09/10
2015/12/12 改定
2016/03/28 追加

基本情報

Aterm WH382A はコミュファ光を契約すると貸与されるルーターである。

配線

配線

富士アクセス == 富士通
らしい
この ONU は FUJITSU Network FA2132 GE-PON ONU らしい
http://jp.fujitsu.com/telecom/carrier/products/lineup/a-gepon/spec_2132.html
http:fa2232_ge-pon.pdf

初等的な使い方

普通の家庭では、設定の変更をしない

殆どの家庭はシングルセグメントである。つまり、コミュファから与えられたルーター以外にはルーターは存在しない構成である。この場合には、何もしなくても、物理的配線さえすれば IPv6 で接続される。

ルーターが他にあった場合には、そのルーターをブリッジモードにするのが良い。そうすればシングルセグメントになる。家庭環境でシングルセグメントにしない理由は無い。ネットワークの論理構成がシンプルになり、設定もまたシンプルになる。シングルセグメントがいろいろな理由で一番使いやすい。

接続先設定

筆者の場合、ここでハマったので書いておく。
IPv6 接続ができないのだ。
ルーターのステータスランプは緑点滅で、これは「トライ中」を示している。またルーターの
情報 → 現在の状態 → 接続状態 → IPv6接続状態

IPv6インターネット未接続(IPv6CPタイムアウト)
となっている。

恥を忍んでコミュファに電話で相談。30年以上もコンピュータを使っているが、分からなくて他人に聞いたのは初めてである。
ルーターのリモート診断機能を ON にして、診断してもらったが、僕が自分で「接続先の設定」を設定したのが悪かったらしい。ここは空欄にしてルーターをリセットすると、自動的に設定されるとの説明である。(マニュアルにはこんなことは書かれていなかったぞ)

基本設定 → 接続先設定
普通の家庭では、一切の設定無しで、配線さえすれば普通のレベルでは使えるようになっている。コミュファから貸し出された状態では、ここは空欄になっていたとのことである。

僕が「ホーム1Gセレクト」からの切り替えでなかったなら、この問題に気付いたであろう。しかし、僕の場合には、この欄には Biglobe への接続情報が書かれていたのである。だから書き換えるのは(心情として)当然である。

なお、個々の端末レベル(例えば Macbook)で IPv6 が働いていない現象があったが、これは端末のバグの可能性が高い。筆者の場合リブートで解決した。

なお、この図の接続先設定はインターネット接続にコミュファではない ISP を使っている場合に設定する。その仕組みは PPPoE による。(そのために、ルーターによっては PPPoE と書かれている)

他方では Aterm WH382A には

詳細設定 → その他の設定 → PPPoEブリッジ
があるので紛らわしい。通常は(特殊なニーズが無い限り)「使用しない」にする。その場合、
情報 → 現在の状態 → PPPoEブリッジ使用状態
は「未使用」になる。

ここでの PPPoE ブリッジとは、ルータの NAT 機能を使わないで、直接 WAN 側のアドレスで通信する機能らしい。 「PPPoE 対応のゲーム機を接続できます」とある。
ルーターの「現在の状態」の意味は、現在PPPoEブリッジを利用している端末の有無を示しているらしい。接続はクライアント側から行う。「PPPoEブリッジを使用する」は端末に PPPoE ブリッジの使用を許す意味らしい。詳しくは次の URL を見れば分かる。

ホームサーバーをインターネットに公開する場合

ここでは1つのホームサーバーをインターネットに公開する場合を扱う。通常のニーズとしては、これで十分であろう。また、設定のシンプルさと使いやすさを優先して、家庭内全体をシングルサブネット構成とする。

DMZホスト

DMZ ホストには公開するサーバーを指定する。IPv4 パケットフィルターでは、DMZ ホストにパケットが届くように設定する。

DMZ ホストの設定例

DMZ ホストは通常は家庭内の他のコンピュータと異なるサブネットに置く。その場合は DMZ ホストから家庭内の他のコンピュータにはアクセスできない。DMZ ホストが陥落して、ボット化した場合にも、他のコンピュータへの影響を最小限に留めるためである。

筆者の場合には使いやすさと設定のシンプルさを優先して、DMZ ホストに特別なサブネットを割り当てていない。サブネットを割り当てると仮想的なマルチセグメントとなる。どこまでもシングルセグメント主義である。(他にも多数のサーバーが動いているからね~~)

DMZホストは1つしか指定できないことに注意しよう。複数指定できた方が便利なこともあるのにね。
そのためにポートマッピングのお世話になることになる。

IPv4 ポートマッピング

2015/12/12 改定

DMZホストは1つしか指定できないので、複数のホストをネットに公開したい場合にはポートマッピングでホストを追加する。

Aterm WH382A の IPv4 ポートマッピングは非常にわかりにくい。
DMZホストの時と同様にパケットフィルタと組み合わせて使う。(つまりポートをマップしただけではパケットを通さないので注意が必要である)

ポートマップを可能にする場所が 3 箇所に分散している。

  1. IPv4 ポートマッピング
  2. IPv4 パケットフィルター (WAN 側)
  3. IPv4 パケットフィルター (LAN 側)
さらに、ポートマッピング に関係する項目が
詳細設定 → その他の設定 → DMZホスト機能
と関係している。

意図通りの動作が得られない場合には、この4箇所をチェックしなくてはならない。
(ここら辺の関係がマニュアルにもネットの中にも見つからない。)

この様に複雑な(ややこしい)やり方を採った理由は理解しにくい。

パケットフィルタ

マユュアルにはパケットフィルターのデフォルト動作が説明されていない。つまり、「IPv6パケットフィルタ設定」を行わないと何が起こるのかが説明されていない。
全部を通す? 全く通さない?
筆者の観察では常識通り、「外から内側は原則ブロック、中から外へは原則通す」となっているようだ。

筆者の場合、次図の設定で意図した結果になっている。

IPv6 パケットフィルターの設定例

これで、TCPポート80とTCPポート443以外はブロックされている。
なお、ICMPv6 は通さないといけない。

LAN 側のパケットフィルターがなぜ必要なのか筆者には理解できない。

静的ルーティング

LAN が複数のセグメントから構成されている場合の設定。
我が家はシングルセグメント。(この方が使いやすい)

DNSv4 ルーティング

これもシングルセグメントでは設定しない。

ネットの記事から

コミュファ Aterm に関して気づいたネットの記事。

現在のとルーターの型番が違う。(Aterm WH382A は 2014/04 のモデル)
読者に誤解を与えると思うので、コメントを追加する。

ここで指摘されている問題は Aterm WH382A に関しては存在しない。

選択メニュー「高度な設定を表示」は気づきにくい

Issues

2015/09/10 DNS

DNS

筆者は自前の DNS を運用している。理由は、LAN 内のホストへ名前でアクセスしたいからだ。
そして不思議な現象に出会った。
時々、DNS の応答が極端に遅くなるのだ。

dig でホスト hebe.local の IPv6 アドレスを調べる時の正常な結果は

-bash$ dig hebe.local aaaa

; <<>> DiG 9.8.3-P1 <<>> hebe.local aaaa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12782
;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;hebe.local.			IN	AAAA

;; ANSWER SECTION:
hebe.local.		3600	IN	AAAA	2402:6b00:22cd:bf80::6

;; Query time: 7 msec
;; SERVER: 192.168.0.6#53(192.168.0.6)
;; WHEN: Mon Sep  7 18:24:18 2015
;; MSG SIZE  rcvd: 56
DNS サーバーのアドレスは 192.168.0.6 で、ちゃんと hebe.local の IPv6 アドレス
2402:6b00:22cd:bf80::6
を返している。

ところがブラウザが応答に手間取っている時に dig を実行すると、

-bash$ dig hebe.local aaaa

; <<>> DiG 9.8.3-P1 <<>> hebe.local aaaa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 1351
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;hebe.local.			IN	AAAA

;; AUTHORITY SECTION:
.			72700	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2015090700 1800 900 604800 86400

;; Query time: 124 msec
;; SERVER: 2402:6b00:22cd:bf80:1266:82ff:fe0c:ed18#53(2402:6b00:22cd:bf80:1266:82ff:fe0c:ed18)
;; WHEN: Mon Sep  7 18:22:43 2015
;; MSG SIZE  rcvd: 103

hebe.local の IPv6 アドレスが採れない。しかも、問い合わせた DNS サーバーのアドレスは

2402:6b00:22cd:bf80:1266:82ff:fe0c:ed18
で、これはルーター(Aterm)のアドレスである!

この現象は Macbook の DNS の表示によっても裏付けるられる。

Macbook の DNS の表示
つまり、ルーターもまた DNS サーバーになっているのである。hebe.local の IP アドレスをルーターに問い合わせると、当然失敗する。

ルーターの DHCP は OFF に設定されている。また筆者の DHCP サーバーでは DNS として 192.168.0.6 のみが指定されている。

どうやら、この現象は IPv6 の RA (Router Advertisement) と関係しているらしい。
IPv6 では DHCP に頼らずともルーターを自動的に探すメカニズム(RA)が存在する。そしてついでに DNS 情報もルーターから貰うことができるらしい(option)。Aterm にはこれを禁止するオプションが無い。そこで次図のように設定した。

図1: Aterm の DNS 設定
これでどうやら問題は収まったようであるが...

NO NO NO!
まだ起こる。この問題は Yosemite の WiFi の不安定性が関係している可能性がある。
現在、ルーター(192.168.0.1)へ ping し続けて、WiFi 問題を確認中。

時々 Request timeout が発生している...

Request timeout for icmp_seq 4469
64 bytes from 192.168.0.1: icmp_seq=4470 ttl=255 time=4.190 ms
64 bytes from 192.168.0.1: icmp_seq=4471 ttl=255 time=5.282 ms
64 bytes from 192.168.0.1: icmp_seq=4472 ttl=255 time=6.232 ms
64 bytes from 192.168.0.1: icmp_seq=4473 ttl=255 time=4.329 ms
Request timeout for icmp_seq 4474
Request timeout for icmp_seq 4475
64 bytes from 192.168.0.1: icmp_seq=4476 ttl=255 time=4.571 ms
64 bytes from 192.168.0.1: icmp_seq=4477 ttl=255 time=5.618 ms
64 bytes from 192.168.0.1: icmp_seq=4478 ttl=255 time=4.303 ms

関係するネットの記事:

DNS (続)

2015/10/02

Aterm WH382A に関してさらに不思議なことが見つかった。
まず筆者の環境を説明する。

DNS 設定で、プライマリ DNS として 192.168.0.6 を設定したと書いたが、どうやらこの設定が働いていない。

働いていないことは次の事実から推定される。

dig のマニュアルによれば、Mac から

dig me.nyx.link
を実行すれば /etc/resolv.conf に基づいて、利用する DNS サーバーが決定される。ここには 192.168.0.6 が設定されている。
他方
dig @router.local me.nyx.link
を実行すると router を DNS サーバーとして利用する。

me.nyx.link は家庭の中で動いている Web サーバーであり、ローカル DNS サーバー では 192.168.0.6 として IP アドレスが設定されている。
他方 me.nyx.link は、インターネットレベルではグローバルアドレスとなっている。

さて、図1の設定は、クライアントが DNS の問い合わせを 192.168.0.6 に問い合わせても 192.168.0.1 に問い合わせても同じ結果が得られることを期待したのであるが...

dig @router.local me.nyx.link
だとグローバルアドレスとなっている! そしてローカル DNS サーバーにはアクセス記録が残らない。

結局考えられるのは、図1のようにローカル DNS サーバーを設定しても無効になっていて、その場合 ISP から提供される DNS サーバーが利用されると言うことだろう。

Aterm WH382A のこの仕様は初心者向けの保護機能なのだろうが、僕のケースでは困る。
クライアントが名前解決に 192.168.0.6 のみを利用してくれれば問題は無いのだが、ローカルホストの名前解決に 192.168.0.1 を使われると困るのだ。

IPv4 HGW

2016/03/28

Aterm に関して困ったことがある。Aterm だけではなくて、ルーターの通常の仕様かも知れないがメーカーさんはよく考えて欲しい。

me.nyx.link は家庭の中で動いている Web サーバーであり、ローカル DNS サーバー では 192.168.0.6 として IP アドレスが設定されている。
他方 me.nyx.link は、インターネットレベルではグローバルアドレスとなっており、現在の IPv4 アドレスは 115.36.102.252 である。従って LAN の中では 192.168.0.6 でアクセスし、LAN の外からは 115.36.102.252 でアクセスすることになる。LAN の外からは 192.168.0.6 でアクセスできないことはローカルアドレスの定義から自明であるが、LAN の中から 115.36.102.252 でアクセスするとどうなるか?

Aterm だと奇怪にもルーターにアクセスしてしまう! グローバルアドレスなので、ルーターを通ろうとするのは当然なのだが... しかしそのパケットを自分へのアクセスだと勘違いしているのはバグだとしか言いようがない。そのために、me.nyx.link の名前で LAN の中からはアクセスできないのだ。もっとも Web のブラウザに関しては幸いなことに IPv6 → IPv4 の順でアクセスしてくれる。我が家の LAN では IPv6がサポートされているので、これだとルーターを通らずに直接 me にパケットが届くのである。もしも IPv4 だけの設定がされていたら LAN の中からは me.nyx.link の名前では me にアクセスできないであろう。

me の LAN の中でのドメイン名は me.local である。だから me.localme.nyx.link を使い分ければ良いではないかとの向きもあろうが、そう言う訳にも行かないことがある。例えば Web ページの中で http://me.nyx.link のアドレスが含まれる場合があるからである。
Web ブラウザの場合は、IPv6 優先なので1、まだタチが良い。他のアプリの場合には必ずしもそうではない。まだまだ IPv4 優先の状況なのである。

この問題はルーターの設計を工夫すれば簡単に解決する。LAN の中で宛先がグローバルアドレスの場合には、必ずルーターを通る。ルーターはそのアドレスが WAN 側から見て自分宛のものであれば、元に戻してくれればよい。WAN 側からそのパケットが来たかのように。そうすれば、ポートマッピングを経て、正しい IPv4 アドレスに変換される。


注1: 実際には必ずしもそうでもない。