dnsmasq vs openvpn
Hi there! I'm a beginner in linux, an I've ran into a roadblock.
I had a working openvpn server, with "push redirect-gateway" and "dhcp-option DNS ..." with two clients, it was perfect for a while, until now.
When I made my ovpn server, for the dns redirect I installed the dnsmasq package from apt.
A day I made lot of changes in the openvpn's server cfg (change from tun to tap, and backward a lot of times), and using wondershaper, webhtb, to shape the bandwidth for the tun/tap iface and lot of stuffs but I newer touched the dnsmasq, or any dns stuff on my box. But now, it doesn't work.. so when a client connects to vpn, it is unable to use dns addresses from the vpn server. When I make a full-restart or just a vpn restart, or just re configure my iptables it not makes effects. I need to do a full reboot on the server to make it work.
The procedure to make it work:
send a reboot to shell.
openvpn, etc starts
i connect as a client, and i dont have dsn forwarding
try to restart/start dnsmasq:
"/etc/init.d/dnsmasq start --bind-interfaces
Starting DNS forwarder and DHCP server: dnsmasq
dnsmasq: failed to create listening socket: Address already in use
go to shell, I kill every "named" process
try to restart/start and look at the status again:
Checking DNS forwarder and DHCP server: dnsmasqrunning (warning).
OK, now I have DNS forwarding to clients. fine!!
But later, eg. I need to open a new port, or close one, so I must use Iptables(with script), or just need an openvpn restart, an voila, I don't have dns to ovpn clients anymore.
Try to restart dnsmasq to make it work!:
Checking DNS forwarder and DHCP server: dnsmasq not running (warning).
try to lookup the problem:
dnsmasq: failed to bind listening socket for fe80::2ff:68ff:fe26:7f02: Address already in use"
And from here, if I made dnsmasq restart or anything, doesn't matter, not works anymore. So I need to reboot the whole server.
I'm not using ipv6, i don't know what is it.
I tried everything I know, but no effects. Please help me to figure out and solve this problem!