ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠΌΠΈΡΡΠΈΠΉ Π‘Π°ΠΌΡΠΎΠ½ΠΎΠ², Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π²Π΅Π΄ΡΡΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ Π² Β«ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ
Β». Π£ Π½Π°Ρ Π±ΠΎΠ»Π΅Π΅ 7 ΡΡΡ. ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², 11 ΡΡΡ. ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² Π½Π°ΡΠ΅ΠΌ ΠΎΠ±Π»Π°ΠΊΠ΅ ΠΈ 200 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΎΡΠΌΠΈΡΡΡΡ 700 ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ². ΠΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅Π΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ CentOS 7.
14 Π°Π²Π³ΡΡΡΠ° 2018 Π³. Π±ΡΠ»Π° ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ FragmentSmack
(
ΠΠ΅Ρ, ΠΌΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΏΡΠΎΡΠΈΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΄ΡΠ°! ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ Π½ΡΠ°Π½ΡΡβ¦
ΠΠ°ΠΊ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΡΠ΄ΡΠΎ Π½Π° ΠΏΡΠΎΠ΄Π΅
Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ, Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ:
- CΠΊΠ°ΡΠ°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ;
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΡ, Ρ ΠΎΡΡΡΡΠΈΠ΅ Π½Π°ΡΠ΅ ΠΎΠ±Π»Π°ΠΊΠΎ);
- Π£Π±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ»ΠΎΠΌΠ°Π»ΠΎΡΡ;
- Π£Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΄ΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ;
- ΠΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ;
- ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²;
- ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ;
- ΠΠ±Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°ΠΌ (ΠΎΠ΄ΠΈΠ½ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡ Π·Π° ΡΠ°Π·, ΡΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ);
- ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΠΎΠ²ΡΠΎΡΠΈΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²Π΅ΡΠΎΠΊ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Ρ Π½Π°Ρ ΡΠ΄Π΅Ρ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ:
- Π‘ΡΠΎΠΊΠΎΠ²ΠΎΠ΅ CentOS 7 3.10 β Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΎΠ±ΡΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²;
- ΠΠ°Π½ΠΈΠ»ΡΠ½ΠΎΠ΅ 4.19 β Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ
ΠΎΠ±Π»Π°ΠΊΠ° one-cloud , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ BFQ, BBR ΠΈ Ρ.Π΄.; - Elrepo kernel-ml 5.2 β Π΄Π»Ρ
Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ°Π·Π΄Π°ΡΡΠΈΠΊΠΎΠ² , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ 4.19 ΡΠ°Π½ΡΡΠ΅ Π²ΡΠ» ΡΠ΅Π±Ρ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ, Π° ΡΠΈΡΠΈ Π½ΡΠΆΠ½Ρ ΡΠ΅ ΠΆΠ΅.
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ Π²ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΊΡΠΈΡΠΈΡΠ½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°. Π ΠΎΠ±Π»Π°ΠΊΠ΅, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, ΠΌΡ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ·Π²Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ΄ΡΠΎΠΌ, Π° ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π²ΡΠ΅ Ρ ΠΎΡΡΡ Π±Π΅Π· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π ΡΡΠ°ΡΡΡΡ, ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, stateless-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΅Ρ Π°ΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π±ΡΡΠ°.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π΅Π»Ρ, Π° ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ β Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ΅ΡΡΡΠ΅Π². ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΡΡΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ΅Π½ ΠΏΠ»Π°Π½ Β«ΠΒ».
FragmentSmack/SegmentSmack. Workaround
Π ΡΡΠ°ΡΡΡΡ, Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ»Π°Π½ Β«ΠΒ» ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ½ Workaround. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ΄ΡΠ°/ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ.
Π ΡΠ»ΡΡΠ°Π΅ Ρ FragmentSmack/SegmentSmack
Β«ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 4MB ΠΈ 3MB Π² net.ipv4.ipfrag_high_thresh ΠΈ net.ipv4.ipfrag_low_thresh (ΠΈ ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈ Π΄Π»Ρ ipv6 net.ipv6.ipfrag_high_thresh ΠΈ net.ipv6.ipfrag_low_thresh) Π½Π° 256 kB ΠΈ 192 kB ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅. Π’Π΅ΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π΄ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ CPU Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π°ΡΠ°ΠΊΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ·-Π·Π° ipfrag_high_thresh=262144 bytes, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° 64K-ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠ³ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΌΠ΅ΡΡΠΈΡΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΡΡ ΡΠΈΡΠΊ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ UDP-ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΠΎΠΌΠ°ΡΡΡΡΒ».
Π‘Π°ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ipfrag_high_thresh - LONG INTEGER
Β Β Β Β Maximum memory used to reassemble IP fragments.
ipfrag_low_thresh - LONG INTEGER
Β Β Β Β Maximum memory used to reassemble IP fragments before the kernel
Β Β Β Β begins to remove incomplete fragment queues to free up resources.
Β Β Β Β The kernel still accepts new fragments for defragmentation.
ΠΠ° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ Π±ΠΎΠ»ΡΡΠΈΡ UDP Ρ Π½Π°Ρ Π½Π΅Ρ. Π LAN ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ°ΡΠΈΠΊ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, Π² WAN Π΅ΡΡΡ, Π½ΠΎ Π½Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ. ΠΠΈΡΡΠΎ Π½Π΅ ΠΏΡΠ΅Π΄Π²Π΅ΡΠ°Π΅Ρ β ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Workaround!
FragmentSmack/SegmentSmack. ΠΠ΅ΡΠ²Π°Ρ ΠΊΡΠΎΠ²Ρ
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΏΠΎΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π»ΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ (ΡΠΎΠ»ΡΠΊΠΎ ipfrag_low_thresh), Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ β ΠΏΡΠΎΡΡΠΎ ΠΏΠ°Π΄Π°Π»ΠΈ Π½Π° ΡΡΠ°ΡΡΠ΅. Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ ΡΠ΄Π°Π²Π°Π»ΠΎΡΡ (Π²ΡΡΡΠ½ΡΡ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ). ΠΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΠ°Π΄Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° ΡΡΠ°ΡΡΠ΅, ΡΠΎΠΆΠ΅ Π½Π΅ ΡΠ°ΠΊ-ΡΠΎ ΠΏΡΠΎΡΡΠΎ: Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ. ΠΠ΄Π½ΠΎ Π±ΡΠ»ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠΎΡΠ½ΠΎ: ΠΎΡΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
ΠΠΎΡΠ΅ΠΌΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Sysctl Π½Π° Ρ
ΠΎΡΡΠ΅? ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΆΠΈΠ²ΡΡ Π² ΡΠ²ΠΎΡΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ΅Π²ΠΎΠΌ Namespace, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅
ΠΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Sysctl Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅? Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Ρ Π½Π°Ρ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π»ΡΠ±ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Sysctl, Π·Π°ΠΉΠ΄Ρ Π² ΡΠ°ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ β ΠΏΡΠΎΡΡΠΎ Π½Π΅ Ρ
Π²Π°ΡΠΈΡ ΠΏΡΠ°Π². ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π½Π°ΡΠ΅ ΠΎΠ±Π»Π°ΠΊΠΎ Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎ Docker (ΡΠ΅ΠΉΡΠ°Ρ ΡΠΆΠ΅
Π Ρ
ΠΎΠ΄Π΅ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²Π΅ΡΡΠΈΠΉ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ API Docker Π½Π΅ ΠΎΡΠ΄Π°Π²Π°Π»ΠΎ Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π² Π²Π΅ΡΡΠΈΠΈ 1.10). ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅ΡΠ΅Π· βdocker runβ ΠΌΡ, Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ, ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ Ρ
ΠΎΡΡ ΡΡΠΎ-ΡΠΎ:
write /proc/sys/net/ipv4/ipfrag_high_thresh: invalid argument docker: Error response from daemon: Cannot start container <...>: [9] System error: could not synchronise with container process.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π΅ Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ΅. ΠΠΎ ΠΏΠΎΡΠ΅ΠΌΡ? Π ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ΠΎ Π½Π΅ Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π°? ΠΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Docker Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Sysctl (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ β 1.13.1), ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ½ΠΎΠ³Π΄Π° ipfrag_high_thresh ΠΏΡΡΠ°Π»ΡΡ Π²ΡΡΡΠ°Π²ΠΈΡΡΡΡ Π½Π° 256K, ΠΊΠΎΠ³Π΄Π° ipfrag_low_thresh Π΅ΡΡ Π±ΡΠ» 3M, ΡΠΎ Π΅ΡΡΡ Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΠ° Π±ΡΠ»Π° Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ Π½ΠΈΠΆΠ½ΡΡ, ΡΡΠΎ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠ° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π½Π°Ρ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠ²ΠΎΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π΄ΠΎΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΡΠ°ΡΡΠ° (Π·Π°ΠΌΠΎΡΠΎΠ·ΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠ΅ΡΠ΅Π·
FragmentSmack/SegmentSmack. ΠΠ΅ΡΠ²Π°Ρ ΠΊΡΠΎΠ²Ρ 2
ΠΠ΅ ΡΡΠΏΠ΅Π»ΠΈ ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Workaround Π² ΠΎΠ±Π»Π°ΠΊΠ΅, ΠΊΠ°ΠΊ ΡΡΠ°Π»ΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ΅Π΄ΠΊΠΈΠ΅ ΠΆΠ°Π»ΠΎΠ±Ρ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π΅Π»Ρ Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Workaround Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ . ΠΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, ΡΡΠΎ ΠΆΠ°Π»ΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΏΠ°Π»ΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΈ Π½Π΅ Π½Π° Π²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²Π½ΠΎΠ²Ρ ΠΎΠ±ΡΠ΅Π»Π° ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ.
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΌΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Sysctl, Π½ΠΎ ΡΡΠΎ Π½Π΅ Π΄Π°Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ. ΠΠΎΠΌΠΎΠ³ reboot. Reboot Π΄Π»Ρ Linux ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΠ΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π΅Π½, ΡΠΊΠΎΠ»Ρ ΠΎΠ½ Π±ΡΠ» Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Windows Π² Π±ΡΠ»ΡΠ΅ Π΄Π½ΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³, ΠΈ ΠΌΡ ΡΠΏΠΈΡΠ°Π»ΠΈ Π²ΡΡ Π½Π° Β«Π³Π»ΡΠΊ Π² ΡΠ΄ΡΠ΅Β» ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π² Sysctl. ΠΠ°ΠΊ ΠΆΠ΅ ΡΡΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎβ¦
Π§Π΅ΡΠ΅Π· ΡΡΠΈ Π½Π΅Π΄Π΅Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΠ²ΡΠΎΡΠΈΠ»Π°ΡΡ. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π±ΡΠ»Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ: Nginx Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠΊΡΠΈ/Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°. Π’ΡΠ°ΡΠΈΠΊΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠΎΠ²Π°Ρ Π²Π²ΠΎΠ΄Π½Π°Ρ: Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ
Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄Π½ΡΠΌ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ 504-Ρ
ΠΎΡΠΈΠ±ΠΎΠΊ (
ΠΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄ β ΠΏΡΠΎ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠ΅. ΠΡΠ°ΡΠΈΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° ΡΡΠΎΠΌ Π±Π΅ΠΊΠ΅Π½Π΄Π΅ Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΡΠΊΠΈΡ ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΎΠ±Π»Π°ΠΊΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ»Π° ΠΏΠΎΡΠΈΠΊΡΠ΅Π½Π° Π΄ΡΡΠ³Π°Ρ ΡΠ΅ΡΠ΅Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ QoS (Traffic Control). ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ½Π° Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅:
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΡΠΌ: Π΅ΡΠ»ΠΈ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°Ρ ΠΎΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΡΠΎ ΠΈ ΠΏΡΠΈΡΠΈΠ½Π° Ρ Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°Ρ. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΡΠΎ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ»ΡΡΠ°ΡΡΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ.
Π‘ΡΡΡ ΠΏΠΎΡΠΈΠΊΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² QoS ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π΄ΡΠ»Π»Π΅Ρ fq Ρ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ 100 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΊΠ°Π½Π°Π»Π° ΡΡΠ°Π»ΠΈ Π·Π°Π±ΠΈΠ²Π°ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄ΠΎ ΠΎΡΠΊΠ°Π·Π°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄ΡΠΎΠΏΠ°ΡΡΡΡ. Π ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ΅ tc (tc -s qdisc) ΡΡΠΎ Π²ΠΈΠ΄Π½ΠΎ ΡΠ°ΠΊ:
qdisc fq 2c6c: parent 1:2c6c limit 10000p flow_limit 100p buckets 1024 orphan_mask 1023 quantum 3028 initial_quantum 15140 refill_delay 40.0ms
Β Sent 454701676345 bytes 491683359 pkt (dropped 464545, overlimits 0 requeues 0)
Β backlog 0b 0p requeues 0
Β Β 1024 flows (1021 inactive, 0 throttled)
Β Β 0 gc, 0 highprio, 0 throttled, 464545 flows_plimit
Β«464545 flows_plimitΒ» β ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ, Π΄ΡΠΎΠΏΠ½ΡΡΡΠ΅ ΠΈΠ·-Π·Π° ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ Π»ΠΈΠΌΠΈΡΠ° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π° Β«dropped 464545Β» β ΡΡΠΎ ΡΡΠΌΠΌΠ° Π²ΡΠ΅Ρ Π΄ΡΠΎΠΏΠ½ΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΡΠ΅Π΄ΡΠ»Π΅ΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π΄ΠΎ 1 ΡΡΡ. ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»Π° ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠΈΠ½ΡΡΡΡΡ Π² ΠΊΡΠ΅ΡΠ»Π΅ ΠΈ Π²ΡΠΏΠΈΡΡ ΡΠΌΡΠ·ΠΈ.
FragmentSmack/SegmentSmack. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΊΡΠΎΠ²Ρ
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠΏΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² ΠΏΠΎΡΠ»Π΅ Π°Π½ΠΎΠ½ΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΡΠ΄ΡΠ΅, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΡΠΈΠΊΡ Π΄Π»Ρ FragmentSmack (Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π°Π½ΠΎΠ½ΡΠΎΠΌ Π² Π°Π²Π³ΡΡΡΠ΅ Π²ΡΡΠ΅Π» ΡΠΈΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ SegmentSmack), ΡΡΠΎ Π΄Π°Π»ΠΎ ΡΠ°Π½Ρ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ Workaround, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΠ°Π²ΠΈΠ» Π½Π°ΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡΠ΅ΠΉ. Π§Π°ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΡΠΆΠ΅ ΡΡΠΏΠ΅Π»ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ Π½Π°ΡΠ°Π»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΠΈ ΡΠ΄ΡΠΎ, Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΡΠΈΠΊΡΠ° FragmentSmack? ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΡΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΠΎΠ²ΠΏΠ°Π» (ΠΈ ΡΠ»ΠΈΠ»ΡΡ) Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ CentOS (ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΡΠ°). Π ΡΠΎΠΌΡ ΠΆΠ΅ SegmentSmack β Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, Π° ΡΠΈΠΊΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΡΡΠ°Π·Ρ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΌΡΡΠ» Π±ΡΠ» Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄ΡΠΎ Π½Π° CentOS ΠΌΡ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ FragmentSmack, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π° CentOS 7.5, Π±ΡΠ»Π° ΠΏΠΎΡΠΈΠΊΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 7.6, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ 7.5 ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ Π²ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ 7.6. Π ΡΠ°ΠΊ ΡΠΎΠΆΠ΅ Π±ΡΠ²Π°Π΅Ρ.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΊ Π½Π°ΠΌ Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ ΡΠ΅Π΄ΠΊΠΈΠ΅ ΠΆΠ°Π»ΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΡΠΆΠ΅ ΡΠΎΡΠ½ΠΎ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π°ΠΏΠ»ΠΎΠ°Π΄ΠΎΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΠΈΡΡΠΌ ΡΠ΅ΡΠ΅Π· ΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΠΏΠ»ΠΎΠ°Π΄ΠΎΠ² ΠΎΡ ΠΎΠ±ΡΠ΅ΠΉ ΠΌΠ°ΡΡΡ.
ΠΠ°ΠΊ ΠΌΡ ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΈΠ· ΡΠ°ΡΡΠΊΠ°Π·Π° Π²ΡΡΠ΅, ΠΎΡΠΊΠ°Ρ Sysctl Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π». ΠΠΎΠΌΠΎΠ³Π°Π» Reboot, Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠΎΠ΄ΠΎΠ·ΡΠ΅Π½ΠΈΡ Ρ Sysctl Π½Π΅ Π±ΡΠ»ΠΈ ΡΠ½ΡΡΡ, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ Ρ
Π²Π°ΡΠ°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π°ΠΏΠ»ΠΎΠ°Π΄ΠΎΠΌ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, ΡΡΠΎΠ±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ΅ΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ.
ΠΠ½Π°Π»ΠΈΠ· Π²ΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ Π»ΠΎΠ³ΠΎΠ² Π½Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΠ» Π½Π°Ρ ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ. ΠΡΡΡΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎΠ±Ρ Β«ΠΏΠΎΡΡΠΏΠ°ΡΡΒ» ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π° ΡΠΏΠ΅ΡΠ²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»ΠΎΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΡΠ΅Π· Wi-Fi. ΠΡΠΎ ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΡΡΠ²ΠΎΠΌ Π² ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π»ΡΡ ΠΊ Nginx, ΡΠΎΡ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π» Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄, ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ²Π»ΡΠ»ΠΎΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Java.
ΠΠΈΠ°Π»ΠΎΠ³ ΠΏΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Π±ΡΠ» ΡΠ°ΠΊΠΎΠΉ (Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Nginx-ΠΏΡΠΎΠΊΡΠΈ):
- ΠΠ»ΠΈΠ΅Π½Ρ: Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΎΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π°.
- Java-ΡΠ΅ΡΠ²Π΅Ρ: ΠΎΡΠ²Π΅Ρ.
- ΠΠ»ΠΈΠ΅Π½Ρ: POST Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ.
- Java-ΡΠ΅ΡΠ²Π΅Ρ: ΠΎΡΠΈΠ±ΠΊΠ°.
Java-ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΈΡΠ΅Ρ Π² Π»ΠΎΠ³, ΡΡΠΎ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ 0 Π±Π°ΠΉΡ Π΄Π°Π½Π½ΡΡ
, Π° Nginx-ΠΏΡΠΎΠΊΡΠΈ β ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ Π·Π°Π½ΡΠ» Π±ΠΎΠ»ΡΡΠ΅ 30 ΡΠ΅ΠΊΡΠ½Π΄ (30 ΡΠ΅ΠΊΡΠ½Π΄ β ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΉΠΌΠ°ΡΡΠ° Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ). ΠΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ 0 Π±Π°ΠΉΡ? Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ HTTP Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ POST Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΏΡΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΈΠ· ΡΠ΅ΡΠΈ. ΠΡΠΈΡΡΠΌ ΠΏΡΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ Nginx. ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΠΎΠΎΡΡΠΆΠΈΡΡΡΡ Tcpdump! ΠΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈ. Nginx-ΠΏΡΠΎΠΊΡΠΈ ΡΡΠΎΠΈΡ Π·Π° L3-Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ
ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅ΡΡ Π½Π° ΡΡΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² Π²ΠΈΠ΄Π΅ Vlan-ΡΠ΅Π³Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ»Ρ Π² ΠΏΠ°ΠΊΠ΅ΡΡ:
Π Π΅ΡΡ ΡΡΠΎΡ ΡΡΠ°ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ (ΡΠΎΡ ΡΠ°ΠΌΡΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ ΡΠΈΡΠΊΠΎΠ² ΠΎΡ Workaround), ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Ρ ΠΈΠ΄Π΅ΡΠΎΠ²:
ΠΡΡ ΡΠ°Π·: ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Vlan-ΡΠ΅Π³ΠΎΠΌ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ ΡΡΠ½Π½Π΅Π»Π΅ΠΌ, ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ. Π§ΡΠΎΠ±Ρ ΡΠΎΡΠ½Π΅Π΅ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠΌ ΠΌΠ°ΡΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄ΠΎ Nginx-ΠΏΡΠΎΠΊΡΠΈ.
- ΠΠ°ΠΊΠ΅Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° L3-Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ. ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π²Π½ΡΡΡΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΡΡΠ½Π½Π΅Π»Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠ°ΡΡΡ.
- Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ + Ρ ΠΈΠ΄Π΅ΡΡ ΡΡΠ½Π½Π΅Π»Ρ Π½Π΅ Π²Π»Π΅Π·Π°ΡΡ Π² MTU, ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅ΠΆΠ΅ΡΡΡ Π½Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅ΡΡ.
- Π‘Π²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ L3-Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ Π½Π΅ΠΌΡ Vlan-ΡΠ΅Π³ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π»ΡΡΠ΅.
- Π‘Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ Nginx-ΠΏΡΠΎΠΊΡΠΈ Π²ΠΈΠ΄ΠΈΡ (ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ ΠΏΠΎΡΡΠ°), ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Vlan-ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ Π΅ΡΡΡ, Π½Π΅ ΡΠ±ΠΈΡΠ°Ρ Vlan-ΡΠ΅Π³.
- Linux ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΡΠΊΠ»Π΅ΠΈΠ²Π°Π΅Ρ ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ.
- ΠΠ°Π»Π΅Π΅ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° Vlan-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π³Π΄Π΅ Ρ Π½Π΅Π³ΠΎ ΡΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»ΠΎΠΉ β Vlan-ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
- ΠΠ°ΡΠ΅ΠΌ Linux ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π½Π° Tunnel-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π³Π΄Π΅ Ρ Π½Π΅Π³ΠΎ ΡΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ»ΠΎΠΉ β Tunnel-ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠΎ Π²ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² tcpdump.
ΠΠ°ΡΠ½ΡΠΌ Ρ ΠΊΠΎΠ½ΡΠ°: Π΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΡΠ΅ (Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²) IP-ΠΏΠ°ΠΊΠ΅ΡΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΡΠΎ ΡΠ½ΡΡΡΠΌ vlan- ΠΈ tunnel-ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ?
tcpdump host <ip ΠΊΠ»ΠΈΠ΅Π½ΡΠ°>
ΠΠ΅Ρ, ΡΠ°ΠΊΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°Π½ΡΡΠ΅. ΠΡΡΡ Π»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠΎ ΡΠ½ΡΡΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Vlan-ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ?
tcpdump ip[32:4]=0xx390x2xx
0xx390x2xx β ΡΡΠΎ IP-Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² hex-ΡΠΎΡΠΌΠ°ΡΠ΅.
32:4 β Π°Π΄ΡΠ΅Ρ ΠΈ Π΄Π»ΠΈΠ½Π° ΠΏΠΎΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΠΈΡΠ°Π½ SCR IP Π² Tunnel-ΠΏΠ°ΠΊΠ΅ΡΠ΅.
ΠΠ΄ΡΠ΅Ρ ΠΏΠΎΠ»Ρ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΏΠΈΡΡΡ ΠΏΡΠΎ 40, 44, 50, 54, Π½ΠΎ ΡΠ°ΠΌ IP-Π°Π΄ΡΠ΅ΡΠ° Π½Π΅ Π±ΡΠ»ΠΎ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² hex (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -xx ΠΈΠ»ΠΈ -XX Π² tcpdump) ΠΈ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π²Π°ΠΌ IP.
ΠΡΡΡ Π»ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π±Π΅Π· ΡΠ½ΡΡΠΎΠ³ΠΎ Vlan- ΠΈ Tunnel-ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
tcpdump ((ip[6:2] > 0) and (not ip[6] = 64))
ΠΡΠ° ΠΌΠ°Π³ΠΈΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π½Π°ΠΌ Π²ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ. ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΠΎ IP, Π½ΠΎ Ρ Π½Π΅ ΠΏΡΡΠ°Π»ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠΈΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΠ»ΠΈΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠ½Π΅. ΠΠΎΡ ΠΎΠ½ΠΈ:
14:02:58.471063 In 00:de:ff:1a:94:11 ethertype IPv4 (0x0800), length 1516: (tos 0x0, ttl 63, id 53652, offset 0, flags [+], proto IPIP (4), length 1500)
Β Β Β Β 11.11.11.11 > 22.22.22.22: truncated-ip - 20 bytes missing! (tos 0x0, ttl 50, id 57750, offset 0, flags [DF], proto TCP (6), length 1500)
Β Β Β Β 33.33.33.33.33333 > 44.44.44.44.80: Flags [.], seq 0:1448, ack 1, win 343, options [nop,nop,TS val 11660691 ecr 2998165860], length 1448
Β Β Β Β Β Β Β Β 0x0000: 0000 0001 0006 00de fb1a 9441 0000 0800 ...........A....
Β Β Β Β Β Β Β Β 0x0010: 4500 05dc d194 2000 3f09 d5fb 0a66 387d E.......?....f8}
Β Β Β Β Β Β Β Β 0x0020: 1x67 7899 4500 06xx e198 4000 3206 6xx4 [email protected].
Β Β Β Β Β Β Β Β 0x0030: b291 x9xx x345 2541 83b9 0050 9740 0x04 .......A...P.@..
Β Β Β Β Β Β Β Β 0x0040: 6444 4939 8010 0257 8c3c 0000 0101 080x dDI9...W.......
Β Β Β Β Β Β Β Β 0x0050: 00b1 ed93 b2b4 6964 xxd8 ffe1 006a 4578 ......ad.....jEx
Β Β Β Β Β Β Β Β 0x0060: 6966 0000 4x4d 002a 0500 0008 0004 0100 if..MM.*........
14:02:58.471103 In 00:de:ff:1a:94:11 ethertype IPv4 (0x0800), length 62: (tos 0x0, ttl 63, id 53652, offset 1480, flags [none], proto IPIP (4), length 40)
Β Β Β Β 11.11.11.11 > 22.22.22.22: ip-proto-4
Β Β Β Β Β Β Β Β 0x0000: 0000 0001 0006 00de fb1a 9441 0000 0800 ...........A....
Β Β Β Β Β Β Β Β 0x0010: 4500 0028 d194 00b9 3f04 faf6 2x76 385x E..(....?....f8}
Β Β Β Β Β Β Β Β 0x0020: 1x76 6545 xxxx 1x11 2d2c 0c21 8016 8e43 .faE...D-,.!...C
Β Β Β Β Β Β Β Β 0x0030: x978 e91d x9b0 d608 0000 0000 0000 7c31 .x............|Q
Β Β Β Β Β Β Β Β 0x0040: 881d c4b6 0000 0000 0000 0000 0000 ..............
ΠΡΠΎ Π΄Π²Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ID 53652) Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠ΅ΠΉ (Π²ΠΈΠ΄Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ Exif Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅). ΠΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΅ΡΡΡ, Π° Π² ΡΠΊΠ»Π΅Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² Π΄Π°ΠΌΠΏΠ°Ρ β Π½Π΅Ρ, ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²Π½ΠΎ ΡΠΎ ΡΠ±ΠΎΡΠΊΠΎΠΉ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΡΡΠΎΠΌΡ Π΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅!
ΠΠ΅ΠΊΠΎΠ΄Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π΅ Π²ΡΡΠ²ΠΈΠ» Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠ±ΠΎΡΠΊΠ΅. ΠΡΠΎΠ±ΠΎΠ²Π°Π» ΡΡΡ:
ΠΠ°ΠΊ Π½ΠΈ ΠΊΡΡΡΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Ρ
ΡΠ°ΠΌΡΡ
Sysctl Π½ΠΈΡΠ΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½Π°ΡΠ»ΠΎΡΡ. ΠΡΡΠ°Π²Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ± Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΌΠ°ΡΡΡΠ°Π± ΠΈ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ
. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎ Π½Π°ΡΡΠ»ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΡΡΡΡΠΈΠΊ:
netstat -s | grep "packet reassembles failedβ
ΠΠ½ ΠΆΠ΅ Π΅ΡΡΡ Π² snmpd ΠΏΠΎΠ΄ OID=1.3.6.1.2.1.4.31.1.1.16.1 (
Β«The number of failures detected by the IP re-assembly algorithm (for whatever reason: timed out, errors, etc.)Β».
Π‘ΡΠ΅Π΄ΠΈ Π³ΡΡΠΏΠΏΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·ΡΡΠ°Π»Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½Π° Π΄Π²ΡΡ ΡΡΠΎΡ ΡΡΡΡΡΠΈΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π»ΡΡ Π±ΡΡΡΡΠ΅Π΅, Π½Π° Π΄Π²ΡΡ β ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π° Π΅ΡΡ Π½Π° Π΄Π²ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π»ΡΡ. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΡΡΡΠΈΠΊΠ° Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠΉ HTTP-ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° Java-ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²ΡΡΠ²ΠΈΠ»ΠΎ ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΡ. Π’ΠΎ Π΅ΡΡΡ ΡΡΡΡΡΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΡΠ°Π²ΠΈΡΡ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³.
ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π°Π΄ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π»ΠΈ ΠΎΡΠΊΠ°Ρ Sysctl, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π° ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΡΡ Π½Π΅Π»ΡΠ·Ρ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±Ρ Π²ΡΡΠ²ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠ° Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ.
ΠΠΎΡΠ»Π΅ ΠΎΡΠΊΠ°ΡΠ° Sysctl ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΠ»ΠΈΡΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΈΡΠΈΠ½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΡΠ»Π° Π΄ΠΎΠΊΠ°Π·Π°Π½Π°, ΠΊΠ°ΠΊ ΠΈ ΡΠΎ, ΡΡΠΎ ΠΎΡΠΊΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ.
ΠΡ ΠΎΡΠΊΠ°ΡΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , Π³Π΄Π΅ Π·Π°Π³ΠΎΡΠ΅Π»ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, Π° Π³Π΄Π΅-ΡΠΎ ΠΏΠΎΠ΄ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅ΠΌ Π±ΡΠ»ΠΎ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (ΡΡΠΎ Π±ΡΠ»Π° udp-ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°, ΡΠ°ΡΡΠΈΡΠ½Π°Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ Π±ΡΠ»Π° Π·Π°ΠΌΠ΅ΡΠ½Π° Π½Π° ΠΎΠ±ΡΠ΅ΠΌ ΡΠΎΠ½Π΅).
Π‘Π°ΠΌΡΠ΅ Π³Π»Π°Π²Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠΎΡΠ΅ΠΌΡ Ρ Π½Π°Ρ Π½Π° L3-Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΡΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ? ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ»Π΅ΡΠ°ΡΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ, β ΡΡΠΎ SYN ΠΈ ACK. Π Π°Π·ΠΌΠ΅ΡΡ ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅. ΠΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΠ»Ρ ΡΠ°ΠΊΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΡΠ΅Π½Ρ Π²Π΅Π»ΠΈΠΊΠ°, ΡΠΎ Π½Π° ΠΈΡ ΡΠΎΠ½Π΅ ΠΌΡ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π»ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.
ΠΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΡΠ°Π» ΠΏΠΎΠ»ΠΎΠΌΠ°Π²ΡΠΈΠΉΡΡ ΡΠΊΡΠΈΠΏΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
ΠΠΎΡΠ΅ΠΌΡ ΠΎΡΠΊΠ°Ρ Sysctl Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π», Π° ΡΠ΅Π±ΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π»? ΠΡΠΊΠ°Ρ Sysctl ΠΌΠ΅Π½ΡΠ» ΠΎΠ±ΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π΄Π»Ρ ΡΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ, ΡΡΠ΄Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΌ ΡΠ°ΠΊΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ» ΠΊ ΡΠΎΡΠΌΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π½Π°Π΄ΠΎΠ»Π³ΠΎ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π»ΡΡ.
Π Π΅Π±ΡΡ ΠΎΠ±Π½ΡΠ»ΡΠ» ΠΏΠ°ΠΌΡΡΡ ΠΈ Π²ΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎ Π² ΠΏΠΎΡΡΠ΄ΠΎΠΊ.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π±ΡΠ»ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Workaround? ΠΠ°, Π½ΠΎ Π²Π΅Π»ΠΈΠΊ ΡΠΈΡΠΊ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±Π΅Π· ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ Π°ΡΠ°ΠΊΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Workaround Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΡΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ°Π²Π΄Π°Π½Ρ.
ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ ΠΠ½Π΄ΡΠ΅Ρ Π’ΠΈΠΌΠΎΡΠ΅Π΅Π²Ρ (
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com