🖋️2020-05-01 🔄2020-08-22
by shibanyan_1

YAMAHA RTX830 をSSHで設定する

YAMAHAルータで広告ブロックが出来る件

カバさんルータから卒業すべく、イマドキなインターネッツに対応してて、イマドキなVPN張れて、内部にDNSサーバがあって、安定して動作する安価なルータを探してたら、RTX 830なるものがあると知り、安くなってたのでかっちった。

更新履歴 #

日時 内容
2020-05-24
  • Public DNSの設定
  • MTU値の設定
  • 重複したフィルタの統合
  • 2020-07-30
  • configのエクスポート
  • saveコマンドの意味を追記
  • NATセッション数の表示
  • ローカルIPアドレスの固定
  • セカンダリDNSサーバ
  • ポート開放
  • 2020-08-21
  • インターフェースの状態・リンク速度の表示
  • CPUやメモリ使用率の表示
  • DNSキャッシュの表示・削除
  • NTP
  • コンソール表示文字数の設定
  • FQDNフィルタでのお行儀の悪いドメインのブロック
  • QoS
  • 2020-08-22
  • w32tm.exeでシステム時刻のズレを計測する方法を追記
  • なぜYAMAHA RTX830にしたのか #

    ヤマハネットワーク製品の仕様比較

    NVR510は小型ONUに対応しているが、現在は地元産のオーガニックなVDSLから伸びる古き良き電話線で、あっても腰が重く工事が一向に進まないNUROなので私にはあまり関係ない。
    VPNの機能・スループットや"その他機能"がRTX830、更にRTX1210の方が上。
    どちらもファンレスなので、蓋をこじ開けてNoctuaを突っ込む必要がない。

    NEC UNIVERGE IX2215やIX2106辺りも視野に入れたが、内部DNSサーバは無さそうなので却下。

    結局必要十分ということでRTX830にした。

    ハードの準備 #

    用意するもの #

    • ルータ本体
    • シリアルコンソールケーブル
      なきゃないでWebGUIからのtelnetなりSSHなりすれば良い
    • 届く長さのCat.6A辺りのUTPなLANケーブル
      間違って買ってしまったCat.7でも良い
    • Wi-Fiアクセスポイント
      (に降格したWi-Fiルータでも良い)
      今時ならWi-Fi6対応のゲーミングWi-Fiルータをブリッジで繋げれば良いと思う
      逸般人ははんぺんでもよい

    接続 #

    うちの鼻毛ネットワーク例

    RTX830

    公式オンラインマニュアル一覧
    変な金具の使い方も載ってる
    manual release for RT Series

    コンセント繋げて電源入れてLANケーブル繋がってれば、ブラウザから192.168.100.1にアクセスするとWeb GUIが開く。

    Web GUI #

    RTX830

    Web GUIで大まかな設定は出来るようになっているが、少々分かりにくいのと、整合性の保証がないので、設定後はSSHで確認しよう。

    ユーザーの設定 #

    管理タブ -> アクセス管理 -> ユーザーの設定 で管理パスワードと、SSHで接続でき、管理ユーザーへの昇格ができるユーザー名のある一般ユーザーを作成しておく。
    順番を間違えると権限で詰むので注意(本体MicroSD + USB + Downloadボタン同時押しで工場出荷状態からやり直せる)。

    configのエクスポート #

    管理 -> 保守 -> CONFIGファイルの管理で設定をバックアップできる。
    ここでは、configの表示show configとログイン情報を合わせたファイルをエクスポート/インポートできる。

    SSH #

    TELNET複数セッション機能、SSHサーバー機能 コマンド

    パスワード認証でSSH #

    SSHでの無名ログインがよく分からなかったので、Web GUIでユーザをつくって接続。

    ssh [email protected]
    [email protected]'s password: 
    
    
    RTX830 Rev.15.02.14 (Thu Dec 19 10:43:21 2019)
    Copyright (c) 1994-2019 Yamaha Corporation. All Rights Reserved.
    To display the software copyright statement, use 'show copyright' command.
    XX:XX:XX:XX:XX:XX, XX:XX:XX:XX:XX:XX
    Memory 256Mbytes, 2LAN
    >
    

    文字化け #

    環境によって適切な文字コードは変わる。
    VSCode Remote Development経由のWSLを使っているので、en.asciija.utf8を選択。

    > ls
    �G���[: �R�}���h�����m�F����������
    
    > console character ?
        ���͌`���F console character �����R�[�h
                   �����R�[�h = 'en.ascii', 'ja.sjis', 'ja.euc' or 'ja.utf8'
    �@    �@�����F �o�͕����R�[�h��I�����܂�
    �f�t�H���g�l�F ja.sjis
    
    > console character ja.sjis
    > ls
    �G���[: �R�}���h�����m�F����������
    
    > console character en.ascii
    > ls
    Error: Invalid command name
    
    > console character ja.utf8
    > ls
    エラー: コマンド名を確認してください
    

    エラー: このコマンドは管理レベルでのみ使用できます #

    administrator で 所謂sudoのように昇格できる。

    > save 
    エラー: このコマンドは管理レベルでのみ使用できます
    > administrator 
    Password: 
    # save
    

    設定の保存 #

    RTXのコマンドは実行した瞬間に適用され、電源が入っていれば設定が保持される。
    電源を切っても設定を保持できるように、不揮発性メモリに書き込む必要がある。

    > administrator 
    Password: 
    # save 
    セーブ中... CONFIG0 終了
    # exit
    >
    
    > administrator 
    Password: 
    不揮発性メモリに保存されていない設定変更があります
    # quit 
    新しい設定を保存しますか? (Y/N)Y
    セーブ中... CONFIG0 終了
    > 
    

    SSHの鍵認証 #

    まずはクライアントで鍵ペアの生成

    ssh-keygen -t ed25519
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/sbn/.ssh/id_rsa): yamahartx_id_ed25519
    ~~
    
    ls
    yamahartx_id_ed25519 yamahartx_id_ed25519.pub
    

    意地でもUSBやSDを使うつもりはないので、sftpで送りつけてやる

    SFTPサーバー機能
    RTFS

    sftp [email protected]
    [email protected]'s password: 
    Connected to 192.168.100.1.
    sftp> ls
    dashboard  system    
    

    administratorのpasswordじゃないとPermission Denied

    sftp> mkdir pub
    sftp> ls
    dashboard  pub        system     
    sftp> cd pub
    sftp> put rtx830_id_ed25519.pub .
    Uploading rtx830_id_ed25519.pub to /pub/./rtx830_id_ed25519.pub
    rtx830_id_ed25519.pub                                                100%   98   133.9KB/s   00:00    
    sftp> ls
    rtx830_id_ed25519.pub    
    sftp> exit
    
    sftp [email protected]
    [email protected]'s password: 
    Connected to 192.168.100.1.
    > administrator 
    Password: 
    # sshd authorized-keys filename sbn path=/pub/rtx830_id_ed25519.pub
    # save
    # exit
    > exit
    

    telnet・WebGUIの無効化 #

    4.34 TELNET サーバーへアクセスできるホストの設定
    36.1.2 HTTP サーバーへアクセスできるホストの設定

    SSHが確実にできる環境が出来れば、telnetやhttpdで入れないようにした方がセキュア。

    telnetd host none
    httpd host none
    

    確認

    $ telnet 192.168.100.1
    Trying 192.168.100.1...
    telnet: Unable to connect to remote host: Connection refused
    

    シャットダウン・再起動 #

    再起動はコマンドがあるが、シャットダウンは電源ボタンをブチッで良いんか?良いんかなぁ...

    restart
    

    状態表示系コマンド #

    状態の表示
    YAMAHA RTX show系コマンドを使いこなそ~!

    接続機器一覧 #

    60.26 DHCP サーバーの状態の表示

    > show arp 
    カウント数: 3
    インタフェース IPアドレス        MACアドレス       TTL(秒)
    LAN1(port1)    192.168.100.2     XX:XX:XX:XX:XX:XX 1054
    LAN1(port2)    192.168.100.3     XX:XX:XX:XX:XX:XX 1176
    LAN1(port2)    192.168.100.4     XX:XX:XX:XX:XX:XX  844
    
    > show status dhcp
    DHCPスコープ番号: 1
       ネットワークアドレス: 192.168.100.0
                   割り当て中アドレス: 192.168.100.2
              (タイプ) クライアントID: (XX) XX XX XX XX XX XX
                             ホスト名: SHIBA-200224
                         リース残時間: 2日 19時間 21分 7秒
                   割り当て中アドレス: 192.168.100.3
              (タイプ) クライアントID: (XX) XX XX XX XX XX XX
                             ホスト名: iPhone
                         リース残時間: 2日 11時間 3分 45秒
                   割り当て中アドレス: 192.168.100.4
              (タイプ) クライアントID: (XX) XX XX XX XX XX XX
                             ホスト名: SHIBA-190801
                         リース残時間: 2日 22時間 8分 25秒
                   割り当て中アドレス: 192.168.100.5
              (タイプ) クライアントID: (XX) XX XX XX XX XX XX
                             ホスト名: 53-67619
                         リース残時間: 2日 18時間 55分 31秒
     スコープの全アドレス数: 190
             除外アドレス数: 0
       割り当て中アドレス数: 4
         利用可能アドレス数: 186
    

    NATセッション数の表示 #

    60.19 IP マスカレードで使用しているセッション数の表示

    show nat descriptor masquerade session summary
    NAT/IPマスカレード 動作タイプ : 2
    Interface            Desc Num    Outer Address                Current/Max  Peak
    -------------------  ----------  ---------------------------  ----------- -----
    PP[01](1)                  1000  ipcp/XXX.XXX.XXX.XXX            12/65534   415
    PP[02](1)                  1100  ipcp/XXX.XXX.XXX.XXX            43/65534   922
    -------------------  ----------  ---------------------------  ----------- -----
    

    インターフェースの状態・リンク速度の表示 #

    LAN1インターフェースの状態

    > show status lan1
    LAN1
    説明:                           
    IPアドレス:                     192.168.100.1/24 
    イーサネットアドレス:           XX:XX:XX:XX:XX:XX
    動作モード設定:                 Type (Link status)
                   PORT1:           Auto Negotiation (1000BASE-T Full Duplex)
                   PORT2:           Auto Negotiation (Link Down)
                   PORT3:           Auto Negotiation (100BASE-TX Full Duplex)
                   PORT4:           Auto Negotiation (Link Down)
    最大パケット長(MTU):            1500 オクテット
    プロミスキャスモード:           OFF
    送信パケット:                   117363240 パケット(70179328180 オクテット)
      IPv4(全体/ファストパス):      117348479 パケット / 117054089 パケット
      IPv6(全体/ファストパス):      1 パケット / 0 パケット
    受信パケット:                   147277918 パケット(156223287850 オクテット)
      IPv4:                         147180725 パケット
      IPv6:                         12856 パケット
    未サポートパケットの受信:       69525
    

    LAN2(WAN)インターフェースの状態

    > show status lan2 
    LAN2
    説明:                           
    IPアドレス:                     
    イーサネットアドレス:           XX:XX:XX:XX:XX:XX
    動作モード設定:                 Auto Negotiation (100BASE-TX Full Duplex)
    最大パケット長(MTU):            1500 オクテット
    プロミスキャスモード:           OFF
    送信パケット:                   148195262 パケット(158062698241 オクテット)
      IPv4(全体/ファストパス):      148158849 パケット / 147522554 パケット
      IPv6(全体/ファストパス):      1 パケット / 0 パケット
    受信パケット:                   119099694 パケット(72599089352 オクテット)
      IPv4:                         119024566 パケット
      IPv6:                         3790 パケット
    

    60.2 インタフェースの状態の表示

    CPUやメモリ使用率の表示 #

    > show environment 
    RTX830 BootROM Ver. 1.01
    RTX830 FlashROM Table Ver. 1.02
    RTX830 Rev.15.02.17 (Fri Jul 10 09:59:21 2020)
      main:  RTX830 ver=00 serial=MISERARENAIYO MAC-AddressXX:XX:XX:XX:XX:XX MAC-AddressXX:XX:XX:XX:XX:XX
    CPU:    0%(5sec)   0%(1min)   0%(5min)    メモリ: 29% used
    パケットバッファ:   0%(small)   0%(middle)  10%(large)   0%(huge) used
    ファームウェア: internal  
    実行中設定ファイル: config0  デフォルト設定ファイル: config0
    シリアルボーレート: 9600  
    起動時刻: 2020/08/16 16:24:09 +09:00
    現在の時刻: 2020/08/21 12:18:14 +09:00
    起動からの経過時間: 4日 19:54:05
    ...
    

    59.1 機器設定の表示

    DNSキャッシュの表示・削除 #

    show dns cache
    clear dns cache
    

    NTP #

    NTPで時刻を合わせる #

    NICTのNTPサーバntp.nict.jpに問い合わせてシステム時刻を設定する例

    ntpdate ntp.nict.jp
    

    Stratum 0 の NTP サーバーとの時刻同期を許可する

    ntp backward-compatibility accept-stratum-0
    

    4.15 NTP による時計の設定
    4.17 Stratum 0 の NTP サーバーとの時刻同期を許可する設定
    Network Time Protocol - Wikipedia

    定期的にNTPで時刻を同期 #

    毎日12:34:56時にntpdate ntp.nict.jpを実行してsyslogに記録する例。

    schedule at 1 */* 12:34:56 * ntpdate ntp.nict.jp syslog
    

    Web GUIで試すと構文が分かる。

    40.1 スケジュールの設定

    RTXをSNTPサーバにする #

    対象のDHCPスコープ番号を確認する

    show config | grep dhcp
    

    RTX内のsntpサーバを有効にし、DHCPスコープ1に対してNTPサーバのIPアドレスを配布する例。

    sntpd service on
    dhcp scope option 1 ntp_server=192.168.100.1
    

    SNTPサーバー機能
    15.1.8 DHCP オプションの設定
    FAQ for YAMAHA RT Series / TCP/IP DHCPオプション
    RTX810をSNTPサーバにする(+DHCPでオプション配布) - Humanity

    WindowsクライアントにDHCPで配布されたSNTPを適用する例。

    Set-Service -Name W32Time -StartupType Automatic -Status Running
    Get-Service -Name W32Time | Select-Object DisplayName,Name,StartType,Status
    
    DisplayName  Name    StartType  Status
    -----------  ----    ---------  ------
    Windows Time W32Time Automatic Running
    
    w32tm /query /status
    閏インジケーター: 3 (同期未実行)
    階層: 0 (未指定)
    精度: -23 (ティックごとに 119.209ns)
    ルート遅延: 0.0000000s
    ルート分散: 0.0000000s
    参照 ID: 0x00000000 (未指定)
    最終正常同期時刻: 未指定
    ソース: Local CMOS Clock
    ポーリング間隔: 10 (1024s)
    
    w32tm /config /manualpeerlist:192.168.100.1 /syncfromflags:manual /update
    コマンドは正しく完了しました。
    
    w32tm /query /status
    閏インジケーター: 0 (警告なし)
    階層: 2 (二次参照 - (S)NTP で同期)
    精度: -23 (ティックごとに 119.209ns)
    ルート遅延: 0.0003205s
    ルート分散: 8.6070518s
    参照 ID: 0xC0A86401 (ソース IP:  192.168.100.1)
    最終正常同期時刻: 2020/08/21 13:58:11
    ソース: 192.168.100.1
    ポーリング間隔: 10 (1024s)
    

    NTPを同期した直後に端末の時刻のズレが直る訳ではない。
    w32tm.exeで確認すると、徐々に帳尻合わせているのが分かる。

    w32tm /monitor /computers:ntp.nict.jp
    ntp.nict.jp[133.243.238.243:123]:
        ICMP: 28ms 遅延
        NTP: +0.4193414s ローカル コンピューターの時刻からのオフセット
            RefID: 'NICT' [0x5443494E]
            階層: 1
    
    警告:
    逆名前解決が最適な方法です。タイム パケット内の
    RefID フィールドは NTP 実装間で異なっており、IP
    アドレスを使用していない場合があるため、名前が正しくない可能性があります。
    
    w32tm /stripchart /computer:ntp.nict.jp /period:60
    ntp.nict.jp [XXX.XXX.XXX.XXX:XXX] を追跡中。
    現在の時刻は 2020/08/21 20:23:24 です。
    20:23:24, d:+00.0227694s o:+00.4145991s  [                           |*                          ]
    20:24:24, d:+00.0224138s o:+00.4136462s  [                           |*                          ]
    20:25:24, d:+00.0220661s o:+00.4127709s  [                           |*                          ]
    20:26:24, d:+00.0225493s o:+00.4122641s  [                           |*                          ]
    20:27:25, d:+00.0213942s o:+00.4107398s  [                           |*                          ]
    ~~
    21:39:26, d:+00.0239230s o:+00.3665131s  [                           |*                          ]
    21:40:26, d:+00.0226257s o:+00.3653180s  [                           |*                          ]
    21:41:26, d:+00.0215479s o:+00.3643673s  [                           |*                          ]
    

    Windows タイム サービスのツールと設定 | Microsoft Docs
    windows - How can I check a system's current NTP configuration? - Super User
    DHCP time server options
    第3回 w32tmコマンドとレジストリによるWindows Timeサービスの制御 (1/4):Windowsネットワーク時刻同期の基礎とノウハウ(改訂版) - @IT

    コンソール表示文字数の設定 #

    一行が長いconfigの一覧性やコピペする時の使い勝手の為に、コンソールの横幅を大きくする。

    console columns 4096
    

    一行が長いconfigはコピペ時に切れてしまうので、VSCodeのTerminalからWSLを触る、configファイルを直接書き込む等の工夫が必要。

    4.20 コンソールの表示文字数の設定

    ローカルIPアドレスの固定 #

    確実に固定するには端末毎にローカルIPアドレスを設定すべきだが、ルータからDHCPで割り振りたい場合は以下のようにする。

    1. 端末のMACアドレスに対し固定のIPアドレスを割り当てる(予約)

    15.1.4 DHCP スコープの定義
    ヤマハRTシリーズのネットワークゲームのための設定ヒント ゲーム端末のIPアドレスを固定する方法
    LAN側やルータ機能の設定例 DHCP機能を利用してIPアドレスを固定割り当てする方法
    15.1.5 DHCP 予約アドレスの設定

    dhcp scope bind 1 192.168.100.2 ethernet XX:XX:XX:XX:XX:XX
    no dhcp scope bind 1 192.168.100.2
    
    1. DHCPリリース(既に割り当てられてしまっているIPアドレスを手放す)

    15.1.10 DHCP リース情報の手動削除
    15.1.9 DHCP リース情報の手動追加

    dhcp manual release 192.168.100.2
    dhcp manual lease 192.168.100.2 XX:XX:XX:XX:XX:XX
    

    端末毎にリースの更新が必要かもしれない。

    Windows ipconfig /renew
    Linux sudo dhclient -r
    sudo dhclient
    iOS 設定 -> Wi-Fi -> AP名 (i) -> リースを更新

    確認

    > show config | grep 'dhcp scope'
    Searching ...
    dhcp scope 1 192.168.100.2-192.168.100.191/24
    dhcp scope bind 1 192.168.100.3 XX:XX:XX:XX:XX:XX <- こ
    dhcp scope bind 1 192.168.100.4 XX:XX:XX:XX:XX:XX <- れ
    ~~
    

    Public DNSの設定 #

    20.3 DNS サーバーの IP アドレスの設定

    20.9 DNS 問い合わせの内容に応じた DNS サーバーの選択
    複数プロバイダ同時接続機能のための追加コマンド
    自宅とオフィスで使う(2)
    マルチホーミングの設定例1(その1) YAMAHAルータで学ぶネットワーク構築術

    プロバイダから降ってくるDNSサーバは遅かったり稀に名前解決が失敗したりとアレなので、Public DNSを利用する。

    public DNSとプライバシー - janog45_002_dns_yamaguchi.pdf

    CloudflareのPublic DNSを使う例
    プライマリ(優先)DNSサーバ セカンダリ(代替)DNSサーバ の順で書けばよい

    dns server 1.1.1.1 1.0.0.1
    

    Wake On LAN #

    Wake On LAN

    wol send lan1 XX:XX:XX:XX:XX:XX 192.168.100.4
    

    lan1show arp通り(portじゃないよ!)

    > show arp 
    カウント数: 3
    インタフェース IPアドレス        MACアドレス       TTL(秒)
    LAN1(port1)    192.168.100.2     XX:XX:XX:XX:XX:XX 1054
    LAN1(port2)    192.168.100.3     XX:XX:XX:XX:XX:XX 1176
    LAN1(port2)    192.168.100.4     XX:XX:XX:XX:XX:XX  844
    

    PPPoEマルチセッション #

    RTシリーズのPPPoEに関するFAQ

    1つのルータで複数のプロバイダと常時接続が可能。

    現在のルーティングを確認

    > show config
    ~~
    ip route default gateway pp 1 filter 500000 gateway pp 2
    ~~
    pp select 1
     description pp SoftEther
    ~~
    pp select 2
     description pp OCN
    ~~
    ip filter 500000 restrict * * * * *
    

    新型コロナ対策のためソフトイーサ社のフレッツ用 PPPoE 実験用アクセスポイントをテレワーク用に無償開放
    これで403になってしまうnoteと、お住まいの地域では再生させてくれないAbemaを、元々契約しているプロバイダを経由するように指定する。

    ip filter 2019 pass * note.com,note.mu,abema.tv,registry.npmjs.org,npmjs.org,jp.shotbow.net,shotbow.net
    ip route default gateway pp 2 filter 2019 gateway pp 1 filter 500000
    

    静的DNSレコード #

    27.11 静的 DNS レコードの登録 58.4.11 DNS キャッシュのクリア

    DNSサーバ機能があるので、ローカルにある鯖にドメインを設定できる

    ip host recserver 192.169.100.5
    no ip host recserver
    save
    

    反映
    58.4.11 DNS キャッシュのクリア

    clear dns cache
    

    悪質なサイトや広告などお行儀の悪いドメインを0.0.0.0に固定する。
    ブラウザの開発ツールやDNSキャッシュの表示・削除を駆使してドメインを炙り出すと良い。
    以下はNextDNS CNAME Cloaking Blocklistを登録する例。

    ip host eulerian.net 0.0.0.0
    ip host at-o.net 0.0.0.0
    ip host k.keyade.com 0.0.0.0
    ip host 2o7.net 0.0.0.0
    ip host sc.omtrdc.net 0.0.0.0
    ip host storetail.io 0.0.0.0
    ip host dnsdelegation.io 0.0.0.0
    ip host tagcommander.com 0.0.0.0
    ip host wizaly.com 0.0.0.0
    ip host a88045584548111e997c60ac8a4ec150-1610510072.eu-central-1.elb.amazonaws.com 0.0.0.0
    ip host afc4d9aa2a91d11e997c60ac8a4ec150-2082092489.eu-central-1.elb.amazonaws.com 0.0.0.0
    ip host affex.org 0.0.0.0
    ip host partner.intentmedia.net 0.0.0.0
    ip host webtrekk.net 0.0.0.0
    ip host wt-eu02.net 0.0.0.0
    ip host oghub.io 0.0.0.0
    

    DNSの問い合せによる発呼 (DNSリゾルブ)
    ここを見る限り、静的DNSレコードを使い名前解決させないのが早い話だが、他のやり方もある。

    URLを見て弾くやつ。
    ワイルドカードを使えるが、HTTPS通信に対してはRTXをプロキシサーバにしてフィルタリングする必要がある。
    内部データベース参照型URLフィルター
    プロキシ経由のHTTPS URLフィルター

    静的DNSレコードip hostは完全なFQDNを一つずつ指定する必要があるが、FQDN フィルター機能ip filterはワイルドカードと複数指定に対応している。
    ただし、FQDNでIPがrejectされた場合、端末側でタイムアウトが発生する欠点があるので、大量の"""お行儀の悪いドメイン"""をブロックする用途には本来向いていない。
    とは言え、複数のサブドメインを持つ相手にはワイルドカード指定が効率が良く、頻出で少ないルールをip hostに、多くの有象無象をip filterに記述する使い分けがオススメ。

    下記は前述のPPPoEマルチセッションと組み合わせた例。
    ip filterはppインターフェース側ip pp secure filter in/outにも指定できるが、ip route default gatewayの方が1つのルールで弾けるので都合が良い。

    ip host adservice.google.com 0.0.0.0
    ip host adservice.google.co.jp 0.0.0.0
    ip filter 2020 reject * *.doubleclick.net,*.adservices.google.com,*.video-stats.video.google.com,*.google-analytics.com,*.googleadservices.com,*.googlesyndication.com,*.googletagmanager.com tcp
    ip route default gateway pp 2 filter 2019 gateway pp 1 filter 2020 500000
    

    MTU値の設定 #

    PPPoEのMTU値

    # pp select 1
    pp1# ip pp mtu 1454
    pp1# pp select 2
    pp2# ip pp mtu 1454
    pp2# save 
    セーブ中... CONFIG0 終了
    

    重複したconfigの統合 #

    9.1.26 フィルタリングによるセキュリティの設定 ルーターconfigの最適化

    このようにppによって1000違いのフィルタが指定されており、内容が重複しているので統合する

    show config
    ...
    pp select 1
    ...
     ip pp secure filter in 200003 200020 200021 200022 200023 200024 200025 200030 200032
     ip pp secure filter out 200013 200020 200021 200022 200023 200024 200025 200026 200027 200099 dynamic 200080 200081 200082 200083 200084 200085 200098 200099
    ...
    pp select 2
    ...
     ip pp secure filter in 201003 201020 201021 201022 201023 201024 201025 201030 201032
     ip pp secure filter out 201013 201020 201021 201022 201023 201024 201025 201026 201027 201099 dynamic 201080 201081 201082 201083 201084 201085 201098 201099
    
    ip filter 200000 reject 10.0.0.0/8 * * * *
    ip filter 200001 reject 172.16.0.0/12 * * * *
    ip filter 200002 reject 192.168.0.0/16 * * * *
    ip filter 200003 reject 192.168.100.0/24 * * * *
    ip filter 200010 reject * 10.0.0.0/8 * * *
    ip filter 200011 reject * 172.16.0.0/12 * * *
    ip filter 200012 reject * 192.168.0.0/16 * * *
    ip filter 200013 reject * 192.168.100.0/24 * * *
    ip filter 200020 reject * * udp,tcp 135 *
    ip filter 200021 reject * * udp,tcp * 135
    ip filter 200022 reject * * udp,tcp netbios_ns-netbios_ssn *
    ip filter 200023 reject * * udp,tcp * netbios_ns-netbios_ssn
    ip filter 200024 reject * * udp,tcp 445 *
    ip filter 200025 reject * * udp,tcp * 445
    ip filter 200026 restrict * * tcpfin * www,21,nntp
    ip filter 200027 restrict * * tcprst * www,21,nntp
    ip filter 200030 pass * 192.168.100.0/24 icmp * *
    ip filter 200031 pass * 192.168.100.0/24 established * *
    ip filter 200032 pass * 192.168.100.0/24 tcp * ident
    ip filter 200033 pass * 192.168.100.0/24 tcp ftpdata *
    ip filter 200034 pass * 192.168.100.0/24 tcp,udp * domain
    ip filter 200035 pass * 192.168.100.0/24 udp domain *
    ip filter 200036 pass * 192.168.100.0/24 udp * ntp
    ip filter 200037 pass * 192.168.100.0/24 udp ntp *
    ip filter 200099 pass * * * * *
    
    ip filter 201000 reject 10.0.0.0/8 * * * *
    ip filter 201001 reject 172.16.0.0/12 * * * *
    ip filter 201002 reject 192.168.0.0/16 * * * *
    ip filter 201003 reject 192.168.100.0/24 * * * *
    ip filter 201010 reject * 10.0.0.0/8 * * *
    ip filter 201011 reject * 172.16.0.0/12 * * *
    ip filter 201012 reject * 192.168.0.0/16 * * *
    ip filter 201013 reject * 192.168.100.0/24 * * *
    ip filter 201020 reject * * udp,tcp 135 *
    ip filter 201021 reject * * udp,tcp * 135
    ip filter 201022 reject * * udp,tcp netbios_ns-netbios_ssn *
    ip filter 201023 reject * * udp,tcp * netbios_ns-netbios_ssn
    ip filter 201024 reject * * udp,tcp 445 *
    ip filter 201025 reject * * udp,tcp * 445
    ip filter 201026 restrict * * tcpfin * www,21,nntp
    ip filter 201027 restrict * * tcprst * www,21,nntp
    ip filter 201030 pass * 192.168.100.0/24 icmp * *
    ip filter 201031 pass * 192.168.100.0/24 established * *
    ip filter 201032 pass * 192.168.100.0/24 tcp * ident
    ip filter 201033 pass * 192.168.100.0/24 tcp ftpdata *
    ip filter 201034 pass * 192.168.100.0/24 tcp,udp * domain
    ip filter 201035 pass * 192.168.100.0/24 udp domain *
    ip filter 201036 pass * 192.168.100.0/24 udp * ntp
    ip filter 201037 pass * 192.168.100.0/24 udp ntp *
    ip filter 201099 pass * * * * *
    
    ip filter dynamic 200080 * * ftp
    ip filter dynamic 200081 * * domain
    ip filter dynamic 200082 * * www
    ip filter dynamic 200083 * * smtp
    ip filter dynamic 200084 * * pop3
    ip filter dynamic 200085 * * submission
    ip filter dynamic 200098 * * tcp
    ip filter dynamic 200099 * * udp
    
    ip filter dynamic 201080 * * ftp
    ip filter dynamic 201081 * * domain
    ip filter dynamic 201082 * * www
    ip filter dynamic 201083 * * smtp
    ip filter dynamic 201084 * * pop3
    ip filter dynamic 201085 * * submission
    ip filter dynamic 201098 * * tcp
    ip filter dynamic 201099 * * udp
    

    pp1に使われているfilterを流用する

    # pp select 2
    pp2# ip pp secure filter in 200003 200020 200021 200022 200023 200024 200025 200030 200032 
    pp2# ip pp secure filter out 200013 200020 200021 200022 200023 200024 200025 200026 200027 200099 dynamic 200080 200081 200082 200083 200084 200085 200098 200099 
    pp2# quit 
    新しい設定を保存しますか? (Y/N)Y
    セーブ中... CONFIG0 終了
    pp2> 
    

    不要な201000番台のfilterを削除する

    no ip filter 201000
    no ip filter 201001
    no ip filter 201002
    no ip filter 201003
    no ip filter 201010
    no ip filter 201011
    no ip filter 201012
    no ip filter 201013
    no ip filter 201020
    no ip filter 201021
    no ip filter 201022
    no ip filter 201023
    no ip filter 201024
    no ip filter 201025
    no ip filter 201026
    no ip filter 201027
    no ip filter 201030
    no ip filter 201031
    no ip filter 201032
    no ip filter 201033
    no ip filter 201034
    no ip filter 201035
    no ip filter 201036
    no ip filter 201037
    no ip filter 201099
    
    no ip filter dynamic 201080
    no ip filter dynamic 201081
    no ip filter dynamic 201082
    no ip filter dynamic 201083
    no ip filter dynamic 201084
    no ip filter dynamic 201085
    no ip filter dynamic 201098
    no ip filter dynamic 201099
    

    ポート開放 #

    Minecraftサーバ用のポートを解放する例

    1. 任意のポート(この場合25565)をLAN内サーバのIPアドレスに向ける
    > show config | grep 'nat descriptor'
    Searching ...
     ip pp nat descriptor 1000
    
    nat descriptor type 1000 masquerade
    nat descriptor masquerade incoming 1000 reject 
    nat descriptor masquerade static 1000 1 192.168.100.2 tcp 25565
    

    Web GUI -> 詳細設定 -> NAT -> NATディスクリプターの一覧 -> 静的IPマスカレードの設定と同じ。
    NATディスクリプター機能 概要

    1. OSのファイアウォールの設定
      例えば...
    New-NetFirewallRule -DisplayName "Allow Inbound Minecraft Server" -Direction Inbound -LocalPort 25565 -Protocol TCP -RemoteAddress Any -Action Allow
    

    Windows PowerShell を使用した高度なセキュリティ管理機能を備えた windows Defender ファイアウォール (Windows 10) - Windows security | Microsoft Docs
    New-NetFirewallRule

    1. アプリケーションを起動(この場合はMinecraftサーバを起動)
      確認
    Get-NetTCPConnection | Select-String "25565"
    netstat -an | Select-String "25565"
    
    1. LANの外からnmapで確認
    nmap -Pn -p 25565 グローバルIPまたはFQDN
    Starting Nmap 7.80 ( https://nmap.org ) at 2020-06-14 18:54 JST
    Nmap scan report for example.com (グローバルIPまたはFQDN)
    Host is up.
    
    PORT      STATE  SERVICE
    25565/tcp open   minecraft
    
    Nmap done: 1 IP address (1 host up) scanned in 2.63 seconds
    

    QoS #

    優先制御を行うには、出力インターフェースからRTXの外に送出されていく速度をWAN回線に合わせて制限する必要がある。
    LAN1の場合ダウンロード、LAN2(WAN)の場合アップロード速度に影響する。
    ベストエフォート丸出しの帯域が乱高下する回線には不向きかもしれない。

    アップロードの優先制御を行うために、LAN2(WAN)インターフェース側を50Mbps(スピードテスト結果のアップロード帯域)に制限する例。

    speed lan2 50m
    

    QoSに優先制御を使用し、RTMPプロトコル(動画配信)を使用した通信の優先度を最大にする例。

    queue lan2 type priority
    queue class filter 1 16 ip * * tcp * 1935
    queue lan2 class filter list 1
    

    FAQ for YAMAHA RT Series / Queue (QoS機能)
    優先制御のふるまい
    帯域制御のふるまい
    優先制御
    帯域検出機能
    インターネットVPNと適応型QoSを利用する
    28.2 クラス分けのためのフィルタ設定
    ファイアウォール機能のセキュリティレベル5

    GeForce RTX 830