LoginSignup
0
0

OpenWrt 21.01 22.03 23.05 FW4 OCNバーチャルコネクト + ニチバン対策 全自動構成@node 旧版

Last updated at Posted at 2023-06-16

こちらに統合しました

BASH版

  • 軽量なbash版に移行しました
    ※ 375kB + α

はじめに

初心者対応構成

  • スクリプトでの自動設定
  • UCIとLuCi及びWinSCPにて比較しながら作業がおススメ

PowerShellSSHアクセス

ssh root@192.168.1.1
ssh root@192.168.1.1のショートカット作成(デスクトップ)
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

SSHログイン出来ない場合:exclamation:

known_hostsクリア

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


OpenSSHのインストール
※Windows 10 Fall Creators Update(1709)以降標準搭載

  • 機能の確認
powershell
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

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


対応回線

自動設定 : 回線直結全自動構成

OCN バーチャルコネクトは仕様上 24時間毎に接続が途切れますがルーターの故障などではございません

全自動構成 (ニチバン対策含む) ※ 要ONU直結

インストール

# package
opkg update
opkg install map
opkg install node

reboot

全自動構成

# config-softwire
wget --no-check-certificate -O /lib/netifd/proto/map-e.js https://raw.githubusercontent.com/site-u2023/config-softwire/main/map-e.js

# map-e
cp /lib/netifd/proto/map.sh /lib/netifd/proto/map.sh.bak
wget --no-check-certificate -O /lib/netifd/proto/map.sh https://raw.githubusercontent.com/site-u2023/map-e/main/map.sh.new

# scripts
. /lib/functions/network.sh
network_flush_cache
network_find_wan6 NET_IF6
network_get_device NET_L2D6 "${NET_IF6}"
network_get_ipaddr6 NET_ADDR6 "${NET_IF6}"
NODE_RET=$(node /lib/netifd/proto/map-e.js "$NET_ADDR6")
eval "$NODE_RET"

# DHCP WAN6
uci set dhcp.wan6=dhcp
uci set dhcp.wan6.interface='wan6'
uci set dhcp.wan6.ignore='1'
uci set dhcp.wan6.master='1'
uci set dhcp.wan6.ra='relay'
uci set dhcp.wan6.dhcpv6='relay'
uci set dhcp.wan6.ndp='relay'

# DHCP LAN
uci set dhcp.lan=dhcp
uci set dhcp.lan.dhcpv6='server'
uci set dhcp.lan.ra='relay'
uci set dhcp.lan.ndp='relay'
uci set dhcp.lan.force='1'

# WAN6RA
WAN6RA='wan6ra'
uci set network.${WAN6RA}=interface
uci set network.${WAN6RA}.proto='static'
uci set network.${WAN6RA}.device=${NET_L2D6}
uci set network.${WAN6RA}.ip6gw=${CE}::1
uci set network.${WAN6RA}.ip6prefix=${CE}::/56
uci add_list network.${WAN6RA}.ip6addr=${CE}::1001

# WAN
uci set network.wan.auto='0'

# WANMAP
WANMAP='wanmap'
uci set network.${WANMAP}=interface
uci set network.${WANMAP}.proto='map'
uci set network.${WANMAP}.maptype='map-e'
uci set network.${WANMAP}.peeraddr=${option_peeraddr}
uci set network.${WANMAP}.ipaddr=${option_ipaddr}
uci set network.${WANMAP}.ip4prefixlen=${option_ip4prefixlen}
uci set network.${WANMAP}.ip6prefix=${option_ip6prefix}
uci set network.${WANMAP}.ip6prefixlen=${option_ip6prefixlen}
uci set network.${WANMAP}.ealen=${option_ealen}
uci set network.${WANMAP}.psidlen=${option_psidlen}
uci set network.${WANMAP}.offset=${option_offset}
uci set network.${WANMAP}.legacymap='1'
uci set network.${WANMAP}.mtu='1460'

# FW
ZOON_NO='1'
uci del_list firewall.@zone[${ZOON_NO}].network='wan'
uci add_list firewall.@zone[${ZOON_NO}].network=${WANMAP}
uci add_list firewall.@zone[${ZOON_NO}].network=${WAN6RA}

uci commit

# map
sed -i -e "s/ip4prefixlen=32/ip4prefixlen=${option_ip4prefixlen}/g" /lib/netifd/proto/map.sh

reboot

疎通確認

ポート動作確認

利用可能ポート番号確認

. /lib/functions/network.sh
network_flush_cache
network_find_wan6 NET_IF6
network_get_ipaddr6 NET_ADDR6 "${NET_IF6}"
NODE_RET=$(node /lib/netifd/proto/map-e.js "${NET_ADDR6}")
eval "$NODE_RET"
echo "${PORT}"

リムーブ

リムーブ

  • node
  • map-e.js
# node
opkg remove node

#map-e.js
rm /lib/netifd/proto/map-e.js

レストア

  • map.sh
# map.sh
cp /lib/netifd/proto/map.sh.bak /lib/netifd/proto/map.sh
rm /lib/netifd/proto/map.sh.bak

トラブルシュート

# prefix確認
echo ${PREFIX}

# node確認
ls /usr/lib/opkg/info/node*

IPv6

チューニング及びベンチマーク

あとがき

  • バーチャルコネクト未設定状態でもopkgのDLは可能

  • クライアントにWARPをインストールすればV4も拾う※CloudflareのIP

  • こんなんもあります、皆さん凄いですね

  • firewall.zoon[*] ゾーン番号がうまく自動で拾えないな

参考サイト(感謝:relaxed:)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0