¿Puede OpenVPN invocar al cliente DHCP?

¿Puede OpenVPN invocar al cliente DHCP?

Tengo una conexión VPN que funciona a través de openvpn, pero me gustaría usar también mi servidor DHCP y no la función push de openvpn. Actualmente todo funciona bien, pero tengo que iniciar manualmente el cliente dhcp, por ejemplo. dhclient tap0y obtengo IP y otras cosas importantes de mi DHCP, ¿hay alguna directiva que inicie el Cliente DHCP cuando se establece la conexión?

Ahí está la configuración de mi cliente:

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

Aquí viene la configuración del servidor:

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"

Respuesta1

Sí, es posible.

si pasas "--arriba cmd" al proceso openvpn.

El interruptor ARRIBA se define como " Comando Shell que se ejecutará después de abrir correctamente el dispositivo TUN/TAP (cambio de UID previo al usuario). El script up es útil para especificar comandos de ruta que enrutan el tráfico IP destinado a subredes privadas que existen en el otro extremo de la conexión VPN al túnel."

Respuesta2

Puede utilizar scripts de administración de red estándar de su distribución. Resolví este problema en CentOS 6.6 y el truco consistió en usar un nombre de interfaz diferente al de tap0. El problema era que los scripts suponen que las interfaces tap* se activan durante el arranque y eso impide que los scripts hotplug configuren la interfaz openvpn. Entonces,

En /etc/openvpn/client.conf escriba:

dev priv0
grifo tipo dev

en lugar de:

desarrollador tap0

Luego cree el archivo de configuración /etc/sysconfig/network-scripts/ifcfg-priv0

DEVICE=priv0
BOOTPROTO=dhcp
ONBOOT=no
PERSISTENT_DHCLIENT=1
HOTPLUG=sí

¡Y ya está! El script /etc/sysconfig/network-scripts/net.hotplug llamará a "ifup priv0" después de que el servicio openvpn haya creado la interfaz priv0. Sin embargo, el problema es que las concesiones de dhcp no se liberan cuando se desactiva el servicio openvpn. Esto se debe a que la interfaz ya se eliminó cuando se informa el script net.hotplug, por lo que el cliente dhcp no puede pasar ningún dato a través del túnel. Esto podría solucionarse agregando un script previo a la inactividad, como "ifdown priv0", a la configuración de openvpn. Tenía Selinux ejecutándose y no me molesté en desarrollar nuevas reglas para permitir que el proceso openvpn llame al script ifdown.

información relacionada