Endereço VMWare Fusion Linux guest pelo hostname?

11

Eu tenho uma imagem do Ubuntu Server 9.04 configurada no VMWare Fusion 3.0.0, usando a opção NAT para a conexão de rede do convidado. A partir do host Mac, eu posso ssh para o convidado linux muito bem usando o seu endereço IP, mas eu gostaria de poder se referir a ele pelo nome do host por conveniência. ou seja:

mac-host:~ ssh [email protected]

Eu tive uma configuração semelhante usando o Parallels alguns anos atrás, mas não me lembro como foi configurado. Pode ter "acabado de funcionar".

Alguma sugestão sobre como fazer isso funcionar?

    
por amrox 18.11.2009 / 17:22

5 respostas

14

EDIT A primeira versão das instruções que postei causou conflitos com o servidor de nomes e o gateway que a VMware colocou na vmnet8. Esta versão corrige o problema.

Versões de software:

  • MAC OS X versão 10.6.3
  • VMware Fusion versão 3.1.0 (261058)
  • Ubuntu 10.04 LTS

O que eu fiz:

  • Durante a criação da VM, defina rede para NAT.

  • No Linux Guest: Execute o ifconfig para obter o endereço de hardware HWaddr , o endereço de difusão Bcast , o endereço IPv4 inet addr e a máscara Mask em uso.

    UbuntuGuest$ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:bf:e5  
              inet addr:192.168.213.129  Bcast:192.168.213.255  Mask:255.255.255.0
                     <snip>
    
  • No Linux Guest: Pesquise as informações do servidor de nomes

    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    
  • No Linux Guest: Pesquise o endereço do gateway: (Listado na coluna Gateway da linha com 0.0.0.0 como Destino.)

    UbuntuGuest$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.213.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    0.0.0.0         192.168.213.2   0.0.0.0         UG    100    0        0 eth0
    
  • No Host do OS X: Edite o arquivo dhcpd.conf para vmnet8 (o comutador virtual NAT) para atribuir um endereço IP estático ao convidado do Linux. (Use o seu editor de escolha na quarta linha)

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/vmnet8/
    OSXHost$sudo chmod u+w dhcpd.conf
    OSXHost$sudo cp dhcpd.conf dhcpd.conf.bak.20100619
    OSXHost$sudo emacs dhcpd.conf
    
  • No Host do OS X: O arquivo começará com algo parecido com:

    # Configuration file for ISC 2.0 vmnet-dhcpd operating on vmnet8.
    #
    # This file was automatically generated by the VMware configuration program.
    # See Instructions below if you want to modify it.
    #
    # We set domain-name-servers to make some DHCP clients happy
    # (dhclient as configured in SuSE, TurboLinux, etc.).
    # We also supply a domain name to make pump (Red Hat 6.x) happy.
    #
    
    
    ###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" #####
    # Modification Instructions: This section of the configuration file contains
    # information generated by the configuration program. Do not modify this
    # section.
    # You are free to modify everything else. Also, this section must start
    # on a new line
    # This file will get backed up with a different name in the same directory
    # if this section is edited and you try to configure DHCP again.
    
    # Written at: 12/26/2009 10:35:10
    allow unknown-clients;
    default-lease-time 1800;                # default is 30 minutes
    max-lease-time 7200;                    # default is 2 hours
    
    subnet 192.168.213.0 netmask 255.255.255.0 {
          range 192.168.213.128 192.168.213.254;
          option broadcast-address 192.168.213.255;
          option domain-name-servers 192.168.213.2;
          option domain-name localdomain;
          default-lease-time 1800;         # default is 30 minutes
          max-lease-time 7200;             # default is 2 hours
      option routers 192.168.213.2;
    }
    host vmnet8 {
        hardware ethernet 00:50:56:C0:00:08;
        fixed-address 192.168.213.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
        option routers 0.0.0.0;
    }
    ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
    

Coisas a serem observadas:

  • A seção subnet deve corresponder às informações de IP reunidas no Linux Guest. O inet addr estará dentro de range , netmask corresponderá a Mask , option broadcast-address corresponderá a Bcast , option domain-name-servers e option domain-name corresponderá às informações reunidas com cat /etc/resolv.conf e option routers corresponde a Gateway do comando route -n .

  • Queremos atribuir um endereço IP estático, para que possamos adicionar uma entrada ao arquivo hosts do OS X Host. O endereço deve estar dentro do subnet definido. Endereços que não estão disponíveis para atribuição são aqueles dentro de range na seção de sub-rede, o endereço de broadcast, o fixed-address para host vmnet8 , o servidor DNS e o gateway. E acho que o endereço igual a subnet não é permitido. Neste exemplo, a sub-rede é 192.168.213.0 Portanto, os destinatários disponíveis são de 192.168.213.1 to 192.168.213.255 less 192.168.213.128 to 192.168.213.245 (intervalo) menos 192.168.213.255 (difusão) menos 192.168.213.1 (host vmnet8) menos 192.168.213.2 (gateway e servidor DNS ). A rede é que os endereços 192.168.213.3 to 192.168.213.127 estão disponíveis.

  • ON Host do OS X: Crie uma nova entrada host abaixo do NÃO MODIFICAR SEÇÃO . Esta entrada irá atribuir um IP estático ao convidado Linux. hardware ethernet precisa corresponder HWaddr de ifconfig no convidado do Linux. Escolha um endereço estático disponível para fixed-address . option broadcast-address , option domain-name-servers , option domain-name e option routers precisam corresponder às opções fornecidas na seção subnet de dhcpd.conf . (Que já combinamos com informações coletadas no Linux Guest.) Neste exemplo, a entrada do host é:

    ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
    host serpents-hold {
        hardware ethernet 00:0c:29:53:bf:e5;
        fixed-address 192.168.213.3;
        option broadcast-address 192.168.213.255;
        option domain-name-servers 192.168.213.2;
        option domain-name localdomain;
        option routers 192.168.213.2;
    }
    
  • No host do OS X Salve dhcpd.conf e feche seu editor.

  • No host do OS X e em todos os convidados: desligue todas as VMs e VMware.

  • No host do OS X: reinicie os serviços do VMware:

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ 
    OSXHost$sudo ./boot.sh --restart 
    
  • No host do OS X: Procure em Activity Monitor e verifique se dois processos cada com o nome vmnet-dhcpd estão sendo executados. (Um é para o vmnet8 , a rede NAT, o outro é para a rede somente host.) Se você não vir os dois, provavelmente há um problema com o arquivo vmnet8/dhcpd.conf no host do OS X. Corrija isso e repita o reinício dos serviços VMware.

  • No host do OS X: Inicie o VMware e a VM convidada do Linux.

  • No Linux Guest Na VM guest, verifique se as configurações são as esperadas:

    UbuntuGuest$ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:bf:e5  
              inet addr:192.168.213.3  Bcast:192.168.213.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe53:bfe5/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:103 errors:0 dropped:0 overruns:0 frame:0
              TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:10961 (10.9 KB)  TX bytes:9637 (9.6 KB)
    lo <snip>    
    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    UbuntuGuest$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.213.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    0.0.0.0         192.168.213.2   0.0.0.0         UG    100    0        0 eth0
    UbuntuGuest$
    
  • No Linux Guest: Verifique se o mundo exterior está acessível:

    UbuntuGuest$ping google.com
    PING google.com (72.14.213.104) 56(84) bytes of data.
    64 bytes from pv-in-f104.1e100.net (72.14.213.104): icmp_seq=1 ttl=128 time=47.6 ms
    64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=2 ttl=128 time=48.7 ms
    64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=3 ttl=128 time=48.2 ms
    ^C
    --- google.com ping statistics ---
    4 packets transmitted, 3 received, 25% packet loss, time 3093ms
    rtt min/avg/max/mdev = 47.687/48.223/48.714/0.491 ms
    UbuntuGuest$
    
  • No Host do OS X: Adicione um mapeamento para o nome do host ao arquivo hosts :

    OSXHost$cd /etc
    OSXHost$sudo emacs hosts
    

    Adicione uma linha ao final do arquivo de hosts usando o nome de host do Linux Guest e o endereço IP atribuído acima.

    192.168.213.2   serpents-hold
    
  • No Host do OS X: Salve o arquivo e saia do emacs.

  • No Host do OS X: Teste se o Guest do Linux está acessível pelo hostname:

    OSXHost$ping serpents-hold
    PING serpents-hold (192.168.213.3): 56 data bytes
    64 bytes from 192.168.213.3: icmp_seq=0 ttl=64 time=0.169 ms
    64 bytes from 192.168.213.3: icmp_seq=1 ttl=64 time=0.244 ms
    ^C
    --- serpents-hold ping statistics ---
    2 packets transmitted, 2 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.169/0.207/0.244/0.037 ms
    OSXHost$
    
por 09.06.2010 / 06:34
8

A resposta de um passo para a pergunta original é executar este comando:

$ sudo apt-get install libnss-mdns

A instalação deste pacote deve ativar o recurso instantaneamente. Você poderá, então, acessar sua VM em your-vm-hostname.local . Isso funcionará somente dentro da rede local da VM, que depende de como você a configurou no seu software de virtualização.

Este recurso é chamado Bonjour pela Apple e Zeroconf por todos os outros. Está integrado ao OS X e ao iOS. A maneira mais fácil de obtê-lo no Windows é instalar o iTunes para Windows.

    
por 28.08.2012 / 08:59
3

Você pode configurar o zeroconf usando o Avahi, o que deve permitir que o cliente se identifique em uma rede sem o registro de DNS.

    
por 21.01.2010 / 00:58
2

supondo que você queira apenas efetuar login em uma linha de comando, por que não criar um arquivo ssh config ? Eu faço algo parecido com isso para minha vm.

# ~/.ssh/config
Host linux-box    
Hostname localhost
Port 8822

então eu posso

mac-box:~ ssh linux-box
    
por 26.02.2010 / 16:43
1

Se você estiver usando o NAT, ele pode tentar se registrar com servidores DNS, no entanto, para computadores que não sejam o host, o IP será o mesmo que suas máquinas e pode causar alguns problemas.

Eu recomendaria que você alternasse para a rede em ponte, pois isso forneceria o seu próprio endereço IP e, para qualquer máquina, ela parecerá e será como qualquer outra máquina na rede. Se você configurar todas as configurações de IP corretamente (ou usar DHCP), ele deverá se registrar automaticamente e você não deverá ter problemas para fazer qualquer coisa em qualquer porta via IP ou nome de host.

    
por 18.11.2009 / 17:30