質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VPN

VPN(Virtual Private Network)は、仮想プライベートネットワークとも呼ばれ、インターネットに接続してるユーザー間に仮想的な通信トンネルを構築した組織内ネットワークです。認証や暗号化を用いて通信経路を保護し安全なネットワークの構築ができます。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Q&A

0回答

1112閲覧

vti I/F を nmcli で管理したい

hotta

総合スコア1613

VPN

VPN(Virtual Private Network)は、仮想プライベートネットワークとも呼ばれ、インターネットに接続してるユーザー間に仮想的な通信トンネルを構築した組織内ネットワークです。認証や暗号化を用いて通信経路を保護し安全なネットワークの構築ができます。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

0グッド

0クリップ

投稿2022/03/17 05:58

CentOS7 + libreswan で IPsec VPN を構築しました。

VPN そのものはうまく動いているようですが、ip route add で登録した経路はリブートで消えてしまいます。一応 /usr/lib/systemd/system/ipsec.service に手を入れて、サービス起動後に経路設定をしていますが、できれば本来の姿である nmcli で管理したいです。

ipsec start により作られた vti01 インターフェースを NetworkManager の管理対象にしてから接続を割り当てればいいのかなとと思いますが、やり方がわからないので教えて下さい。

https://aur.archlinux.org/packages/networkmanager-libreswan

ここを見る限り、NetworkManager における libeswan はあんまり芳しくないようにも見えますが、天下の RedHat さんが推奨しているので長いものに巻かれています。

bash

1vagrant@vs1-ztv:~$ rpm -qa|grep libreswan 2libreswan-3.25-9.1.el7_8.x86_64 3NetworkManager-libreswan-1.2.4-2.el7.x86_64 4 5vagrant@vs1-ztv:~$ sudo ip addr show vti01 67: vti01@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000 7 link/ipip 172.16.3.69 peer 172.16.3.71 8 inet6 fe80::5efe:ac10:345/64 scope link 9 valid_lft forever preferred_lft forever 10 11vagrant@vs1-ztv:~$ nmcli dev 12DEVICE TYPE STATE CONNECTION 13eth0 ethernet 接続済み System eth0 14eth1 ethernet 接続済み System eth1 15eth2 ethernet 接続済み System eth2 16eth3 ethernet 接続済み System eth3 17lo loopback 管理無し -- 18ip_vti0 vti 管理無し -- 19vti01 vti 管理無し -- 20 21vagrant@vs1-ztv:~$ nmcli dev show eth1 # 比較のため 22GENERAL.DEVICE: eth1 23GENERAL.TYPE: ethernet 24GENERAL.HWADDR: 08:00:27:AE:D4:E5 25GENERAL.MTU: 1500 26GENERAL.STATE: 100 (接続済み) 27GENERAL.CONNECTION: System eth1 28GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 29WIRED-PROPERTIES.CARRIER: オン 30IP4.ADDRESS[1]: 172.16.1.69/24 31IP4.GATEWAY: -- 32IP4.ROUTE[1]: dst = 172.16.1.0/24, nh = 0.0.0.0, mt = 100 33IP6.ADDRESS[1]: fe80::a00:27ff:feae:d4e5/64 34IP6.GATEWAY: -- 35IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 256 36IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255 37 38vagrant@vs1-ztv:~$ nmcli dev show vti01 39GENERAL.DEVICE: vti01 40GENERAL.TYPE: vti 41GENERAL.HWADDR: AC:10:03:45 42GENERAL.MTU: 1480 43GENERAL.STATE: 10 (管理無し) 44GENERAL.CONNECTION: -- 45GENERAL.CON-PATH: -- 46IP4.GATEWAY: -- 47IP4.ROUTE[1]: dst = 172.16.5.0/24, nh = 0.0.0.0, mt = 48IP6.ADDRESS[1]: fe80::5efe:ac10:345/64 49IP6.GATEWAY: -- 50IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 256 51IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table 52

GENERAL.CONNECTION / GENERAL.CON-PATH が入っていないのが気になります。

vagrant@vs1-ztv:~$ sudo grep -r unmanaged /etc/NetworkManager/ (該当なし) vagrant@vs1-ztv:~$ sudo nmcli con add type ip-tunnel mode vti ifname vti01 con-name vti01 remote 172.16.3.71 接続 'vti01' (19b89796-87f2-4c71-b846-0bf580e8fb9a) が正常に追加されました。 vagrant@vs1-ztv:~$ nmcli con NAME UUID TYPE DEVICE System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0 System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ethernet eth1 System eth2 3a73717e-65ab-93e8-b518-24f5af32dc0d ethernet eth2 System eth3 c5ca8081-6db2-4602-4b46-d771f4330a6d ethernet eth3 System eth4 84d43311-57c8-8986-f205-9c78cd6ef5d2 ethernet -- vti01 19b89796-87f2-4c71-b846-0bf580e8fb9a ip-tunnel -- vagrant@vs1-ztv:~$ nmcli dev (前述から表示変わらず) vagrant@vs1-ztv:~$ sudo nmcli dev mod vti01 managed yes エラー: デバイス 'vti01' (/org/freedesktop/NetworkManager/Devices/7) からの適用済み接続の読み取りに失敗しました: Device is not activated vagrant@vs1-ztv:~$ sudo nmcli con up vti01 エラー: 接続のアクティベーションに失敗: Failed to find a compatible device for this connection vagrant@vs1-ztv:~$ sudo cat /etc/ipsec.d/ipsec.conf conn routed-vpn auto=start type=tunnel authby=secret keyexchange=ike pfs=no rekey=no ike=aes256-sha2 nat-ikev1-method=both encapsulation=auto phase2alg=aes256-sha2 keyingtries=1 left=172.16.3.69 leftid=172.16.1.69 leftsubnet=172.16.1.0/24 right=172.16.3.71 rightid=172.16.5.71 rightsubnet=0.0.0.0/0 mark=5/0xffffffff vti-interface=vti01 vti-routing=no

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2022/03/17 07:25

試していませんが、"rightsubnet=172.16.5.0/24" と設定すると、libreswan がルーティングの面倒を見てくれませんか?
hotta

2022/03/17 08:00 編集

実環境では rightsubnets に記載するべきサブネットが 10 個以上あります。 元々 Policy Based にしていたので、rightsubnets に列挙したサブネットが eroute として登録されて明示的なルーティングは不要だったのですが、そのうち疎通が通らないサブネットが一部発生するという事象に遭遇しました。 https://github.com/libreswan/libreswan/issues/625 こういう事例もあるのですが、今回の環境では libreswan を 4.6 に上げても解消されませんでした。 さんざん試行錯誤したあげく、routed Based(vti) に変更したら、ルーティングされないという問題が解消されました。vti では個別に経路を明示する必要があるので、一周回ってこのような構成になっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問