VirtualBox e Samba 4 no Linux Guest (NAT e Host apenas)

2

Senhores,

Eu realmente preciso de uma ajuda sua para configurar o "Samba 4" usando o "Virtual Box".

Aqui está a situação:

Em certas redes onde trabalho, o Samba 4 funciona, em outras não. O convidado na caixa Virtual é configurado com uma rede "Host Only" para o Samba 4 e outro "NAT" para a internet. A única situação em que o samba funciona em todas as redes é se eu desabilitar a rede "NAT" e deixar apenas "Host Only". Ou seja, aparentemente a rede NAT (que deve ser isolada da rede externa usando apenas como proxy) está sofrendo algum tipo de efeito negativo em alguns casos.

Então ... Vem a pergunta que vale um milhão:

O que causa isso?

Acredite, eu tentei de tudo e nada parece resolver a situação.

Note I: Eu não posso usar a rede de convidados com o Bridge! Nota II: Aparentemente, isso ocorre apenas com o Samba 4, pois o Samba 3 funciona em qualquer rede!

Esta tem sido uma situação realmente difícil de resolver e estou "presa" a quase 3 semanas.

Alguém também está com esse problema?

Peço-lhe para ajudar! Obrigado!

ATUALIZAÇÃO:

Se eu fosse arriscar uma resposta a essa pergunta, eu diria que o problema poderia estar no gateway. Bem, parece que o Samba 4 recebe a solicitação da interface "Host Only", mas tenta responder pela interface "NAT" (já que existe apenas um gateway, o gateway "NAT"). Eu tentei resolver isso digitando o seguinte na seção "[global]" no arquivo "/etc/samba/smb.conf" ...

    interfaces = enp0s3 lo
    bind interfaces only = yes

... o que realmente funciona (somente aceita solicitações que vêm na interface "Somente host"). Mas isso não resolve o problema.

PLUS:

Saída do comando "ifconfig":

enp0s3    Link encap:Ethernet  HWaddr 08:00:27:AB:52:E3  
          inet addr:192.168.56.100  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feab:52e3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:602 errors:0 dropped:0 overruns:0 frame:0
          TX packets:849 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:81307 (79.4 Kb)  TX bytes:127690 (124.6 Kb)

enp0s8    Link encap:Ethernet  HWaddr 08:00:27:09:CC:37  
          inet addr:10.0.3.15  Bcast:10.0.3.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe09:cc37/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4340 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6668637 (6.3 Mb)  TX bytes:432330 (422.1 Kb)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:519 errors:0 dropped:0 overruns:0 frame:0
          TX packets:519 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:39728 (38.7 Kb)  TX bytes:39728 (38.7 Kb)

"/ etc / samba / smb.conf"

# smb.conf is the main Samba configuration file. You find a full commented
# version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
# samba-doc package is installed.
[global]
        workgroup = WORKGROUP
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        printcap cache time = 750
        cups options = raw
        map to guest = Bad User
        include = /etc/samba/dhcp.conf
        logon path = \%L\profiles\.msprofile
        logon home = \%L\%U\.9xprofile
        logon drive = P:
        usershare allow guests = Yes
        add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
        domain logons = Yes
        domain master = Yes
        local master = Yes
        os level = 65
        preferred master = Yes
        security = user
        usershare max shares = 100
        wins server =
        wins support = No
        interfaces = enp0s3 lo
        bind interfaces only = yes
[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
[profiles]
        comment = Network Profiles Service
        path = %H
        read only = No
        store dos attributes = Yes
        create mask = 0600
        directory mask = 0700
[users]
        comment = All users
        path = /home
        read only = No
        inherit acls = Yes
        veto files = /aquota.user/groups/shares/
[groups]
        comment = All groups
        path = /home/groups
        read only = No
        inherit acls = Yes
[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @ntadmin root
        force group = ntadmin
        create mask = 0664
        directory mask = 0775

[SES_DF]
        comment = SES_DF
        inherit acls = Yes
        path = /home/brlight/DEV_GUESTS/SES_DF
        read only = No

[netlogon]
        comment = Network Logon Service
        path = /var/lib/samba/netlogon
        write list = root

Saída do comando "route" quando a interface "NAT" está ativa:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.3.2        0.0.0.0         UG    0      0        0 enp0s8
10.0.3.0        *               255.255.255.0   U     1      0        0 enp0s8
192.168.56.0    *               255.255.255.0   U     1      0        0 enp0s3

!!! Importante: Se eu desabilitar a rede do host, o Samba 4 funciona e eu tenho a mesma saída que a anterior !!!

Saída do comando "route" quando a interface "NAT" não está ativa (cabo desconectado no Virtual Box) (o Samba 4 funciona!):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.56.0    *               255.255.255.0   U     1      0        0 enp0s3

Nota: não há gateway ...

Nesse cenário, eu proporia duas soluções hipotéticas:

  • Faça o Samba 4 ver apenas a interface "enp0s3" em qualquer situação (solicitação e resposta);
  • Tente definir algo no VirtualBox para não permitir influências negativas da rede externa no "NAT". Como a máquina virtual funciona em algumas redes, mas não em outras;

Nota: A distro que estou usando para o convidado é o OpenSUSE 13.1 e para o host é o Linux Mint 16 KDE.

PLUS:

Eu tentei mudar o alcance do "NAT" porque a rede do host está em um intervalo similar (192.168.1.x). Eu usei o intervalo "169.254.0.x" para a rede "NAT", mas o problema continuou.

Como você pode ver, este é um problema difícil e difícil de diagnosticar, e eu preciso de toda a ajuda de você!

    
por Eduardo Lucio 17.02.2014 / 15:06

2 respostas

1

Eu tenho uma situação semelhante e consegui fazê-lo funcionar desativando o NetBIOS sobre TCP em todas as interfaces, exceto o adaptador somente host em todas as minhas máquinas Windows.

VMs do VirtualBox:

  • Host: Windows 10 Pro
  • Convidado 1: Debian Buster (Samba versão 4.5.12)
  • Convidado 2: Windows 7 Pro

Rede:

  • Rede somente para host:
    • Host e os dois convidados
    • Rede DHCP 169.254.0.0/16
  • interface NAT:
    • Ambos os convidados
    • Também trabalhou com convidados conectados a uma rede NAT

Configuração do convidado e do Windows Guest

  • Desative o NetBIOS sobre TCP / IP em todas as interfaces exceto a interface somente de host
    • Acesse as propriedades de cada adaptador de rede e vá para Propriedades IPv4 → Avançado → WINS → Configuração NetBIOS
    • Eu não testei isso com adaptadores IPv6

Quanto a por que eu tive que fazer isso, não tenho ideia. O host e o convidado do Windows nunca tiveram problemas para resolver qualquer nome de host. Era apenas a caixa do Linux que tinha problemas, e até mesmo funcionava de vez em quando.

Eu rodei o tcpdump / Wireshark nas duas VMs e pude ver as transmissões de NetBIOS e as respostas indo e voltando e o nmblookup funcionou bem no host Linux, mas eu não conseguia fazer ping ou montar compartilhamentos de rede do linux.

Eu também não sei porque não precisei limitar o NetBIOS apenas ao adaptador somente host na caixa do Linux.

    
por 14.02.2018 / 04:13
1

Pode ser que o sistema NAT do VirtualBox esteja verificando todas as conexões de entrada e saída, mesmo se definirmos uma interface no sistema operacional convidado? Como o VirtualBox NAT está sendo executado no Host, é muito provável que o problema não seja do sistema operacional convidado.

    
por 03.08.2018 / 07:32