晴耕雨読

working in the fields on fine days and reading books on rainy days

RTX1000ルータによる2セグメント間の通信

ヤマハRTX1000をセットアップして2つのセグメント間を通信するための作業について説明します。

LANケーブル接続

RTX1000ルータのLAN1(4ポート付いている部分)と自分のPCをLANケーブルで接続します。 接続したらPCとRTX1000ルータの両方のLAN端子のLED(リンクアップインジケータ)が緑色に光っていることで接続状態を確認します。

telnetでコンソールに接続

Telnetを使ってルータのコンソールに接続します。RTX 1000ではデフォルトでIPv4が設定されておらず、IPv6アドレスのみが設定されています。そのため、TelnetではIPv6でアクセスします。 PCのIPv6が有効化されていない場合もあるので、Windowsのコントロールパネル>ネットワークと共有センター>アダプターの設定の変更>イーサネットのプロパティ にてIPv6が有効化されているか確認しましょう

まず、以下のコマンドを実行し、インターフェイスの一覧を取得して、「イーサネット」のIF番号を確認します(例:インターフェイス 17)

netsh interface ipv6 show neighbors

次に、RTX1000の裏側に記載されている一番上のMACアドレスからIPv6アドレスを計算します。 RTX1000のMACアドレスからIPv6を求めるサイトが 【ツール】MACアドレスをIPv6に変換 で公開されているのでこれを利用します。 具体的な計算方法は以下の通りです。

  1. 元のMACアドレスを「AA:AA:AA:AA:AA:AA」とします
  2. 元のMACアドレスの先頭から7bit目を反転
    • A8:AA:AA:AA:AA:AA
  3. 真ん中に「FF:FE」を挿入
    • A8:AA:AA:FF:FE:AA:AA:AA
  4. 16bit区切りに変更
    • A8AA:AAFF:FEAA:AAAA
  5. 頭にローカルアドレス「FE80:0000:0000:0000」を追加
    • FE80:0000:0000:0000:A8AA:AAFF:FEAA:AAAA

次に、計算したIPv6アドレスに対してPINGを実行します。コマンドは ping {IPv6}%{インターフェイス番号} の形式で実行し、RTX1000ルータからレスポンスが返ってくることを確認します。

ping FE80:0000:0000:0000:02A0:DEFF:FE17:5C53%17

fe80::2a0:deff:fe17:5c53%17 に ping を送信しています 32 バイトのデータ:
fe80::2a0:deff:fe17:5c53%17 からの応答: 時間 =3ms
fe80::2a0:deff:fe17:5c53%17 からの応答: 時間 =2ms

TelnetでRTX1000ルータに接続します。Telnetコマンドがない場合は、Windowsの設定>アプリ>オプション機能>Windowsのその他の機能(Windowsの機能の有効化または無効化)にてTelnetを有効化します。

telnet FE80:0000:0000:0000:02A0:DEFF:FE17:5C53%17

接続できるとパスワードを入力するように要求されるので、初期設定のままであれば何も入力せずにEnterを押します。

Password: (何も入力せずにEnter)

RTX1000 BootROM Ver. 1.04
RTX1000 Rev.7.01.49 (Tue Jan 17 14:24:48 2006)
  Copyright (c) 1994-2005 Yamaha Corporation.
  Copyright (c) 1991-1997 Regents of the University of California.
  Copyright (c) 1995-1996 Jean-loup Gailly and Mark Adler.
  Copyright (c) 1998-2000 Tokyo Institute of Technology.
  Copyright (c) 2000 Japan Advanced Institute of Science and Technology, HOKURIKU.
  Copyright (c) 2002 RSA Security Inc. All rights reserved.
00:a0:de:17:5c:53, 00:a0:de:17:5c:54, 00:a0:de:17:5c:55,
Memory 16Mbytes, 3LAN, 1BRI
>

ログインできると、ルータの情報が表示されます。

管理者権限に昇格

ルータの設定は管理者権限で行います。ログイン後に「administrator」と入力してパスワード(デフォルトでは設定なし)を入力すると管理者になります。

> administrator
Password: (何も入力せずにEnter)
#

管理者になるとプロンプトが > から # に変化します。

IPの設定

デフォルトで各ポートにはIPv4アドレスが割り当てられていないので、IPv4の設定をします。 コマンドは ip lanX address <IPv4>/<SubnetMask> で設定します。

ip lan1 address 192.168.11.100/24
ip lan2 address 192.168.22.100/24
ip lan3 address 192.168.33.100/24

NAPT(IPマスカレード)の設定

NAPT(IPマスカレード)を設定して、LAN2→LAN1への通信を特定のサーバに転送することができます。 例えば、以下の設定をすると、192.168.22.100:80 宛のパケットを 192.168.11.123:80 に転送するようになります。443/tcp, 53/udp も同様です。 また、すべてのポートを対象にする場合は tcp *udp * と設定します。

ip lan2 nat descriptor 200
nat descriptor type 200 masquerade
nat descriptor address outer 200 primary
nat descriptor masquerade static 200 1 192.168.11.123 tcp 80
nat descriptor masquerade static 200 1 192.168.11.123 tcp 443
nat descriptor masquerade static 200 2 192.168.11.123 udp 53

なお、転送先のサーバ (192.168.11.123) では、自分のセグメント以外から通信が飛んでくるので、その返信先を適切に設定しないとパケットが同じ経路で返っていかない場合があります。 転送先サーバのデフォルトゲートウェイを 192.168.11.100 に設定するか、192.168.22.100 宛てのパケットは 192.168.11.100 に送るようにスタティックルーティングを転送先サーバに追加するかの方法があります。 以下は Windows 端末でスタティックルーティングを追加する方法です。

route -p add 192.168.22.0 mask 255.255.255.0 192.168.11.100
route print

NAPTの設定をすることで、LAN1とLAN2の2つのセグメント間で通信できるようになります。

以下のネットワーク構成図は上記の設定時のLAN1とLAN2のIP設定値です。

ネットワーク構成図

接続時のトラブル解決方法

以下はトラブルシューティングで見るべき観点です。

  1. ping でルータや接続先から応答が返ってくるか。返ってこない場合はルーティングが正しいか
  2. python -m http.server でWebサーバを立てて、接続元からブラウザでアクセスできるか
  3. 接続先でtcpdumpやWiresharkを開いてパケットは到達しているか。接続先にパケットは到達している(SYNは来ている)が応答していない(SYN+ACKを返していない)ときはファイアウォールで止めていないか

以上です。

参考資料