por que o encaminhamento de porta não está funcionando nesta configuração?

1

Estou tentando configurar um ambiente de virtualização do Docker. Este é um acompanhamento da pergunta .

Eu tenho uma interface eth0: 0 virtual e gostaria de encaminhá-la usando o iptables.

O IP principal público é 93.93.93.93

O IP de failover é 5.6.7.8

Eu tenho um servidor onde o aliasing de IP está configurado:

/ etc / network / interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 93.93.93.93
        netmask 255.255.255.0
        network 93.93.93.0
        broadcast 93.93.93.255
        gateway 93.93.93.254

# IPFO 1
    post-up /sbin/ifconfig eth0:0 5.6.7.8 netmask 255.255.255.255 broadcast 5.6.7.8
    pre-down /sbin/ifconfig eth0:0 down

Desta forma, quando eu pingar eth0: 0 de fora, ele funciona. Parece que o problema começa com o roteamento, talvez?

root@aldebaran:~# ip route
default via 93.93.93.254 dev eth0 
93.93.93.0/24 dev eth0  proto kernel  scope link  src 94.23.55.226 
172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.42.1 

Nenhum sinal de eth0.0

Depois adiciono as regras do iptables:

iptables -A PREROUTING -t nat -i eth0:0 -p tcp --dport 80 -j DNAT --to 172.17.0.2:80
iptables -A FORWARD -p tcp -d 172.17.0.2 --dport 80 -j ACCEPT

Então eu tento

root@aldebaran:~# curl 172.17.0.2:80
WORKS!
root@aldebaran:~# curl IP_FAILOVER
curl: (7) Failed to connect to IP_FAILOVER port 80: Connection refused

De acordo com este tutorial, não configurei o roteamento corretamente. Isto está certo? Como faço para corrigir isso?

    
por Mascarpone 27.12.2014 / 13:03

1 resposta

0

O problema é que eu estava usando alias de IP, o que cria uma interface que os Iptables não podem usar. Eth0: 0 não é um alvo válido. Eu deveria usar em vez disso:

iptables -t nat -I PREROUTING --dst 5.6.7.8 -p tcp --dport 80 -j DNAT --to 172.17.0.2:80
iptables -A FORWARD -p tcp -d 172.17.0.2 --dport 22 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.17.0.2 -j MASQUERADE
    
por 30.12.2014 / 21:32