LoginSignup
13
11

More than 1 year has passed since last update.

YAMAHA RTX1200とさくらVPSを使ってマンションでグローバルIPをゲットしてみた

Last updated at Posted at 2020-09-07

はじめに

初めての記事です。指摘点が多いかもしれませんが大目に見てください・・・

何がしたいのか

アパートに住んでいるのですが、アパートなど集合住宅のLANでは、グローバルIPがない上に外からのパケットはほぼ内側には届きません。

マイクラなど、IPで接続するゲームや、自室のLAN内に存在するPCをWOLでブートしたり、ファイル共有をしたりしたいと思ったので、Linuxやネットワークの勉強も兼ねてVPSをレンタルしてグローバルIPをゲットすることにしました。

なぜRTX1200を使ったのか

マイクラサーバーをVPNで利用するだけなら簡単です。しかし、WOLを利用するためには、常時VPNにログインしている端末から、マジックパケットを流す必要があります。

常時電源が入っていて、VPNクライアントとして動作できるものとしてRaspberryPiがありますが、応答速度やSDカードの信頼性の問題から使用は避けたいなと思ったのでRTX1200を利用することにしました。(というのは建前で、RTX1200を使ってみたかった。笑)

具体的にどうするか

さくらVPS上にSoftetherVPNをインストールしてVPNサーバーを立てます。そして、L2TPv3/IPsecを利用して、VPNサーバー上の仮想HUBとRTX1200のLAN1をカスケード接続します。

するとLAN1に接続されたホストは、VPNの仮想HUBと同じセグメントに存在するようになります。

こうすれば、L2TP/IPsecで同じようにVPNにログインしたスマホからマジックパケットをPCに送信することができ、インターネット側からVPSに対してのパケットもPCに届きます。(iptableの設定が必要です。)

また、今回の目的では、VPNの主な目的である「暗号化によるセキュアな通信」は必要ないので、内から外への通信(httpなど)は原則として自室LANに流すことにします。

実際にやったこと

さくらVPSにVPNサーバーを建てる

Softetherのインストール

割愛します。こちらなどを参考にインストールしてください。

ポイントとして、さくらVPSではデフォルトでパケットフィルタがありますので、コントロールパネルから利用しないように設定するか、UDP500、1701、4500ポートを開放してください。また、OS側でもファイアウォールがありますので、後述する方法でポート開放してください。

VPNの設定

WindowsのVPNサーバー管理ソフトウェアでVPNサーバーの設定を行います。前述の通り今回は、VPNからトラフィックを流したいわけではないので、Softetherの記事の多くに見られる設定から変えます。ポイントとなる部分に重点を置いて説明していきます。

1.ローカルブリッジの設定
今回は、インターネットに接続されているeth0とブリッジさせるのではなく、新しいTAPデバイスにブリッジさせます。ラジオボタンを変更して新しいタップでデバイスを作成し、ブリッジさせます。(以後、このTAPをtap1とします。)
e.jpg

2.IPsec/L2TP設定
L2TPサーバー機能とEther/L2TPv3 over IPsecサーバー機能にチェックを入れ、IPsec事前共有鍵を変更します。さらにサーバ機能の詳細設定に進みます。
a.jpg

こういう画面が出てくるので、追加を押します。
b.jpg

任意のISAKMP Phase 1 IDと接続先の仮想HUBとそれにあらかじめ登録しておいたユーザー名とパスワードを入力します。
c.jpg

これでGUIからの設定は完了です。

VPSのshellからの設定

1.TAPデバイスへのIPアドレス付加
はじめに、前項で作成したtapにIPアドレスを振ります。IPアドレスは、192.168.100.2/24を振ります。tapの名前は、tap_tap1となっているはずです。適宜ifconfigなどで確認しましょう。

shell
sudo ip addr add 192.168.100.2/24 dev tap_tap1

きちんとIPが振られているかifconfigで確認しましょう。

2.ファイアウォールの設定
firewalldを使って、前述のUDP500、1701及び4500ポートの開放と、WOL、マイクラのデフォルトポートである、UDP9及びTCP25565ポートのポートフォワーディング設定を行います。フォワード先のIPは192.168.100.127とします。

shell
sudo firewall-cmd --zone=external --change-interface=eth0 --permanent
sudo firewall-cmd --zone=internal --change-interface=tap_tap1 --permanent
sudo firewall-cmd --zone=external --add-port=500/udp --permanent
sudo firewall-cmd --zone=external --add-port=4500/udp --permanent
sudo firewall-cmd --zone=external --add-port=1701/udp --permanent
sudo firewall-cmd --zone=external --add-forward-port=port=9:proto=udp:toport=9:toaddr=192.168.100.127 --permanent
sudo firewall-cmd --zone=external --add-forward-port=port=25565:proto=tcp:toport=25565:toaddr=192.168.100.127 --permanent
sudo firewall-cmd --zone=internal --add-masquerade --permanent
sudo firewall-cmd --zone=external --remove-masquerade --permanent
sudo firewall-cmd --reload

戻り値は省いていますが、successなどと表示されるはずです。これでコンソールからの設定は終了です。

RTX1200の設定

RTX1200のコンフィグファイル

今回の実装でのコンフィグファイルはこんな感じ。SoftetherのサイトにRTXシリーズ用の設定例がありますのでそれを参考にしました。

前半で書いたように、内から外の通信自体はVPNサーバーを経由させずにルーターから直接出すので、LAN2にIPマスカレード設定をしたり、ブリッジにIPアドレスを振っています。その他にも、ntpによる時刻合わせ設定や、LAN3から通常のアクセスができるようにDHCPとIPアドレス設定もしています。

login password
administrator password
ip route default gateway dhcp lan2
bridge member bridge1 lan1 tunnel1
ip bridge1 address 192.168.100.1/24
ip lan2 address dhcp
ip lan2 nat descriptor 1
ip lan3 address 192.168.200.1/24
tunnel select 1
 tunnel encapsulation l2tpv3
 tunnel endpoint address (さくらVPSのグローバルip)
 ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 1 691200 rekey 90%
  ipsec ike duration isakmp-sa 1 691200 rekey 90%
  ipsec ike keepalive log 1 on
  ipsec ike keepalive use 1 on dpd 10 6 0
  ipsec ike local name 1 (前項で設定したISAKMP Phase 1 ID) fqdn
  ipsec ike nat-traversal 1 on keepalive=30 force=off
  ipsec ike pre-shared-key 1 text (前項で設定した事前共有鍵)
  ipsec ike remote address 1 (さくらVPSのグローバルip)
  ipsec ike restrict-dangling-sa 1 off
 l2tp always-on on
 l2tp tunnel disconnect time off
 l2tp keepalive use on 5 10
 l2tp keepalive log on
 l2tp syslog on
 l2tp remote end-id vpn
 tunnel enable 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 primary
ipsec auto refresh on
ipsec transport 1 101 udp 1701
telnetd host lan
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.3-192.168.100.191/24
dhcp scope 2 192.168.200.2-192.168.200.191/24
dns server dhcp lan2
schedule at 1 */* 00:00:00 * ntpdate ntp.nict.jp syslog
l2tp service on l2tpv3

これをSDカードなどから内蔵ROMに書き込みます。

CUI(telnet)の操作

まずはじめに、telnetクライアントをインストールする必要があります。Windowsの機能の有効化または無効化から、telnet clientを有効化します。

コマンドプロンプトからtelnetを実行すると、こんな感じの画面になるので、z.jpg

open 192.168.100.1

といれて、ルーターにtelnet接続をします。パスワードを聞かれますが、工場集荷状態では設定されていまあせんので、空欄でEnterを押すとノーマルユーザーとしてログインできます。コマンドを実行するには管理者としてログインが必要なので、

administrator

を実行します。パスワードを聞かれますので、同じように空欄でEnterを押します。これでコマンドで設定する準備ができました。

作ったコンフィグファイルをconfig.txtとしてSDカードのルートディレクトリに保存し、RTX1200本体に指します。ピポッと鳴ったら、

copy config sd1:/config.txt 0

を実行します。config.txtを内蔵ROMのconfig0に保存するという意味です。USBメモリのときは"sd1"を"usb1"に変えます。

これでLAN2を自宅LAN、LAN1にPCを繋げば、ネットもできて、外部からのWOLやグローバルIPを利用したゲームができるでしょう。

終わりに

いかがだったでしょうか。拙い文章でわかりにくい部分や、間違っている部分があったかもしれませんが、似たようなことをやろうとしている人の助けになれば幸いです。

おまけ

おまけというか使っていて気がついたことなのですが、上記の設定だと60Mbpsくらいで頭打ちになってしまうみたいです。ブリッジインターフェースを介して通信すると遅くなってしまうみたいなので、tunnel1をLAN3にブリッジさせて、LAN3からLAN1に物理的なEthernetケーブルを利用してブリッジさせるようにしました。VPNサーバーからのパケットも来るし、速度も戻ったので、少し気持ち悪いですがよしとしました。

本文のコンフィグの

bridge member bridge1 lan1 tunnel1
ip lan3 address 192.168.200.1/24

の行をそれぞれ

bridge member bridge1 lan3 tunnel1
ip lan1 address 192.168.100.1/24

に変えて、

ip bridge1 address 192.168.100.1/24

を消せばOKです。(たぶん)

追記:2022/02/26

いろいろ試してるうちに、同じブリッジインタフェースに収容したbridge1とLAN1に同じIPアドレスを振ると、速度が低下せずに通信できることに気が付きました。

こちらのYAMAHA公式サイトでは、ブリッジインタフェースに収容する実インタフェースにはIPアドレスを振ってはいけないと書いていますが、何故かうまく動きます。ちなみにIPアドレスはLAN1だけに振ると通信ができず、bridge1だけに振ると速度が低下します。多分バグに近い仕様だと思います。本文中のconfigに加えて

ip lan1 address 192.168.100.1/24

を加えると幸せになれます。

13
11
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
13
11