Linux como um gateway (sem NAT)

1

Estou tentando configurar um servidor Linux como um gateway / roteador, mas não consigo trabalhar e todas as informações que consegui encontrar estão relacionadas a NAT.

Eu tenho um bloco IP público para o gateway e os dispositivos por trás dele, então eu quero que o gateway simplesmente direcione os pacotes para a internet - novamente: sem NATing!

Consegui que o gateway acessasse a Internet com sucesso (que era apenas uma questão de configurar o IP e o GW), e os computadores por trás dele podem se comunicar com ele.

[EDIT: mais informações]

Este é na verdade um bloco IPv6 ( 2800:40:403::0/48 ) (mas descobri que a maioria dos utilitários e instruções pode ser facilmente adaptada do IPv4 para o IPv6 com pouco hastle).

O servidor também tem portas:

  • wan: 2800:40:403::1/48
  • lan: 2800:40:403::3/48

Um dos computadores por trás dele está conectado a ele por meio de um switch;

  • 2800:40:403::7/48

A interface wan no servidor pode pingar www.google.com sem problemas. A interface lan no servidor e o cliente podem pingar uns aos outros sem problemas (assim como SSH, etc).

Eu tentei configurar o servidor como um gateway padrão para o cliente, sem sorte:

client # route -A inet6 add default gw 2800:40:403::3 dev eth1

server # cat /proc/sys/net/ipv6/conf/all/forwarding 
1

Eu não quero nenhum filtro / firewall / etc, apenas roteamento simples.

Obrigado.

    
por WhyNotHugo 20.06.2012 / 07:14

2 respostas

2

Suponho que você tenha um endereço IP público para o seu lado WAN e um bloco para o lado da LAN, algo assim:

ISP-----ROUTER ETH0/ROUTER ETH1------SWITCH------PCs

Você PRECISA ter um endereço IP público para a interface WAN, o ISP irá rotear a sub-rede que eles lhe deram através deste endereço IP

Basta definir o bit de encaminhamento para 1

echo 1 > /proc/sys/net/ipv4/ip_forward

Para torná-lo persistente, você precisa editar o /etc/sysctl.conf, encontrar esta linha:

net.ipv4.ip_forward=0

e mude para

net.ipv4.ip_forward=1

Lembre-se de descomentar se for comentado.

Agora, tudo o que você precisa fazer é configurar o gateway padrão do seu PC para apontar para o roteador linux e assumir que o ISP fez seu trabalho roteando o bloco pelo endereço IP público para o seu lado do lan.

Agora. Se tudo o que você tem é um bloco de endereço público ... você não está procurando roteamento, apenas conecte o ISP a um switch e todos os PCs ao switch e isso deve ser feito. Se você puder especificar mais detalhes, poderemos ajudá-lo mais.

Editar:

Você diz que suas interfaces estão configuradas da seguinte maneira:

wan: 2800:40:403::1/48
lan: 2800:40:403::3/48

Qual é o seu gateway padrão? Eu acho que 2800: 40: 403 :: 2/48

Não deveria funcionar assim. Eu não trabalhei com IPv6 ainda, mas você tem as duas interfaces em uma sub-rede, eu acho que vou permitir que você configure isso, mas diga que um roteador Cisco, pelo menos, avisá-lo sobre a sobreposição

A solução mais fácil é que todos os PCs vão para um switch conectado ao ISP.

A solução real é dizer ao ISP para lhe dar um endereço público no seu espaço de endereçamento para a WAN e encaminhar o bloco através desse endereço. Então tudo que você precisa fazer é configurar:

wan: ip-from-their-space
lan: 2800:40:403::1/48

E todos os computadores lan devem apontar para esse como padrão.

Você tem um espaço de endereçamento muito grande, o que você pode fazer é sub-rede adicional.

Editar:

Se você realmente deseja interligar as interfaces, você pode fazer isso sem precisar de nenhum IP relacionado. Você só terá uma interface com um endereço IP dessa maneira.

Tudo o que você precisa fazer é instalar o bridge-utils e, em seguida, configurá-lo desta maneira:

ip add flush dev eth0
ip add flush dev eth1
brctl addbr br0
brctl addif br0 eth0 eth1
ip link set dev br0 up

Em seguida, configure seu endereço IPv6 em br0 e agora você tem uma ponte transparente. Ainda não resolve o seu problema de IPv4, mas você pode resolvê-lo desta maneira:

Configure endereços IPv4 públicos e privados em br0 e NAT desta maneira:

iptables -t nat -A POSTROUTING -j SNAT -s / --to-source

    
por 20.06.2012 / 08:25
5

O encaminhamento está ativado?

echo 1 >  /proc/sys/net/ipv4/ip_forward
    
por 20.06.2012 / 08:16

Tags