Encaminhar Pacotes de Ping ICMP para Interface

3

Eu tenho um script que escuta os pacotes ping ICMP (contendo carga útil de dados) e, embora isso funcione se você executá-lo a partir da linha de comando, ele não funciona em um contêiner Docker porque os pacotes ping ICMP não estão sendo roteados a instância do servidor para o contêiner.

Isso está sendo executado no AWS Container Service, o que complica um pouco as coisas.

Acho que isso encaminhará todos os pacotes

sudo iptables -t nat -A POSTROUTING --out-interface veth* -j MASQUERADE  
sudo iptables -A FORWARD --in-interface eth1 -j ACCEPT

Como faço para encaminhar especificamente pacotes de ping ("echo") ICMP que chegam na interface 'eth0' da instância para o IP local ou interface virtual do contêiner docker (por exemplo, 172.0.0.1 ou veth *).

    
por user279171 17.06.2016 / 11:27

1 resposta

1

Nooo

Você não deseja impedir que todos os pacotes ICMP sejam processados pelo host.

Veja: Filtre todo o ICMP e veja o mundo queimar

(acho que você deseja atribuir ao contêiner um endereço IP real.

Provavelmente mais simples usando o macvlan - dado que você não está usando o bridging no eth0. Você cria um macvlan anexado à eth0 e o atribui ao container. Há um script chamado pipework que todo mundo usa, até o Docker classificar o suporte de rede nativa. Há também o ipvlan (mais recente), caso sua rede não tolere a atribuição de endereços MAC adicionais. A coisa boa sobre o macvlan é que funciona bem com DHCP4).

    
por 17.06.2016 / 13:54