TCP MSS-Anpassung für IPSec Traffic
Resolution
Für den IPSec-Verkehr wird die Palo Alto Networks Firewall das TCP MSS automatisch im drei-Wege-Handshake einstellen. Dies geschieht unabhängig von der Option "TCP MSS", die auf der VPN-außen Schnittstelle aktiviert ist.
Der berechnete MSS ist der untere der beiden Werte wie unter:
- Tunnel Schnittstelle MTU-40 Bytes
- MSS berechnet auf Basis von Interface MTU, Verschlüsselung, Authentifizierungs Algorithmen
Relation zwischen Original-PaketGröße, VerschlüsselungsAlgorithmus, AuthentifizierungsAlgorithmus und Interface MTU
Lassen Sie folgende Situation betrachten:
Client ——— Palto Alto ——— Internet ——— Remote Firewall ——— Server
\ ____________ (IPSec) ____________/
Auftraggeber MTU: 1500
Server MTU: 1500
MTU auf VPN-Kündigungs Schnittstelle: 1500
Tunnel Schnittstelle MTU: 1500
Verschlüsselung algo: AES-256-CBC
AuthentifizierungsAlgorithmus: SHA1
ESP Overhead: (alle Größen in Bytes)
Äußere IP-Header | 20 |
SequenzNummer | 4 |
SPI | 4 |
Initialisierungs Vektor | 16 |
ESP-Polsterung | [0-15] |
Polster Länge | 1 |
Nächste Header | 1 |
AuthentifizierungsDaten | 12 |
Insgesamt | [58-73] |
So produziert AES-256 mit SHA1 einen maximalen Overhead von 73 bytes.
Original PaketGröße + Max Overhead<= 1500></= 1500>
TCP-Segment + TCP-Header + IP-Header + Max Overhead<= 1500></= 1500>
TCP Segment + 20 Bytes + 20 Bytes + 73 bytes<= 1500></= 1500>
TCP Segment<= 1387 bytes 1387=""></= 1387 bytes>
Wenn MSS als 1388 genommen wird, dann beträgt der resultierende ESP-Header in diesem Fall nur 1496 bytes. (Polsterung wird nur 10 Bytes betragen)
Von oben,
- MSS auf Basis der Tunnel Schnittstelle MTU = 1500-20 Bytes (IP-Header)-20 Bytes (TCP-Header) = 1460 bytes
- MSS berechnet auf Basis von Interface MTU, Verschlüsselung, Authentifizierungs Algorithmen = 1388 bytes
Finale MSS berechnet: MIN (1460, 1388) = 1388.
Die gleiche Berechnung kann für verschiedene Kombination von Verschlüsselungs-/Authentifizierungs Algorithmen verwendet werden. Einige der bekannten Werte sind:
Größe des Initialisierungs-Vektors für
- AES: 16 Bytes
- DES: 8 Bytes
Größe der AuthentifizierungsDaten für
- MD5/SHA-1:12 Bytes
- SHA-256:16 Bytes
- SHA-384:24 Bytes
- SHA-512:32 Bytes
Maximale Polster Größe für
- AES: 15 Bytes
- DES: 7 bytes
Hinweis:
- Das obige Verhalten wurde in PAN-OS 6,0 und später getestet.
- Im gleichen Fall oben, wenn Sie die MTU der Tunnel Schnittstelle als 1400 setzen, dann wird die resultierende MSS 1360 und nicht 1388.
Die obige Berechnung kann auch verwendet werden, um den optimalen MSS-Wert für einen IPSec-Tunnel zu berechnen. Wenn die Firewall die MSS unter Berücksichtigung des ESP-Overhead nicht automatisch anpasst, kann der richtige Wert der MTU auf den Tunnel gesetzt werden. X-Schnittstelle für TCP-Einstellung.
Wenn zum Beispiel die Firewall im obigen Fall die MSS nicht per ESP-Overhead anpasst, können Sie die Tunnel Schnittstelle MTU auf 1387 + 40 = 1427 Bytes einstellen. Dies führt dazu, dass der MSS-Wert auf die gleichen 1387 Bytes angepasst wird.
Dies hilft bei der Verbesserung der Leistung von TCP-Anwendungen über IPSec-Tunnel.