Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Salut,
Am sa va scriu despre o situatie interesanta intalnita recent de mine in cadrul WINS-ul.
Infrastructura
=-=-=-=-=-=-=-=
Cluster de WINS cu doua noduri de Windows Server 2008 si unul cu doua noduri de Windows Server 2003.
Replicarea bazei de date a WINS-ului arata in felul urmator:
W2003 <--- W2008 <---> W2008 ---> W2003
Replicare de tip "Pull" de la serverele de 2003 la serverele de 2008, si replicare de ambele tipuri, "Push" si "Pull", intre serverele de 2008.
Problema
=-=-=-=-=-=
Replicarea (fie ea “Push” sau “Pull”) dintre serverele de 2008 nu functioneaza. Replicarea de tip “Push”dintre servere genereaza urmatoarul Event:
Log Name: System
Source: Wins
Date: 9/17/2009 1:10:08 PM
Event ID: 4243
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: Wins.test.local.com
Description:
WINS Pull thread encountered an exception during the process of sending a push notification to another WINS.
De mentionat este ca replicarea de tip “Pull” de la serverele de 2003 la cele de 2008 functioneaza.
Testele si verificari pe care le-am facut
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In primul rand am verificat conform KB-ului 822158, sa fie totul in regula cu exceptiile Antivirusului.
Am adaugat “%systemroot%\system32\wins” la exceptii, am incercat replicarea din nou, dar eroarea era generata in continuare.
Am vrut sa vedem intr-un Trace de retea aceasta replicare dintre nodurile de Windows Server 2008.
Vom testa cateva scenarii:
Scenariul 1:
W2008 <--- W2008
192.168.1.1 face o replicare de tip “Pull” de la 192.168.1.2
192.168.1.5 (adresa clusterului) 192.168.1.2 TCP TCP:Flags=......S., SrcPort=64237, DstPort=Internet Name Server(42), PayloadLen=0, Seq=80858379, Ack=0, Win=8192
192.168.1.2 (adresa resursei WINS) 192.168.1.5 TCP TCP: [Bad CheckSum]Flags=...A..S., SrcPort=Internet Name Server(42), DstPort=64237, PayloadLen=0, Seq=1956818950, Ack=80858380
192.168.1.5 (adresa clusterului) 192.168.1.2 TCP TCP:Flags=...A...., SrcPort=64237, DstPort=Internet Name Server(42), PayloadLen=0, Seq=80858380, Ack=1956818951, Win=513
192.168.1.2 (adresa resursei WINS) 192.168.1.5 TCP TCP: [Bad CheckSum]Flags=...A...F, SrcPort=Internet Name Server(42), DstPort=64237, PayloadLen=0, Seq=1956818951, Ack=80858380
192.168.1.5 (adresa clusterului) 192.168.1.2 WinsRpl WinsRpl:Transport on TCP: Association Start Request Message {WinsRpl:7, TCP:6, IPv4:5}
192.168.1.2 (adresa resursei WINS) 192.168.1.5 TCP TCP: [Bad CheckSum]Flags=...A.R.., SrcPort=Internet Name Server(42), DstPort=64237, PayloadLen=0, Seq=1956818952, Ack=80858425
Se face TCP Handshake-ul si pe urma se initiaza replicarea bazei de date. Se vede in ultimul frame *** 192.168.1.2 da Reset la conexiune.
Scenariul 2:
W2008 ---> W2008
192.168.1.2 face o replicare de tip “Push” la 192.168.1.1
192.168.1.5 (adresa clusterului) 192.168.1. 1 TCP TCP: [Bad CheckSum]Flags=......S., SrcPort=57227, DstPort=Internet Name Server(42), PayloadLen=0, Seq=3180611831, Ack=0, Win=8192
192.168.1.1 (adresa resursei WINS) 192.168.1.5 TCP TCP:Flags=...A..S., SrcPort=Internet Name Server(42), DstPort=57227, PayloadLen=0, Seq=3509702165, Ack=3180611832, Win=8192
192.168.1.5 (adresa clusterului) 192.168.1.1 TCP TCP: [Bad CheckSum]Flags=...A...., SrcPort=57227, DstPort=Internet Name Server(42), PayloadLen=0, Seq=3180611832, Ack=3509702166
192.168.1.5 (adresa clusterului) 192.168.1.1 WinsRpl WinsRpl:Transport on TCP: Association Start Request Message {WinsRpl:3, TCP:2, IPv4:1}
192.168.1.1 (adresa resursei WINS) 192.168.1.5 TCP TCP:Flags=...A.R.., SrcPort=Internet Name Server(42), DstPort=57227, PayloadLen=0, Seq=3509702166, Ack=3180611877
Si aici vedem, ca si in cazul primului scenariu, ca 192.168.1.1 da Reset la conexiune.
Scenariul 3:
W2003 <--- W2008
192.168.1.3 face o replicare de tip “Pull” de la 192.168.1.2
192.168.1.3 (adresa resursei WINS) 192.168.1.2 TCP TCP:Flags=......S., SrcPort=3361, DstPort=Internet Name Server(42), PayloadLen=0, Seq=2827702968, Ack=0, Win=65535 ( ) = 65535 {TCP:2, IPv4:1}
192.168.1.2 (adresa resursei WINS) 192.168.1.3 TCP TCP: [Bad CheckSum]Flags=...A..S., SrcPort=Internet Name Server(42), DstPort=3361, PayloadLen=0, Seq=3681779573, Ack=2827702969, Win=8192 ( Scale factor not supported ) = 8192 {TCP:2, IPv4:1}
192.168.1.3 (adresa resursei WINS) 192.168.1.2 TCP TCP:Flags=...A...., SrcPort=3361, DstPort=Internet Name Server(42), PayloadLen=0, Seq=2827702969, Ack=3681779574, Win=65535 (scale factor 0x0) = 65535 {TCP:2, IPv4:1}
192.168.1.3 (adresa resursei WINS) 192.168.1.2 WinsRpl WinsRpl:Transport on TCP: Association Start Request Message {WinsRpl:3, TCP:2, IPv4:1}
192.168.1.2 (adresa resursei WINS) 192.168.1.3 WinsRpl WinsRpl:Transport on TCP: Association Start Response Message {WinsRpl:3, TCP:2, IPv4:1}
192.168.1.3 (adresa resursei WINS) 192.168.1.2 WinsRpl WinsRpl:Transport on TCP: Replication Message {WinsRpl:3, TCP:2, IPv4:1}
Replicarea aici functioneaza fara nici o problema. Diferenta evidenta fata de cele 2 scenarii care nu functioneaza si acesta este ca initializarea replicarii, cand pleaca de la un server WINS de 2008 foloseste adresa clusterului in loc de adresa resursei WINS!
Solutia
=-=-=-=-=
Intrand in Failover Cluster Manager la clusterul de WINS, am adaugat serviciului de WINS un dependency pe adresa de IP a resursei WINS.
Astfel comunicarea va fi initiata tot pe adresa de IP a resursei si putem evita aceaste probleme la nivel de replicare a bazei de date, fie ea de tip “Push” sau “Pull”.
Sper ca aceste randuri sa va fie de folos in eventual rezolvare a unei problem de replicare in cadrului WINS-ului.
--- Liviu