
私は openvpn 経由で VPN 接続を機能させていますが、openvpn のプッシュ機能ではなく、DHCP サーバーも使用したいと考えています。現在はすべて正常に動作していますが、DHCP クライアントを手動で起動する必要があります。たとえば、dhclient tap0
IP やその他の重要な情報は DHCP から取得しますが、接続が確立されたときに DHCP クライアントを起動するディレクティブはありますか?
私のクライアントの設定は次のとおりです:
remote there.is.server.com
float
dev tap
tls-client
#pull
port 1194
proto tcp-client
persist-tun
dev tap0
#ifconfig 192.168.69.201 255.255.255.0
#route-up "dhclient tap0"
#dhcp-renew
ifconfig 0.0.0.0 255.255.255.0
ifconfig-noexec
ifconfig-nowarn
ca /etc/openvpn/ca.crt
cert /etc/openvpn/encyNtb_openvpn_client.crt
key /etc/openvpn/encyNtb_openvpn_client.key
dh /etc/openvpn/dh-openvpn.dh
ping 10
ping-restart 120
comp-lzo
verb 5
log-append /var/log/openvpn.log
サーバーの設定は次のとおりです:
mode server
tls-server
dev tap0
local servers.ip.here
port 1194
proto tcp-server
server-bridge
# Allow comunication between clients
client-to-client
# Allowing duplicate users per one certificate
duplicate-cn
# CA Certificate, VPN Server Certificate, key, DH and Revocation list
ca /etc/ssl/CA/certs/ca.crt
cert /etc/ssl/CA/certs/openvpn_server.crt
key /etc/ssl/CA/private/openvpn_server.key
dh /etc/ssl/CA/dh/dh-openvpn.dh
crl-verify /etc/ssl/CA/crl.pem
# When no response is recieved within 120seconds, client is disconected
keepalive 10 60
persist-tun
persist-key
user openvpn
group openvpn
# Log and Connected clients file
log-append /var/log/openvpn
verb 3
status /var/run/openvpn/vpn.status 10
# Compression
comp-lzo
#Push data to client
push "route-gateway 192.168.69.1"
push "redirect-gateway def1"
答え1
はい、可能です。
「合格したら--up コマンド" を openvpn プロセスに追加します。
UPスイッチは次のように定義されます 「TUN/TAP デバイスのオープンに成功した後に実行するシェル コマンド (--user UID の変更前)。up スクリプトは、VPN 接続のもう一方の端にあるプライベート サブネット宛の IP トラフィックをトンネルにルーティングするルート コマンドを指定するのに役立ちます。」
答え2
ディストリビューションの標準ネットワーク管理スクリプトを使用できます。私は CentOS 6.6 でこの問題を解決しました。その方法は、tap0 とは異なるインターフェイス名を使用することです。問題は、スクリプトが起動中に tap* インターフェイスが起動されると想定し、ホットプラグ スクリプトが openvpn インターフェイスを構成できないことです。そのため、
/etc/openvpn/client.conf に次のように記述します。
dev priv0
devタイプタップ
の代わりに:
開発者タップ0
次に設定ファイル /etc/sysconfig/network-scripts/ifcfg-priv0 を作成します。
デバイス=priv0
BOOTPROTO=dhcp
ONBOOT=いいえ
PERSISTENT_DHCLIENT=1
HOTPLUG=はい
これで完了です。/etc/sysconfig/network-scripts/net.hotplug スクリプトは、openvpn サービスが priv0 インターフェイスを作成した後、「ifup priv0」を呼び出します。ただし、問題は、openvpn サービスがダウンしたときに DHCP リースが解放されないことです。これは、net.hotplug スクリプトが通知されたときにインターフェイスがすでに削除されているため、DHCP クライアントはトンネルを介してデータを渡すことができません。これは、openvpn 構成に「ifdown priv0」などのダウン前のスクリプトを追加することで修正できます。私は selinux を実行しており、openvpn プロセスが ifdown スクリプトを呼び出すことを許可する新しいルールを作成する手間はかけませんでした。