スタイル・エッジLABO技術ブログ

士業集客支援/コンサルティングのスタイル・エッジグループ スタイル・エッジLABOのエンジニアによるブログです。

YAMAHAのRTXにL2TP/IPsecを実装する2

はじめに

こんにちは!スタイル・エッジLABOのKYTです。

1年以上前に書いた記事の続きになります。
いつの間にか時間は経つものですね…。
1と謳っておいてそのままはないだろう、ということで、
書きます。

f:id:styleedge_tech:20200818103349j:plain

今回のテーマについて

上記の通り、今回は以下の記事の続きになります。

techblog.styleedge.co.jp

tunnel select 1のところから書いていきます!

解説

tunnel select 1

トンネルインターフェースの設定に入ります。
トンネルは端末(パソコン)とルータの間で結ばれる、
仮想的な専用回線です。
この設定を入れることで、
アクセスしようとする端末とルータが、
トンネルインターフェースを通じて、
仮想的に直接接続している状況を実現します。

tunnel encapsulation l2tp

トンネルインターフェースの種別を設定します。
l2tpと指定していますが、
これはL2TP/IPsecのトンネルを作る、
という意味になります。

L2TP/IPsecは、L2TPIPsecという二つの
仕組みを使ってVPNを実現するものです。
以下よりIPsecL2TP、それぞれの設定に、
入っていきます。

ipsec tunnel 1

このトンネルで使用するIPsecの設定をここからしていきます。
以下のipsec sa policyで指定するIPsec設定の登録番号と、
上記の1が紐づきます。

ipsec sa policy 1 1 esp aes256-cbc sha256-hmac

最初の1は上記で指定したIPsec設定の登録番号、
次の1は相手を識別するための番号になります。
以下この相手の識別番号を指定する形で、
IPsecの設定を入れていきます。

そのあとに続く、
espはIPsec内のやり取りで使うプロトコルは、
ESPというものを使用することを指定しています。
aes256-cbcはそのESP内で使用する暗号化プロトコル
指定しており、
sha-hmacはVPNを行う上で、
正しい通信相手か確認する際に使用する、
プロトコルを指定したものになります。

ipsec ike keepalive use 1 off

ike keepaliveの無効化設定です。
対抗の機器と通信が途絶えた場合、
このkeepaliveを有効しておくと、
再接続後、自動でトンネルを張り直す
という機能が働くのですが、
今回はリモートアクセスVPN
つまり端末側で能動的に、
切ったりつなげたりするため、
OFFにします。
ちなみにこの後出てくる、
L2TPのkeepaliveとは別の設定で、
あくまでIPsecのやり取りの際に使われる設定に、
なります。


ipsec ike local address 1 192.168.10.1

トンネルを張る上で使用する、
ルータ側のIPを指定します。
NAT環境ではプライベートIPで、
問題ありません。

ipsec ike nat-traversal 1 on

NAT環境下でVPNを構築するために必要な、
NATトラバーサルという機能を有効にします。
NATトラバーサルは、IPsecによりIPやポートの情報が、
暗号化されることで、NATが機能しなくなることを防ぐため、
別途IPやポート情報を付与して、
NATが正常にできるようにする機能です。

ipsec ike pre-shared-key 1 text 事前共有鍵

IKEで使うの認証方式として、
事前共有鍵を使う設定をしています。
これは事前に同じ鍵(合言葉のようなもの)を
ルータと端末双方に設定して、
確実に相手とやりとりするというものです。

l2tp tunnel disconnect time off

ここよりL2TPの設定になります。
データパケット無入力・無送信時に、
タイムアウトによりL2TPトンネルを切断する
こともできますが、
自動で切られることがないようOFFにします。

l2tp keepalive use on 10 3

L2TPのkeepaliveを有効化します。
ike keepaliveとは別のL2TPのkeepalive設定です。
L2TPプロトコルのなかで、
対向機器にパケットを10秒ごとに発出して、
それが3回通信が失敗したら、
L2TPの対向としてダウンとみなす設定となっています。

l2tp keepalive log on

L2TPのkeepaliveの通信もログに出すかの設定ですが、
onにしています。

l2tp syslog on

keepaliveとは別の
L2TPのコネクション制御に関するログを
SYSLOGに出力するか否かを設定するもので、
onとして出力させています。

ip tunnel tcp mss limit auto

このトンネルインターフェースにおける、
最大セグメントサイズを自動調節させます。
自動でいい感じにセグメントをルータで、
切り分けてもらいます。

tunnel enable 1

トンネル設定の最後に、
このトンネル設定を有効化する、
設定をいれます。

nat descriptor type 1 masquerade

ここからNAT部分の設定になります。
上記は
ひとつの外側のアドレスを、
ポート番号を動的に与えることで、
複数の内側のアドレスを持つ機器と共有しつつも、
別途指定したものは、
アドレスとポート番号を1対1に固定して、
NATさせるやり方を指定するものです。

前回のブログで、
一番最初に出てきたpp select 1配下の
ip pp nat descriptor 1という設定は、
pp1にこのNATの設定を、
適用するという意味になります。

nat descriptor masquerade static 1 1 192.168.10.1 esp
nat descriptor masquerade static 1 2 192.168.10.1 udp 500
nat descriptor masquerade static 1 3 192.168.10.1 udp 4500

ここの3つはまとめて解説します。
上記三つはL2TP/IPsecのトンネルを作るための、
プロトコルの通信を正常に通すための設定になります。
上記で説明した、別途IPとポート番号を、
固定的に紐づける設定です。
VPNで使用するプロトコルで、決まったポート番号を
NATで変えられてしまうと支障があるので、
ポート指定をして固定化します。

ipsec transport 1 1 udp 1701

この定義に当てはまる通信は、
トランスポートモードという、
IPsecの通信モード
(端末とルータ間のVPNでよく使用されるモード)
で行うという設定です。
ipsec transportのidは1で
それをIPsecの設定の登録番号1
(ipsec sa policyで設定した番号)
に適用するという意味になり、
l2tpで使用するポート1701を使った通信は
トランスポートモードとして、
1番で指定したIPsecの通信を始めます、
ということになります。

l2tp service on

VPNを実現するために必要なプロトコル
L2TPを利用するため、
この設定が必要です。

おわりに

厳密にいえば、これに対応するフィルタの穴あけ設定も必要だったりしますが、
VPNそのものの設定とは少し違うので省いてます
(ブログのボリューム的な意味もありますが、それは置いておくとして(^^;))。

すごく間は空きましたが、VPNの話に区切りがつけたのがよかったです。

最後に

スタイル・エッジLABOでは、一緒に働く仲間を募集しています。
もし興味を持っていただけましたら、ぜひ採用サイトものぞいてみてください!

recruit.styleedge-labo.co.jp