ルーティングの変更を永続的に行う方法

ルーティングの変更を永続的に行う方法

tun0 (openvpn トンネル) が起動したら、以下のルーティング ルールを適用します。これらのルールは、ネットワーク上の一部のクライアントを VPN の外部にプッシュし、インターネットに直接接続するのに役立ちます。これらを適用する最適な方法は何ですか?

更新: Ubuntu 18.04 を実行しています。

ip route add default via 192.168.8.1 table novpn
ip route add 192.168.1.0/24 dev enp4s0 table novpn
ip rule add from 192.168.1.220 table novpn
iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.210-192.168.1.220 -o enp5s0 -j MASQUERADE

答え1

次のような openvpn config からコマンドを実行できます:

script-security 2
up /path/to/routing/script
down /path/to/routing/downscript

man openvpn から:

   --up cmd
          Run command cmd after successful TUN/TAP device open (pre --user
          UID change).

          cmd  consists  of  a path to script (or executable program), op‐
          tionally followed by arguments. The path and  arguments  may  be
          single-  or  double-quoted and/or escaped using a backslash, and
          should be separated by one or more spaces.

          The up command is useful for  specifying  route  commands  which
          route IP traffic destined for private subnets which exist at the
          other end of the VPN connection into the tunnel.

          For --dev tun execute as:

          cmd  tun_dev  tun_mtu  link_mtu  ifconfig_local_ip  ifconfig_re‐
          mote_ip [ init | restart ]

答え2

これを試すことができます( に追加してください/etc/rc.local

ip route add default via 192.168.8.1 table novpn
ip route add 192.168.1.0/24 dev enp4s0 table novpn
ip rule add from 192.168.1.220 table novpn
iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.210-192.168.1.220 -o enp5s0 -j MASQUERADE

関連情報