OpenVPN e resolvido pelo sistema

9

Como alguém usa o dns enviado por um servidor openvpn com systemd-resolved?

Antes de eu decidir 'atualizar' para systemd-networkd. Eu poderia usar alguma variante do script openvpn-resolv-conf para chamar resolvconf para gerenciar entradas no /etc/resolv.conf ao estabelecer com êxito um túnel vpn.

Isso me permitiria resolver nomes na extremidade remota do túnel VPN.

Agora que o resolvido pelo sistema gerencia o /run/systemd/resolved/resolv.conf, é possível adicionar automaticamente o DNS enviado por uma conexão openvpn à lista de servidores de nomes usados ​​para resolução?

sw1nn
fonte

Respostas:

2

Edit : a partir de hoje, esta solução é principalmente obsoleta. Usuários de versões mais recentes do systemd devem consultar a solução fornecida pelo Piotr Dobrogost.

O truque é criar um arquivo de configuração de rede temporário com as configurações de DNS e, em seguida, reiniciar systemd-networkpara aplicar as configurações globais de DNS.

Eu escrevi um script modificado que faz exatamente isso. Você pode conferir aqui: update-systemd-network.sh

WGH
fonte
Eu acho que há uma condição de corrida com a criação de rotas enviadas através da configuração do openvpn no reinício do systemd-networkd. No entanto, em vez de criar uma nova configuração de rede e reiniciar systemd-networké possível criar um arquivo muito semelhante em /run/systemd/resolved-conf.d/e, em seguida, reiniciar systemd-resolvedque parece funcionar
sw1nn
parece que os recursos acima em systemd-resolved foram adicionados em 229 após a minha pergunta original.
sw1nn
De acordo com @grawity de #systemd - a maneira correta de fazê-lo funcionar é chamar org.freedesktop.resolve1.Manager.SetLinkDNS()via DBus
Piotr Dobrogost