Roteamento de pacotes da interface Linux tun

1

Eu tenho perguntas sobre o fluxo de pacotes ip para o seguinte cenário.

O cenário é:

  1. Uma interface tun0 (10.0.0.2/8) e um cartão de lan sem fio físico wlan0 (endereço IP não corrigido) no lado do cliente, o wlan0 pode se conectar à internet,
  2. Outra interface tun0 (10.0.0.1/8) e uma placa ethernet física eth0 (192.168.1.38/24) no lado do servidor (Ubuntu 12.04 amd64), eth0 está em uma rede privada atrás de um firewall NAT e pode se conectar a a internet através do firewall (firewall como gateway),
  3. ter executado "echo 1 > / proc / sys / net / ipv4 / ip_forward" no lado do servidor,
  4. executaram "iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0-j MASCARADA" no lado do servidor,

Here is the diagram of the scenario :

---------------          ----------------
|             |          |              |
| client tun0 |----------| client wlan0 |
|  10.0.0.2   |          |  ip not fix  |
|             |          |              |
---------------          ----------------
                                |
                                |

                             internet

                                |
                                |
                         ----------------
                         |              |
                         |   firewall   |
                         |   (gateway)  |
                         | 192.168.1.1  |
                         |              |
                         ----------------
                                |
                                | private network
                                | 192.168.1.0/24
                                |
---------------          ----------------
|             |          |              |
| server tun0 |----------| server eth0  |
|  10.0.0.2   |          | 192.168.1.38 |
|             |          |              |
---------------          ----------------

Eu usei dois programas cliente / servidor tipo vpn muito simples para ler / gravar pacotes ip das duas interfaces tun0 e criar um túnel entre wlan0 e eth0, para que os pacotes ip de 10.0.0.2 pudessem alcançar 10.0.0.1 e vice-versa (por exemplo, pode executar o ftp de 10.0.0.1 a 10.0.0.2).

No entanto, se eu quiser usar o cliente tun0 (10.0.0.2) para navegar em páginas da Web, a solicitação http será originada de 10.0.0.2 e destinada em um endereço IP da Internet (com certeza não 10.0.0.1). O pedido de http, (eu acho) depois de atingir o servidor tun0 (10.0.0.1), seria então encaminhado para o servidor eth0 (como ip_forward está ligado, e eu acho que este pedido encaminhado http ainda teria um endereço IP de origem de 10.0.0.2, corrija-me se eu estiver errado) e lá NAT ocorre para reempacotar o pedido http como proveniente de eth0 (ie endereço IP de origem muda para 192.168.1.38 como eu executei o comando iptables) e então o pedido http reempacotado passa pelo firewall (e depois a internet) ao seu destino.

Quando a resposta http (do site) atinge o servidor eth0, o NAT reverso deve ocorrer lá. Minha pergunta é:

  1. o NAT inverso reverte o endereço IP de destino da resposta http para 10.0.0.2,
  2. como o servidor eth0 sabe para onde encaminhar a resposta http com NAT reverso?
  3. encaminharia eth0 a resposta http para o servidor tun0 (10.0.0.1), pois o endereço IP de destino da resposta é invertido para ser 10.0.0.2?
  4. preciso adicionar uma rota no lado do servidor para o roteamento / encaminhamento adequado da resposta http com NAT reverso? se sim, como?
  5. eu preciso adicionar algumas regras de iptables no lado do servidor para o roteamento / encaminhamento apropriado da resposta http com NAT reverso? se sim, como?

Qualquer ideia. Obrigado por qualquer sugestão.

    
por user1129812 06.01.2015 / 13:44

0 respostas