Newsgroup: it.comp.reti.locali
Titolo: Networking Microsoft (ancora + lungo e arcano)

PREMESSA.
L'argomento è tra i più discussi e di roba in giro se ne trova 
tantissima. Ed è piuttosto difficile parlarne in modo omnicomprensivo e 
contemporaneamente comprensibile.
Farne un riassunto è stato più complesso di quanto mi aspettassi, e il 
risultato non so se è all'altezza delle aspettative. Ho buttato giù nel 
modo più "logico" che ho potuto trovare un percorso che vi possa far 
intuire la complessità dell'intero sistema e anche i punti salienti da 
considerare. Molte cose ho dovuto per forza di cose ometterle. Ma ne 
dovreste trovare ampi riferimenti tra i link che ho indicato. Spero in 
tutta sincerità di non aver fatto troppi errori e di non aver detto 
troppe ..ate. Sono solo un utente che ci ha studiato e sbattuto la testa 
per un po' più di tempo di molti di voi, ma fare il "professore" ancora 
non è il mio mestiere. Spero nella vostra benevolenza. 8]
Ok, siamo riusciti ad unire tra loro due subnet attraverso il nostro pc 
"Ruota". Tutti i ping tra le macchine funzionano, i servizi "standard" 
Internet sono ok.
Ma da Risorse di rete? Che riusciamo a vedere? MEZZA RETE?!? E l'altra 
dov'è?!? Magari qualche pezzo ne vedo, ma non riesco ad accedervi, 
Explorer non trova la risorsa.. ma diavolo, la PINGO e risponde.. Che 
succede?
Succede che il NetBios, ovvero quel protocollo specifico per la 
navigazione in rete Microsoft, ha bisogno di ALTRO per funzionare come vi 
aspettate che funzioni.
Deve poter recuperare tutte le informazioni per raggiungere i pc delle 
altre subnet! E' quello che si chiama "Risoluzione dei nomi NetBios" in 
indirizzi IP, indirizzi che il computer può usare per raggiungere la 
risorsa. Sia essa un pc o un ELENCO. 8)
Questo si ottiene fondamentalmente in 3 modi:
1) WINS
2) LMHosts
3) broadcast sulla rete
WINS è un servizio disponibile sui server. E' in soldoni una tabella 
aggiornata in tempo reale delle accoppiate "ip-risorsa Netbios". Il pc 
che ne richiede una, riceve in cambio l'ip. Una specie di elenco 
telefonico: "Hei sto cercando la macchina Pippo" "Sta al 192.168.0.43"; 
"Sto cercando il PDC del dominio ZZ" "Lo trovi su 10.0.0.2". E' L'UNICA 
RISORSA utilizzabile in presenza di indirizzi variabili, forniti da un 
server DHCP. Vari WINS possono sincronizzarsi tra di loro e quindi 
servire reti molto estese con ottima efficienza.
LMHosts è un file che trovate in formato .sam (sample) sul vostro pc: si 
trova (o dovete crearlo) in \Windows su Win9x/ME e in 
..\system32\drivers\etc sulle piattaforme basate su NT. E' una edizione 
statica della tabella WINS. Nella sua accezione più comune è l'analogo di 
quello che è la tabella Hosts.: indirizzi ip associati a nomi (stavolta 
nomi NetBios e non nomi host). Invece può avere le molte più 
informazioni, tipo quella di specificare anche il servizio che una 
macchina detiene. Ci trovate record tipo:
192.168.0.43	Pippo	#PRE
10.0.0.2	PCDZZ	#PRE #DOM:ZZ
Broadcast è la forma più semplice: è un URLO alla subnet. "AHOOOO, 
PIPPOOOOO, n'do' staiii?". Inutile dire che è il servizio meno 
efficiente, più lento e detestato dai network administrator, che si 
sperticano per evitarli! Inoltre, sono abbattuti dai router e dagli 
switch (a seconda della configurazione della porta). Come ultima nota.. 
NetBEUI si basa UNICAMENTE sul broadcast.. quindi se non vi serve.. VIA! 
8]
Cosa succede quando aprite "Risorse di rete"? Vedete i pc del vostro 
workgroup, o dominio, o magari anche altri gruppi e altri pc.
Ma da dove viene questo elenco? Come riesce Win a farvelo vedere?
Beh, in breve.. alcune macchine della vostra rete si sono autopromosse a 
detenerne un elenco. Per essere esatti, UNA macchina per 
WorkGroup/Dominio (W/D) *e per subnet*. Ogni volta che lo richiedete, non 
fate altro che contattare questa macchina particolare, il Master Browser 
(MB), la quale vi fornisce gentilmente l'elenco delle macchine "che lei 
sa che ci sono in rete". Facile, no? Si, sembra..  ;)
Oltre ai pc del vostro gruppo, vi fornisce anche il riferimento agli 
altri MB che conosce. Se vorrete sfogliare gli altri W/D, contatterete il 
MB dell'ALTRO W/D, e sarà LUI a farvi avere la lista. E' ancora semplice, 
vero?
La cosa inizia a complicarsi quando focalizziamo l'attenzione su quello 
che ho messo tra asterischi. PER SUBNET. Già.. perché se non ci avevate 
mai pensato prima, lo stesso W/D può appartenere a PIU' segmenti di rete 
(dovrei dire domini di broadcast, ma per semplicità rendo le due cose 
coincidenti), e OGNI subnet ha IL SUO MB!
Va da se che i vari M/B devono "conoscersi" e "sincronizzarsi" 
reciprocamente.
E chi o cosa decide QUALE macchina è il MB? E' la famosa "battaglia per 
l'elezione a MB". 8)
I criteri "documentati" includono: la versione del sistema operativo, il 
ruolo all'interno del W/D e UN ALTRO criterio poco documentato, ma che 
trovo MOLTO più preponderante sugli altri. La "quantità di macchine" che 
un pc vede. Un PC che ha un netmask più ampio (di solito sbagliato), un 
ulteriore protocollo di rete (NetBEUI) o è connesso tramite RAS ad 
Internet o ad un'altra rete viene SEMPRE ELETTO A MB, anche rispetto ad 
un PDC! Questo genera spesso errori sull'Event Viewer dei server ("an 
election has been forced") e fa soffrire il buon funzionamento 
dell'intero sistema! Quindi, controllate BENE TUTTE le macchine della 
vostra LAN, che non abbiano mask sbagliate o protocolli aggiuntivi, o 
alle macchine con modem che si connettono altrove; se proprio devono, 
DISABILITATE IL SERVIZIO DI BROWSING su quella macchina (in generale; ci 
sono casi i cui vi toccherà convivere con l'errore.. 8/).
Premesso questo (che è già parecchio), cosa significa per la piccola rete 
che mettemmo su l'altra volta?
Rete A: 10.0.0.x/24 senza gateway
Rete B: 192.168.0.x/24 con gateway 192.168.0.1
connesse da un PC chiamato "Ruota" che ha i seguenti IP
Ruota (A) 10.0.0.1 mask 255.255.255.0 nessun gateway.
Ruota (B) 192.168.0.2 mask 255.255.255.0 default gateway 192.168.0.1
e il servizio di routing abilitato.
Ohhh, ora diamo un nome alle macchine e ai W/D.
1 dominio ZZ con pc sia in A che in B
1 dominio YY solo in A
1 workgroup WW sia in A che in B
1 workgroup VV solo in B
E "Ruota"? Ruota è un caso particolare. E' una macchina cosiddetta 
"multihomed", ovvero con più indirizzi e quindi partecipante a più 
subnet. Ho avuto la te di metterla in un workgroup a parte, ma visto che 
ci sono, la uso per parlarvi di un caso piuttosto specifico ma molto 
frequente, che tratterò a parte; lo metto nel dominio ZZ.
Allora, applichiamo le regolette di cui sopra.
VV è facile.. avrà UN MB e basta. YY anche; ma essendo un dominio, il MB 
sarà sicuramente il PDC (il PDC DEVE essere MB).
WW ne avrà DUE, uno in A e l'altro in B.
ZZ anche due: uno sarà il PDC (lo supponiamo in A) e l'altro.. l'altro 
sarà Ruota, per un "principio di elezione" che vi ho spiegato.. ma che ci 
creerà dei problemi.
Vediamo per rete:
A ha i MB di YY, di WW e ZZ col PDC
B ha VV, WW e ZZ con Ruota.
Cosa vedono quindi le macchine?
Vedranno le macchine viste dai MB di ogni W/D. Ma non tutte le macchine.
Per poterle vedere "tutte" sarà necessario compilare la tabella LMHosts 
con TUTTE le informazioni su TUTTI i pc presenti. Ma non basterà il solo 
nome! Dovremo impostare anche le informazioni relative ai PDC e ai Master 
Browser dei vari W/D sulle due subnet.
Già... Ma come possiamo determinare chi sia il MB? I criteri sono noti, 
ma non facilmente comprensibili. Un sistema è "chiederlo alla rete". Il 
comando "nbtstat -A <indirizzoIP>" (o "-a <nomenetbios>", occhio che -a è 
DIVERSO da -A) vi fornisce i record NetBios di ogni macchina 
interrogata.. COMPRESO IL RECORD RELATIVO AL MB, se presente! Eccolo qui:
..__MSBROWSE__.<01>  GROUP       Registered
Ma voi potete anche FORZARE quale debba essere il MB! Scegliete la 
macchina; è quella che deve essere accesa "sempre", e debba esserlo PRIMA 
delle altre. Chiaramente è meglio che NON abbia + protocolli, o più 
indirizzi. Impostate come "Attivato" il "Browse Master" nella proprietà 
del servizio "Condivisione files e stampanti" di Win9x/ME; per le 
macchine NT consultate 
http://www.microsoft.com/IntlKB/Italy/articles/I15/5/11.htm
 ("Elenco 
chiavi Registry per configurare il Browser Service"). Analogamente, 
conviene DISATTIVARE il MB per le macchine che non sono utili a 
detenerlo.
Ricapitoliamo un attimo:
1) Selezioniamo le macchine che devono essere MB. I PDC lo sono per 
definizione, come i BDC se appartenenti ad una subnet differente dal PD. 
Sono da evitare le macchine con più indirizzi, o più protocolli. Sono da 
preferire le macchine che rimangono "sempre" accese, o che comunque 
verranno accese "prima" delle altre.
2) Impostiamo queste macchine forzandole ad essere MB per il loro W/D e 
subnet.
3) PER I WORKGROUP va assolutamente DISABILITATO il MB per le macchine 
che NON SONO STATE PRESCELTE A DETENERLO. Questa, in assenza di un server 
WINS, è L'UNICO tentativo possibile per cercare di far vedere "insieme" 
dei workgroup splittati su più subnet.
4) PER I WORKGROUP, il MB deve essere indicato ESPLICITAMENTE su LMHosts 
con il suffisso "1D" al sedicesimo carattere 
(
http://support.microsoft.com/default.aspx?scid=kb;IT;q163409
, "NetBIOS 
Suffixes (16th Character of the NetBIOS Name)")
Questo di porta, nella nostra retina, a disabilitare il servizio di 
Browse su Ruota. Eh si.. la sua lista è "un po' di qua e un po' di la". 
Farebbe a cazzotti col suo PDC su A e non darebbe a B una lista coerente. 
Dovremo scegliere un altro MB su B per il Dominio ZZ.
Se abbiamo fatto tutto con criterio possiamo compilare LMHosts. La 
corretta sintassi la trovate in 
http://www.microsoft.com/IntlKB/Italy/articles/I180/0/94.HTM
 ("Modalità 
di scrittura di un file LMHOSTS per la convalida del dominio e altri 
problemi di risoluzione dei nomi").
Dovrebbe venire una cosa del genere (la commento a tratti):
#Dominio YY
10.0.0.10	PDCYY	#PRE	#DOM:YY
10.0.0.11	PCYY11	#PRE
# (eccetera)
# L'opzione #DOM non solo specifica che PDCYY è il PDC, ma lo identifica
# anche come MB
#Dominio ZZ
10.0.0.2	PCDZZ	#PRE #DOM:ZZ
10.0.0.1	Ruota	#PRE
#Ruota conviene abbia un UNICA entry in LMHOSTS
10.0.0.3	PCZZA3	#PRE
192.168.0.2	PCZZB2	#PRE
# (eccetera)
192.168.0.3	"PCZZMBB3       \0x1D"	#PRE
# Questi son 123456789012345 QUINDICI caratteri. Il sedicesimo è il
# flag che lo identifica come MB. Fosse stato un server di dominio
# avremmo usato #DOM come per PCCZZ. 1D identifica un MB, 1B un DOMAIN
# Master Browser.
#Workgroup VV
192.168.0.10	PCVV10	#PRE
192.168.0.11	"PCVVMBB11      \0x1D"	#PRE
# (eccetera)
#Workgroup WW
10.0.0.21	PCWWA21	#PRE
10.0.0.22	"PCWWMBA22      \0x1D"	#PRE
192.168.0.22	PCWWB22	#PRE
192.168.0.23	"PCWWMBB23      \0x1D"	#PRE
# (eccetera)
Hufff........
Ecco... Mi sa che molto meglio di così non si può fare. LMHosts va 
compiato su TUTTE le macchine. Se tutto è fatto esattamente, ci sono 
ottime possibilità che ci sia la visibilità totale delle macchine 
presenti.
La letteratura riporta che i Workgroup NON possono attraversare i router. 
E' vero in parte: con un WINS di solito i pc si raggiungono e si vedono 
eccome. Lo dico perché in quasi tutte le grandi aziende dove ci sia una 
graaaaaande LAN esiste quasi sempre un workgroup di nome "Workgroup" o 
"OEMWorkgroup" sparpagliato su più subnet e composto da tutti pc nuovi 
installati senza configurare NULLA e attaccati alla LAN così come tolti 
dall'imballaggio! 8) In tutta sincerità, non mi è mai capitato di dover 
provare LMHosts troppo complessi. WINS è ovviamente molto più semplice. 
Comunque ho fiducia che con qualche eventuale aggiustamento, anche con 
LMHosts sia possibile ottenere qualcosa.
E poi c'è sempre un trucco assolutamente NON documentato. Selezionare un 
MB qualsiasi e definirlo a TUTTE LE MACCHINE come WINS SERVER ANCHE SE 
NON LO E'! Incredibilmente, pare funzionare come se effettivamente ci 
fosse un WINS attivo. Il fatto è che il servizio di MB e di WINS utilizza 
pressocché lo stesso sistema, e questo trucchetto in alcuni casi da 
risultati più che soddifacenti. Provate e distribuite l'esperienza. 8)
Passiamo ai link. Come premesso, MOLTO sostanziosi.
	Per un discorso generale:
"I protocolli NetBEUI, NETBIOS e SMB"
http://utenti.lycos.it/Lucauby/netbeui.html
"Microsoft Tcp/Ip"
http://www.j51.com/~sshay/tcpip/
"Microsoft Computer Browser Service"
http://www.labmice.net/networking/browsersrvc.htm
	Sul NetBios
"NetBIOS Reference"
http://msdn.microsoft.com/library/en-us/netbios/netbios_20bp.asp
"NetBIOS-Over-TCP/IP Name Resolution Services"
http://www.ehsco.com/reading/19960915ncw1.html
	Sul Browsing
"Consultazione di WAN con TCP/IP"
http://www.microsoft.com/windows2000/it/server/help/sag_WINS_und_Browsing
WithTcpip.htm
"Browsing and Windows 95 Networking: Introduction"
http://msdn.microsoft.com/archive/en-us/dnarwnet/html/msdn_browser.asp
"Information on Browser Operation"
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q102878
	LMHosts e impostazioni dello stack Tcp/Ip
"Elenco chiavi Registry per configurare il Browser Service"
http://www.microsoft.com/IntlKB/Italy/articles/I15/5/11.htm
"Modalità di scrittura di un file LMHOSTS per la convalida del dominio e 
altri problemi di risoluzione dei nomi"
http://www.microsoft.com/IntlKB/Italy/articles/I180/0/94.HTM
"Elenco del dominio con TCP/IP e file LMHOSTS"
http://www.microsoft.com/IntlKB/Italy/articles/I150/8/00.HTM
"NetBIOS Suffixes (16th Character of the NetBIOS Name)"
http://support.microsoft.com/default.aspx?scid=kb;IT;q163409
"How to Write an LMHOSTS File for Domain Validation and Other Name 
Resolution Issues"
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q180094
	WINS
"Consultazione di WAN con WINS"
http://www.microsoft.com/windows2000/it/server/help/sag_WINS_und_Browsing
WithWins.htm
WINS Resources for Windows 2000
http://www.labmice.net/networking/WINS.htm
WINS Overview
http://www.pretex.com/pdf/ammann-6.pdf
	Problemi per le macchine MultiHomed
"I supervisori di dominio primario multihomed causano problemi al 
servizio Elenco"
http://www.microsoft.com/IntlKB/Italy/articles/I244/9/83.HTM
"Symptoms of Multihomed Browsers"
http://support.microsoft.com/default.aspx?scid=kb;IT;q191611
"Un problema di protezione a livello di NetBIOS può causare conflitti di 
nomi duplicati sulla rete"
http://www.microsoft.com/IntlKB/Italy/articles/I269/2/39.HTM
Questo NON è tutto. E' una buona parte, però. Vi pregherei, se siete 
giunti fin qui a leggere, di non riportare PROBLEMI sotto questo thread. 
Quelli meritano un thread a se stante. Io non sono il più bravo, qui. 
Quindi chiedete al NG, non a me. Io posso chiarire passaggi più oscuri (e 
ce ne sono), ma non sperare di rimettere a posto i problemi di Browsing 
di tutta Usenet! ;))
Grazie dell'attenzione; fate uso di queste righe per imparare e 
DISTRIBUIRE esperienza, oltre che accumularla.
CIAO. 8)
-- 
		Luca Amicone
		(da casa)

 Internet sono ok.
Mica troppo, Luca.
Ho seguito le istruzioni del tuo post precedente, ma il ping mi dice "Time
out".
Il mio PC "Routa" ha Win2000 Pro, tutti gli altri Win 9x.
Gli indirizzi di Ruota sono 90.0.0.206 (Subnet A) e 90.0.1.1 (Subnet B). Per
il resto le condizioni sono le stesse che tu hai considerato nel tuo post.
Già sono partito male perché non trovo la funzione IP Forwarding, comunque
il ping da B su 90.0.0.206 funziona, ma non sugli altri PC di A.
Mi darsti una mano?

 il ping da B su 90.0.0.206 funziona, ma non sugli altri PC di A.
Si, perché ti risponde LO STESSO stack sulla 90.0.1.1. 
-- 
			Luca Amicone
			ICQ: 14890779
--
	Chi aumenta sapienza, aumenta dolore.
		-- G. Bruno

 Non ricordavo una cosa così complicata su 2k.. ma tant'è..
No, forse non è complicata... sono io alle prime armi (comunque adesso
guardo il link)
Solo che in NT l'ho trovato al volo senza problemi, in 2k no.
Grazie della pazienza

 Non ricordavo una cosa così complicata su 2k.. ma tant'è..
Doh! Ho guardato l'articolo. Ma perché si dovrebbe andare a toccare il
registro? Forse ho interpretato male la tua frase... era complicato davvero!

 registro? Forse ho interpretato male la tua frase... era complicato davvero!
Eh si.. Con Nt bastava un click su una spunta. In 2k mettere mano al
registro... che è una cosa che non tutti fanno senza patemi d'animo. 8]
Comunque, sic est.. Ma ora dovrebbe funzionare.
Facci sapè! 8)
-- 
			Luca Amicone
			ICQ: 14890779
--
	C'è un giorno per seminare e uno per raccogliere...
	Giovedì andrebbe benissimo...
		-- Kipli

 Facci sapč! 8)
Sě, sě... adesso funziona alla grandissima!
In questo momento mi sono lanciato sulla seconda parte, quella del
Networking Microsoft. Questa mi sembra nettamente piů complicata, me la sto
studiando proprio ora. Vedo cosa riesco a combinare...

 Gli indirizzi di Ruota sono 90.0.0.206 (Subnet A) e 90.0.1.1 (Subnet B)
Ho "realizzato" ora..! Perché usi indirizzi PUBBLICI?!?
-- 
			Luca Amicone
			ICQ: 14890779
--
	Bisogna vivere come si pensa,
	altrimenti si finirą per pensare come si č vissuto.
		-- P. Bourget

 servire reti molto estese con ottima efficienza.
Scusa se ti massacro di domande, ma non ho trovato cosa vuol dire "PDC"

 Ho "realizzato" ora..! Perché usi indirizzi PUBBLICI?!?
Opsss... perché sono quelli che già erano preesistenti (penso inseriti da
chi ha installato la rete) io non li ho modificati, se non quelli della
sottorete che ho aggiunto io!
Perché?

 Scusa se ti massacro di domande, ma non ho trovato cosa vuol dire "PDC"
"Primary Domain Controller" di un dominio NT.
-- 
			Luca Amicone
			ICQ: 14890779
--
	Un'avventura č solo una disavventura vista dal lato buono.
		-- G.K. Chesterton

 Perché?
Perché per le reti private andrebbero utilizzati indirizzi PRIVATI.
Se no, metti caso che tu dalla tua rete privata voglia accedere a
qualche server pubblico su Internet che ha I TUOI STESSI INDIRIZZI..
pensi riusciresti a raggiungerlo? 8]
Ovviamente no. Il tuo stack tcp/ip risolverebbe gli ip e cercerebbe quel
sito sulla tua lan!
Per omogeneità, dovresti usare subnet tipo
192.168.x.y (standard per la classe C, mask 255.255.255.0).
C'è una RFC che specifica gli ip riservati per le reti private, ma non
me la ricordo a memoria e sto andando a mensa.. ;))))
-- 
			Luca Amicone
			ICQ: 14890779
--
	Un'avventura è solo una disavventura vista dal lato buono.
		-- G.K. Chesterton