ネットワークを設定するので万が一接続できなくなった時のため、(Google Cloud)GCPでネットワークインターフェースを2つにして作成します。
通常はクライアントでは2つ作成する必要はありません。
それには、VPCネットワークでサブネットを作成しておく必要があります。
自宅のセグメントと同じIPアドレス範囲で作成しました。これはあとから変更することもできます。インスタンス作成時にネットワークインターフェースのところで作成したサブネットを選択できるのでこれに決めます。さらに、2つ目のネットワークインターフェースも追加しておきます。これはデフォルトのものを選択しておきました。外部IPアドレスは最初のインターフェースには付与して、デフォルトの方には付与せず作成しました。ネットワークに支障が出た時、デフォルトに外部IPアドレスを付与してSSH接続をしようと考えています。
次に事前準備をします。SELinuxを無効にしておきます。また、仮想マシンを作成した直後のネットワークの状態も確認しておきます。
ip a
nmcli d
route -n
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP group default qlen 1000
link/ether 42:01:c0:a8:1a:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.26.2/32 scope global dynamic noprefixroute eth0
valid_lft 1876sec preferred_lft 1876sec
inet6 fe80::3f40:7692:1b88:ba0e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP group default qlen 1000
link/ether 42:01:0a:80:00:2e brd ff:ff:ff:ff:ff:ff
inet 10.128.0.46/32 scope global dynamic noprefixroute eth1
valid_lft 3226sec preferred_lft 3226sec
inet6 fe80::c9cf:5a4b:eece:cad3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
DEVICE TYPE STATE CONNECTION
eth0 ethernet 接続済み 有線接続 1
eth1 ethernet 接続済み eth1
lo loopback 管理無し --
デバイスのeth1ですが、最初はCONNECTIONの所がWired Connection 2とか有線接続 2という名前だったのでeth1に変更してあります。次のコマンド入力で変更しておきました。
nmcli con modify "有線接続 2" connection.id eth1
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.26.1 0.0.0.0 UG 100 0 0 eth0
10.128.0.0 10.128.0.1 255.255.240.0 UG 0 0 0 eth1
10.128.0.0 10.128.0.1 255.255.240.0 UG 101 0 0 eth1
10.128.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
10.128.0.1 0.0.0.0 255.255.255.255 UH 101 0 0 eth1
192.168.26.0 192.168.26.1 255.255.255.0 UG 100 0 0 eth0
192.168.26.1 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
ネットワークマネージャの関連ファイルがあるディレクトリにどんなファイルがあるかも確認しておきます。
cd /etc/sysconfig/network-scripts/
ls
ifcfg-eth1というファイルが最初から存在しており中身をみるとGoogle CloudのCompute Engineによる記述であることが確認できました。外部IPアドレスが付与してあるeth0のファイルはありませんでした。
# Added by Google Compute Engine OS Login.
DEVICE=eth1
BOOTPROTO=none
DEFROUTE=no
IPV6INIT=no
NM_CONTROLLED=no
NOZEROCONF=yes
それではSoftEther VPN Clientをインストールしていきましょう。まずはSoftEtherダウンロードセンターでダウンロードするファイルのURLを確認しておきます。
https://www.softether-download.com/ja.aspx?product=softether
ここからはSSH接続をして設定をしていきます。
ダウンロード後に、ファイルを展開するとvpnclientというディレクトリが作成されているので、そこに移動してmakeコマンドを入力します。
wget コピーしたURL
tar -xzvf ダウンロードしたファイル名
cd vpnclient
make
[root@instance-1 vpnclient]# make
--------------------------------------------------------------------
SoftEther VPN Client (Ver 4.38, Build 9760, Intel x64 / AMD64) for Linux Build Utility
Copyright (c) SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.
--------------------------------------------------------------------
Copyright (c) all contributors on SoftEther VPN project in GitHub.
Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
DISCLAIMER
==========
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING, MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS YOU HAVE A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY CRIMINAL LAWS OR CIVIL RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS SOFTWARE IN OTHER COUNTRIES IS COMPLETELY AT YOUR OWN RISK. THE SOFTETHER VPN PROJECT HAS DEVELOPED AND DISTRIBUTED THIS SOFTWARE TO COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING CIVIL RIGHTS INCLUDING PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER COUNTRIES' LAWS OR CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. WE HAVE NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ COUNTRIES AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE WORLD, WITH DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY COUNTRIES' LAWS, REGULATIONS AND CIVIL RIGHTS TO MAKE THE SOFTWARE COMPLY WITH ALL COUNTRIES' LAWS BY THE PROJECT. EVEN IF YOU WILL BE SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A PUBLIC SERVANT IN YOUR COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE LIABLE TO RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL
RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT JUST A STATEMENT FOR WARNING AND DISCLAIMER.
READ AND UNDERSTAND THE 'src/WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'src/THIRD_PARTY.TXT' FILE.
--------------------------------------------------------------------
make[1]: ディレクトリ '/tmp/vpnclient' に入ります
Preparing SoftEther VPN Client...
ranlib lib/libcharset.a
ranlib lib/libcrypto.a
ranlib lib/libedit.a
ranlib lib/libiconv.a
ranlib lib/libintelaes.a
ranlib lib/libncurses.a
ranlib lib/libssl.a
ranlib lib/libz.a
ranlib code/vpnclient.a
gcc code/vpnclient.a -fPIE -O2 -fsigned-char -pthread -m64 -lm -lrt -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a lib/libintelaes.a -ldl -o vpnclient
ranlib code/vpncmd.a
gcc code/vpncmd.a -fPIE -O2 -fsigned-char -pthread -m64 -lm -lrt -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a lib/libintelaes.a -ldl -o vpncmd
--------------------------------------------------------------------
The preparation of SoftEther VPN Client is completed !
*** How to switch the display language of the SoftEther VPN Client Service ***
SoftEther VPN Client supports the following languages:
- Japanese
- English
- Simplified Chinese
You can choose your prefered language of SoftEther VPN Client at any time.
To switch the current language, open and edit the 'lang.config' file.
Note: the administrative password is not set on the VPN Server. Please set your own administrative password as soon as possible by vpncmd or the GUI manager.
*** How to start the SoftEther VPN Client Service ***
Please execute './vpnclient start' to run the SoftEther VPN Client Background Service.
And please execute './vpncmd' to run the SoftEther VPN Command-Line Utility to configure SoftEther VPN Client.
Of course, you can use the VPN Server Manager GUI Application for Windows / Mac OS X on the other Windows / Mac OS X computers in order to configure the SoftEther VPN Client remotely.
*** For Windows users ***
You can download the SoftEther VPN Server Manager for Windows
from the http://www.softether-download.com/ web site.
This manager application helps you to completely and easily manage the VPN server services running in remote hosts.
*** For Mac OS X users ***
In April 2016 we released the SoftEther VPN Server Manager for Mac OS X.
You can download it from the http://www.softether-download.com/ web site.
VPN Server Manager for Mac OS X works perfectly as same as the traditional Windows versions. It helps you to completely and easily manage the VPN server services running in remote hosts.
*** PacketiX VPN Server HTML5 Web Administration Console (NEW) ***
This VPN Server / Bridge has the built-in HTML5 Web Administration Console.
After you start the server daemon, you can open the HTML5 Web Administration Console is available at
https://127.0.0.1:5555/
or
https://ip_address_of_the_vpn_server:5555/
This HTML5 page is obviously under construction, and your HTML5 development contribution is very appreciated.
--------------------------------------------------------------------
make[1]: ディレクトリ '/tmp/vpnclient' から出ます
vpnclientというディレクトリごと推奨先に移動して、適切なパーミッションの設定をします。
mv /tmp/vpnclient /usr/local/
cd /usr/local/vpnclient
chmod 600 *
chmod 700 vpncmd
chmod 700 vpnclient
VPN Clientをサービス管理するので、該当ディレクトリにユニットファイルと呼ばれるものを作成します。
cd /etc/systemd/system
vi vpnclient.service
記述内容
[Unit]
Description=SoftEther VPN Client
After=network.target network-online.target
[Service]
ExecStart=/usr/local/vpnclient/vpnclient start
ExecStop=/usr/local/vpnclient/vpnclient stop
Type=forking
RestartSec=3s
[Install]
WantedBy=multi-user.target
サービスの起動をして、OS起動時の設定もおこないます。
systemctl start vpnclient
systemctl enable vpnclient
systemctl status vpnclient
Clientのインストールおよび設定が終わったので、これを使用して設定していきます。なお、Google CloudのVPCネットワークでIPアドレスを変更しておきました。自宅と同じセグメントだったので変更しました。
192.168.26.0/24→192.168.30.0/24
/usr/local/vpnclient/vpncmd
vpncmdプログラムを起動すると設定したい項目を選択するように問われます。クライアントをインストールして設定したいので2を選択します。接続先のホスト名またはIPアドレスはそのままENTERキーを押せばlocalhostに接続します。
HELPと入力するとコマンド一覧が表示されます。これでどれを入力するかは、おおよそ検討がつきます。日本語で表示されていますが、OS自体を日本語設定をして読みやすくしました。
VPN Client>help
下記の 66 個のコマンドが使用できます:
About - バージョン情報の表示
AccountAnonymousSet - 接続設定のユーザー認証の種類を匿名認証に設定
AccountCertGet - 接続設定に用いるクライアント証明書の取得
AccountCertSet - 接続設定のユーザー認証の種類をクライアント証明書認
証に設定
AccountCompressDisable - 接続設定の通信時のデータ圧縮の無効化
AccountCompressEnable - 接続設定の通信時のデータ圧縮の有効化
AccountConnect - 接続設定を使用して VPN Server へ接続を開始
AccountCreate - 新しい接続設定の作成
AccountDelete - 接続設定の削除
AccountDetailSet - 接続設定の高度な通信設定の設定
AccountDisconnect - 接続中の接続設定の切断
AccountEncryptDisable - 接続設定の通信時の暗号化の無効化
AccountEncryptEnable - 接続設定の通信時の暗号化の有効化
AccountExport - 接続設定のエクスポート
AccountGet - 接続設定の設定の取得
AccountImport - 接続設定のインポート
AccountList - 接続設定一覧の取得
AccountNicSet - 接続設定で使用する仮想 LAN カードの設定
AccountPasswordSet - 接続設定のユーザー認証の種類をパスワード認証に設定
AccountProxyHttp - 接続設定の接続方法を HTTP プロキシサーバー経由接続
に設定
AccountProxyNone - 接続設定の接続方法を直接 TCP/IP 接続に設定
AccountProxySocks - 接続設定の接続方法を SOCKS プロキシサーバー経由接続
に設定
AccountRename - 接続設定の名前の変更
AccountRetrySet - 接続設定の接続失敗または切断時の再試行回数と間隔の
設定
AccountSecureCertSet - 接続設定のユーザー認証の種類をスマートカード認証に
設定
AccountServerCertDelete - 接続設定のサーバー固有証明書の削除
AccountServerCertDisable - 接続設定のサーバー証明書の検証オプションの無効化
AccountServerCertEnable - 接続設定のサーバー証明書の検証オプションの有効化
AccountServerCertGet - 接続設定のサーバー固有証明書の取得
AccountServerCertSet - 接続設定のサーバー固有証明書の設定
AccountSet - 接続設定の接続先の設定
AccountStartupRemove - 接続設定のスタートアップ接続を解除
AccountStartupSet - 接続設定をスタートアップ接続に設定
AccountStatusGet - 接続設定の現在の状態の取得
AccountStatusHide - VPN Server への接続中に接続状況やエラー画面を表示し
ないように設定
AccountStatusShow - VPN Server への接続中に接続状況やエラー画面を表示す
るように設定
AccountUsernameSet - 接続設定の接続に使用するユーザー名の設定
CertAdd - 信頼する証明機関の証明書の追加
CertDelete - 信頼する証明機関の証明書の削除
CertGet - 信頼する証明機関の証明書の取得
CertList - 信頼する証明機関の証明書一覧の取得
Check - SoftEther VPN の動作が可能かどうかチェックする
KeepDisable - インターネット接続の維持機能の無効化
KeepEnable - インターネット接続の維持機能の有効化
KeepGet - インターネット接続の維持機能の取得
KeepSet - インターネット接続の維持機能の設定
MakeCert - 新しい X.509 証明書と秘密鍵の作成 (1024 bit)
MakeCert2048 - 新しい X.509 証明書と秘密鍵の作成 (2048 bit)
NicCreate - 新規仮想 LAN カードの作成
NicDelete - 仮想 LAN カードの削除
NicDisable - 仮想 LAN カードの無効化
NicEnable - 仮想 LAN カードの有効化
NicGetSetting - 仮想 LAN カードの設定の取得
NicList - 仮想 LAN カード一覧の取得
NicSetSetting - 仮想 LAN カードの設定の変更
NicUpgrade - 仮想 LAN カードのデバイスドライバのアップグレード
PasswordGet - VPN Client サービスに接続するためのパスワードの設定
の取得
PasswordSet - VPN Client サービスに接続するためのパスワードの設定
RemoteDisable - VPN Client サービスのリモート管理の禁止
RemoteEnable - VPN Client サービスのリモート管理の許可
SecureGet - 使用するスマートカードの種類の ID の取得
SecureList - 使用できるスマートカードの種類の一覧の取得
SecureSelect - 使用するスマートカードの種類の選択
TrafficClient - 通信スループット測定ツールクライアントの実行
TrafficServer - 通信スループット測定ツールサーバーの実行
VersionGet - VPN Client サービスのバージョン情報の取得
それぞれのコマンドの使用方法については、"コマンド名 ?" と入力するとヘルプが表示 されます。
コマンドは正常に終了しました。
色々調べると最初は仮想ネットワークデバイスの作成をするようにとのことでした。作成せずに接続するホスト名などの設定にいっても自動で仮想ネットワークデバイスが作成されるようです。vpnという名前で作成されていましたが、学習がてら自分で作成していきます。
NicCreate
NicList
VPN Client>NicCreate
NicCreate コマンド - 新規仮想 LAN カードの作成
仮想 LAN カードの名前: vnic
コマンドは正常に終了しました。
VPN Client>Niclist
NicList コマンド - 仮想 LAN カード一覧の取得
項目 |値
-----------------+------------------------------------
仮想 LAN カード名|vnic
状態 |有効 (使用可能)
MAC アドレス |5ECA58120EB0
バージョン |Version 4.38 Build 9760 (Japanese)
コマンドは正常に終了しました。
さらに、仮想LANカードを有効にします。これをやらないとネットワークマネージャのデバイスを表示するコマンドで「接続済み」とならず、制御できませんでした。ためしに、有効にすることなく接続を試みると接続はできました。 ネットワークマネージャを使用して状態を見ても仮想LANカードの状態が「管理無し」と出ていても接続はできるようでした。物理ネットワークデバイスが接続をしていると考えられます。その後、仮想LANカードが動作して正常な挙動になると思います。
NicEnable
VPN Client>NicEnable
NicEnable コマンド - 仮想 LAN カードの有効化
仮想 LAN カードの名前: vnic
コマンドは正常に終了しました。
新しい接続設定もします。ホスト名を入力後、そのホストの仮想HUB名と同じものを入力します。ユーザーはVPN Serverで作成して存在するものを指定します。ユーザーのパスワードは別途コマンドが必要です。
AccountCreate
vpn1
sasori.life:5555
vhub
mamushi
vnic
AccountPasswordSet
VPN Client>AccountCreate
AccountCreate コマンド - 新しい接続設定の作成
接続設定の名前: vpn1
接続先 VPN Server のホスト名とポート番号: sasori.life:5555
接続先仮想 HUB 名: vhub
接続するユーザー名: mamushi
使用する仮想 LAN カード名: vnic
コマンドは正常に終了しました。
VPN Client>AccountPasswordSet
AccountPasswordSet コマンド - 接続設定のユーザー認証の種類をパスワード認証に設定
接続設定の名前: vpn1
パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。
パスワード: ********
確認入力 : ********
standard または radius の指定: standard
コマンドは正常に終了しました。
VPN Client>Accountlist
AccountList コマンド - 接続設定一覧の取得
項目 |値
-------------------+-----------------------------------
接続設定名 |vpn1
状態 |オフライン
接続先 VPN サーバー|sasori.life:5555 (直接 TCP/IP 接続)
仮想 HUB 名 |vhub
仮想 LAN カード名 |vnic
コマンドは正常に終了しました。
VPN Client>quit
これで接続設定は完了したので、一度VPN Clientの画面から出ます。接続する前に一度IPアドレスなどを確認しておきます。inet6はあるがinetがありません。また仮想LANカードの名前はOS自体で確認するとvpn_vnicとなっておりvpn_がclientで作成した仮想LANカード名の前に付いて表示されています。
5: vpn_vnic: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 5e:ca:58:12:0e:b0 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5cca:58ff:fe12:eb0/64 scope link
valid_lft forever preferred_lft forever
[root@instance-1 ~]# nmcli d
DEVICE TYPE STATE CONNECTION
eth0 ethernet 接続済み 有線接続 1
eth1 ethernet 接続済み eth1
lo loopback 管理無し --
vpn_vnic tun 管理無し --
IPv4のアドレスがないがVPN Serverに接続してみます。VPN Serverは自宅のWindowsにインストールしてあります。
AccountConnect
VPN Client>AccountConnect
AccountConnect コマンド - 接続設定を使用して VPN Server へ接続を開始
接続設定の名前: vpn1
コマンドは正常に終了しました。
接続はできましたがPINGが通りません。この状態は不完全なので再設定します。VPNを切断します。
AccountDisconnect
VPN Client>Accountdisconnect
AccountDisconnect コマンド - 接続中の接続設定の切断
接続設定の名前: vpn1
コマンドは正常に終了しました。
SoftEther VPN Clientが作成した仮想ネットワークデバイスのスクリプトファイルは次のディレクトリにはありませんでした。
/etc/sysconfig/network-scripts/
これに関してはRHEL8のネットワーク関連の記事が公式にありました。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/networking_considerations-in-adopting-rhel-8
Red Hat Enterprise Linux 8 では、ネットワークスクリプトが非推奨となっており、デフォルトでは提供されなくなりました。基本インストールでは、nmcli ツールを介して NetworkManager を呼び出す ifup スクリプトおよび ifdown スクリプトの新しいバージョンが提供されます。Red Hat Enterprise Linux 8 で ifup スクリプトおよび ifdown スクリプトを実行する場合は、NetworkManager が起動している必要があります。
IPアドレスがないのでnmcliツールを介して、IPアドレスやゲートウェイを付与します。これを可能にするには先に述べたようにVPN Clientで仮想LANカードを有効にしておく必要があります。あとから調べましたがゲートウェイはなくても正常に動作しました。
nmcli con mod vpn_vnic ipv4.method manual ipv4.addresses 192.168.26.5/24
nmcli con mod vpn_vnic ipv4.gateway 192.168.26.1
nmcli con up vpn_vnic
nmcli d
route -n
ip a
指定するIPアドレスは接続するVPN Serverと同じセグメントとします。また、このVPN ServerがあるネットワークではルーターがDHCPサーバーの役割をしていて、ルーターが割り振る範囲外のIPアドレスを指定します。
例
DHCP割り当てアドレスが192.168.26.101から 192.168.26.200なので192.168.26.5などを付与する。
経路の状態もみると自動的に適切な値が追加されているようです。
記述の通り、ネットワークマネージャのコマンドを入力してもファイルは作成されないようです。
ここまでで再設定が完了したので、接続してPINGが通るか確認すると今度はうまくいきました。クライアントに設置したWEBサーバーにブラウザでアクセスしてみます。その際、仮想NICのIPアドレスを入力します。こちらも正常に動作しました。VPN Serverがあるネットワーク内にある別のPCからでも正常に動作しました。
OSを再起動してIPアドレスなどを調べると設定した内容が消えていました。仮想LANカードの状態も「管理無し」となっていますが、仮想LANカードへ接続をするコマンド入力をするだけで再起動前の設定が復活しました。その後、VPN Clientで接続をします。
nmcli con up vpn_vnic
スクリプトファイルを使用したい人は別途ツールをインストールします。ファイルを編集したり確認する目的で便利でしたが、システムに非推奨であるとのことです。
dnf install network-scripts