CentOS 7 com 2 NICs no Google Cloud

1

Eu tenho 2 VPCs

  • VPC1 - sub-redes padrão do Google
  • VPC2 - sub-rede única adicional não no VPC1

Configuração do servidor (instdual) com o nic0 do VPC1 e o nic1 do VPC2

IP público estático em ambos os nic's

  • Ping de fora para IP público - > VPC1 funcionando
  • Ping de fora para IP público - > VPC2 não está funcionando

Configure mais 2 instâncias insta e instoque uma somente no VPC1 e outra somente no VPC2

  • Ping de fora para IP público - > VPC1 funcionando (insta)
  • Ping de fora para IP público - > VPC2 funcionando (instb)

  • do insta eu posso pingar o nic0 instdual

  • da instb eu posso pingar nic1 instdual

  • da insta NÃO consigo pingar IP privado de nic1

  • da instb NÃO consigo pingar IP privado de nic0

VPCs são em rede - as rotas são corretas

O firewall define um padrão para permitir que todas as regras neguem os problemas do firewall.

Basicamente, no instdual, só consigo acessá-lo no nic0 IP público. não o nic1 IP público.

Alguma ideia? Eu tenho 12 cafés atrás e vejo o dobro no momento.

    
por Wilhelm Lehmann 10.09.2018 / 12:07

2 respostas

1

Isso é o que estava faltando (agora trabalhando 100%):

Siga estas etapas para configurar o roteamento de políticas para uma instância baseada em Linux com várias interfaces:

  1. Conecte-se a uma instância configurada com várias interfaces de rede:

gcloud compute ssh multinic-vm

  1. Configure o roteamento de políticas com ifconfig para nic1. O exemplo abaixo supõe que o GCP atribuiu o endereço IP interno 192.168.0.2 a nic1 e o gateway é 192.168.0.1.

sudo ifconfig eth1 192.168.0.2 máscara de rede 255.255.255.255 transmissão 192.168.0.2 mtu 1430
sudo echo "1 rt1" | sudo tee -a /etc/iproute2/rt_tables # (sudo su - primeiro se a permissão for negada)
sudo ip route adicionar 192.168.0.1 src 192.168.0.2 dev eth1
sudo ip route add default via 192.168.0.1 dev eth1 tabela rt1
sudo ip rule add from 192.168.0.2/32 tabela rt1
sudo ip rule adiciona a 192.168.0.2/32 table rt1

  1. Repita os comandos na etapa 2 para interfaces adicionais na instância (nic2, nic3 .... nic7).
por 10.09.2018 / 12:53
0

A Google Cloud tem alguma documentação sobre como fazer isso aqui: link Mas isso não tem informações sobre como garantir que as interfaces adicionais funcionem novamente após a reinicialização.

Para que os IPs externos adicionais sejam persistentes, é necessário certificar-se de que os comandos para ativar o roteamento de políticas sejam executados após uma reinicialização, mas apenas quando as interfaces adicionais tiverem sido ativadas. Isso é feito pelo dhcp-client. Então, a melhor maneira que eu posso encontrar é colocar um script dentro /etc/dhcp/dhclient-exit-hooks.d/ com isso:

#!/bin/sh
#

if [[ $reason == "REBOOT" || $reason == "BOUND" ]] ; then
    sudo ip route add 192.168.0.1 src 192.168.0.2 dev eth1
    sudo ip route add default via 192.168.0.1 dev eth1 table rt1
    sudo ip rule add from 192.168.0.2/32 table rt1
    sudo ip rule add to 192.168.0.2/32 table rt1
fi

(mude o IP para o IP da sua rede interna)

Se você também quiser ligar um servidor (como nginx ou httpd) a um desses IPs no momento da inicialização, você perceberá que isso falha porque o servidor é iniciado antes que o dhcp-client tenha concluído sua tarefa. Uma maneira de superar isso é permitir que o software se vincule a IPs que ainda não estão ativos. Para isso coloque

net.ipv4.ip_nonlocal_bind=1

em /etc/sysctl.d/10-policyrouting.conf

    
por 19.09.2018 / 17:13