📡

NEC UNIVERGE IX2105 を用いたIPv6環境でのアマチュア無線局リモート運用のすゝめ

2024/09/15に公開

はじめに

アマチュア無線[1]をある程度やっていると、一度は天を衝くような高い鉄塔とか巨大なアンテナを使ってみたいと思うはずだ。また、中枢神経を直接刺激できるような高出力で運用したくなることもあるに違いない。しかしながら人口の多くが住宅密集地に住む日本では、「タワー[2]」「ビームアンテナ[3]」「1KW[4]」を実現するためには多大な労力が必要[5]である。よって、無線設備は人里離れた場所に用意して休日に赴いたりリモート運用[6]することを思いついた。今回は郊外の原野に別宅シャック[7]を建てリモートで運用するにあたり、自宅とシャックをNEC UNIVERGE IX2105を用いてIPv6接続するVPNを構築したため紹介する。IPv6環境下でリモート運用を考えるアマチュア無線家のみならず、NEC UNIVERGE IXシリーズでIPv6でインターネット接続・VPNを構築したい人にも情報提供できれば幸いである。

無線機とリモートコントロールソフト

リモート運用前提であるため、ネットワーク対応していることが求められた。これらはすべてアイコム株式会社 | Icom Inc.(以下ICOM)の製品[10]で統一した。いずれも優れた製品であるが、IPv4にしか対応していない
https://www.icom.co.jp/support/business/faq/?keyword=IPv6

IC-705/IC-7610/IC-7700/IC-7700M/IC-7800/IC-7850/IC-7851/IC-9700/RS-BA1/RS-BA1 Version2
Q. サーバー機能を使って宅外遠隔操作を行うのにIPv6のIPアドレスを使う事が出来ますか。
A. IPv6のIPアドレスを使用することはできません。IPv4のグローバルIPアドレスが付与されたインターネット回線が必要です。

このQ&Aについて個人的には……

「無線機とコントロールソフトを買っただけではIPv4アドレスがないとだめだよ。取説に書いてない方法でできるかもしれないけど試してないよ。他社の特別な機械とか特別な方法についての取説は用意できないし解説もサポートもしないよ。当然保証対象外だからね。でもできる人が自己責任でやるのは自由だよね。」という意味だと理解した。

後述するが私のシャックは費用が低廉であることと速度性能が良いことを重要視したことからIPv6のみのプロバイダを導入した。そのため、何らかの方法でIPv4/IPv6変換が必要になった。

無線機の選定(IC-7700, IC-9700)

無線機はHF帯と50MHz帯はIC-7700を選定した。


IC-7700 HF/50MHzの200W機で準高級機と位置づけられる

145MHz帯, 433MHz帯, 1200MHz帯はIC-9700を使用することにした。


IC-9700 VHF/UHF機でリモート運用のみならずDSTARやSatelliteなどにも対応

これらの無線機は背面にRJ45ジャックがありLANケーブルを挿せばサーバー用のPCなしで直接ネットワークに接続できる。

リモートコントロールソフトの選定(RS-BA1 Version 2)

リモートコントロールソフトはICOMが上記のような無線機のために開発したRS-BA1 Version2を使用した。自社無線機のために専用設計されているため相性は抜群で操作性も良好である。

無線機を操作性や雰囲気を重視するためRC-28を購入した。RC-28はPCに接続して使える重厚感のあるロータリーエンコーダー[11]で操作性が大変改善した。

USB接続で使える無線機のダイヤルRC-28
RC-28 USB接続で使える無線機のダイヤル

インターネット回線とプロバイダ

選定にあたっては下記条件を重要視した。

  • 音声やコントロール信号の送受信が可能
    • 十分な帯域・通信速度がある
    • レイテンシーが少ない
  • 原野にでも導入可能である
  • 月額料金が低廉である
  • 進歩的なアマチュア[13]に見合う新しい技術が使われていること

回線(フレッツ光ネクスト ファミリー・ギガライン)

自宅もシャックもNTTのフレッツ 光ネクスト ファミリー/マンション ギガラインタイプを導入した。確かに回線利用料は高めであるが、信頼のNTTの回線であり、帯域・速度は1Gbpsと十分でありレイテンシーも極少であると考えた。なお、原野に有線電話回線があっても困るだろうと考えてひかり電話の契約はしなかった。そのためIPv6アドレスの割当が/64になってしまった。

他に検討した回線について……

LTE/5G はプロバイダ料金込であり維持費が安いメリットはあるが、電波が安定せず[14]導入は困難であると考えた。
スターリンクはNTT回線と維持費はほぼ同等~若干高い程度であったが、導入コストが高いことやレイテンシーが目立つこと私企業による運営でサービスの継続性が担保されないことより次点とした。
NTTの光回線にはフレッツ 光クロスというものがある。これは速度が10Gbpsとフレッツ光ネクスト・ギガラインの10倍の速度を誇る回線である。利用料はほぼ同等であることやひかり電話契約なしでIPv6アドレスが/56で割り当てられることから興味を持った。しかし、対応機器が高いこと、サービスエリア外であったことを理由に見送った。

プロバイダ(BB.excite)

シャックのプロバイダはBB.exciteコネクトIPoE接続プランを選択した。自宅のプロバイダはASAHIネット 光 with フレッツを利用した[15]。なお、これらのプロバイダーのプランではクライアントにはIPv6アドレスしか割り当てがなされない。IPv4へは通信事業者のTransix/DS-Liteを介して接続することになった。

どうしてもIPv6のみに抵抗があるなら……

今回の記事の趣旨に反するし、速度が遅い可能性もあるし、割高ではあるが、IPv4のグローバルIPアドレスを割り当ててくれる(IPv4にも対応した/IPv6には対応していない)プロバイダもある。
PPPoEでのIPv4アドレスの割り当てであれば(よく知っている通り)ルーターのポートフォワーディングの設定をしリモートからIPアドレスを叩けば接続できるはずだ。
MAP-E方式でのIPv4アドレス割り当てでは、一つのアドレスを複数の回線で共有することになる。利用できるポートに制限があるが、これに留意したうえで使えるポートの範囲で設定を行えばリモートから接続できるはずだ。

VPNルーターIX2150

VPNは専用のルーターを用いて構築することとした。専用ルーターを用いることで安定で転送性能が高いネットワークを構築できるためである。また、新品ではべらぼうに高いが中古品は極めて安価であることも理由である。

他のVPN構築手段として……

VPNを構築するには下記のようにいくつか方法がある。

  • VPNに特化した専用ルーターを利用する
  • 家庭用ルーターのVPN機能を利用する
  • 仮想VPNを使用する

家庭用ルーターの利点は簡単にVPNが設定できるが、転送性能は専用ルーターと比較すると大幅に劣る。また今までの経験から安定性には大いに懸念があった。
仮想VPNとは例えばこのようなサービスである。ソフトをインストールしてアカウントを登録するだけでとても簡単にVPNが構築できるが無料版では機能不十分であったり速度が前者と比較して特に遅かったため見送った。

VPN専用ルーターの選定には下記を考慮した。

  • 廉価であること
  • 小型であること
  • IPv6対応であること
  • 1G対応であること
  • VPNでも十分な転送速度を発揮すること
  • リモートからでも設定が可能なこと

これらを点から最終的にはNEC UNIVERGE IX2105を選択した。
IX2105の中古品はヤフーオークションなどでまとめ買いすることで1台1000円程度と大変安価で入手できる。

IX2105は2019年9月に販売を終了しているが、転送性能は最大1.3Gbps, IPsecでも最大440Mbpsと十分である。サイズも小型で狭い別宅シャックにはピッタリである。IX2105は横幅13.5cm・縦幅19.6cmと小型である
IX2105と技術書の大きさ比較 IX2105は13.5 x 19.6cmと小型である

IXシリーズについてもっと知りたい時は……

こちらのページにある各種マニュアルを読むことでNEC UNIVERGE IXシリーズについての基本的な知識を得ることができる。今回の記事ではIX2000シリーズ取扱説明書コマンドレファレンスマニュアル設定事例集に基づき設定を進めた。特に設定事例集は素晴らしくほとんどの場合は書かれている通りにコンフィグを記載すれば問題なく動作した。

比較検討したYAMAHA NVR500/510について

対抗馬としてYAMAHAのNVR500があがった。

NVR500の中古相場もIX2105と同等からやや高い程度であり複数台購入しても負担は少ないと考えた。
また、NECの製品よりも洗練されたWeb UIがありIP電話機能が充実しているという特徴がある。さらに、本体にUSB端子やmicroSDスロットがあるのが面白い。しかしながら、IPsecでの転送性能が公開されていないため性能に懸念があったため見送った。
NVR500の前面
IX2105にはないUSB端子やmicroSDスロットがある。
NVR500の背面
電話回線や電話機を接続できる。設定はシリアルケーブルで行うようだ。

IX2105の下準備

IX2105は家電量販店で販売されているルーターとは違い、LANケーブルでPCと繋いで電源を入れても電源ランプがついてセルフテストが走るのみだ。ルーターとして動作させるためには設定をしなければならない。設定はコンソールケーブルでPCと接続しターミナル上から行った。


IX2105をPCに接続した図。コンソールケーブルは片方がLANケーブル様で片方がDsub 9pinになっている。

ターミナルソフトウエアの導入

わかりやすいようにWindows[16]で設定を進めていくこととする。まずはターミナルソフトウエアの導入が必要[17]だ。すでに好みのものがある場合はそれでよいが、全く使ったことがない場合はTera Termがシンプルでよいだろう。
https://teratermproject.github.io/
IX2105とPCをコンソールケーブルで接続してからソフトウエアを起動すると次のような画面が表示される。

TeraTerm起動画面。これしか表示されないのでわかりやすい。
シリアルのラジオボタンを押して正しいCOMポートを設定すればターミナルソフトウエアの準備は完了だ。

起動と初期化

中古で購入したIX2105には前の利用者の設定が残っている可能性を考えまず初期化を行った。電源を切ったIX2105とPCをコンソールケーブルで接続しTeraTermを起動し、IX2105の電源を入れると下記のような画面が表示されるので、ここでCTRL+Cを押して次の画面を表示した。


IX2105の起動画面 Loading: ########が表示されたあたりでCTRL+Cを押す

次のようなプロンプトでccと入力するとSetup configurationをClearしてよいか聞かれるのでyと入力した。

boot[1]> cc
Enter "Y" to clear startup configuration: y
% Startup configuration is cleared.

これでSetup configurationがClearされてIX2105が初期化された。プロンプトが表示されたらbを入力してIX2105を再起動した。

NEC Bootstrap Software, Version 2.2
Copyright (c) NEC Corporation 2001-2011. All rights reserved.
boot[1]> b

再起動完了まで数分放置した。


再起動完了時のTeraTermの画面

ファームウエアアップデート

セキュリティリスクを減らすためにもできるだけ新しいファームウエアにしておくべきである。
ファームウエアアップデートについては取扱説明書の「6.保守と管理 バージョンアップ手順」が大変参考になった。

取扱説明書にしたがい、まずPC側にTFTPサーバーを建て、IX2105からそれを読み込む形でファームウエアアップデートを行った。

ファームウエアのバージョン確認

ファームウエアバージョンはTeraTermを用いてシリアルコンソールで確認した。

Router# enable-config
Enter configuration commands, one per line. End with CNTL/Z.

Router(config)# show version
NEC Portable Internetwork Core Operating System Software
IX Series IX2105 (magellan-sec) Software, Version 8.6.22B, MAINTENANCE RELEASE SOFTWARE
Compiled Dec 17-Mon-2012 17:13:51 JST #1 by sw-build, coregen-8.6(22)
......
System image file is "ix2105-ms-8.6.22.b.ldc"
......

執筆時のIX2105の最新ファームウエアバージョンはix2105-ms-10.2.42.ldcであった。しかし、購入したIX2105のファームウエアバージョンはix2105-ms-8.6.22.b.ldcであった。かなり古いのでバージョンアップが絶対に必要と考えた。

最新ファームウエアのダウンロード

最新ファームウエアは下記URLからダウンロードできた。規約をよく読みプルダウンメニューからIX2105を選択すると専用のページにアクセスできるようになった。
https://jpn.nec.com/univerge/ix/Download/index.html

IX2105の設定

アップデートはIX2105を設定しPCとLANケーブルで接続できるようにしたうえで、PC側にある最新のファームウエアをIX2105に読み込ませることで行った。

Router# enable-config
Enter configuration commands, one per line. End with CNTL/Z.

IPアドレスをPC側で設定してもいいがめんどくさいのでDHCPサーバーから振ってもらうこととした。今回はIX2105のGE1.0に接続したPCに192.168.1.1/24で割り振るように記載した。

Router(config)# ip dhcp enable
! dhcpv4-svはプロファイル名で好きな名前でよい
Router(config)# ip dhcp profile dhcpv4-sv 
Router(config-dhcp-dhcpv4-sv)# dns-server 192.168.1.1 
Router(config-dhcp-dhcpv4-sv)# exit

! GigaEthernet1.0(=GE1)に繋いだ端末にDHCPがIPアドレスを配るようにする
Router(config)# interface GigaEthernet1.0 
Router(config-GigaEthernet1.0)# ip address 192.168.1.1/24
Router(config-GigaEthernet1.0)# ip dhcp binding dhcpv4-sv
Router(config-GigaEthernet1.0)# no shutdown
Router(config-GigaEthernet1.0)# exit

コマンドを実行し設定を書き込んだ[18]

Router(config)# write memory
Building configuration...
% Warning: do NOT enter CNTL/Z while saving to avoid config corruption.

DHCPサーバーが有効になっているか確認した。

Router(config)# show ip dhcp server
DHCP server is enabled
  Leased to 0 clients in all
Interface GigaEthernet1.0
  Leased to 0 clients
Router(config)# show ip dhcp profile
DHCP profile dhcpv4-sv
  Leased to 0 clients
  Primary DNS server is 192.168.1.1
  Linklocal network on GigaEthernet1.0
    Assignable range is 192.168.1.1 - 192.168.1.254
    Subnet mask is 255.255.255.0
    Default gateway is 192.168.1.1

IX2105のGE1とPCをLANケーブルで接続し、Powershellからipconfigを実行して確認した。

PS C:\Users\user> ipconfig
Windows IP 構成
イーサネット アダプター イーサネット 5:
   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::XXXX:XXXX:XXXX:XXXX
   IPv4 アドレス . . . . . . . . . . . .: 192.168.1.2
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: 192.168.1.1

TFTPサーバーの準備

TFTPサーバーにはBlackJumboDogを使用した。
https://www.sapporoworks.ne.jp/spw/?page_id=361
インストールし起動すると次のようなウインドウが表示されるので設定からTFTPサーバを選択した。

BlackJumboDogのウインドウ
作業フォルダはダウンロードしたファームウエアのあるところを指定した。

基本設定タブ
アクセス制限はいちいち許可の設定をするのが面倒であったためDeny listにした。

ACLタブ
また、私の環境ではMicrosoft Defender Firewallを無効にする必要があった[19]

アップデート

作業はIX2105とPCをコンソールケーブルとLANケーブル両方で接続した状態で、操作はTeraterm(シリアルコンソール)から行った。
まず、IX2105からPCにPingを送って接続できているか改めて確認した。

Router# enable-config
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ping 192.168.1.2
PING 192.168.1.1 > 192.168.1.2 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=128 time=0.729 ms
......
--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms)  min/avg/max = 0.729/1.118/1.247

問題なく接続できているためコマンドを実行した。

Router(config)# software-update tftp://192.168.1.2/ix2105-boot-19.1-gate-ms-10.2.42.rap
% Downloading ...............
TFTP transfer complete, 7564355 bytes, MD5 = 4e9d6e8b62bafcc5ed620691364a45ab
% Check ...... done
% Erasing
  Now erasing ix2105-ms-8.6.22.a.ldc .... done
% Update file name is ix2105-ms-10.2.42.ldc
% Writing ..................... done
% Software update completed.

IX2105本体のBSYランプの消灯を確認し次の作業を行った。
アップデートできているか確認した。古いファームウエアのix2105-ms-8.6.22.b.ldcがMain-sideでActive(今動いている)もので、新しいix2105-ms-8.6.22.b.ldcはNewfileでNext-boot(次回起動時に読み込まれる)ことが示された。

Router(config)# show flash
Codes: M - Main-side, B - Backup-side, N - Newfile, R - Runnable
       A - Active-file, + - Next-boot, * - Bootmode-entry
Length     Name                          Status
6545803    ix2105-ms-10.2.42.ldc         N+
3780377    ix2105-ms-8.6.22.b.ldc        MA

[10347736 bytes used, 3798426 available, 14146162 total]
13824 Kbytes of processor board System flash (Read/Write)

ルーターをreloadコマンドで再起動した。

Router(config)# exit
Router# reload
Notice: The router will be RELOADED. This is to ensure that
        the peripheral devices are properly initialized.
Are you sure you want to reload the router? (Yes or [No]): yes

NEC Bootstrap Software
Copyright (c) NEC Corporation 2001-2019. All rights reserved.

%BOOT-INFO: Trying flash load, exec-image [ix2105-ms-10.2.42.ldc].
Loading: ################################......##########[OK]
......

再度show flashコマンドを実行し新しいix2105-ms-8.6.22.b.ldcがMain-sideでActiveになっていることを確認した。

Router(config)# show flash
Codes: M - Main-side, B - Backup-side, N - Newfile, R - Runnable
       A - Active-file, + - Next-boot, * - Bootmode-entry
Length     Name                          Status
6545803    ix2105-ms-10.2.42.ldc         MA
3780377    ix2105-ms-8.6.22.b.ldc        B

[10347736 bytes used, 3798426 available, 14146162 total]
13824 Kbytes of processor board System flash (Read/Write)

最後に前述の方法でルーターを初期化した。

ネットワークの構成とインターネット・VPNの設定

インターネットに接続できるようにして、自宅とシャックの間にVPNを構築した。下記ポンチ絵の如く、シャックと自宅をIPv6を用いたVPNで接続しその中にIPv4の通信を通すこととした。

ネットワークの構成のポンチ絵

はじめの設定

まず、ルーターに基本的な設定を行った。
ホスト名は自宅をHOME、シャックをSHACKとした。

Router# enable-config
Router(config)# hostname SHACK

このままでは誰でもシリアルコンソールから操作できてしまうであるため、管理権限のあるユーザーを作成した。

SHACK(config)# username *任意のID* password plain *任意のPW* administrator

ウエブコンソールは積極的には使用しないが、ブラウザからカジュアルに状態を確認するために便利なので有効にした。

SHACK(config)# http-server ip enable
SHACK(config)# http-server username *任意のID*

障害が起こった際などにあとから確認できるようにするためにログを取ることとした。ロギングの設定は下記が参考になった。
https://jpn.nec.com/univerge/ix/Support/Troubleshooting/eventlog.html
ここに記載されている設定ではWarn以上の警告を時刻とともにロギングするものである。今回はそのまま記載した。

運用時に推奨される設定例

Router(config)# logging subsystem all warn
Router(config)# logging buffered
Router(config)# logging timestamp datetime

IX2105にはNTPクライアントのみならずNTPサーバーの機能が搭載されている。まず、NTPサーバーからクライアント機能でIX2105の時刻を合わせることとした。その上でIX2105にNTPサーバーを有効にして、接続した無線機やパソコンはIX2105から時刻を問い合わせることにした。

シャックのIX2105ではNICTのNTPサーバーntp.nict.jpから、自宅のIX2105ではシャックのIX2105172.16.0.1から時刻を取得する設定とした。

SHACK(config)# ntp ip enable
SHACK(config)# ntp interval 300
SHACK(config)# ntp server *NTPサーバーのアドレス* priority 10

SHACKではNTPサーバーを有効にした。

SHACK(config)# ntp master

UFSキャッシュを有効化した。

SHACK(config)# ip ufs-cache max-entries 20000
SHACK(config)# ip ufs-cache enable
SHACK(config)# ipv6 ufs-cache max-entries 10000
SHACK(config)# ipv6 ufs-cache enable

インターネット接続の設定

IX2105にはLANケーブルが1本だけ挿さるGigaEthernet0.0(GE0.0)とスイッチングハブがありLANケーブルが4本挿さるGE1.0の2つのインターフェースがある。GE0.0にONUからの配線をつなぎいわゆるWAN側として、GE1.0には無線機やPCを接続していわゆるLAN側として使うこととした。

設定事例集との差異について……

設定事例集は IX2206 を例にして書かれている。IX2206 は二本足ルーターで、 GE0・GE1 と SW-HUB 付き GE2 が存在している。一方で今回用いたIX2105 は一本足ルーターで、GE0 と SW-HUB 付き GE1 が存在している。 基本的に設定事例集通りに書けばよいが、GE0/GE1→GE0、GE2→GE1と読み替えなくてはならない部分がある。

なお、この設定をする際には下記記事が大変参考になった。
https://qiita.com/shirok/items/b669557be7c62ad6df70


IX2105前面 GE0をWAN側、GE1をLAN側とするのがよいだろう

WAN側はIPv6のDHCPクライアントを有効にしてNTT/プロバイダからDHCPでIPv6アドレスをもらうこととした。

SHACK(config)# ipv6 dhcp client-profile dhcpv6-cl
SHACK(config)# information-request
SHACK(config)# option-request dns-servers
 
SHACK(config)# interface GigaEthernet0.0
SHACK(config-GigaEthernet0.0)# no ip address
SHACK(config-GigaEthernet0.0)# ipv6 enable
SHACK(config-GigaEthernet0.0)# ipv6 address autoconfig receive-default
SHACK(config-GigaEthernet0.0)# ipv6 dhcp client dhcpv6-cl
SHACK(config-GigaEthernet0.0)# ipv6 nd ra enable
SHACK(config-GigaEthernet0.0)# bridge-group 1

! 詳細は不勉強故不明だが設定事例集記載の指示あり
! フレッツ IPv6 IPoE サービスにおける破棄対策
SHACK(config-GigaEthernet0.0)# ipv6 traffic-class tos 0

SHACK(config-GigaEthernet0.0)# no shutdown
SHACK(config-GigaEthernet0.0)# exit
SHACK(config)#

GE1.0をLAN側としてDHCPでIPv4アドレスを割り当てた。シャックでは172.16.0.0/24を、自宅では192.168.11.0/24を割り当てることとした。

SHACK(config)# ip dhcp enable
SHACK(config)# proxy-dns ip enable request both
SHACK(config)# ip dhcp profile dhcpv4-sv
SHACK(config)# dns-server 172.16.0.1

SHACK(config)# interface GigaEthernet1.0
SHACK(config-GigaEthernet1.0)# ip address 172.16.0.1/24
SHACK(config-GigaEthernet1.0)# ip dhcp binding dhcpv4-sv
SHACK(config-GigaEthernet1.0)# ipv6 enable
SHACK(config-GigaEthernet1.0)# bridge-group 1
SHACK(config-GigaEthernet1.0)# no shutdown
SHACK(config-GigaEthernet1.0)# exit
SHACK(config)#

WAN側とLAN側をブリッジングした。

SHACK(config)# bridge irb enable
SHACK(config)# no bridge 1 bridge ip

ここで接続状態を確認してみた。

https://test-ipv6.com/index.html.ja_JP

前述のとおり、NTT/プロバイダからはIPv6アドレスしか割り当てされないため、IPv4ではインターネットに接続できない状態であった。


IPv6しかない(=IPv4へのアクセスがない)「まじで漢」な状態

IPv4でインターネットに接続するために、プロバイダが示すTransix/DS-Liteを通してIPv4/IPv6変換を行った。
Transix/DS-LiteへのトンネルをTunnel0.0として、他に行き先が指定されていないすべてのIPv4パケットをこれにルーティングした。

SHACK(config)# ip route default Tunnel0.0

SHACK(config)# interface Tunnel0.0
SHACK(config-Tunnel0.0)# tunnel mode 4-over-6
SHACK(config-Tunnel0.0)# no tunnel adjust-mtu
SHACK(config-Tunnel0.0)# tunnel source GigaEthernet0.0
SHACK(config-Tunnel0.0)# tunnel destination fqdn *Transix/DS-Liteのアドレス*
SHACK(config-Tunnel0.0)# ip unnumbered GigaEthernet1.0
SHACK(config-Tunnel0.0)# ip tcp adjust-mss 1460
SHACK(config-Tunnel0.0)# no shutdown
SHACK(config-Tunnel0.0)# exit
SHACK(config)#

これでIPv4でもIPv6でもインターネットに接続できるようになったはずである。


「まじで漢」を脱しIPv4でインターネットにアクセスできるようになった

回線速度も測定した。
https://inonius.net/speedtest/


回線速度測定の結果 IPv4はIPv6を経由しているため速い方で考える。

VPNの設定

シャックと自宅のIX2105をIPv6で接続しその中にIPv4の通信を通すようなVPNを構成した。出先からの接続や今後の拡張性を考えて、シャックはいずれのIPv6アドレスからも接続できるようにした[21]。一方で自宅はシャックのIPv6アドレスに対して接続する設定とした。
この設定をするにあたっては設定事例集の「18.19 IPv6 サービスを利用したインターネット VPN(IPoE 方式、ひかり電話未契約時)」項が大変参考になった。一部で読み替えが必要であるが基本的にここに記載されているとおりに進めれば問題なくVPNが構成できた。

シャックの設定

自宅とのVPNに使うTunnel1.0を定義して、自宅192.168.11.0/24に宛てたパケットをこちらへルーティングする。それ以外はすべてTunnel0.0にルーティングする。

SHACK(config)# ip route 192.168.11.0/24 Tunnel1.0
SHACK(config)# ip route default Tunnel0.0

IPsec VPNの暗号化について設定を行った。
鍵に関する共通設定を記述した。

SHACK(config)# ike proposal ike-prop encryption aes-256 hash sha lifetime 3600
SHACK(config)# ipsec autokey-proposal ipsec-prop esp-aes-256 esp-sha lifetime time 3600

すべてのパケットをIPsecの対象とした。

SHACK(config)# ip access-list sec-list permit ip src any dest any

Ike/IPsecの個別ポリシーについて設定を行った。
KEY IDを1_HOMEとすることや事前共有鍵について記載した。また、ローカル(=シャック)やリモート(=自宅)のIPアドレス範囲についても記述した。

SHACK(config)# ike policy ike-policy1 peer any key *事前共有鍵* mode aggressive ike-prop
SHACK(config)# ike remote-id ike-policy1 keyid 1_HOME
SHACK(config)# ike commit-bit ike-policy1
SHACK(config)# ipsec dynamic-map ipsec-policy1 sec-list ipsec-prop ike ike-policy1
SHACK(config)# ipsec local-id ipsec-policy1 172.16.0.0/24
SHACK(config)# ipsec remote-id ipsec-policy1 192.168.11.0/24

Tunnel1.0についての設定を行う。

SHACK(config)# interface Tunnel1.0
SHACK(config-Tunnel1.0)# tunnel mode ipsec
SHACK(config-Tunnel1.0)# ip unnumbered GigaEthernet1.0
SHACK(config-Tunnel1.0)# ipsec policy tunnel ipsec-policy1 out
SHACK(config-Tunnel1.0)# no shutdown
SHACK(config-Tunnel1.0)# exit

自宅の設定

シャックとのVPNに使うTunnel1.0を定義して、シャック172.16.0.0/24に宛てたパケットをこちらへルーティングし、それ以外はすべてTunnel0.0にルーティングするように設定した。

HOME(config)# ip route 172.16.0.0/24 Tunnel1.0
HOME(config)# ip route default Tunnel0.0

すべてのパケットをIPsecのカプセル化対象とした。

HOME(config)# ip access-list sec-list permit ip src any dest any

IPsec VPNの暗号化について設定を行った。鍵に関する共通設定を記述した。

HOME(config)# ike proposal ike-prop encryption aes-256 hash sha lifetime 3600
HOME(config)# ipsec autokey-proposal ipsec-prop esp-aes-256 esp-sha lifetime time 3600

Ike/IPsecの個別ポリシーについて設定を行った。KEY IDはシャックでこのVPN用に設定した1_HOMEとした。接続先はシャックではanyとしたが自宅ではシャックのIPv6アドレスを指定した。また、事前共有鍵について記載する。ローカル(=自宅)やリモート(=シャック)のIPアドレス範囲についても記述した。

HOME(config)# ike policy ike-policy peer *シャックのIPv6アドレス* key *事前共有鍵* mode aggressive ike-prop
HOME(config)# ike local-id ike-policy keyid 1_HOME
HOME(config)# ipsec autokey-map ipsec-policy sec-list peer *シャックのIPv6アドレス* ipsec-prop
HOME(config)# ipsec local-id ipsec-policy 192.168.12.0/24
HOME(config)# ipsec remote-id ipsec-policy 172.16.0.0/24

接続が途切れても自動的に復帰することができるように、IKEキープアライブと定期的な接続確認のための設定を記述した。

HOME(config)# ike keepalive ike-policy 10 3

HOME(config)# watch-group shack-ipsec 10
HOME(config)# event 10 ip unreach-host 172.16.0.1 Tunnel1.0 source GigaEthernet1.0
HOME(config)# action 10 ipsec clear-sa Tunnel1.0
HOME(config)# probe-timer variance 10
HOME(config)# probe-timer restorer 10
HOME(config)# network-monitor shack-ipsec enable

ダングリング SA 抑止機能を有効にした。

HOME(config)# ike suppress-dangling

Tunnel1.0の設定をおこなった。

HOME(config)# interface Tunnel1.0
HOME(config-Tunnel1.0)# tunnel mode ipsec
HOME(config-Tunnel1.0)# ip unnumbered GigaEthernet1.0
HOME(config-Tunnel1.0)# ipsec policy tunnel ipsec-policy out
HOME(config-Tunnel1.0)# ip tcp adjust-mss auto
HOME(config-Tunnel1.0)# no shutdown
HOME(config-Tunnel1.0)# exit

接続の確認

ここまでの設定を行って双方のIX2105を回線に接続すると自動的にVPN接続がなされた。
VPN接続が確立するとIX2105の前面のVPNランプが緑色に点灯した。

VPN接続中 VPNランプが点灯した(矢印部)

pingコマンドで接続確認した。
自宅に接続したPC192.168.11.2からシャックのIX2105172.16.0.1pingを送った。

PS C:\Users\user> ping 172.16.0.1

172.16.0.1 に ping を送信しています 32 バイトのデータ:
172.16.0.1 からの応答: バイト数 =32 時間 =39ms TTL=63
172.16.0.1 からの応答: バイト数 =32 時間 =21ms TTL=63
172.16.0.1 からの応答: バイト数 =32 時間 =29ms TTL=63
172.16.0.1 からの応答: バイト数 =32 時間 =19ms TTL=63

172.16.0.1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 19ms、最大 = 39ms、平均 = 27ms

反対も試してみた。シャックに接続したPC172.16.0.2から自宅のIX2105192.168.11.1pingを送った。

PS C:\Users\user> ping 192.168.11.1

192.168.11.1 に ping を送信しています 32 バイトのデータ:
192.168.11.1 からの応答: バイト数 =32 時間 =7ms TTL=63
192.168.11.1 からの応答: バイト数 =32 時間 =7ms TTL=63
192.168.11.1 からの応答: バイト数 =32 時間 =7ms TTL=63
192.168.11.1 からの応答: バイト数 =32 時間 =7ms TTL=63

192.168.11.1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 7ms、最大 = 7ms、平均 = 7ms

無線機とRS-BA1の設定

無線機のIPアドレスは固定するためにDHCPを使用せず手動で割り当てた。
IC-7700は取扱説明書の「p. 14-13 保守について>IPアドレスとサブネットマスクの設定」を参考に、IC-9700は取扱説明書の「p. 14-18 セットモード>ネットワーク」を参考に設定を行った。


IC-7700の設定画面 リモート制御のための設定もした

またRS-BA1 Version 2については取扱説明書を参考にインストールと設定を行った。

リモート運用

リモート運用中の様子を示した。リモートと手元の受信機の音声を同時に流すとややエコーがかかっているように聞こえレイテンシーがあることがわかるが実運用上問題はなかった。

IC-7700を自宅リビングからリモートする様子
IC-9700についてはスペクトラムスコープも問題なくヌルヌルと動作していた。

IC-9700リモート操作時の画面 スペクトラムスコープも表示されている

終わりに

今回、自宅―シャック間を接続するNEC UNIVERGE IX2105を用いてIPv6接続するVPNを構築したため紹介した。多くの無線機やコントロールソフトウエアが公式ではIPv4にしか対応しないがこの方法をもちいることで、IPv6しかない環境でもリモート運用することが可能になる。IPv4アドレスの枯渇が叫ばれる中、IPv6を用いた新時代のリモート運用への取り組みの一助となれば幸いである。
最後に今回のVPN構築には多くの関係者にご支援を頂いた。特に、中学~高校の先輩でITエンジニアであるMCtek氏にはNEC UNIVERGE IX2105のコンフィグの書き方について全面的に指導して頂いたのみならずTCP/IPの仕組みについて多くのことを教えて頂いた。

https://zenn.dev/mctek

また、CONTESTer[22]でありDXer[23]であるK氏をはじめとする日々一緒にアマチュア無線を楽しんでくれる皆さんにも様々な提案を頂いた。この場をかりて深謝する。

筆者について……

〇〇年前に小学生だった私はなんとなくカッコいいしコスパよく箔が付くからという理由で四級アマチュア無線技士の資格を取得した。中学生になり中学受験の勉強から解放され遊び放題になったため開局し、同時に学校クラブにも加わった。仲の良い先輩がいたこともあり毎日下校時間ぎりぎりまで部室に入り浸るくらいアマチュア無線やクラブの活動にハマっていた。その後、たまたま交信した相手からコールサイン(再割り当てのJAコール)の前の持ち主がすごい人であると教えてもらい、これに恥じぬよう一生懸命やることに決めた。そうなるとすぐにでもタワーやビームアンテナや1KWリニアアンプが欲しいと思うようになった。しかし、自分がまた入門資格の四級で飽きっぽい性格であることを思い出したため、「二十年続いたらタワーを建てる」ことにした。以来、準備のため上級資格(や海外資格)を取得したり資金準備をしたりしつつアマチュア無線を楽しんでいた。無事に開局二十周年を迎えたため人里離れた地の原野を取得しタワーを建てリモート運用できる環境を構築した。
今回のネタ以外にも、無線に適した土地の選び方や取得について、タワーの解体・建立について、免許申請について、アンテナの設計とシミュレーションについて、電子工作や無線機の修理などの話題も持ち合わせている。しかし、おそらくこのプラットフォームで求められている技術的情報ではないと思われること、すでにCQ誌[24]や諸OM[25]のブログなどで情報が多数あることよりひとまずは割愛する。もし需要があればプラットフォームの趣旨を考慮しつつ執筆を検討する。

脚注
  1. 要するにお金をもらうための仕事のためではない興味のために通信術をやってみたり研究してみたりするために使える無線のこと。端的には合法電波遊び。必要な資格を取得して無線局の免許を申請すると国からコールサインがもらえる。法的には「金銭上の利益のためでなく、もつぱら個人的な無線技術の興味によつて行う自己訓練、通信及び技術的研究その他総務大臣が別に告示する業務を行う無線通信業務をいう(電波法施行規則 昭和二十五年電波監理委員会規則第十四号 三条十五)」と定められている。 ↩︎

  2. 鉄塔のこと。たまに見かけるでかいアンテナが乗っているやつがそれである。 ↩︎

  3. 指向性のあるアンテナのことだが、一般的には魚骨状の形態をした八木アンテナのようなアンテナを指す。 ↩︎

  4. 日本でアマチュア無線局に許可される上限出力である。 ↩︎

  5. 郊外の戸建てであればまだ実現可能性は高いものの都心部在住で住宅密集地であったり賃貸であったり集合住宅であれば不可能と言わざるを得ない。また趣味の人特有の気質や対人関係能力の問題でご近所さんがたった一人でもいる時点で困難な場合もあるだろう。 ↩︎

  6. リモート運用には一定の条件がある。- 遠隔操作指針 - ↩︎

  7. shack: 掘っ立て小屋、アマチュア無線の世界では無線小屋や無線機のおいてある部屋のことである。 ↩︎

  8. 以前と事情は変わって四級と三級はCBTで受験するようになったようだ。私の時は完全丸暗記という文庫本サイズの本の問題と答えを全部覚えて受ければ余裕で合格した。詳細な情報は受験案内 | 公益財団法人 日本無線協会, 無線従事者国家試験 | CBT-Solutions CBT/PBT試験 受験者ポータルサイト などを参照されたし。 ↩︎

  9. 現在は対面のみならずeラーニングも実施され、さらに二級まで講習会で取得できるなど、事情は変わっているようである。多くの人に門戸が開かれて仲間が増える可能性があるのは素晴らしいことである。はじめよう!アマチュア無線 |アマチュア無線技士 養成課程講習会 | QCQ企画, JARD講習会<4アマ/3アマ(集合講習)>|一般財団法人日本アマチュア無線振興協会 などを参照されたし。 ↩︎

  10. 本記事執筆中にICOMより最新機種のIC-7760が発表された。本体とコントローラーを分けてLANケーブルで接続して操作するようになっていてネットワーク経由のコントロールも可能とのことである。今後のリモート運用の世界が大きく変わる可能性がある一品だろう。コントローラーとRFデッキのツーピース構成を採用した、HF+50MHz対応の200WトランシーバーIC-7760を新発売。 | ニュースリリース | アイコムIC-7760 | 製品情報 | アイコム ↩︎

  11. ここに記した以外にIC-7610も所有している。大変優れた無線機だがメインダイヤルの質感がいただけない。RC-28の質感はIC-7610の質感よりも優れている。 ↩︎

  12. Location: 位置や場所を意味するが、アマチュア無線の世界では見通しや障害物の有無や電波の飛び/入りやノイズの多少やアンテナを広げられるスペースの有無などアマチュア無線を楽しめる場所かどうかを表す言葉として使われる。ロケーションがよければアマチュア無線の楽しみも広がる。省略してロケともいわれる。 ↩︎

  13. Amateur Codeの一節より。Codeはプログラミングのことではなく、慣例・慣習・規約のことである。おそらく原典であるAmateur Codeによると、アマチュア無線家は、CONSIDERATE(思慮深く)、LOYAL(誠実で)、PROGRESSIVE(進歩的で)、FRIENDLY(親切で)、BALANCED(健全で)、PATRIOTIC(奉仕的で)あるべきとしている。日本のアマチュア無線連盟が唱えるアマチュアコードもあるがちょっと違うような気がするが、日本風にLocalizeされたのだろう。「私は健全である点以外全部できている」とか、「これは現代のSDGsにつながる考え方である」とか私見を述べてみる。 ↩︎

  14. ロケーションが良いのはアマチュア無線だけ ↩︎

  15. 選定理由はいずれも高速と思われることかつ安いからである。ただ、IPoEで接続できてIPv6アドレスが貰えれば何でも良いので好みで選定すれば良い。自宅ではあえて今回のために選んだというよりはもともとこのプロバイダを契約していてちょうど条件に合致したのでそのまま継続している。 ↩︎

  16. 手元にLinuxがインストールされた端末があったため最初はそれで設作業を行った。シリアル通信とファームウエアアップデートはmacOS環境でUNIVERGE IXルーターのFWアップデートがとても参考になった。2代目以降はWindowsでも検証している。そもそもターミナルソフトウエアが動き、Serial通信さえできればOSは何でも構わない。RS-BA1 Version 2がWindowsしか対応していないため、あえて新たにLinuxを用意するのはナンセンスであろう。 ↩︎

  17. Windowsにはおそらくターミナルソフトウエアが含まれていないためである。昔はハイパーターミナルというのがついていた気がしたがどうなったのだろう。 ↩︎

  18. これやらなくてもよいという話がある。心配だからやっているけど。 ↩︎

  19. 多分Firewallの設定をすればいいんだと思うけどこれのためだけに色々するのが面倒だった。Firewallが無効になっている間はインターネットから切断しておいたほうが良いだろう。 ↩︎

  20. Franke-Taylor design, 8-FSK modulation の略である。Joe Taylor(K1JT)とSteve Franke(K9AN)によってコンディションが悪い(ノイズが多い・伝播状況が良くない)時やパワーが出せない際に通信することを目的に開発された。SSBの復調には+10dB程度のS/N比が必要だが、FT8では-21dB程度でも可能とのことで、その差は約30dB(1000倍)に及ぶ。これは、SSBでは出力が1KW必要なところでもFT8なら1Wで良いということである。つまり簡便な設備であったり低出力(入門資格)でも海外と交信できる機会が与えられるのだ。これが多くのアマチュア無線家を引き付けているようだ。交信の方法は特徴的で、時刻と同期して15秒ごとに13文字のメッセージを送受信しあう。 ↩︎

  21. 必要に応じてアクセス制限をかけるべきだろう。 ↩︎

  22. CONTESTというのは一定時間内に交信できた局数を競うアマチュア無線の楽しみ方の一つ。それに熱心なCONTESTerという。しのぎを削るCONTESTerたちは一人で同時に何台もの無線機を操り喋りつつ腹話術を行いながらモールス信号を叩き複数の無線局と交信するとのことだ。 ↩︎

  23. 海外との交信(=DX)を楽しむ人のこと。興じる人であればアマチュア無線局がいなかったり少なかったりする珍しい国や地域からの運用の噂を聞けば狙った局を執拗に付け狙い交信の機会を伺うため寝食を忘れ数日間にわたり無線室にこもるらしい。 ↩︎

  24. 厳しい選択をうけても令和の世に生存する数少ないアマチュア無線専門誌のこと。「CQ」とははすべての無線局宛を意味し、アマチュア無線では交信相手を探すときの呼びかけである。発行している出版社もCQ出版というところである。アマチュア無線関連ではない書籍も出しているため電気電子系の世界では知る人も多いだろう。 ↩︎

  25. Old Man: 爺さん・老人・親方とかそういう意味だがこの世界では知識や経験のある人に対する敬称として使われる。OMとして敬意を集める人はたいてい親切では豊富で技術的(ときには物的?)にも支援してくれる。しかしながら、特異なパーソナリティーの人もいる。そういう人には注意したほうがいいだろう。 ↩︎

Discussion