Não consigo pingar uma caixa virtual criada usando NAT

1

Então eu criei na minha máquina host (Ubuntu 17.10) uma máquina virtual com o VirtualBox + Vagrant + Ansible.

Vagrant.configure("2") do |config|

  config.vm.box = "centos-7.3-x86_64_latest.box"
  config.vm.box_url = "http://nas.my-compamy.intern/centos-7.3-x86_64_latest.box"

  config.vm.hostname = "login.my-cloud.dev"
  config.vm.network "private_network", ip: "192.168.33.240"

  # enable to use synced folders
  # config.vm.synced_folder "/my/local/path", "/var/www/cce_login", disabled: true

  config.ssh.forward_agent = true
  config.ssh.keep_alive = true
  config.ssh.username = "vagrant"
  config.ssh.password = "vagrant"

  config.vm.provider :virtualbox do |v|
    # workaround as some virtualbox version seem to disconnect the NAT adapter
    v.customize ['modifyvm', :id, '--cableconnected1', 'on']

    v.memory = 1024
    v.cpus = 2
    v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    v.customize ["modifyvm", :id, "--name", "login.cce-cloud.dev"]
    v.customize ["modifyvm", :id, "--accelerate3d", "off"]
    v.customize ["modifyvm", :id, "--accelerate2dvideo", "off"]
    v.customize ["modifyvm", :id, "--cpuexecutioncap", "75"]
    v.customize ["modifyvm", :id, "--largepages", "on"]
  end

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "ansible/site.yml"
    ansible.verbose = "vvv"
  end

end

Eu trago esta máquina via

$ vagrant up --provision

Depois de tudo isso, eu posso entrar no SSH via Vagrant assim.

$ vagrant ssh

mas quando eu quero usá-lo a partir do MySQL Workbench, acesso FTP ou SSH direto, recebo um erro. Eu não posso nem fazer ping na máquina .

$ ping 192.168.33.240

PING 192.168.33.240 (192.168.33.240) 56(84) bytes of data.
From 192.168.33.1 icmp_seq=1 Destination Host Unreachable
From 192.168.33.1 icmp_seq=2 Destination Host Unreachable
From 192.168.33.1 icmp_seq=3 Destination Host Unreachable

Como não tenho permissão para alterar o Vagrantfile da equipe de DevOps, concluí que o erro deve estar em algum lugar em como minha máquina host está configurada, mas não consigo ver qual é o problema.

$ ifconfig 

enxdc9b9cee07b2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.111.198  netmask 255.255.255.0  broadcast 192.168.111.255
        inet6 fe80::f0ad:1d52:8e55:7fc7  prefixlen 64  scopeid 0x20<link>
        ether dc:9b:9c:ee:07:b2  txqueuelen 1000  (Ethernet)
        RX packets 11159  bytes 4878538 (4.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8289  bytes 2106425 (2.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1607  bytes 173261 (173.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1607  bytes 173261 (173.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vboxnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.33.1  netmask 255.255.255.0  broadcast 192.168.33.255
        inet6 fe80::800:27ff:fe00:0  prefixlen 64  scopeid 0x20<link>
        ether 0a:00:27:00:00:00  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 170  bytes 18067 (18.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Como eu poderia alterar a configuração do meu sistema operacional host, de modo que ele alcance o virtual?

Nota: A enxdc9b9cee07b2 é minha conexão com fio. Eu sei que geralmente é eth0 mas estou usando um adaptador para uma porta USB

Atualizar

Mais informações

    
por Enrique Moreno Tent 19.04.2018 / 17:25

2 respostas

0

Eu encontrei no final a solução sozinho.

Aparentemente, a versão que vem pré-instalada com o Ubuntu não é o DEB oficial da oracle.

O que fiz foi salvar minhas máquinas virtuais em uma pasta de backup temporário, excluir o Vagrant e o Virtualbox e, em seguida, fazer o download do deb oficial do site deles.

Quando iniciei as máquinas, elas estavam funcionando sem nenhum problema.

    
por Enrique Moreno Tent 24.04.2018 / 17:35
0

As únicas configurações de rede que permitem a comunicação entre Host e VM são os modos Host Only e Bridged. Há uma tabela aqui que mostra os diferentes tipos de rede e se pode acessar o host, outras VMs, internet, etc. O modo somente em ponte proporciona acesso total à rede, mas geralmente extrai um IP do seu DHCP, o que você provavelmente não deseja nessa situação.

Você pode contornar isso tendo duas redes para atender às suas necessidades, NAT e somente host.

    
por rtaft 19.04.2018 / 18:44