NURO 光で C841M をルーターとして使う (#1 初期設定編)

# はじめに
今を遡ること 20年くらい前の ISDN 時代に，CISCO 風コマンド体系をサポートした YAMAHA RTA50i をいじったことしかない私が，C841M-4X-JSEC/K9 を自宅用ルーターとして購入し，設定をしたことを記録する記事．Qiita 初投稿です．
<img src="https://network.yamaha.com/var/site/storage/images/_aliases/size_medium/0/2/5/5/15520-10-jpn-JP/rta50i_main.jpg" width="180">　![C841M-4X-JAIS-K9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/0569bf7a-5264-e70b-86d0-41b243c02798.png)

# 前提

## ネットワーク構成図

![2023012501.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/47ae0c72-2fb0-f421-2d97-e567eca75044.jpeg)
<dl>
  <dt>ルーター</dt><dd>CISCO 841M-4X-JSEC/K9</dd></dt>
  <dt>ネットワーク</dt><dd>NURO 光 G2V (最大 2Gbps)</dd></dt>
  <dt>ONU</dt><dd>SYNCLAYER SGP200W</dd></dt>  <dt>クライアント</dt><dd>Wi-Fi アクセスポイント 5台，L2 マネージドスイッチ 3台，スイッチングハブ 3台 (以上すべて Bullalo 製)，PC 6台，スマホ 4台，TV 等その他 IP アドレス付与機器 40台以上
</dl>


## 背景

SYNCLAYER[^1] SGP200W が熱暴走なのか，ちょっと負荷が高くなると 2日に 1回くらいの割合で勝手に再起動してしまい，我慢ならない．

```:4日の間に 3回もリブートしたことを示すログ
2022-08-16 00:33:29 [Critical][構成ログ] 端末:WEB(192.168.1.20),実行結果:Success,種別:Login,Username:admin
2022-08-16 00:38:36 [Critical][構成ログ] 端末:WEB(192.168.1.20),実行結果:Success,種別:Logout,Username:admin
1981-01-01 00:00:13 [Error][アラームログ] アラームID:104001,アラームレベル:エラー,端末リセット 原因:システムが電源投入後にリセットされました, 端末:OTHER
1981-01-01 00:00:12 [Error][アラームログ] アラームID:104001,アラームレベル:エラー,端末リセット 原因:システムが電源投入後にリセットされました, 端末:OTHER
1981-01-01 00:00:12 [Error][アラームログ] アラームID:104001,アラームレベル:エラー,端末リセット 原因:システムが電源投入後にリセットされました, 端末:OTHER
2022-08-20 19:08:04 [Critical][構成ログ] 端末:WEB(192.168.1.20),実行結果:Success,種別:Login,Username:admin
2022-08-20 19:18:26 [Critical][構成ログ] 端末:WEB(192.168.1.20),実行結果:Success,種別:Logout,Username:admin
```

これを防ぐため，
* SGP200W のルーター機能 (ルーター・DHCP サーバー・DNS サーバー・Wi-Fi アクセスポイント) を停止する
* DMZ 機能を使って新たに設置した Buffalo WSR-1166DHPL2 Version 2.01 にすべてのパケットを流す
* Buffalo WSR-1166DHPL2 Version 2.01 に，ルーター・DHCP サーバー・DNS サーバー・Wi-Fi AP 機能を持たせる (SGP200W から移す)

[^1]: Huawei の OEM との情報もあるが真偽不明．

ことにした．しかし今度は，Buffalo WSR-1166DHPL2 Version 2.01 に対し，

* DNS・DHCP 周りの動きが怪しい
* GUI での設定が面倒
* 細かな設定の自由度がない

という不満点が出て来た (2・3つ目は SGP200W でも同じなんだけど)．そこでいっそのこと，さらにルーター機能と Wi-Fi アクセスポイント機能とを分け，__"いつかは CISO"__ を実現してしまうこととし，C841M を導入するに至った．これにより，CISCO CLI との戦いの火ぶたが切られた... 


# 初期設定編

## 工場初期化 (出荷時初期化) の方法

C841M はヤフオク！にて中古で購入[^2] ．初期化されているとのことだったので，LAN ポート #0 に LAN ケーブルを挿すが，ランプが点灯しない．#1～3 どれでも同様．事前に調べた範囲では，CISO のルーターはデフォルトでは WAN・LAN ポートいずれも無効になっており__ ("`shutdown`")，`no shutdown` コマンドを投入しないといけないらしい．https://internet.watch.impress.co.jp/docs/column/shimizu/723163.html によると初期 IP アドレスは  10.10.10.1 で，特に何もせず接続出来ているようだ (そりゃそうだ．ポートが無効になっていたら初期設定すら出来ない)．C841M は少なくとも #0 は無効になってないのかな？ いずれにせよ，ケーブルを挿しても反応しないということは，無効になっていそうだ．シリアルケーブルで接続してコンソール接続するという方法もあるが，別のところでハマりそうなので，初期化を試みることにする．
これは，以下のページが参考になった．

[^2]: 2023年初頭に送料込 ￥5,000 程度で購入

https://k-itc.com/2020/01/26/cisco-c841m-4x-jsec-k9-initialize/

このとおり実施したところ無事初期化され，LAN ポート #0 にケーブルを挿したところ認識され，ランプが点灯．PC と直結し (PC はふだん固定 IP で使用しているのであらかじめ DHCP に変えておく)，`http://10.10.10.1/` で CCP (Cisco Configuration Professional) Express の画面が出て来た．

:::note info
今回は手順に従って `customer-config` をダウンロードして工場出荷初期化したが，作成出来た (思ったとおりに動作する) コンフィギュレーションファイルをこの名前で置いておけば，何か設定を間違えてにっちもさっちもいかなくなったとき，rest ボタン長押しすれば，設定を始める前の状態にいつでも戻せる，ってことだな．
ひととおり設定してから改めて `customer-config` の中身を見てみると，ほとんど何もしてないし (102行中 19行がコメント; 45行がバナーの設定で，重要な設定は 20行ほど)．というか，IP アドレスくらいは最初から `customer-config` で設定しておけばよかった．
:::

## CCP Express でのクイックセットアップウィザードによる初期設定

次に，CCP Express の __クイックセットアップウィザード__ を用いてそれっぽく設定．細かな設定は後ほど CLI (Command Line Interface) でやるので，設定したのは
* ID／Password を設定
* IP アドレスを 192.168.1.1 とする
* ONU がブロードバンド回線との接続は担うので，C841M は単に ONU にすべてのデータを垂れ流すだけでよいから，PPoE とかは使わない

くらい． ともかく一刻も早く，ふだん使っている 192.168.1.0/24 ではない 10.10.10.0/24 なんてネットワークから離れたい，それだけ (笑)．
評判が悪い感じもする CCP Express だったが，さほどの問題はなかった (たぶん)．CCP Express のバージョンは最新版ではなく，3.3 だったかだった．

以降は，Tera Term Pro を使い 192.168.1.1 にアクセスし，CLI での設定となる．


## IOS (Firmware) 15.5(3).M10 へのバージョンアップ

IOS (F/W) は 15.5(3).M4 だったので，2023/1 現在での安定版である 15.5(3)M10 にまずはバージョンアップすることにした．

1. https://www.cisco.com/c/m/ja_jp/customer/cisco-start-user-site/download.html (要ログイン) からバージョンアップするファイル (*.bin が含まれる *.zip) をダウンロードする
2. ダウンロードした *.zip (c800m-universalk9-mz-SPA-159-3-M6.zip) から *.bin を展開する
3. 展開した *.bin (c800m-universalk9-mz-SPA-159-3-M6.bin) を USB メモリにコピーする
4. USB メモリを C841M J に挿す
5. C841M J にログインして，以下のように操作する
```console
// 現在のブートファイルを確認
cisco841m#show version | include image
System image file is "flash:c800m-universalk9-mz.SPA.155-3.M4.bin"
  rgb(255,255,0)// 現在は 15.5(3).M4 になっている

// USB メモリから内部 Flash メモリにコピー
cisco841m#copy usbflash0:c800m-universalk9-mz.SPA.155-3.M10.bin flash:

// USB メモリから内部 Flash メモリにコピー
cisco841m#verify flash:c800m-universalk9-mz.SPA.155-3.M10.bin flash:
... (表示内容略)

cisco841m#conf t

// バージョンアップするブートファイル (15.5(3)M10) を指定
cisco841m(config)#boot system flash c800m-universalk9-mz.SPA.155-3.M10.bin
cisco841m(config)#end
cisco841m#wr
cisco841m#reload
```
しばらくして再起動が完了したら再度ログインして，以下のように確認する
```console
cisco841m#show version | include image
System image file is "flash:c800m-universalk9-mz.SPA.155-3.M10.bin"
```
無事，15.5(3).M10 になった．
ところで，バージョンアップ後のコンフィギュレーションを確認すると，
```diff_conf
cisco841m#show conf
!
! Last configuration change at 01:22:10 JST Tue Jan 24 2023 by admin
! NVRAM config last updated at 01:22:16 JST Tue Jan 24 2023 by admin
!
version 15.5
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname cisco841m
!
boot-start-marker
-
+boot system flash c800m-universalk9-mz.SPA.155-3.M10.bin
```
のように `boot system` というコマンドが追加されている．確かにこのコマンドは投入したが，どうしてその前に入れた `verify` とかのコマンドは追加されておらず，これだけが残るのだろう．これだけを見ると，起動時に `flash:c800m-universalk9-mz.SPA.155-3.M10.bin` を読み込んでいるようにも見え，これを削除してはいけないようにも感じてしまう．.bin と，この行を削除してもよいのだろうか？___要調査___

## CCP Express 3.5.3 へのバージョンアップ
CCP Express を今後もずっと使い続けるつもりはないが，ダッシュボードなんてのもあるので，ちょっとした確認では使うだろう．最新版ではなかったので，最新版の 3.5.3 にアップデートすることにした．

https://community.cisco.com/t5/tkb-cisco-start-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/c841m-ccp-express-3-5-%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%82%AC%E3%82%A4%E3%83%89/ta-p/3189992

に従い，_CCP Expressのアップグレード_ というメニューがあるので素直にそれを試す．……が，__"検証中" だったかのダイアログでプログレスバーが出たままでどれだけ待っても進まない__．ブラウザを閉じたりページを更新 (リロード) したりするなとあるが，やむなくページを閉じる．仕方ないので，CLI での更新を実施．こちらは問題なく更新出来た．やはり，GUI は信用出来ない... 


## コンフィギュレーション

ヤフオク！落札直後から，品物が到着するまでに諸々の資料を調べ，コンフィギュレーションファイルを作成しておいた．いくつかの間違いがやはりあり，試行錯誤はあったが，以下のように設定した結果，NURO 光でいままでどおり接続出来るようになった．ただし，__IPv6 ではつながらなかったため，IPv6 はいったんあきらめ，IPv6 関係の設定はひとまず削除した__．___要調査___

<details><summary>コンフィギュレーション内容</summary>

```configuration
!
! Last configuration change at 00:19:58 JST Sat Jan 21 2023 by admin
! NVRAM config last updated at 00:20:00 JST Sat Jan 21 2023 by admin
!
version 15.5
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname cisco841m
!
boot-start-marker
boot-end-marker
!
!
logging buffered 51200 warnings
!
aaa new-model
aaa authentication login local_access local!
aaa session-id commonethernet lmi ce
clock timezone JST 9 0
!
!
ip nbar http-services
!
!
ip dhcp excluded-address 192.168.1.1 192.168.1.56
ip dhcp excluded-address 192.168.1.58 192.168.1.94
ip dhcp excluded-address 192.168.1.97
!
ip dhcp pool defaultdhcp
 import all
 network 192.168.1.0 255.255.255.0
 default-router 192.168.1.1
 dns-server 8.8.8.8 8.8.4.4
 lease infinite
!
ip dhcp pool staticdhcp
 origin file usbflash0:staticip-config-id.txt
 default-router 192.168.1.1
 dns-server 8.8.8.8 8.8.4.4
!
!
ip domain name example.com
ip name-server 8.8.8.8
ip name-server 8.8.4.4
ip cef
//IPv6// ipv6 unicast-routing
//IPv6// ipv6 cef
//IPv6// ipv6 inspect name SPI icmp
//IPv6// ipv6 inspect name SPI tcp
//IPv6// ipv6 inspect name SPI udp
//IPv6// ipv6 dhcp pool defaultdhcp
//IPv6//  dns-server 2001:4860:4860::8888
//IPv6//  dns-server 2001:4860:4860::8844
!
!
!
flow record nbar-appmon
 match ipv4 source address
 match ipv4 destination address
 match application name
 collect interface output
 collect counter bytes
 collect counter packets
 collect timestamp absolute first
 collect timestamp absolute last
!
!
flow monitor application-mon
 cache timeout active 60
 record nbar-appmon
!
parameter-map type inspect global
 max-incomplete low 18000
 max-incomplete high 20000
 nbar-classify
!
license udi pid C841M-4X-JSEC/K9 sn **********
!
!
object-group service INTERNAL_UTM_SERVICE
!
object-group network Others_dst_net
 any
!
object-group network Others_src_net
 any
!
object-group service Others_svc
 ip
!
object-group network Web_dst_net
 any
!
object-group network Web_src_net
 any
!
object-group service Web_svc
 ip
!
object-group network local_cws_net
!
object-group network local_lan_subnets
 192.168.1.0 255.255.255.0
!
object-group network vpn_remote_subnets
 any
!
username admin privilege 15 secret 5 ********************
!
redundancy
!
!
no cdp run
!
!
class-map type inspect match-any Others_app
 match protocol https
 match protocol smtp
 match protocol pop3
 match protocol imap
 match protocol sip
 match protocol ftp
 match protocol dns
 match protocol icmp
class-map type inspect match-any Web_app
 match protocol http
class-map type inspect match-all Others
 match class-map Others_app
 match access-group name Others_acl
class-map type inspect match-all Web
 match class-map Web_app
 match access-group name Web_acl
!
policy-map type inspect LAN-WAN-POLICY
 class type inspect Web
  inspect
 class type inspect Others
  inspect
 class class-default
  drop log
policy-map type inspect WAN-LAN-POLICY
 class class-default
  drop log
!
zone security LAN
zone security WAN
zone-pair security LAN-WAN source LAN destination WAN
 service-policy type inspect LAN-WAN-POLICY
zone-pair security WAN-LAN source WAN destination LAN
 service-policy type inspect WAN-LAN-POLICY
!
!
interface GigabitEthernet0/0
 description Switching Hub
 no ip address
!
interface GigabitEthernet0/1
 description Wi-Fi Router
 no ip address
!
interface GigabitEthernet0/2
 no ip address
!
interface GigabitEthernet0/3
 no ip address
!
interface GigabitEthernet0/4
 description NURO-Hikari
 ip address 192.168.2.2 255.255.255.0
 ip nbar protocol-discovery
 ip nat outside
 ip virtual-reassembly in
 zone-member security WAN
 duplex auto
 speed auto
//IPv6// ipv6 address autoconfig
//IPv6// ipv6 enable
!
interface GigabitEthernet0/5
 shutdown
!
interface Vlan1
 description LAN
 ip address 192.168.1.1 255.255.255.0
 ip nbar protocol-discovery
 ip flow monitor application-mon input
 ip flow ingress
 ip flow egress
 ip nat inside
 ip virtual-reassembly in
 zone-member security LAN
 ip tcp adjust-mss 1452
 load-interval 30
!
ip forward-protocol nd
ip http server
ip http access-class 23
ip http authentication local
ip http secure-server
ip http timeout-policy idle 60 life 86400 requests 10000
!
!
ip nat inside source list nat-list interface GigabitEthernet0/4 overload
ip nat inside source static tcp 192.168.1.20 8080 192.168.1.1 8080 extendable
ip default-network 192.168.2.1
ip route 0.0.0.0 0.0.0.0 192.168.2.1
!
ip access-list extended Others_acl
 permit object-group Others_svc object-group Others_src_net object-group Others_dst_net
ip access-list extended Web_acl
 permit object-group Web_svc object-group Web_src_net object-group Web_dst_net
ip access-list extended nat-list
 permit ip object-group local_lan_subnets any
 deny   ip any any
!
//IPv6// ipv6 route ::/0 GigabitEthernet0/4
!
access-list 23 permit 192.168.1.0 0.0.0.255
!
!
banner exec ^C
% Password expiration warning.
-----------------------------------------------------------------------

Cisco Configuration Professional (Cisco CP) is installed on this device
and it provides the default username "cisco" for  one-time use. If you have
already used the username "cisco" to login to the router and your IOS image
supports the "one-time" user option, then this username has already expired.
You will not be able to login to the router with this username after you exit
this session.

It is strongly suggested that you create a new username with a privilege level
of 15 using the following command.

username <myuser> privilege 15 secret 0 <mypassword>

Replace <myuser> and <mypassword> with the username and password you
want to use.

-----------------------------------------------------------------------
^C
banner login ^C
-----------------------------------------------------------------------
Cisco Configuration Professional (Cisco CP) is installed on this device.
This feature requires the one-time use of the username "cisco" with the
password "cisco". These default credentials have a privilege level of 15.

YOU MUST USE CISCO CP or the CISCO IOS CLI TO CHANGE THESE
PUBLICLY-KNOWN CREDENTIALS

Here are the Cisco IOS commands.

username <myuser>  privilege 15 secret 0 <mypassword>
no username cisco

Replace <myuser> and <mypassword> with the username and password you
want to use.

IF YOU DO NOT CHANGE THE PUBLICLY-KNOWN CREDENTIALS, YOU WILL
NOT BE ABLE TO LOG INTO THE DEVICE AGAIN AFTER YOU HAVE LOGGED OFF.
 
For more information about Cisco CP please follow the instructions in the
QUICK START GUIDE for your router or go to http://www.cisco.com/go/ciscocp 
-----------------------------------------------------------------------
^C
!
line con 0

 login authentication local_access
 no modem enable
line vty 0 4
 access-class 23 in
 exec-timeout 0 0
 privilege level 15
 login authentication local_access
 transport input telnet ssh
!
scheduler allocate 20000 1000
ntp server ntp.nict.jp
!
end
```
</details>

ところでこのコンフィギュレーションをファイルとして簡単に保存するにはどうしたらよいのだろう？ Tera Term Pro のログ機能を用いて，`show config` した内容をファイルとして保存しろなんて書かれたページもあったが，そういうまどろっこしい方法ではなくてさ... 調べてもズバリの方法が見つからなかったのだが，はたと思い付いた．なんだ，

```configuration
copy running-config usbflash0:config-20230125_1700.txt
```

のように，runnning-config を直接ファイルに書き出せばよいだけなのね (これってあちこちのサイトに書いてあるの??)．もちろん，`usbflash0:` は `flash:` でもいいし，`running-config` は `startup-config` でもいい．こまめに保存しておくのが吉．

:::note info
ちなみに，コンフィギュレーションの保存領域は running-config と startup-config とのふたつある．設定を変えても running-config にしか反映されないので，設定を更新したら startup-config に保存 (copy) しないと再起動すると startup-config から読み込まれるので，更新した running-config の内容は消える，ってのは CISCO 初心者には面食らう仕様．
だが，投入したコマンドが間違っていたせいでネットワーク接続が切れたら，電源を入れ直せば元に戻る，ってことで，実は初心者向きの仕様なのかもしれない :-)
:::

思ったよりすんなりと接続出来て，ほっとした (もしかすると買ったはいいものの，泣きながら 1週間・1か月あれこれやっても設定出来なくて，ヤフオク！で売却することになるかも... とビビっていたので．杞憂に終わって本当によかった)．

ところで，CCP Express のクイックセットアップウィザードを使って初期設定した結果，Vlan 1 を使う設定になっている．本当は VLAN を使うつもりはなく、GigabitEthernet 0/1～3 それぞれに直接 LAN 側ネットワーク設定をしようと思っていたのだが... CCP Express の [インターフェイス]-[VLANの編集] で Vlan1 を確認 (編集) すると，ポートの関連付けとして，確かに
![2023012607.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/daddbb40-e037-fbe0-4331-cea2cbe6862c.jpeg)
- [x] GigabitEhternet0/0
- [x] GigabitEhternet0/1
- [x] GigabitEhternet0/2
- [x] GigabitEhternet0/3

となっている．チェックボックスは無効化されており，Gi0/0～3 を Vlan1 から外すことも出来ない．しかし，作成された config のうちどこで Gi0/0～3 と Vlan1 とを紐付けているのかが判らないまま．もしかして Vlan1 ってデフォルトで全部と紐付けられており，もし特定のポートだけで VLAN を作りたいときは，Vlan1 は使わず，新たな Vlan を定義するのか？ ___要調査___

__後記__ `interface range Gi0/0-3` とすれば一挙に設定出来ることを知った
> ~~なお，Gi0/0-3 を Vlan でまとめないと，それぞれに同じ内容を設定しなければならないので，現実的ではない (よくない; 面倒) から，LAN 側の設定は Vlan を使うのがふつうなのだろうか？~~

VLAN というと，参考書でよく「それぞれの部署のサーバにアクセス出来ないようにするため，総務部と経理部とのネットワークを分けたいといったときに使う」的な説明がされているのが印象的で，デフォルトで使うイメージがないのだけれども．

### DHCP 関係

メインの LAN 192.168.1.0/24 での IP アドレスの割り振り規則 (マイルール) は以下のとおり．

|IP アドレス (192.168.1.*)|目的|
|------|--|
|1～19|ネットワーク機器|
|20番台|PC|
|30・40番台|reserved|
|50番台|TV|
|60番台|reserved|
|70番台|AV 機器|
|80番台|reserved|
|90番台|防犯カメラ|
|100～|DHCP|

DHCP 関係の主な設定は以下のとおり．

```configuration
ip dhcp pool defaultdhcp
 import all
 network 192.168.1.0 255.255.255.0
 lease infinite

ip dhcp pool staticdhcp
 origin file usbflash0:staticip-config-id.txt

ip dhcp excluded-address 192.168.1.1 192.168.1.56
ip dhcp excluded-address 192.168.1.58 192.168.1.94
ip dhcp excluded-address 192.168.1.97
```

スタティックマッピング用には別の DHCP プールを用意しなければならないようで，`defaultdhcp` と `staticdhcp` とをひとつにまとめることは出来ないようだ．

DHCP でも IP アドレスがころころ変わるのは嫌なので `infinite` としているが，本当に一時的に使った機器の情報がずっと残ってしまうのも気持ち悪いので，せめて 1か月とかにしておいた方が本当はよいのかも知れない．___要検討___
あるいは，適宜 `clear ip dhcp binding` コマンドを投入すればよいのかな？

DHCP しか使えない機器だが，アドレスを固定したい機器があるので，`ip dhcp exluceded-address` は上のようにちょっと面倒な指定になっている．

以下はどうでもよい話．
* ルーターは DHCP クライアントではないので，`import all` は不要なのかな？ よく判らないがとりあえず想定どおり動いている ___要調査___
* `ip dhcp excluded-address` コマンドが DHCP プールと紐付いていない理由もよく判らない
* IP アドレスを振るアドレスはセグメントで指定するが，`network 192.168.1.100 192.168.1.254` といった感じで `<low-address> <high-address>` のように指定出来てもいいんじゃないかなぁと思うが，素人考えなんだろうな
* `ip dhcp excluded-address` コマンドも，以下のように除外アドレスを全部羅列出来たらいいのに

    ```configration
    ip dhcp excluded-address 192.168.1.1-192.168.1.56-192.168.1.94 192.168.1.97
    ```

DHCP でしか使えない機器に固定で IP アドレスを振るため，次のようなファイルを作り，flash:/ に置いて読み込ませている．これはあくまでも DHCP として動作するので，DHCP で IP アドレスを振る範囲に含める (`ip dhcp excluded-address` で指定 __しない__)．なお，98・99 は明示的に予約しておきたいだけなので，mac アドレスはダミー．`ip dhcp excluded-address` でこれらを指定しておけば (DHCP 範囲から外しておけば) よいのだが，それだと，実際にこれらのアドレスを振るときに 2か所の変更が必要になる．この方法なら，`staticip-config-id.txt` の変更だけで済むと思うので．

```configuration:staticip-config-id.txt
*time* Feb 11 1984 00:00 AM
*version* 1
!IP address       Type  Hardware address    Lease expiration
192.168.1.57 /24  id    01.0022.****.****   Infinite
192.168.1.95 /24  id    01.304a.****.****   Infinite
192.168.1.96 /24  id    01.304a.****.****   Infinite
192.168.1.98 /24  id    01.9898.9898.9898   Infinite
192.168.1.99 /24  id    01.9999.9999.9999   Infinite
*end*
```
:::note warn
なお，Type を id で指定する方式と，ハードウェアタイプ？で指定する方式とがあるが，後者だとうまくいかなかった．なぜかは不明だが，放っておくことにする．
:::

いずれにせよ，Buffalo WSR-1166DHPL2 ではこのように，57 の次が大きく飛んで 95，さらに飛んで 98・99 だけは固定，といった指定が出来なかったので，思ったとおりに IP アドレスを割り振れるだけで C841M を導入した甲斐があったってもんですよ．

IPv6 での接続が出来ないが IPv4 では特に問題はないので，この時点で Buffalo WSR-1166DHPL2 をルーターモードからアクセスポイントモードに切り替え，192.168.1.1 だった IP アドレスを 192.168.1.6 に変更し，単なるアクセスポイント化した．
あ，ルーターモード時の設定内容を控えておくのを忘れた... 後で後悔することになるかなぁ．まぁいいか．

### プライマリ／バックアップ WAN とは？

記録も逐一取っておらず，もうどう設定したのか忘れてしまったが，CCP Express でのクイックセットアップウィザードで初期設定をしたとき，__バックアップWAN__ の設定画面で，

- [ ] バックアップWANを有効にする

というチェックボックスにチェックはしなかった．接続出来る WAN は 192.168.2.1 の NURO 光から貸与されている ONU しかない[^3] から当然だ．となると，プライマリ WAN だけになるはずだが... 

[^3]: C841M には WAN ポートがふたつある．ということは，もうひとつに例えばスターリンクも契約して，NURO 光とスターリンクを同時に使うってことが出来るんだな... スターリンクを使ってみたいし，うっとりするが，どうルーティングすれば効果的なのか，まったく思い浮かばないので，契約しなくて済むのは幸いだ :-)

無事接続出来てから，CCP Express で [インターフェイス] や [ダッシュボード] を見ると，バックアップはもちろん，プライマリも "未設定" となっている．何でだ？ 繋がってるのに．何せ，ひとまずきちんと接続出来ているのでこのままでも別にいいのだが，ダッシュボードで帯域幅が表示されないのが何となく嫌だ (未設定になっているため，計測・表示もしないよってことなのだろう)．調べても，プライマリ／バックアップインターフェイスの指定方法なんて情報は落ちてない．
そこで，[インターフェイス]-[GigabitEhternet0/4 インターフェイスの編集] ダイアログを開いたところ，[プライマリバックアップインターフェイス] が

● なし
○ プライマリWANインターフェイス
○ バックアップWANインターフェイス
- [ ] WANゾーンへの移動

となっているのを発見．これだね，と，
![2023012606.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/038dfcd8-0cb8-345f-6586-5ebf68d31a2e.jpeg)
○ なし
● プライマリWANインターフェイス
○ バックアップWANインターフェイス
- [x] WANゾーンへの移動

に変えたところ，インターネットに繋がらなくなった... (涙) config を確認すると色々変わっている．仕方ないので，繋がっていたときの config との差分をすべて確認したところ，以下のような差分が認められた．

```diff_conf
interface GigabitEthernet0/4
-description NURO_Hikari
+description PrimaryWANDesc_NURO
 ip address 192.168.2.2 255.255.255.0
-ip nbar protocol-discovery
+
 ip nat outside
 ip virtual-reassembly in
-zone-member security WAN
+
 duplex auto
 speed auto
```
```diff_conf
ip nat inside source list nat-list interface GigabitEthernet0/4 overload
ip nat inside source static tcp 192.168.1.20 8080 192.168.1.1 8080 extendable
ip default-network 192.168.2.1
ip route 0.0.0.0 0.0.0.0 192.168.2.1
-
+ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/4
!
ip access-list extended Others_acl
 permit object-group Others_svc object-group Others_src_net object-group Others_dst_net
ip access-list extended Web_acl
 permit object-group Web_svc object-group Web_src_net object-group Web_dst_net
-ip access-list extended nat-list
-permit ip object-group local_lan_subnets any
-deny ip any any
+
```

このうち特に，
```diff_conf
+ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/4
```
が追加されていたのが致命的だったと思われる．これを削除して無事復帰．CCP Express でも無事 __プライマリインターフェイス__ として認識され，ダッシュボードでは帯域も表示された．

:::note warn
ところで，
```diff_conf
-description NURO_Hikari
+description PrimaryWANDesc_NURO
```
になっている．改めて CLI で
```configration
description PrimaryWANDesc_NURO_Hikari
```
としたところ，元に戻った．

これでもしやと思い当たった．
```configration
description NURO_Hikari
```
としたところ，プライマリインターフェイスが未設定に戻った．うは，これって単に (動作にはまったく影響しない) ``description`` だけのことなの...!! そこで，
```configration
description BackupWANDesc_
```
としたところ，Gi0/5 がバックアップ WAN として表示されるようになった．
![2023012605.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/4429759c-724f-45cb-5187-e70c02addc83.jpeg)
![2023012604.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/aff29854-2f09-bb29-3070-17753cfba0d8.jpeg)
ちなみに，
```configration
description PrimaryWANDesc_NURO_Hikari
```
とすると，CCP Express 上では ``NURO`` と表示される．何か，バグってそうだね... 
:::

# 純正互換コンソールケーブル

事前に調べた結果，LAN ポートから設定出来るので要らないような感じだったが，送料込みでどうせ ￥600 だったので，コンソールケーブル (PC 側は USB ポートに挿せるもの) を Amazon.co.jp で購入してあった．

https://www.amazon.co.jp/gp/product/B00JPFOTOY?ie=UTF8&psc=1&linkCode=ll1&tag=recorder0c-22&linkId=e8a28329f31a27bf1cdb09abee1fd1e9&language=ja_JP&ref_=as_li_ss_tl

C841M できちんとネットワーク接続・ssh ログイン出来るところまで行き，ひとまず落ち着いたので，このケーブルを使ってシリアル接続してみる．`COM5: USB-SERIAL CH340 (COM5)` として Tera Term の選択肢に出て来ていたのでそれを選択して接続．何の問題もなく接続出来た．
今後設定をいじって行くときに C841M と繋がらなくなってしまったら，出番が来るだろう (実は，ここまで来る間にも 2～3回，訳判らん状態になったので工場初期化してる) から，PC の USB ポートに挿したままにしておく．
このケーブルは何やらチップが入っているようだ (USB コネクタ部分が大きい)．それで ￥600 しかしないって，世の中，何だかスゴい．

なお，純正品は 72-3383-01 という型番のようだが，これは PC 側は COM ポートに接続する DB-9 コネクタになっている．今どきの PC に COM ポートなんてないでしょ... この意味でも互換品の方がよいね．

結局，初めは使わなかったが，IPv6 接続のためとかで色々やっていると，ルーターと繋がらなくなっちまうことが数回あって，途中から SSH とコンソールポートの両方で接続して設定することが多い (コンソールポートだと遅いので)．コンソールポートならば致命的に壊さない限り (？) 繋がっているので安心．買っておいてよかった．


# SGP200W (NURO 光 ONU) 側の設定

これまでも，Buffalo WSR-1166DHPL2 を 192.168.2.2／192.168.1.1 の IP アドレスを持つルータとして使っていたので，二重ルーターにならないよう，NURO 光から貸与されている ONU SGP200W で以下のように設定していた．
このように設定することで，SGP200W は単なる ONU と化し，LAN 側ポートに挿した先の C841M にすべてのパケットを透過し，Wi-Fi アクセスポイントとしての機能も動かなくなる．

__[LAN]-[DHCPサーバ設定]__
![DHCP サーバの無効化](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/7ecaa123-b76b-3f2a-8c2a-ef7122af2ebc.jpeg)
- [ ] プライマリDHCPサーバーを有効にする

__[IPv6]-[LANアドレス設定]__
![IPv6 設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/5af8209e-febb-0cbd-48d6-47dc398f7542.jpeg)
__DNS情報__
LAN側のDNSソース [DNSエージェント]

__リソース割り当て情報__
- [x] 経路広告を有効にする
- [x] DHCPv6サーバを有効にする

リソース割り当てモード [手動]
アドレスプレフィックスの割り当て方法 [SLAAC]
その他の情報の割り当て方法 [DHCPv6]

__ULA情報__
ULAモード [無効]

__[WLAN]-[2.4G基本ネットワーク設定]__
- [ ] WLANの有効化

__[WLAN]-[5G基本ネットワーク設定]__
- [ ] WLANの有効化

__[セキュリティ]-[IPv6ファイアウォール設定]__
- [ ] パケット転送におけるファイアウォール制御を有効化

__[転送ルール]-[DMZ設定]__
![DMZ 設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/361bb1b8-2f4f-93f8-7edf-f32ff6da71b3.jpeg)
- [x] DMZ を有効にする

WAN名 [1_TR\*\*\*\_INTERNET\_R\_VID\_\*\*]
ホストアドレス [192.168.1.1]

# 今後の予定
* IPv6 で接続出来るようにする
* ポート開放が出来るようにする
* コンフィギュレーションの細かな部分の調整・ブラッシュアップをする

IPv6 での接続は現在調査中．解決出来次第，以下の記事で今後記す予定です．

https://qiita.com/Recorder/private/d30a1fdab54d3460e7a8