コミュファ光でAT-AR3050Sを使ったIPv4/IPv6デュアルスタック接続

# 背景
自宅で使っているコミュファ光でしばしばDNSのエラーが発生するようになっていました。
Google Chromeのコミュニティではホームゲートウェイの能力不足でクライアントからのDNSのTCPフォールバックリクエストを処理しきれないのが原因では？と[推測されていました](https://support.google.com/chrome/thread/188653227?hl=ja&msgid=201569991)。
コミュファ公式からはクライアントのDNS設定をDHCPで配布されるホームゲートウェイを避け、手動で設定するように[アナウンスされています](https://www.commufa.jp/information/2023/202302092100)。
エラーの回避と学習のため手持ちのルータで@nabeyakiさんの「[コミュファ光でRTX830を使ったIPv4/IPv6デュアルスタック接続](https://qiita.com/nabeyaki/items/25263f35166d9255c4ea)」を試してみました。

# 環境
光電話を使っています。

回線:　コミュファ光 ホーム 1G (プロバイダ一体型)
HGW:　Aterm WH832A
ルータ:　アライドテレシス [AR-3050S](https://www.allied-telesis.co.jp/products/list/router/ar3050s_ar4050s/catalog.html) (Ver.5.5.2-2.3)

# AR3050S側からHGWの管理画面を見に行けるようにしておく
[元記事](https://qiita.com/nabeyaki/items/25263f35166d9255c4ea#rtx%E5%81%B4%E3%81%8B%E3%82%89hgw%E3%81%AE%E7%AE%A1%E7%90%86%E7%94%BB%E9%9D%A2%E3%82%92%E8%A6%8B%E3%81%AB%E8%A1%8C%E3%81%91%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F)ではホームゲートウェイの型番がWH862Aでしたが、WH832Aでもメニュー構成は同じでした。

例）HGW IP: 192.168.0.1
　　AR3050S IP: 192.168.100.1　の場合

HGWの管理画面から　詳細設定　→　IPv4ルーティング設定　→　追加
　宛先IPアドレス:　192.168.100.0/24
　指定方法:　インターフェース
　ゲートウェイ:　192.168.0.250
![スクリーンショット 2023-03-26 13.04.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24148/1d7426c3-50c5-a7f9-763b-11ed29fe0e3c.png)

以下のように結線します。

HGW　(LAN1) --- (eth1) AR3050S (port1.0.8) --- PC

AR3050Sのeth1にIPアドレスを設定します。シリアルケーブルが必要です。
以下の設定後、 PCから http://192.168.0.1/ へアクセスしてHGWの管理画面が表示されるのを確認します。
```
interface eth1
 description HGW_access
 ip address 192.168.0.250/24
```

# ホームゲートウェイの設定
[元記事](https://qiita.com/nabeyaki/items/25263f35166d9255c4ea#%E3%83%9B%E3%83%BC%E3%83%A0%E3%82%B2%E3%83%BC%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A4%E3%81%AE%E8%A8%AD%E5%AE%9A)と同じように設定しました。PPPoEのログインアカウントは開通時の登録案内通知書に記載のものとは異なるためこの方法で取得するしかないようです。

基本設定　→　高度な設定を表示
　接続モード:　要求時接続
　PPPキープアライブ機能:　チェックを外す

詳細設定　→　その他の設定
　PPPoEブリッジ:　チェックを入れる

情報　→　通信情報ログ
　接続時のlogでIDを確認してメモしておく。　*******@v6m00.commufa.jp

# AR3050Sの設定
以下の設定をして、ホームゲートウェイ→AR3050Sの順で再起動すると接続できました。
ホームゲートウェイのPPPoEフリッジ機能に癖がある（？）ようで、何かの条件で前のセッションが残り（？）、CHAPが認証エラーになることがありました。
## PPPoEの設定
パスワードは登録案内通知書のログインパスワードを使用します。
ppp0インタフェースはDHCPv6 PDクライアントでプレフィックスの割り当てをしてもらいます。
vlan1インタフェースはLAN側で使用します。
コミュファから割り当てられたプレフィックスに::1を付け足してIPv6アドレスを作り、それを付与します。
さらにOフラグ付きでルータを広告するようにします。
```
interface eth1
 description HGW_access                                                         encapsulation ppp 0
 ip address 192.168.0.250/24
 ipv6 enable
!
interface ppp0
 description Commufa
 ppp ipcp dns request
 keepalive
 ip address negotiated
 ppp username *******@v6m00.commufa.jp
 ppp password ********
 ipv6 enable
 ipv6 dhcp client pd Commufa default-route-to-server
 ip tcp adjust-mss pmtu
 ipv6 tcp adjust-mss pmtu
!
interface vlan1
 ip address 192.168.100.1/24
 no ipv6 nd suppress-ra
 ipv6 nd other-config-flag
 ipv6 address Commufa ::1/64
```
## デフォルトルートの設定
IPv4／IPv6ともppp0インタフェースをデフォルトルートにします。
```
ip route 0.0.0.0/0 ppp0
ipv6 route ::/0 ppp0
```

## フィルター設定
ARシリーズではIPトラフィックフローの開始・終了を認識し、これに応じて動的なパケットフィルタリングを行うステートフルインスペクションは「ファイアウォール」の機能で設定します。
```
zone ipv4-internal
 network dhcp
  ip subnet 0.0.0.0/0 interface vlan1
 network lan
  ip subnet 192.168.0.0/24 interface eth1
  ip subnet 192.168.100.0/24 interface vlan1
!
zone ipv4-internet
 network wan
  ip subnet 0.0.0.0/0 interface ppp0
  host ppp0
   ip address dynamic interface ppp0
!
zone ipv6-internal
 network lan
  ipv6 subnet ::/0 interface vlan1
  host vlan1
   ipv6 address dynamic interface vlan1
!
zone ipv6-internet
 network wan
  ipv6 subnet ::/0 interface ppp0
  host ppp0
   ipv6 address dynamic interface ppp0
!
application dhcp
 protocol udp
 dport 67 to 68
!
application dhcpv4
 protocol udp
 dport 67 to 68
!
application dhcpv6
 protocol udp
 dport 546 to 547
!
application icmpv6
 protocol ipv6-icmp
!
firewall
 rule 10 permit dhcpv4 from ipv4-internal.dhcp to ipv4-internal.dhcp
 rule 20 permit any from ipv4-internal.lan to ipv4-internal.lan
 rule 30 permit any from ipv4-internal.lan to ipv4-internet
 rule 40 permit any from ipv4-internet.wan.ppp0 to ipv4-internet
 rule 100 permit any from ipv6-internal to ipv6-internal
 rule 110 permit any from ipv6-internal to ipv6-internet
 rule 120 permit any from ipv6-internet.wan.ppp0 to ipv6-internet
 rule 130 permit icmpv6 from ipv6-internet to ipv6-internet.wan.ppp0
 rule 140 permit dhcpv6 from ipv6-internet to ipv6-internet.wan.ppp0
 protect
```
## DNSの設定
ルータがDNSリクエストを受け付けるようにします。これで問題が解決するはずです。
キャッシュの機能も有効にします。
```
ip dns forwarding
ip dns forwarding cache size 10000 timeout 1800
```
## 最終的なconfig
[一部抜粋（ほぼ全て）](https://gist.github.com/kudarisenmon/94854b659c70ddb9f32698a8c4fe9962)

# 同時に光電話は使えるのか？
AR3050からPPPoEを接続した状態でも光電話は使用できます。音声はPPPoE以外の方法で流れるのでしょう。
ホームゲートウェイのランプは「光電話」が緑点灯、「インターネット」が緑点灯です。

# ホームゲートウェイ内蔵のWi-Fiアクセスポイントは使えるのか？
内蔵のWi-Fiアクセスポイントは使っていないのでわかりません。

# 参考
AT-AR2050V、AT4050Sでも同じ設定で動くと思います。AT-AR1050V、AR2010Vでもたぶんまま動くと思います。
富士通 Si-R Gシリーズ、NEC　IXシリーズでも試してみたいです。どなたか譲ってください。

https://qiita.com/nabeyaki/items/25263f35166d9255c4ea

https://professionalipv6.booth.pm/items/913273