O Windows 7 falha intermitentemente ao abrir compartilhamentos de samba com 0x80070043 - o nome da rede não pode ser encontrado

1

Eu tenho uma caixa do Ubuntu 14.04 chamada watson com um IP estático 192.168.7.101 em execução:

  • dnsmasq
  • samba

Eu também tenho um monte de caixas premium do Windows 7 que obtêm seus endereços IP do dnsmasq sobre DHCP. O Watson compartilha dois diretórios sem autenticação (confio em qualquer um em minha LAN e é tudo instantâneo no plano de falha). No entanto, embora as caixas de janelas possam ver os compartilhamentos bem, a tentativa de abri-los geralmente falha com 0x80070043 - o nome da rede não pode ser encontrado. O reinício de smbd e nmbd frequentemente faz com que o problema desapareça um pouco. Às vezes eu posso abrir um compartilhamento, mas não o outro.

Isso funcionou bem durante anos, mas começou a dar errado após a atualização de 12.04 para 14.04 e / ou mudança de casa com novos roteadores que permitiam o ipv6 e / ou quaisquer atualizações de segurança do Ubuntu / Microsoft desde meados de dezembro

Coisas que tentei:

  • Desativando o ipv6 em todos os lugares
  • Ativando o servidor WINS no samba
  • Desativando o suporte do CUPS no SAMBA
  • Habilitando as várias opções de DHCP do netbios em dnsmasq

Qualquer conselho muito apreciado. Nesse ritmo, terei que mudar para o FreeNAS.

Meu nível de tecnologia pessoal é um programador C ++ de longo prazo (com um CCNA de degradação lenta), portanto sinta-se à vontade para sugerir soluções tecnológicas.

Minha configuração do samba é assim:

[global]
    server string = %h server (Samba, Ubuntu)
    server role = standalone server
    map to guest = Bad Password
    obey pam restrictions = Yes
    pam password change = Yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    unix password sync = Yes
    syslog = 0
    log file = /var/log/samba/log.%m
    max log size = 1000
    name resolve order = wins, hosts, bcast
    load printers = No
    printcap name = /dev/null
    disable spoolss = Yes
    wins support = Yes
    usershare allow guests = Yes
    panic action = /usr/share/samba/panic-action %d
    idmap config * : backend = tdb
    printing = bsd
    print command = lpr -r -P'%p' %s
    lpq command = lpq -P'%p'
    lprm command = lprm -P'%p' %j

[music]
    path = /raid/music
    read only = No
    guest ok = Yes

[data]
    path = /raid/data
    read only = No
    guest ok = Yes


My Dnsmasq (stripped of comments) looks like this:

This has all been working fine for years, but started going wrong
no-resolv
no-poll
server=8.8.8.8
server=4.4.4.4
server=192.168.7.1
domain=localdomain
dhcp-range=192.168.7.128,192.168.7.255,12h
dhcp-option=3,192.168.7.1
dhcp-option=19,0           # option ip-forwarding off
dhcp-option=44,192.168.7.101     # set netbios-over-TCP/IP nameserver(s) aka WINS server(s)
dhcp-option=45,192.168.7.101     # netbios datagram distribution server
dhcp-option=46,8           # netbios node type
dhcp-authoritative

An example smbtree output from after JACKIS-PC (ip address 192.168.7.248) was able to open \watson\data but failed to open \watson\music follows:

lp_load_ex: refreshing parameters
Initialising global parameters
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
params.c:pm_process() - Processing configuration file "/etc/samba/smb.conf"
Processing section "[global]"
added interface eth0 ip=192.168.7.101 bcast=192.168.7.255 netmask=255.255.255.0
Enter mark's password: 
tdb(/var/cache/samba/gencache.tdb): tdb_open_ex: could not open file /var/cache/samba/gencache.tdb: Permission denied
name_resolve_bcast: Attempting broadcast lookup for name WORKGROUP<0x1d>
Got a positive name query response from 192.168.7.101 ( 192.168.7.101 )
Connecting to 192.168.7.101 at port 445
Doing spnego session setup (blob length=74)
got OID=1.3.6.1.4.1.311.2.2.10
got principal=not_defined_in_RFC4178@please_ignore
Got challenge flags:
Got NTLMSSP neg_flags=0x608a8215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
WORKGROUP
name_resolve_bcast: Attempting broadcast lookup for name WORKGROUP<0x1d>
Got a positive name query response from 192.168.7.101 ( 192.168.7.101 )
Connecting to 192.168.7.101 at port 445
Doing spnego session setup (blob length=74)
got OID=1.3.6.1.4.1.311.2.2.10
got principal=not_defined_in_RFC4178@please_ignore
Got challenge flags:
Got NTLMSSP neg_flags=0x608a8215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
    \WATSON                watson server (Samba, Ubuntu)
resolve_hosts: Attempting host lookup for name WATSON<0x20>
Connecting to 192.168.7.101 at port 445
Doing spnego session setup (blob length=74)
got OID=1.3.6.1.4.1.311.2.2.10
got principal=not_defined_in_RFC4178@please_ignore
Got challenge flags:
Got NTLMSSP neg_flags=0x608a8215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal - Initialising with flags:imilarly
Got NTLMSSP neg_flags=0x60088215
        \WATSON\IPC$               IPC Service (watson server (Samba, Ubuntu))
        \WATSON\data               
        \WATSON\music              
    \LANGDALE-PIKE         
resolve_hosts: Attempting host lookup for name LANGDALE-PIKE<0x20>
Connecting to 192.168.7.233 at port 445
This has all been working fine for years, but started going wrong
Doing spnego session setup (blob length=320)
got OID=1.3.6.1.4.1.311.2.2.30
got OID=1.3.6.1.4.1.311.2.2.10
got principal=<null>
Got challenge flags:
Got NTLMSSP neg_flags=0x628a8215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
SPNEGO login failed: Logon failure
    \JACKIS-PC             
resolve_hosts: Attempting host lookup for name JACKIS-PC<0x20>
Connecting to 192.168.7.248 at port 445
Doing spnego session setup (blob length=42)
got OID=1.3.6.1.4.1.311.2.2.30
got OID=1.3.6.1.4.1.311.2.2.10
got principal=<null>
Got challenge flags:
Got NTLMSSP neg_flags=0x628a8215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
SPNEGO login failed: Logon failure
    
por Mark Charsley 08.02.2015 / 21:35

1 resposta

1

(Isenção de responsabilidade - Sou relativamente novato no Linux. Tenho mais experiência com o Solaris)

Isso pode estar relacionado aos problemas que enfrentei ao configurar o Samba no Ubuntu 15.04 nos últimos dias. Na minha configuração, eu estava simplesmente tentando configurar compartilhamentos em vários desktops do Ubuntu e em um desktop do Windows 10, em uma rede doméstica.

Os sintomas que experimentei foram que o Nautilus poderia navegar na rede, mas quando tentei autenticar, ele falhava e solicitava novamente a senha, ou parecia ter êxito, mas fazia o Nautilus travar ou travar . Em outras ocasiões, ele se conectaria e eu poderia criar arquivos com êxito nos diretórios compartilhados.

Depois de ler um número muito grande de postagens de outras pessoas em assuntos semelhantes, eu configurei o nível de depuração 10 nos daemons smbclient e backend nmbd e smbd e comparei conexões bem-sucedidas e mal-sucedidas.

As comparações destacaram dois problemas que, uma vez resolvidos os dois, resolveram meus problemas.

Primeiro, meus nomes de host estavam resolvendo para vários endereços IP. Isso porque, no passado, eu conectei as mesmas máquinas ao roteador via Wi-Fi e via ethernet. Como cada interface tem um endereço MAC diferente, o roteador tem endereços IP diferentes para eles, mas usa o mesmo nome de host.

Esse resultado pode ser observado se você usar algo como nslookup para resolver seu hostname (aqui, o arquivo home-svr tem apenas um endereço feliz): $ nslookup home-file-svr Server: 127.0.1.1 Address: 127.0.1.1#53

Resposta não autoritativa: Nome: home-file-svr.home Endereço: 192.168.1.68

Cometi o erro de alterar os nomes de host que o roteador usava para esses sistemas adicionando -wifi e -wired sufixos em sua configuração de rede doméstica (no roteador) e depois descobri que não estava resolvendo os nomes para os sistemas locais em absoluto, e bizarramente resolvido a nomes na Internet. Portanto, em resumo para esta seção, certifique-se de que seu nome de host seja resolvido para um único endereço.

Segundo, e muito mais difícil de depurar, era por que uma conexão smbclient falhava na primeira vez, depois funcionava e depois falhava novamente. $ smbclient //home-file-svr/public -U tim Enter tim's password: session setup failed: NT_STATUS_UNSUCCESSFUL smbclient //home-file-svr/public -U tim Enter tim's password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.13-Ubuntu] smb: >

Além disso, isso só aconteceu quando havia mais de um sistema na rede. O culpado acabou por ser winbind. A comparação dos rastreamentos mostrou que a primeira tentativa de conexão tenta criar uma entrada de cache para o mapeamento de GID para SID com um tempo negativo grande (usando a data de hora zero do Unix - 1970). A segunda tentativa não foi e foi bem sucedida.

Remover o winbind de todos os sistemas Ubuntu funcionou para a minha rede, pois não tenho / não configurei um domínio do Windows na minha rede.

    
por Tim Read 18.10.2015 / 12:30