Como configurar o Mac para rotear pedidos IP externos para diferentes interfaces?

2

Atualmente, estou configurando um Mac em casa. Tem um IP estático de 10.0.1.254.

Este Mac tem uma conexão VPN para meu local de trabalho através do tunnelblick (192.168.1.xe 192.168.2. x). Este Mac também pode executar algumas das minhas VMs (192.168.170.x).

Enquanto em outro laptop (também um Mac) na mesma rede (10.0.1.x), desejo conectar-me ao meu local de trabalho e à VM por meio desse Mac.

No meu laptop, tentei primeiro configurar uma regra de roteamento:

sudo route -v add 192.168.170.163 10.0.1.254

No Mac, tentei ativar o encaminhamento de IP e até mesmo fazer uma ponte:

sudo sysctl -w net.inet.ip.forwarding=1
sudo sysctl -w net.inet6.ip6.forwarding=1
sudo sysctl -w net.link.ether.inet.proxyall=1
sudo ifconfig bridge0 create
sudo ifconfig bridge0 addm en0
sudo ifconfig bridge0 addm vmnet2
sudo ifconfig bridge0 up

No entanto, quando tentei acessar a URL http://192.168.170.163:80/ do meu laptop, não pareço ser roteada para a VM no Mac.

O experimento do tunnelblick foi pior, pois não posso adicioná-lo à rede em ponte.

Eu poderia solucionar o nat.conf do VMware Fusion, ou o encaminhamento de porta via SSH, mas preferi evitar isso, pois quero preservar o endereço IP que estou acessando e evitar muita configuração em /etc/hosts .

Há algo errado com meu conceito / compreensão? Este não é um problema que é resolvido através de rede em ponte e encaminhamento de IP?

Atualização:

Eu executei uma solução alternativa:
1. Meu Mac (10.0.1.254) hospeda uma VM do Windows 2003 Std Edition Server (10.0.1.253) com o serviço de roteamento habilitado.
2. A VM do Windows de serviço de roteamento tem duas interfaces de rede, 10.0.1.253 e 192.168.170.253. 3. Minhas outras VMs (192.168.170.253) configuram o gateway padrão como 192.168.170.253.
4. Meu laptop na rede 10.0.1.x realiza roteamento estático de 192.168.170.x para 10.0.1.253.

    
por Kent Lai 16.02.2014 / 15:40

1 resposta

2

O route add do seu laptop foi um passo na direção certa, mas você só chega na metade dele.

Considere este gráfico:

NETWORK A___
|          |
|          |
|          |
Laptop     Mac__________
           |            |
           |            |
           |            |
        NETWORK B      NETWORK C

Você disse ao seu laptop que, para acessar o NETWORK B , ele deve enviar o pacote para Mac .

Agora, um computador em NETWORK B obtém um pacote de Laptop (10.0.1.10), mas não tem como responder, porque não conhece o 10.0.1.10 IP (ou o 10.0.1.0/24 rede eu suponho) é acessível através de 192.168.1.10 ou o que for aplicável.

Você precisa

  1. faça o IP Masquerading (para que os terminais em NETWORK C e NETWORK B acreditem que estão falando com um membro de sua própria rede) ou
  2. adicione uma rota de volta a NETWORK A em cada um dos terminais com os quais você precisa falar em NETWORK B e NETWORK C ou
  3. adicione uma rota ao NETWORK A em NETWORK B e NETWORK C roteador padrão ... provavelmente com routeback ativado.

Estou assumindo que o OSPF ou o RIP não estão disponíveis para você.

    
por 16.02.2014 / 16:29