OpenWrt 22.03 23.05 FW4 マルチセッション対応 (ニチバン対策) 全自動構成 スクリプト設置版 @bash

# こちらに統合しました
https://qiita.com/site_u/items/c6a50aa6dea965b5a774

# はじめに
::: note
### 初心者対応構成
- スクリプトでの自動設定
- UCIとLuCi及びWinSCPにて比較しながら作業がおススメ
:::

::: note
### [PowerShell](https://learn.microsoft.com/ja-jp/powershell/scripting/what-is-windows-powershell?view=powershell-7.4)で[SSHアクセス](https://openwrt.org/docs/guide-quick-start/sshadministration)

- [PowerShellの開始](https://learn.microsoft.com/ja-jp/powershell/scripting/windows-powershell/starting-windows-powershell?view=powershell-7.4) (キー入力)：`Win`+`x` > `a` > `はい`
※Windows7以降標準搭載

```sh
ssh root@192.168.1.1
```

<details><summary>ssh root@192.168.1.1のショートカット作成（デスクトップ）</summary>

```powershell:powershell
$DESKTOP = ([Environment]::GetFolderPath("Desktop") + "\192.168.1.1.lnk")
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$DESKTOP")
$Shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
$Shortcut.Arguments = '-windowstyle hidden -ExecutionPolicy RemoteSigned "Start-Process ssh root@192.168.1.1"'
$Shortcut.IconLocation = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe,0"
$Shortcut.WorkingDirectory = "."
$Shortcut.Save()

```

- `強制的に貼り付け`
- `yes`

---

</details>

<details><summary>SSHログイン出来ない場合:exclamation:</summary>

known_hostsクリア
- `C:\Users\yourusername\.ssh\known_hosts` ※Windows隠しファイル
```powershell:powershell
Clear-Content .ssh\known_hosts -Force

```
---
OpenSSHのインストール
※Windows 10 Fall Creators Update(1709)以降標準搭載
- 機能の確認
```powershell:powershell
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

```
- 機能のインストール
```powershell:powershell
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

```
---

</details>

:::

:::note note
### 前提条件
- 対応回線 : OCNバーチャルコネクト / V6プラス / IPv6オプション
- 対応ファームウェア : [22.03 以降 ※FW4 (firewall4)](https://openwrt.org/docs/guide-user/firewall/misc/nftables#nftables_in_openwrt_2203_and_later)
- スクリプト : [all-ports-set](https://github.com/site-u2023/all-ports-set/blob/main/README.md)
- パッケージ : [bash](https://openwrt.org/packages/pkgdata/bash) 5.2.15-1 375kB
- 動作確認 : 23.05.0-rc1 @ WSR-6000AX8
- 設定詳細 : [参考サイト](https://qiita.com/site_u/items/8c850f7dbbe3d2af90f6#%E5%8F%82%E8%80%83%E3%82%B5%E3%82%A4%E3%83%88%E6%84%9F%E8%AC%9Drelaxed)
:::

# マルチセッション対応（ニチバン対策）
::: note alert
- 現状確認
  - [ニチバンベンチ](https://www.nichiban.co.jp/)
- 以下排他利用
  - スクリプト設置版 @ bash
  - [map書換版](https://qiita.com/site_u/items/50dbc6ae1e3c29c50726)
:::


## [MAP-E のポートセット全部使う](https://zenn.dev/wistnki/articles/784d33e3c8a17c#%E3%83%9D%E3%83%BC%E3%83%88%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E5%85%A8%E9%83%A8%E4%BD%BF%E3%81%86%E8%A8%AD%E5%AE%9A) ※要ONU直結
::: note
### 全自動構成 (ワンコピペ)
- [selector.sh](https://github.com/site-u2023/all-ports-set/blob/main/selector.sh)
- [all_ports_set.sh](https://github.com/site-u2023/all-ports-set/blob/main/all_ports_set.sh)
- [use_mape_setup_rule.sh](https://github.com/site-u2023/all-ports-set/blob/main/use_mape_setup_rule.sh)
- [dont_mape_setup_rule.sh](https://github.com/site-u2023/all-ports-set/blob/main/dont_mape_setup_rule.sh)

セレクターにて選択
- OCNバーチャルコネクト
  - マップ使う版
  - マップ使わない版
- V6プラス / IPv6コネクト
  - マップ使う版
  - マップ使わない版
```ruby
# bash
opkg update
opkg install bash
# all ports set
wget --no-check-certificate -O /etc/all_ports_set.sh https://raw.githubusercontent.com/site-u2023/all-ports-set/main/all_ports_set.sh
# selector
wget --no-check-certificate -O /etc/selector.sh https://raw.githubusercontent.com/site-u2023/all-ports-set/main/selector.sh
# script run
bash /etc/selector.sh
#

```
:::

# 確認
::: note
### ポート動作確認
- [ニチバンベンチ](https://www.nichiban.co.jp/)
- [LuCi ファイアーウォール](http://192.168.1.1/cgi-bin/luci/admin/status/nftables)
カウンター確認
### 利用可能ポート確認
- map-wanmap.rules
```ruby
cat /tmp/map-wanmap.rules | awk '/PORTSETS/'

```
:::

# リムーブ
:::note warn
### リムーブ
- bash
- selector.sh
- mape_setup_rule.sh
- all-ports-set
```ruby
# bash 
opkg remove bash
# selector.sh
rm /etc/selector.sh
# mape_setup_rule.sh
rm /etc/mape_setup_rule.sh
sed -i "/mape_setup_rule.sh/d" /etc/rc.local
# all-ports-set
rm /etc/all_ports_set.sh

```
### レストア
- map.sh
```ruby
# map.sh
cp /lib/netifd/proto/map.sh.nichiban.bak /lib/netifd/proto/map.sh
rm /lib/netifd/proto/map.sh.nichiban.bak

```
:::

# [IPv6](https://qiita.com/site_u/items/1a684806a6eb36541fa5)
::: note
### [ルーターアドバタイズメントとDHCPv6](https://qiita.com/site_u/items/1a684806a6eb36541fa5#%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%A2%E3%83%89%E3%83%90%E3%82%BF%E3%82%A4%E3%82%BA%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A8dhcpv6)

### [IPv6 の追加機能](https://qiita.com/site_u/items/1a684806a6eb36541fa5#ipv6-%E3%81%AE%E8%BF%BD%E5%8A%A0%E6%A9%9F%E8%83%BD)

:::
# [チューニング及びベンチマーク](https://qiita.com/site_u/items/599124e2904d1374c2c9)
::: note
### [SQMチューニング](https://qiita.com/site_u/items/599124e2904d1374c2c9#sqm%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0)
:::

# 参考サイト(感謝:relaxed:)
- [MAP-E のポートセット全部使う](https://zenn.dev/wistnki/articles/784d33e3c8a17c#%E3%83%9D%E3%83%BC%E3%83%88%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E5%85%A8%E9%83%A8%E4%BD%BF%E3%81%86%E8%A8%AD%E5%AE%9A)