SoftEther VPN クライアントの仮想 LAN カードに固定 IP をコマンド操作で設定する方法

はじめに

本投稿での設定は、VPN クライアントの設定というよりも、OS (Ubuntu) の設定といったほうが適切かもしれない。

前回の記事では、VPN クライアントとしての設定を解説した。その中で仮想 LAN カードの作成が出てきたが、IP の設定については言及しなかった。別投稿としたほうが作業上の区切りが良いと思ったからだ。

仮想 LAN カードには IP を設定する必要がある。それが DHCP サーバーからもらってくる IP であれ、固定設定する IP であれ、とにかく設定しないことには VPN 通信がうまくいかないことは確実である。

今回、VPN クライアントは、さくらの VPS にある Ubuntu で稼働しているが、仮想 LAN カードには固定 IP を設定する。そしてその固定 IP は、VPN サーバーがある我が家のネットワークセグメントである 10.1.0.0/24 のアドレスを割り当てることにする。

参考記事:[Linux Lite] SoftEther VPN クライアントを自動起動させる設定

/etc/netplan ディレクトリに YAML ファイルを作る

まず、99-config.yaml という空ファイルを touch コマンドで作る。

$ cd /etc/netplan
$ sudo touch 99-config.yaml
$ ls -l
 total 4
 -rw-r--r-- 1 root root 261 Jan 10 23:56 01-netcfg.yaml
 -rw-r--r-- 1 root root   0 Jan 16 20:21 99-config.yaml
$

ぶっちゃけファイル名は 99-config.yaml でなくても機能するが、お作法的にはこのファイル名が好ましいようです。

vi でファイルに必要事項を書いて、完成したファイルの中身が以下である。

$ cat 99-config.yaml
network:
   version: 2
   ethernets:
     vpn_hoge_vnic:
         addresses: [10.1.0.211/24]
         nameservers:
           addresses: [1.1.1.1, 8.8.8.8]
         routes:
         - to: 172.16.1.0/24
           via: 10.1.0.1
$

4 行目の vpn_hoge_vnic に注目。これは仮想 LAN カードであるが、仮想 LAN カードは前回の記事で hoge_vnic という名前で作りました。

が、vpn_ という頭文字を付加しています。これは Linux の仕様かなんかだと思いますが、とにかくこのようにしてやる必要があります。

あと、

routes:
- to: 172.16.1.0/24
  via: 10.1.0.1

のところは、スタティックルートを書いています。172.16.1.0/24 は我が家にあるセグメントの 1 つです。VPN クライアントからこのセグメントに通信したいことがあるのでスタティックルートとして設定しています。とくにこういう要件がなければ書かなくて良いです。

この設定ファイルができあがったら

$ sudo netplan apply

を実行します。エラーなくコマンドが終了すればオーケーです。

ip コマンドで vpn_hoge_vnic に固定 IP が設定できたかを確認します。

$ ip address show vpn_hoge_vnic
6: vpn_hoge_vnic:  mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 5e:56:41:76:d5:51 brd ff:ff:ff:ff:ff:ff
    inet 10.1.0.211/24 brd 10.1.0.255 scope global vpn_hgsnkn_vnic
       valid_lft forever preferred_lft forever
    inet6 fe80::5c56:41ff:fe76:d551/64 scope link
       valid_lft forever preferred_lft forever
$ ping -c 3 10.1.0.211
PING 10.1.0.211 (10.1.0.211) 56(84) bytes of data.
64 bytes from 10.1.0.211: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from 10.1.0.211: icmp_seq=2 ttl=64 time=0.048 ms
64 bytes from 10.1.0.211: icmp_seq=3 ttl=64 time=0.049 ms

--- 10.1.0.211 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2056ms
rtt min/avg/max/mdev = 0.025/0.040/0.049/0.011 ms
$

10.1.0.211 が設定されていること、その 10.1.0.211 へ自分自身で ping を打って疎通が取れることが確認できました。

VPN 接続できることを確認

ここまでの作業で VPN クライアントの設定がすべて終わりです。

VPN クライアントを起動すれば無事 VPN セッションが張れるはず。そこまで確認するために AccountConnect コマンドを使います。

VPN Client>AccountConnect
AccountConnect command - Start Connection to VPN Server using VPN Connection Setting
Name of VPN Connection Setting: vpn_to_hoge

The command completed successfully.

VPN Client>

接続状況を確認するためには AccountStatusGet コマンドを使います。

VPN Client>AccountStatusGet
 AccountStatusGet command - Get Current VPN Connection Setting Status
 Name of VPN Connection Setting: vpn_to_hoge
 Item                                      |Value
 ------------------------------------------+--------------------------------------------------------
 VPN Connection Setting Name               |vpn_to_hoge
 Session Status                            |Connection Completed (Session Established)
 VLAN ID                                   |-
 Server Name                               |hoge.softether.net
 Port Number                               |TCP Port 5555
 Server Product Name                       |SoftEther VPN Server (64 bit)
 Server Version                            |4.34
 Server Build                              |Build 9745
 Connection Started at                     |2021-01-16 (Sat) 20:55:44
 First Session has been Established since  |2021-01-16 (Sat) 20:55:44
 Current Session has been Established since|2021-01-16 (Sat) 20:55:44
 Number of Established Sessions            |1 Times
 Half Duplex TCP Connection Mode           |No (Full Duplex Mode)
 VoIP / QoS Function                       |Enabled
 Number of TCP Connections                 |2
 Maximum Number of TCP Connections         |2
 Encryption                                |Enabled (Algorithm: TLS_AES_256_GCM_SHA384)
 Use of Compression                        |No (No Compression)
 Physical Underlay Protocol                |Standard TCP/IP (IPv4)
                                           |IPv4 UDPAccel_Ver=2 ChachaPoly_OpenSSL UDPAccel_MSS=1309
 UDP Acceleration is Supported             |Yes
 UDP Acceleration is Active                |Yes
 Session Name                              |SID-NOBI-2
 Connection Name                           |CID-3
 Session Key (160 bit)                     |83ADBD1B7942CC06B09556277E73F5F4F719BC00
 Bridge / Router Mode                      |No
 Monitoring Mode                           |No
 Outgoing Data Size                        |10,112 bytes
 Incoming Data Size                        |7,199 bytes
 Outgoing Unicast Packets                  |37 packets
 Outgoing Unicast Total Size               |2,610 bytes
 Outgoing Broadcast Packets                |21 packets
 Outgoing Broadcast Total Size             |1,418 bytes
 Incoming Unicast Packets                  |22 packets
 Incoming Unicast Total Size               |1,408 bytes
 Incoming Broadcast Packets                |0 packets
 Incoming Broadcast Total Size             |0 bytes
 The command completed successfully.
 VPN Client>

たとえば Outgoing Data Size とかを見るとすでに何らかのデータが流れていることがわかります。

適当にどこかに ping 打つ (以下 ↓ 参照) とかしながら何回か AccountStatusGet を叩いて、通信量が増えていくなら正常と考えて良いでしょう。

VPN Client> から抜けます。

VPN Client>exit
$

VPN クライアントから ping を打つ例

今回は以下のように ping を打ちました。

$ ping -c 3 10.1.0.1
PING 10.1.0.1 (10.1.0.1) 56(84) bytes of data.
64 bytes from 10.1.0.1: icmp_seq=1 ttl=255 time=23.8 ms
64 bytes from 10.1.0.1: icmp_seq=2 ttl=255 time=26.4 ms
64 bytes from 10.1.0.1: icmp_seq=3 ttl=255 time=23.7 ms
--- 10.1.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 23.735/24.626/26.391/1.248 ms
$

VPN クライアントの仮想 LAN カードには 10.1.0.211という IP を設定しました。そこから同じセグメントである 10.1.0.1 に ping を打った例です。

VPN クライアントは、さくらの VPS 上にある Ubuntu で稼働しています。ping を打った宛先である 10.1.0.1 は我が家にあるヤマハルータ RTX1100 に設定してある IP です。

ping で疎通が取れたということは、VPN セッションが正常に張れており、その VPN セッションを使って ping のパケットが行って返ってきたことを意味します。

つまり、これで想定通りに動いていることが確認できたというわけです。

ついでにスタティックルートを書いた 172.16.1.0/24 への ping も確認しておいた。

$ ping -c 3 172.16.1.2
PING 172.16.1.2 (172.16.1.2) 56(84) bytes of data.
64 bytes from 172.16.1.2: icmp_seq=1 ttl=63 time=25.2 ms
64 bytes from 172.16.1.2: icmp_seq=2 ttl=63 time=24.5 ms
64 bytes from 172.16.1.2: icmp_seq=3 ttl=63 time=24.1 ms

--- 172.16.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 24.089/24.598/25.186/0.451 ms
$

おまけ

本投稿では仮想 LAN カードに固定 IP を設定する方法について記載したが、普通のインターフェイス (物理 LAN ポート) に固定 IP を設定する時にもこのやり方は応用できる。Ubuntu Server 20.04 で同じやり方が使えることを確認した。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください