Servidor VPN Mac OS X 10.8: Ignorar VPN para tráfego de LAN (roteando o tráfego de LAN para conexão secundária)

Servidor VPN Mac OS X 10.8: Ignorar VPN para tráfego de LAN (roteando o tráfego de LAN para conexão secundária)

Tenho uma configuração um tanto estranha para um servidor VPN com OS X Mountain Lion. Ele está sendo usado essencialmente como uma ponte para contornar o firewall da minha empresa para nossa conexão extranet - certas coisas que nossa equipe precisa fazer exigem acesso irrestrito ao exterior, e alterar as políticas de TI para permitir o tráfego através do firewall principal simplesmente não é uma opção.

A conexão extranet é fornecida através de um roteador Wireless-N (vamos chamá-lo de Wi-Fi X). Meu servidor Mac Mini está configurado com a conexão a este roteador como conexão primária, proporcionando assim acesso irrestrito à Internet através do roteador. Conexões a este dispositivo na sub-rede imediata são possíveis através da porta LAN, mas fora da sub-rede as coisas são menos confiáveis.

Consegui configurar o servidor VPN para fornecer endereços IP a clientes no intervalo 192.168.11.150-192.168.11.200 usando PPTP e L2TP, e consigo me conectar à extranet por meio da VPN usando a VPN padrão do Mac OS X cliente nas Preferências do Sistema, porém, sem surpresa, um endereço local (vamos chamá-lo de internal.company.com) não retorna nada.

Tentei contornar a limitação do servidor VPN configurando rotas nas configurações da VPN. Nossa empresa usa 13.xxx para todo o tráfego interno, em vez de 10.xxx, então a tabela de roteamento ficou mais ou menos assim:

IP Address ---------- Subnet Mask ---------- Configuration
0.0.0.0               248.0.0.0              Private
8.0.0.0               252.0.0.0              Private
12.0.0.0              255.0.0.0              Private
13.0.0.0              255.0.0.0              Public
14.0.0.0              254.0.0.0              Private
16.0.0.0              240.0.0.0              Private
32.0.0.0              224.0.0.0              Private
64.0.0.0              192.0.0.0              Private
128.0.0.0             128.0.0.0              Private

Fiquei com a impressão de que se nada fosse inserido aqui, todo o tráfego seria roteado pela VPN. Com algo inserido, apenas o tráfego especificamente marcado para passar pela VPN passaria pela VPN, e todo o outro tráfego caberia ao cliente acessar usando sua própria conexão padrão. É por isso que tive que marcar especificamente todas as sub-redes, exceto 13.xxx, como Privadas.

Minha suspeita é que, como não consigo acessar o servidor VPN de fora da sub-rede local, ele não está fazendo conexão com o servidor DNS principal e, portanto, não pode ser acessado na rede maior. Estou pensando que inserir nomes de host como internal.company.com não será devolvido ao cliente para resolver, porque o servidor não tem ideia de que o endereço IP está no intervalo público, já que eu suspeito (provavelmente deveria fazer o ping testá-lo, mas não tenho acesso a ele agora) que ele não consegue acessar o servidor DNS para descobrir nada sobre esse nome de host.

Parece-me que todas as minhas opções para resolver tudo isso se resumem ao mesmo tipo de solução:

Descubra como acessar o DNS com a conexão secundária no servidor. Estou pensando que, se eu puder fazer [algo] para que meu servidor reconheça, ele também deverá verificar meu gateway local (digamos IP do servidor == 13.100.100.50 e IP do gateway == 13.100.100.1). A partir daí, o IP do gateway pode me dizer para encontrar o servidor DNS em 13.1.1.1 e me fornecer informações sobre minha rede interna. Estou muito confuso sobre esse caminho - realmente não tenho certeza se estou fazendo sentido.

Pensei em tentar fazer isso do lado do cliente, mas também não faz sentido, pois aumentaria o tempo de cada configuração do lado do cliente. Além disso, parece mais lógico resolvê-lo no servidor - eu poderia me livrar completamente da minha tabela de roteamento ou mantê-la - acho que a única diferença seria que o tráfego interno também passaria pelo servidor - provavelmente um fardo desnecessário para isto.

Alguma ajuda aí? Ou estou perdendo a cabeça? Proxy de encaminhamento ou proxy transparente também é uma opção para mim, embora eu não tenha ideia de como configurar nenhum deles. (Eu sei, o Google é meu amigo.)

Responder1

Bem, eu dou uma chance:

Não tenho certeza de como fazer com que apenas algum tráfego passe. Posso resolver seu problema, mas seria necessária uma pequena mudança em sua configuração. Presumo que o seu Mac tenha duas interfaces de rede, vamos chamá-las de eth0 e eth1 :-)

assumiremos que eth0 está conectado à sua rede de trabalho e tem um endereço interno (rede de trabalho) de 13.1.1.6, sub-rede 255.0.0.0.

também assumiremos que eth1 está conectado ao seu WiFi X e tem um endereço (eth1 <---> rede WiFi X) de 192.168.1.10, sub-rede 255.0.0.0, para manter as coisas simples.

Configurei servidores VPN em BSD e Linux, mas não em Mac, porém o conceito ainda será o mesmo, você tem opções, vou listar uma:

1) Certifique-se de que a tabela de roteamento no Mac tenha uma entrada como segue:

$>sudo route add 13.0.0.0/8 eth0

O que isso fará é garantir que qualquer tráfego que chegue pela interface WiFi X ou VPN destinado à rede da sua empresa (a rede 13) chegue lá. Sem isso, o Mac (que fornece a ponte) realmente não tem como saber como rotear o tráfego entre as duas interfaces e, por padrão, tentará enviá-lo de qualquer interface padrão, que é WiFi X que você declarou.

Eu desfaria o que você fez na tabela de roteamento VPN acima e tentaria fazer isso se (espero) ainda não estiver lá.

Se o procedimento acima não funcionar, atualize com a tabela de roteamento e a lista de endereços IP do seu servidor VPN ou atualize com qualquer correção que você encontrar. Espero que isso indique a direção certa.

informação relacionada