Mám problém s odstraňováním souborů v podnikovém softwaru. Už roky se s tímto problémem potýkám a dnes večer jsem konečně udělal nějaký pokrok. Chtěl bych s vámi sdílet své zkušenosti, abyste se možná něco naučili, a také mi pomohli s posledním chybějícím detailem.
Tady je to. Existuje tento specializovaný podnikový software, který funguje na klient/server modelu. Klient může číst/zapisovat data na server a to funguje dobře. Klient může také nahrávat nebo stahovat soubory ze serveru. To také funguje, pokud jste připojeni přes klientský VPN.
Tato část VPN mě trápila, zvláště když používáme Cisco Meraki a na něm není žádný problém přes site-to-site VPN. Stává se to pouze přes Windows klientský VPN.
Měl jsem podezření, že to může být související s L2TP, tak jsem se připojil pomocí OpenVPN na router pfSense. Bez úspěchu, stejný problém. To znamená, že problém není s Meraki nebo typem VPN, kterou používáte.
Po mnoha hodinách zachytávání paketů jsem zjistil, že problém je velikost paketů a příznak “nefragmentovat”.
Když se připojíte k serveru přes klientský VPN, nic nad 1414 neprojde. Pokud se připojíte přes site-to-site VPN, vidím, že mnoho paketů projde i s velikostmi nad 1800.
Zdá se, že moje Cisco Meraki routery ignorují příznak “nefragmentovat” při přenosu přes VPN, což klientský VPN nedělá.
Otázka je: Jak to obejít? Je nějaký způsob, jak přinutit klientský VPN, aby stále fragmentoval?
Moje chápání je, že aplikace je odpovědná za nastavení bitu DF.
Můžete dokonce zaslat ping s nastaveným bitem df a specifikovat velikost pingu, abyste zjistili správnou povolenou velikost.
Takže aplikace by měla být schopna vypnout bit df. Pokud nemohou, musí omezit velikost paketů.
Možná Meraki umožňuje objevování cesty MTU, zatímco jiní ne. Ale pro to by aplikace měla používat objevování MTU cesty.
Některé aplikace používají ICMP pings pro objevování MTU. Takže byste měli zkontrolovat, jestli je klient schopen pingnout server v Meraki vs Windows VPN. Ale opět by vám měl tým podpory aplikace říct, jestli používají objevování MTU a jak to dělají.
Musíte nastavit maximální velikost segmentu. Možná budete muset trochu pohrát s nastavením, abyste našli správnou hodnotu.
Mělo by to být nastavení v VPN concentratoru pro nastavení MSS (maximální velikost segmentu) pro TCP relace přes něj.
Nastavte MTU na 1414 na své straně, jakékoliv připojení od vás pak sníží MSS TCP/UDP podle toho.
Alternativně, dejte dohromady PMTUD. To vyžaduje ICMP provoz, který do vás dorazí z místa, kde byl balíček s přepychem zahozen.
Řekl jste “korporátní” někde uvnitř, takže předpokládám, že jste na Windows. Můžete zkontrolovat cache hodnot PMTU s netsh interface ipv4 show destinationcache. Pokud každý řádek říká 1500 nebo 65536 (loopback a další věci), nedošlo k žádnému PMTU.
Pokud jste schopni pingnout nějaký venkovní hostitel, můžete zkontrolovat netsh interface ipv4 show ipstats a poznamenat hodnotu “Reassembly required”. Mělo by být nula nebo velmi nízká. Pak proveďte ping s ping -l 1472 na nějaký venkovní hostitel, například 8.8.8.8. To bude ping s paketem o velikosti 1500 bytů, který bude muset být fragmentován, aby prošel jakýmkoliv tunelem. Uvidíte, jak se hodnota “Reassembly required” zvýší o 2 s každým odpovědí na ping. Použijte nejvyšší hodnotu, která nezvýší počet opětovného sestavení, přičtěte 28 (ICMP hlavičky) a použijte ji jako vaše MTU.
Pro objevování MTU cesty musí být síťová zařízení na trase schopna odeslat ICMP zprávu “Nelze zfragmentovat”, když je paket zahozen s nastaveným bitem DF.
Měli byste toto povolit ve všech routerech na trase. Opět možná Meraki to umožňuje a PMTUD funguje správně.
Prosím odkaz na