AND OR  

YAMAHA RTX

ここではYAMAHA製ルーター RTXシリーズについての情報を整理する。

  • 環境
    機器: YAMAHA RTX830 (Rev.15.02.09以降)
    回線: ドコモ光タイプA(GMO とくとくBB) ひかり電話契約無し(RA)
    接続方式: IPv6 IPoE + Ipv4 over IPv6 (v6プラス)
    ONU -> RTX830 -> RT-AC86U
     600x400

IPv4 over IPv6 (MAP-E)

RTX830はRev.15.02.03以降でMAP-E方式に正式対応。YAMAHA公式サイトの設定例で特に問題なく接続できた。

  • v6プラスでインターネット接続 : コマンド設定
    よく言われることだけどGUI設定と混在すると躓きやすい。2019/07現在、MAP-E対応はGUIだとまだできないのでCUIで全て設定した方が良い。
    ルーターとONU直結、ひかり電話無しのシンプルな構成ならコンフィグは公式サイト通りでOK。
  • コンフィグ 接続確認

MAP-E アドレス/ポートレンジ計算

MAP-Eアドレス/ポートレンジ計算を手動でやって設定すれば、MAP-E正式対応前のファームウェアでも既存のコマンドで接続できるらしい。BRのIPv6アドレスとマップルールを知っていれば計算手順自体は簡単かと。

NAT

MAP-E対応しているとNATについて調べることが増えたので個別に整理する。

DHCP

予約アドレスの設定

IPアドレスを割り当てるDHCPクライアントを固定的に設定する。

dhcp scope bind [scope_num] [ip_address] [mac_address]
例:
# dhcp scope bind 1 192.168.100.2 2C:FD:A1:CE:29:1A

Yamaha Network Organizer (YNO)

ヤマハが提供するクラウド型のネットワーク統合管理サービス

  • Yamaha Network Organizer(YNO) 特長
    できること:
    クラウド上でのネットワーク機器情報管理 
    異常の一元把握
    複数機器設定の自動化
    『YNO』からのLAN環境把握
    ユーザー管理機能
    ライセンスが微妙に高い気がする(昨今のパブリッククラウド利用料と比べれば格安ではあるけど)。キャンペーンやってたら試しに使ってみる予定。

セキュリティ

パケットフィルタ

静的パケットフィルタのコマンドは以下のフォーマットとなっている。IPv6の場合は以下 ip の部分を ipv6 に変更するだけで良い。

ip filter [フィルタ番号] [アクション] [送信元IP] [宛先IP] [プロトコル] [送信元ポート] [宛先ポート]

アクションは以下の9種類、passは通過、rejectは破棄、restrictは回線が接続しているときは通過、切断しているときは破棄するアクションとなり、それぞれログ出力有りと無しの指定ができる。

pass/pass-log/pass-nolog/reject/reject-log/reject-nolog/restrict/restrict-log/restrict-nolog

また、プロトコルの指定方法は定義済プロトコル(ニーモニック)の他、プロトコルを示す十進数指定も可能。ポート指定にもニーモニックが利用できる。

静的パケットフィルタの適用は以下のコマンドの通り。

ip [インタフェース名] secure filter [方向 in/out] [フィルタリスト]

動的パケットフィルタのコマンドは以下のフォーマットとなっている。

ip filter dynamic [フィルタ番号] [送信元IP] [宛先IP] [サービス] [オプション]

ニーモニックを指定するだけでトリガーパケットとして設定できる。動的パケットフィルタはパケットを通過させるときに利用するので、破棄するパケットは静的パケットフィルタで定義することになる。動的パケットフィルタの適用は以下のコマンドの通り。静的パケットフィルタと併せて適用する必要があるので以下のような書式となっており、dynamic の後に動的パケットフィルタのIDを列挙する。

ip [インタフェース名] secure filter [方向 in/out] [フィルタリスト] dynamic [フィルタリスト]

パケットフィルタの詳細な挙動等については公式サイトを参照

不正アクセス検知 (IDS)

シグネチャベースの不正アクセス検知システム。動的パケットフィルタと連動するタイプがあるので、動的パケットフィルタの設定も併せて行う必要がある。

 ip intrusion detection [方向 in/out] [パケット種別] [機能スイッチ on/off] [オプション]

パケット種別は以下の通り。

ip/ip-option/fragment/icmp/udp/tcp/ftp/winny/share

オプションは不正なパケットを検知したときのアクションであり、reject=on (パケット破棄する)と refect=off (パケット破棄しない)を指定できる。

Luaスクリプト機能

ヤマハルーターではLuaスクリプト実行環境が搭載されている。

プロトタイプベースのOOP言語なので、一昔前のJavaScriptと同じ感覚で使える。ただし、ルーターに実装されている処理系だと機能制限されているので注意。標準関数であっても利用できないものがある。

# show status lua
Luaライブラリバージョン:        Lua 5.1.5
Luaスクリプト機能バージョン:    1.08

[running]
走行中のLuaスクリプトはありません

[history]
(1)
走行トリガー:        'lua' コマンド
コマンドライン:      lua -e "print(\"Hello, world!\")"
走行回数:            1
エラー発生回数:      0
初回の開始日時:      2019/07/06 00:31:47
前回の開始日時:      2019/07/06 00:31:47
前回の終了日時:      2019/07/06 00:31:47
前回の走行結果:      正常終了

Luaのバージョンはファームウェア配信でアップデートされるらしい。2019/07現在は5.1.5なのでけっこう古め。Luaスクリプト機能バージョンというのは、ファームウェアによって独自に追加された機能等を管理するリビジョン番号のようなもの。各バージョン毎のchangelogは上記サイト内に記載されている。ヤマハルーター専用 APIは面白そうなのでいろいろ使ってみて整理する予定。

管理

初期設定

工場出荷時の設定は以下のようになっている。
LAN1のIPアドレス: 192.168.100.1/24
ログインパスワード/管理パスワード: 無し

文字コード

以下のコマンドでUTF-8に設定できる。

console character ja.utf8

SSH

SSH接続可能にするには[管理] -> [アクセス管理] -> [各種サーバーの設定]から設定できる。
アクセスはLANのみ、あるいは外部踏み台サーバ経由して接続するようにした。
また、RTX830が対応している暗号アルゴリズムは以下のようになっていた、新しめの鍵は対応していないらしい。デフォルトではリストの上3つのみ有効になっていた。

aes128-ctr (デフォルトで有効)
aes192-ctr (デフォルトで有効)
aes256-ctr (デフォルトで有効)
aes128-cbc
aes192-cbc
aes256-cbc
3des-cbc
blowfish-cbc
cast128-cbc
arcfour

ただし公開鍵認証ではなくパスワード認証なので注意。また、SSHを有効にしたらTELNET接続は無効にした方が良い。

コンソール接続

RTX830ではUSB mini-B及びRJ-45に対応している。mini-Bももはや懐かしいインタフェース。シリアルドライバーはWindowsのものしか公開されてないようで、macOSも対応してくれると嬉しいのだけど。

ポート開放

v6プラス環境では自由にポートが使えないのでポート開放するには一手間必要。自分が使えるポートは以下のコマンドで確認できる。

# show nat descriptor address
NAT/IPマスカレード 動作タイプ : 2
参照NATディスクリプタ : 1000, 適用インタフェース : TUNNEL[1](1)
Masqueradeテーブル
   外側アドレス: map-e/xxx.xxx.xxx.xxx
   ポート範囲: 4880-4895, 8976-8991, 13072-13087, 17168-17183, 21264-21279, 25
360-25375, 29456-29471, 33552-33567, 37648-37663, 41744-41759, 45840-45855, 499
36-49951, 54032-54047, 58128-58143, 62224-62239
... 省略                                

こういう場合はお尻の62224-62239の範囲のポートから使っていくと覚えやすいかも。

NetBIOS

Windows環境でNAS等を利用してファイル共有をしている場合は、NetBIOS用の設定を入れないと接続できない可能性がある。
nbtstatコマンドでNetBIOSのキャッシュ情報を確認できる。

PS> nbtstat -c
.. 省略
                  NetBIOS リモート キャッシュ ネーム テーブル

       名前              種類       ホストアドレス    継続時間 [秒]
   ------------------------------------------------------------
   BOX          <20>  一意              192.168.100.3       491
   BOX          <00>  一意              192.168.100.3       141

この例ではBOXがNetBIOS名となっており、割り当てられているプライベートIPも確認できる。
VPN経由あるいはIPv4 over IPv6環境でファイル共有できない場合はNetBIOSの設定を確認すると解決するかも。

NetBIOSのフィルタについて

外部メモリ (microSD)

[管理] -> [保守] -> [CONFIGファイルの管理]からコンフィグファイルのimport/exportが可能。
コンフィグ情報を保存するファイル名を指定しておけば、microSDを挿しておくだけでコンフィグ情報が自動保存される。大容量高耐久モデルじゃなくてよいので余ってるmicroSDカードがあれば挿しておくと安心感が得られるかと。
コンフィグファイル名は"config.txt"としてSDカード内に置いておけば自動で検索され読み込まれる。絶対パスで指定しておけば速く読み込めるのかもしれないが計測はしていない。

tftp

TFTPサービスを実行しているリモートコンピューター間でファイルを転送する。コンフィグファイルの取得/転送するには以下のコマンド。

PS> tftp 192.168.100.1 get config/password config.txt
PS> tftp 192.168.100.1 put config.txt config/password

バイナリファイルを転送する場合は -iオプション を付ける。

その他メモ

プロバイダ

プロバイダがGMOとくとくBBの場合は、v6プラス接続を開通するとPPPoE接続が止められる模様。実際にv6プラス切り替え後はPPPoE接続では認証エラーのため接続できない。

ヤマハネットワークエンジニア会(YNE)

YAMAHA製品ユーザーコミュニティサイト