Am un PC cu Windows 10 care are 2 interfețe de rețea. Una dintre aceste interfețe merge în LAN-ul principal unde se află serverul de fișiere, dns și routerul pentru internet. A doua interfață este un LAN minuscul care are un PLC și un HMI. Ambele sunt fizic în aceeași rețea LAN, dar pe subrețele diferite (îmi pare rău, nu pot schimba asta, în afara controlului meu).
Deci am două interfețe fizice și una logică:
eth0: DHCP, 172.16.x.y, MASK 255.255.255.0, implicit gw 172.16.x.z
eth1: static 192.168.1.158, MASCA 255.255.255.0
static 192.168.19.158, MASCA 255.255.255.0
HMI-ul este accesibil sub 192.168.19.135
Acum, când repornesc HMI, pornesc un ping pentru a vedea când este din nou accesibil. Acest lucru ar trebui să se întâmple după aproximativ 30 de secunde.Dar primesc un răspuns pozitiv la ping numai după 80-90 de secunde.
Ping wird ausgeführt für 192.168.19.135 cu 32 de octeți Data:
Răspuns de la 192.168.19.158: Zielhost nicht erreichbar.
Zeitüberschreitung der Anforderung.
Zeitüberschreitung der Anforderung.
Zeitüberschreitung der Anforderung.
(Îmi pare rău pentru textul în germană, dar cred că ar trebui să fie încă clar ceea ce vedem aici)
Primesc alt răspuns pentru primul ping decât pentru al doilea.
Se pare că Windows după XP a început să facă ceva „magie de rutare” și să trimită date pe ruta implicită dacă nu poate ajunge la țintă pe o rută mai specifică. Se pare că și alții au avut această problemă
Am găsit câteva „soluții” care nu sunt soluții reale pentru mine (mai multe despre asta mai jos)
- Deci ping are un parametru frumos „-S” pentru a defini adresa sursă. Și da, asta „rezolvă” problema. Primesc un răspuns instantaneu dacă HMI-ul este activat. Dar folosesc acea comandă într-un script powershell, iar parametrul sursă pentru „test-connection” are un înțeles complet diferit. Și din moment ce folosesc acest lucru într-un script, acesta eșuează de îndată ce IP-ul local se schimbă.
- Am configurat eth0 static în loc de prin DHCP și nu am definit o rută implicită. Acest lucru a „rezolvat” și problema (cred că vă puteți imagina de ce aceasta nu este cu adevărat o soluție)
- Am explorat doar teoretic acest lucru, dar aș putea instala un router bazat pe Linux cu 3 interfețe între PC, LAN și LAN izolat cu PLC și HMI și să-l las să facă toată rutarea (acest lucru ar rezolva cu siguranță problema! Dar sincer, am nevoie de un computer suplimentar doar pentru a rezolva rutarea ferestrelor sparte?)
- ´arp -d *´ pare să ajute și el, dar au nevoie de privilegii ridicate
Am încercat să adaug rute statice cu diferiți parametri și metrici. Nicio schimbare!
Adăugarea static a MAC-ului HMI nu ajută, deoarece acest MAC se poate schimba.
Deci intrebarile mele sunt:
- Există vreo documentație despre această schimbare de comportament în Windows?
- Există o modalitate de a forța Windows să folosească interfața definită