Adicione rota da rede interna para a rede externa

3

Estou usando uma caixa executando o Arch como meu roteador e firewall (com shorewall). Recentemente, tentei adicionar outra rede ao sistema, que falhou horrivelmente. Depois de colocar tudo de volta onde estava antes disso, e confirmando que tudo é exatamente o mesmo, estou tendo alguns problemas com o roteamento da minha rede interna (192.168.1.0/24) para o exterior. Aqui está a situação atual:

  • POSSO fazer ping na rede externa do meu firewall
  • POSSO fazer o ping do firewall na minha rede interna
  • NÃO POSSO efetuar ping na rede externa a partir da rede interna

Eu tenho duas interfaces de rede, enp5s0 (interno) e enp6s0 (externo). Aqui estão minhas rotas de ip route ls (note que meu ip externo termina em .78, eu refiz o resto por razões óbvias):

default via [redacted].1 dev enp6s0  src [redacted].78  metric 203  mtu 576
[redacted].0/24 dev enp6s0  proto kernel  scope link  src [redacted].78
[redacted].0/24 dev enp6s0  proto kernel  scope link  src [redacted].78  metric 203  mtu 576
192.168.1.0/24 dev enp5s0  proto kernel  scope link  src 192.168.1.1  metric 202  

Um traceroute da máquina na rede interna revela que ele chega a 192.168.1.1 e depois expira. Eu suspeito que eu preciso adicionar outra rota que permita que o tráfego vindo de 192.168.1.0/24 seja roteado através do enp6s0 para a rede. Eu tentei rotas diferentes e nenhuma funcionou. Além disso, meu dhcpcd.conf mudou. Se a linha comentada não estiver comentada, ela cria uma segunda rota padrão que interrompe qualquer conexão. Anteriormente, isso não era um problema.

interface enp5s0
static ip_address=192.168.1.1/24
#static routers=192.168.1.1
static domain_name_servers=192.168.1.1 # I have TOR DNS bound to this ip  

Qualquer ajuda seria muito apreciada.

    
por Rogue 29.05.2016 / 17:21

1 resposta

2

Eu fiz algo parecido em um servidor do Arch. O servidor tinha enp4s8 como a rede "externa" e wlp1s0 como a rede "interna". enp4s8 tinha um endereço IP definido de 10.0.0.3 e uma rota padrão para 10.0.0.1, o modem DSL.

/usr/bin/ip link set dev wlp1s0 up
/usr/bin/ip addr add 172.16.0.1/24 dev wlp1s0
sleep 10

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE
iptables -A FORWARD -o enp4s8 -i wlp1s0 -s 172.16.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

dhcpd -cf /etc/dhcpd.wlp1s0.conf wlp1s0

Você pode não ter o encaminhamento IPv4 ativado e, por vezes, é difícil obter o iptables .

A outra parte do truque está em /etc/dhcpd.wlp1s0.conf . Eu acho que você tem que dizer as máquinas na rede "interna" sobre sua rota padrão e roteador com DHCP:

option domain-name "fleegle";
option domain-name-servers 172.16.0.1;
option routers 172.16.0.1;
option ntp-servers 10.0.0.3;
default-lease-time 14440;
ddns-update-style none;
deny bootp;
shared-network intranet {
        subnet 172.16.0.0 netmask 255.255.255.0 {
                option subnet-mask 255.255.255.0;
                pool { range 172.16.0.50 172.16.0.200; }
        }
}
    
por 29.05.2016 / 20:44