OpenVPN デフォルトゲートウェイをバイパスするには、ネットワーク起動後に systemd サービスファイルを実行します。

OpenVPN デフォルトゲートウェイをバイパスするには、ネットワーク起動後に systemd サービスファイルを実行します。

systemdサービスファイルを使用してシステム起動時に固定パスを追加したいと思います。

デフォルトゲートウェイを介してアクセスできる別々の192.168クラスCネットワークにDMZネットワークがあります。また、OpenVPNを使用してノートブックのインターネットトラフィックをルーティングします。これはNetworkManagerを介してWi-Fi接続に自動的に接続されます。問題は、OpenVPNが接続されていて、ルートテーブルに新しいデフォルトパスを追加すると、DMZに接続できなくなることです。明らかに固定パスを手動で追加することでこの問題を解決できますが、起動時またはOpenVPNが接続されたときに自動的にこれを実行したいと思います。

起動時にこれを行うためにsystemdサービスファイルを作成してみました。サービスファイルは実行を試みるip route addため、ネットワークの起動後に実行する必要があります。

#01-static-route.service

[Unit]
Description=Static route to the DMZ
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
# Add a route to the DMZ network since the vpn will change our default gateway
ExecStart=/usr/bin/ip route add 192.168.0.0/24 via 192.168.1.1

[Install]
WantedBy=multi-user.target

次のようにNetworkManager-wait-online.serviceを有効にしました。

#systemctl enable NetworkManager-wait-online.service

システムが起動すると、サービスファイルは失敗し、systemctl status 01-static-route.service次のメッセージを返します。

# systemctl status 01-static-route.service
● 01-static-route.service - Static route to the DMZ
   Loaded: loaded (/etc/systemd/system/01-static-route.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2015-04-13 16:40:11 BST; 28s ago
  Process: 558 ExecStart=/usr/bin/ip route add 192.168.0.0/24 via 192.168.1.1 (code=exited, status=2)
 Main PID: 558 (code=exited, status=2)

Apr 13 16:40:11 archlap ip[558]: RTNETLINK answers: Network is unreachable
Apr 13 16:40:11 archlap systemd[1]: 01-static-route.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Apr 13 16:40:11 archlap systemd[1]: Failed to start Static route to the DMZ.
Apr 13 16:40:11 archlap systemd[1]: Unit 01-static-route.service entered failed state.
Apr 13 16:40:11 archlap systemd[1]: 01-static-route.service failed.

ip route add実行時にネットワーク接続がないため、コマンドが失敗したようです。

この問題を解決するために、systemd(または他の方法)を使用して永続静的パスを追加する正しい手順を説明できる人はいますか?

ベストアンサー1

おすすめ記事