我已经通过openvpn工作VPN连接,但我也想使用我的DHCP服务器,而不是openvpn的推送function。 目前一切工作正常,但我必须手动启动DHCP客户端,例如。 dhclient tap0和我从我的DHCP获得IP和其他重要的东西,是否有任何指令,当连接build立时启动DHCP客户端?
有我的客户的configuration:
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
服务器的configuration如下:
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"
对的,这是可能的。
如果您将“ –up cmd ”传递给openvpn进程。
UP开关被定义为在成功的TUN / TAP设备打开(预用户UID改变)之后运行的Shell命令,向上的脚本用于指定路由命令,该命令将IP业务路由到目的地是存在于另一端的私有子网的VPN连接进入隧道“。
您可以使用您的发行版中的标准networkingpipe理脚本。 我在CentOS 6.6中解决了这个问题,诀窍是使用不同于tap0的接口名称。 问题是,脚本假定tap *接口在启动过程中出现,并阻止hotplug脚本configurationopenvpn接口。 所以,
在/etc/openvpn/client.conf中写:
dev priv0
dev型龙头
代替:
dev tap0
接下来创buildconfiguration文件/ etc / sysconfig / network-scripts / ifcfg-priv0
DEVICE = priv0
BOOTPROTO = DHCP
ONBOOT =无
PERSISTENT_DHCLIENT = 1
HOTPLUG = YES
你完成了! /etc/sysconfig/network-scripts/net.hotplug脚本将在openvpn服务创buildpriv0接口后调用“ifup priv0”。 但问题是,当openvpn服务被closures时,dhcp租约不会被释放。 这是因为当net.hotplug脚本被通知时接口已经被删除,所以dhcp客户端不能通过隧道传递任何数据。 这可以通过将“ifdown priv0”这样的pre-down脚本添加到openvpnconfiguration中来解决。 我有selinux运行,我懒得去锻炼新的规则,以允许openvpn进程调用ifdown脚本。