á¡á¬ážáá¯á¶ážáááºá¹ááá¬áá«! áá»áœááºá¯ááºáá¡áááºááŸá¬ Dmitry Samsonov ááŒá
áºááŒá®ážá áá»áœááºá¯ááºááẠOdnoklassniki ááœáẠáŠážáá±á¬ááºá
áá
áºá
á®áá¶ááá·áºááœá²áá°á¡ááŒá
Ạáá¯ááºááá¯ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááœáẠáá¯ááºááá¯ááºážááá¯ááºáá¬áá¬áá¬áá±á«ááºáž 7 áá»á±á¬áºá áá»áœááºá¯ááºááá¯á·á cloud ááœáẠááœááºááááºáá¬áá±á«ááºáž 11 ááŸáá·áº á¡ááá®áá±ážááŸááºážáá±á«ááºáž 200 ááŸáááŒá®ážá á¡áá»áá¯ážáá»áá¯ážáá±á¬ááœá²á·á
ááºážáá¯á¶áá»á¬ážááœáẠááá°áá®áá±á¬á¡á
á¯á¡áá±ážáá±á«ááºáž 700 ááá¯ááœá²á·á
ááºážáá¬ážáá«áááºá áá¬áá¬á¡áá»á¬ážá
á¯ááẠCentOS 7 ááá¯á¡áá¯á¶ážááŒá¯áááºá
14 áá¯ááŸá
ẠááŒáá¯ááºá 2018 áááºáá±á·ááœáẠFragmentSmack á¡á¬ážáááºážáá»ááºá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºááᯠáá¯ááºááŒááºáá²á·áááºá
(
ááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠkernel ááᯠá¡ááºááááºáá¯ááºááŒááºážááᯠáá¯á¶ážááááá·áºáá»ááºáá«á ááá¯á·áá±á¬áº ááœá²ááœá²ááŸá¯áá»á¬ážááŸááá«áááº...
áá¯ááºáá¯ááºááŸá¯ááœáẠkernel ááᯠáá»áœááºá¯ááºááá¯á· áááºááá¯á· á¡ááºááááºáá¯ááºáááºáááºážá
áá±áá¯áá»á¡á¬ážááŒáá·áºá áá¬ááŸáááŸá¯ááºááœá±ážáá«á
- áááºáá±á·áá»áºáá»á¬ážááᯠáá±á«ááºážáá¯ááºáá¯ááºáá«
- áááºážááá¯á·ááᯠáá¬áá¬á¡áá»á¬ážá¡ááŒá¬ážááœáẠááá·áºááœááºážáá« (áá»áœááºá¯ááºááá¯á·á cloud ááᯠáááºáá¶áá±á¬ááºááœááºáá±ážááá·áº áá¬áá¬áá»á¬ážá¡áá«á¡áááº)á
- áááºá¡áá¬á០áá»ááºáááœá¬ážááŒá±á¬ááºáž áá±áá»á¬áá«á á±á
- áá¯á¶ááŸáẠkernel áááºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááŸá¬ážá¡ááœááºážáááŸááá² á¡áá¯á¶ážááŒá¯áá¬ážááŒá±á¬ááºáž áá±áá»á¬áá«á á±á
- áááºá¡áááºážáááºá á±á¬áá·áºáá«á
- áá¬áá¬á áœááºážáá±á¬ááºáááºááᯠá á áºáá±ážáá«á
- áá¬áá¬á¡áá áºáá»á¬ážá ááŒáá·áºáá»ááºááŸá¯ááᯠkernel á¡áá áºááá¯á· ááŒá±á¬ááºážáá«á
- áá¬áá¬á¡á¬ážáá¯á¶ážááᯠáá±áá¬á ááºáá¬ááŒáá·áº á¡ááºááááºáá¯ááºáá« (ááŒá¿áá¬áá»á¬ážááŸááá¬áá«á á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡áá±á«áº áááºáá±á¬ááºááŸá¯á¡áááºážáá¯á¶ážááŒá áºá¡á±á¬áẠáá áºááŒáááºáá»áŸáẠáá±áá¬á ááºáá¬áá áºáá¯)á
- áá¬áá¬á¡á¬ážáá¯á¶ážááᯠááŒááºáááºá áááºáá«á
áá»áœááºá¯ááºááá¯á·ááŸááá¬ážáá±á¬ á á±á·á¡ááá¯ááºážá¡áááºá¡á¬ážáá¯á¶ážá¡ááœáẠááŒááºáá¯ááºáá«á ááá¯á¡áá»áááºááœááºá
- á áá±á¬á·áẠCentOS 7 3.10 - áá¯á¶ááŸááºáá¬áá¬á¡áá»á¬ážá á¯á¡ááœááº;
- ááá®áᬠ4.19 - áá«ááá¯á·á¡ááœááº
one-cloud áááẠBFQá BBR á áááŒáá·áº ááá¯á¡ááºáá±á¬ááŒá±á¬áá·áºá - Elrepo kernel-ml 5.2 - á¡ááœá²
á¡ááœááºáááºáá¬ážáá±á¬ ááŒáá·áºááŒá°ážáá°áá»á¬áž á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº 4.19 ááẠááááºáááŒáááºááŒá áºáá±áá±á¬áºáááºáž áá°áá®áá±á¬á¡ááºá¹áá«áááºáá»á¬áž ááá¯á¡ááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
áááºááá·áºááŸááºážáá¬ážááá·áºá¡ááá¯ááºáž áá¬áá¬áá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬ááᯠááŒááºáááºá áááºááŒááºážááẠá¡áá»áááºá¡ááŒá¬áá¯á¶ážááŒá áºáááºá áá¬áá¬á¡á¬ážáá¯á¶ážá¡ááœáẠá¡á¬ážáááºážáá»ááºá¡á¬ážáá¯á¶ážááẠá¡áá±ážááŒá®ážáááºááá¯ááºáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡ááºáá¬áááºá០ááá¯ááºááá¯ááºáááºáá±á¬ááºááá¯ááºáá±á¬ áá°áá»á¬ážááá¯áᬠááŒááºáááºá áááºáá«áááºá cloud ááœááºá ááŒá±á¬ááºážááœááºááŒááºááœááºáááŒá áºá á±áááºá áá»áœááºá¯ááºááá¯á·ááẠááŒááºáááŸáááºáá±á¬ááºááá¯ááºáá±á¬ááœááºááááºáá¬áá»á¬ážááᯠkernel á¡áá áºáá áºáá¯ááŒáá·áº áá¬áá¬áá áºáá¯áá»ááºážá á®ááŸáá·áº áá»áááºáááºááá¬ážáá±á¬áºáááºáž ááŒáœááºážáá»ááºáááŸááá² host á¡á¬ážáá¯á¶ážááᯠááŒááºáááºá áááºáá«á áá¶áá±á¬ááºážáá±á¬ááºáá áœá¬á áá¯ááºáá¯á¶ážáá¯ááºáááºážááẠáá¯á¶ááŸááºáá¬áá¬áá»á¬ážááẠááá¯ááá¯ááá¯ážááŸááºážáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááá¯ááºáá¶áá²á·ááœááºááááºáá¬áá»á¬ážááẠááŒááºáááºá áááºáá»áááºááœáẠá¡ááŒá¬ážáá¬áá¬ááá¯á· ááá¯ážááŸááºážá áœá¬ááœáŸá±á·ááá¯ááºáááºá
ááá¯á·áá±á¬áºá á¡áá¯ááºáá»á¬ážá áœá¬ááŸááá±áá²ááŒá áºááŒá®áž áááºááá¹ááááºáá»á¬ážá áœá¬ááŒá¬ááá¯ááºááŒá®áž áá¬ážááŸááºážá¡áá áºááœáẠááŒá¿áá¬áá áºá á¯á¶áá áºáá¬ááŸááá«á ááá±á«ááºážáá»á¬ážá áœá¬á¡ááááŒá áºáááºá ááá¯ááºááá¯ááºáá°áá»á¬ážááẠá€á¡áá»ááºááᯠáá±á¬ááºážá áœá¬áá¬ážáááºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááẠá¡á á®á¡á áẠB ááá¯á¡ááºáá«áááºá
FragmentSmack/SegmentSmacká ááŒá±ááŸááºážáá»ááº
áá¶á¡á¬ážáá»á±á¬áºá áœá¬á á¡áá»áá¯á·áá±á¬ á¡á¬ážáááºážáá»ááºáá»á¬ážá¡ááœáẠááá¯áá²á·ááá¯á·áá±á¬ á¡á á®á¡á áẠB ááŸáááŒá®ážá áááºážááᯠááŒá±ááŸááºážáááºážáᯠáá±á«áºáááºá á¡áá»á¬ážá á¯ááŸá¬á áááºážááẠááŒá áºááá¯ááºáá»á±ááŸááá±á¬ á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááᯠá¡áááºážáá¯á¶ážááŒá áºá á±ááẠááá¯á·ááá¯áẠá¡á¬ážáááºážáá»ááºáá»á¬ážá á¡áá¯á¶ážáá»ááŸá¯ááᯠáá¯á¶ážááááºááŸá¬ážáá áºááá¯ááºááá·áº kernel/application áááºáááºáá»á¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá áºáá¯ááŒá áºáááºá
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 á¡ááœáẠáááºážááá¯á·áááœá²áááºáá»á¬ážááᯠipv256 ááŸáá·áº net.ipv192.ipfrag_low_thresh) á០262144 k ááá¯á·ááá¯áẠ64B ááá¯á· áá±ážá á¬ážá áœá¬ááŒá±á¬ááºážáá²ááá¯ááºáááºá á¡á±á¬ááºááá¯ááºážá á ááºážáááºááŸá¯áá»á¬ážááẠáá¬á·ááºáá²á áááºáááºáá»á¬ážááŸáá·áº á¡ááŒá±á¡áá±áá»á¬ážáá±á«áºáá°áááºá ááá¯ááºááá¯ááºááŸá¯áá áºáá¯á¡ááœááºáž CPU á¡áá¯á¶ážááŒá¯ááŸá¯ á¡áááºážáááºá០áááááá¬áᬠáá»áááºážááœá¬ážáááºááᯠááŒááááºá ááá¯á·áá±á¬áºá XNUMXK á¡ááá¯ááºážá¡á ááŸá áºáá¯áᬠáá áºááŒáááºáá»áŸáẠááŒááºáááºá á¯áá±ážááá·áºáááºážá á®ááœáẠá¡á¶áááºááœááºáá»ááŒá áºááá¯ááºáá±á¬ááŒá±á¬áá·áº ipfrag_high_thresh=XNUMX bytes ááŒá±á¬áá·áº á áœááºážáá±á¬ááºáááºáááºáá±á¬ááºááŸá¯á¡áá»áá¯á·ááŸáááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŒá®ážáá¬ážáá±á¬ 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 ááœáẠá¡á áááºá áááºá¡ááœáŸá¬ááœáŸá¬ á¡ááœá¬ážá¡áá¬áá»á¬áž ááŸááá±áá±á¬áºáááºáž áááááá¬áᬠáááŸááá«á ááá¹ááá¬áá»á¬ážáááŸááá« - áááºááŒá±ááŸááºážáááºážááá¯áá¯ááºááá¯ááºáááºá
FragmentSmack/SegmentSmacká áááááœá±áž
áá»áœááºá¯ááºááá¯á· ááááá¯á¶ážááŒá¯á¶ááœá±á·áááá·áº ááŒá¿áá¬ááŸá¬ áá áºáá«áá áºáá¶ááœáẠcloud container áá»á¬ážááẠá¡áá áºáá±á¬ áááºáááºáá»á¬ážááᯠáá áºá áááºáá áºááá¯ááºážáᬠ(ipfrag_low_thresh) ááá¯áᬠá¡áá¯á¶ážááŒá¯ááŒááŒá®áž áá áºáá«áá áºáᶠáááºážááá¯á·ááᯠáá¯á¶ážá á¡áá¯á¶ážáááŒá¯áá² - áááºážááá¯á·ááẠá¡á ááœáẠááá¯ážááá¯ážááŸááºážááŸááºáž áá»ááºááœá¬ážááŒááºáž ááŒá áºáááºá ááŒá¿áá¬ááᯠáááºááŒáááºá áœá¬ ááŒááºáááºáá¯ááºáá¯ááºááẠáááŒá áºááá¯ááºáá« (áááºáááºá¡á¬ážáá¯á¶ážááᯠá¡áááºá¡áá²áááŸááá² ááá¯ááºááá¯ááºá¡áá¯á¶ážááŒá¯áá¬ážáááº)á á¡á ááœáẠááœááºááááºáᬠáá»ááºáá»áááá·áº á¡ááŒá±á¬ááºážáááºážááᯠáá¬ážáááºáááºááŸá¬áááºáž áááœááºáá°áá«- á¡ááŸá¬ážá¡ááœááºážáá»á¬áž áááœá±á·áá²á·ááá«á áá±áá»á¬áááºááŸá¬- áááºáááºáá»á¬ážááᯠááŒááºááŸáá·áºááŒááºážááẠááœááºááááºáá¬áá»ááºáá»ááŒááºážááŒá¿áá¬ááᯠááŒá±ááŸááºážáá±ážáááºá
host ááœáẠSysctl ááá¯á¡áá¯á¶ážááŒá¯ááẠá¡áááºááŒá±á¬áá·áº ááá¯á¶áá±á¬ááºááááºážá ááœááºááááºáá¬ááẠáááºážáááá¯ááºááá¯ááºáá®ážááá·áºááœááºááẠNamespace ááœáẠáá±ááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áº á¡áááºážáá¯á¶ážááŒá
áºáááºá
ááœááºááááºáá¬ááœáẠSysctl áááºáááºáá»á¬ážááᯠáááºáá²á·ááá¯á· áááááá»áá» á¡áá¯á¶ážáá»ááááºážá áá»áœááºá¯ááºááá¯á·áááœááºááááºáá¬áá»á¬ážááẠá¡ááœáá·áºáá°ážááá¶ááá±ážáá±á¬ááŒá±á¬áá·áºá ááœááºááááºáá¬áá²ááá¯á·áááºááŒááºážááŒáá·áº Sysctl áááºáááºááᯠáááºááŒá±á¬ááºážáá²ááá¯ááºáááºááá¯ááºáá« - ááá·áºááœáẠáá¯á¶áá±á¬ááºáá±á¬á¡ááœáá·áºá¡áá±ážáááŸááá«á ááœááºááááºáá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠááá¯á¡áá»áááºá áá»áœááºá¯ááºááá¯á·á cloud ááẠDocker (ááá¯
áá¬ážááŸááºážáá»á¬ážááᯠááŸá¬ááœá±áá±á
ááºááœáẠDocker API ááẠá¡ááŸá¬ážá¡ááœááºážá¡á¬ážáá¯á¶ážááᯠááŒááºááá±ážáá²á·áá« (á¡áááºážáá¯á¶ážáá¬ážááŸááºáž 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_low_thresh ááẠ256M ááŸááá±ážáá±á¬á¡áá«ááœáẠipfrag_high_thresh ááẠ3K ááá¯á·áááºááŸááºáááºááŒáá¯ážá á¬ážáá²á·áááºá ááá¯ááá¯áááºááŸá¬á á¡áááºááá·áºáááºáá»ááºááẠáááá·áºááœá¬ážáá«áááºá error ááᯠááŒá áºá á±áá±á¬ ááá·áºáááºáá»ááºááẠáááá·áºáááºá
ááá¯á¡áá»áááºááœááºá á
áááºááŒá®ážáá±á¬áẠááœááºááááºáá¬ááᯠááŒááºáááºááŒááºáááºááŒááºážá¡ááœáẠáá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºááá¹ááá¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒá®ážááŒá
áºááẠ(ááŒá®ážáá±á¬áẠááœááºááááºáá¬ááᯠá¡á±ážáá²á
á±áá«áááºá
FragmentSmack/SegmentSmacká áááááœá±áž á
Cloud ááœáẠWorkaround á¡áá¯á¶ážááŒá¯ááŒááºážááᯠáá¬ážáááºááẠá¡áá»áááºáááá®á á¡áá¯á¶ážááŒá¯áá°áá»á¬ážáá¶á០ááááá¯á¶áž ááŸá¬ážáá«ážáá±á¬ ááá»á±áááºáá»ááºáá»á¬áž áá±á¬ááºááŸááá¬áá«áááºá ááá¯á¡áá»áááºááœááºá ááááá¬áá¬áá»á¬ážááœáẠWorkaround ááá¯á áááºá¡áá¯á¶ážááŒá¯áá»áááºááŸá á áááºááá¹ááááºáá»á¬ážá áœá¬ááŒá¬áá²á·áááºá áááŠáž á á¯á¶á ááºážá á áºáá±ážááŸá¯ááœáẠáááºáá±á¬ááºááŸá¯áá áºáá¯áá»ááºážá á®á¡áá±á«áº ááá¯ááºááŒá¬ážáá»ááºáá»á¬ážááᯠáááºáá¶áááŸááá²á·ááŒá®áž áááºážáááºáá±á¬ááºááŸá¯áá»á¬ážá áá¬áá¬á¡á¬ážáá¯á¶ážááá¯ááºááŒá±á¬ááºáž ááŒááá²á·áááºá ááŒá¿áá¬ááẠá¡ááœááºá¡áááºáž ááá±áá»á¬ááá±áᬠááŒá áºáá¬ááŒááºáááºá
ááááŠážá áœá¬á áá»áœááºá¯ááºááá¯á·ááẠSysctl áááºáááºáá»á¬ážááᯠááŒááºááŸáá·áºááẠááŒáá¯ážá á¬ážáá²á·áá±á¬áºáááºážá áááºážááẠáááºááá·áºá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯áá»áŸ áááŸááá«á áá¬áá¬ááŸáá·áº á¡ááá®áá±ážááŸááºážáááºáááºáá»á¬ážááŒáá·áº á¡áá»áá¯ážáá»áá¯ážáá±á¬ ááŒááºááŸááºááŸá¯áá»á¬ážááᯠá¡áá±á¬ááºá¡áá°áááŒá¯áá«á ááŒááºáááºá áááºááŒááºážááᯠá¡áá±á¬ááºá¡áá°ááŒá áºá á±áááºá Linux ááᯠááŒááºáááºá áááºááŒááºážááẠááŸá±ážáá±áẠWindows á¡ááœáẠáá¯á¶ááŸááºá¡ááá¯ááºážááẠááá¬áááá»áá«á ááá¯á·áá±á¬áºá áááºážááẠáá°áá®áá±ážáá²á·ááŒá®áž Sysctl ááŸá áááºáááºá¡áá áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá±á¬á¡áá«ááœáẠáááºážááᯠ"kernel glitch" á¡áá áá±ážááŸááºáá¬ážáááºá áááºââáá±á¬ááºâáá ááá¯ááºâáá²áá²á·áá²...
áá¯á¶ážáááºá¡ááŒá¬ááœáẠááŒá¿áá¬á ááŒááºááŒá
áºáá¬áááºá á€áá¬áá¬áá»á¬ážáááœá²á·á
ááºážáá¯á¶ááẠá¡áá±á¬áºáá±ážááá¯ážááŸááºážáá«áááº- Nginx ááẠproxy/balancer áá¯ááºááœááºááŒá
áºáááºá á¡ááœá¬ážá¡áᬠááááºááá»á¬ážáá«áá°ážá áááá«ááºážááŸááºá
á¯á¡áá
áº- áá±á¬ááºáááºáá»á¬ážá¡ááœáẠ504 á¡ááŸá¬ážá¡ááœááºážá¡áá±á¡ááœááºááẠáá±á·á
ááºááá¯ážáá»á¬ážáá¬áá±ááẠ(
á¡ááŸá¬ážá¡ááœááºážá¡á¬ážáá¯á¶ážááẠáá°áá®áá±á¬áá±á¬ááºáá¶á¡ááŒá±á¬ááºážááŒá áºááẠ- cloud ááœááºááŸááá±á¬áá áºáá¯á¡ááŒá±á¬ááºážááŒá áºáááºá á€áá±á¬ááºááœááºááœááºááŸá áááºáá±á·áá»áºá¡ááá¯ááºážá¡á áá»á¬ážá¡ááœáẠáááºááá¯áá®áá¯á¶ážá áœá²ááŸá¯ááááºááẠá€áá²á·ááá¯á·ááŒá áºáááº-
áááºážááẠáááºáááºááŸá¯á áá áºááááºáá»á¬ážááœáẠááŒá¿áá¬á á¡áááºááŸá¬ážáá¯á¶ážáá±á¬ ááá¹ááá¬áá»á¬ážáá²á០áá áºáá¯ááŒá áºáááºá áá áºáá»áááºáááºážááŸá¬ááẠcloud ááœááºá QoS (Traffic Control) áááºáááºáá»á¬ážáá«ááŸááá±á¬ á¡ááŒá¬ážáá±á¬ ááœááºáááºááŒá¿áá¬ááᯠááŒá±ááŸááºážáá²á·áááºá áááºáááºá¡ááá¯ááºážá¡á áá»á¬ážá¡ááœáẠáááºááá¯áá®áá¯á¶ážá áœá²ááŸá¯ ááááºááœááºá áááºážááẠá¡ááá¡áá»áá°áá®áááº-
áá°ááá»ááºááẠááá¯ážááŸááºážáááº- ááááºáá±á«áºááœáẠáááºážááá¯á·ááẠáá°áá®áá«áá áááºážááá¯á·ááœáẠáá°áá®áá±á¬ á¡ááŒá±á¬ááºážááŒáá»ááºááŸááááºá ááá¯á·á¡ááŒááºá á€ááŸááºáá¬ááºá¡áá»áá¯ážá¡á á¬ážááŸáá·áºáááºáááºááá·áº ááŒá¿áá¬áá»á¬ážááẠá¡ááœááºááŸá¬ážáá«ážáááºá
ááŒá¿áá¬áá¡ááŸá áºáá¬áááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠQoS ááœáẠáá¯á¶áá±áááºáááºáá»á¬ážááŸáá·áºá¡áá° fq packet á¡áá»áááºááá¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒááºážááŒá áºáááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áá»áááºáááºááŸá¯áá áºáá¯á¡ááœááºá áááºážááẠááá·áºá¡á¬áž áááºážá á®ááẠá¡áá¯áẠ100 áá±á«ááºážááá·áºááá¯ááºá á±ááŒá®áž á¡áá»áá¯á·áá±á¬áá»áááºáááºááŸá¯áá»á¬ážááẠáá»ááºáááºááŒááºáááºááá·áºá¡ááŒá±á¡áá±áá»á¬ážááœáẠáááºážá á®ááŒááºážááᯠááá·áºáááºá ááŒá¯áá¬áááºá á€ááá á¹á ááœááºá packets áá»á¬ážáá»áááºážááœá¬ážáááºá 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â ááẠáá»áááºáááºááŸá¯áá áºáá¯á áááºážá á®ááá·áºáááºáá»ááºááᯠáá»á±á¬áºááœááºááŒááºážááŒá±á¬áá·áº áá»áááºážááœá¬ážáá±á¬ áááºáááºáá»á¬ážááŸáá·áº â464545 áá»áááºážááœá¬ážáááºâ ááẠá€á¡áá»áááºááá¬ážáá±ážáá°á áá»áááºážááœá¬ážáá±á¬ áááºáá±á·ááºá»á¡á¬ážáá¯á¶ážá áá±á«ááºážá á¯ááŒá áºáááºá áááºážá á®ááá¬ážá¡ááŸááºááᯠáááá ááá¯ážááŒáŸáá·áºááŒá®áž ááœááºááááºáá¬áá»á¬ážááᯠááŒááºáááºá áááºááŒá®ážáá±á¬ááºá ááŒá¿áá¬áááºááœá¬ážáááºá ááá¯ááºááŒá®áž smoothie áá±á¬ááºááá¯á·ááá«áááºá
FragmentSmack/SegmentSmacká áá±á¬ááºáá¯á¶ážááœá±áž
ááááŠážá áœá¬á kernel ááœááºá¡á¬ážáááºážáá»ááºáá»á¬ážááŸáááŒá±á¬ááºážááŒá±ááŒá¬ááŒá®ážááá»á¬ážá áœá¬á¡ááŒá¬ááœáẠFragmentSmack á¡ááœááºááŒááºáááºáá»ááºáá áºáá¯áá±á¬ááºáá¯á¶ážááœááºáá±á«áºáá¬ááẠ(ááŒáá¯ááºáááœááºááŒá±ááŒá¬áá»ááºááŸáá·áºá¡áá° SegmentSmack á¡ááœááºáá¬ááŒááºáááºááŒááºážááŒá áºáááº) áááºáá»áœááºá¯ááºááá¯á·á¡á¬áž Workaround ááá¯á áœáá·áºááœáŸááºáááºá¡ááœáá·áºá¡áá±ážáá±ážáá±á¬á á¡á²áá«á áá»áœááºáá±á¬áºááá¯á·ááᯠáá±á¬áºáá±á¬áºáá¯áá¹ááá±ážáááºá á€á¡áá»áááºá¡áá±á¬á¡ááœááºážá áá»áœááºá¯ááºááá¯á·ááẠá¡áá»áá¯á·áá±á¬áá¬áá¬áá»á¬ážááᯠkernel á¡áá áºááá¯á· ááœáŸá²ááŒá±á¬ááºážááẠá á®áá¶áá¬ážááŒá®ážáá¬ážááŒá áºááŒá®áž ááᯠáá»áœááºá¯ááºááá¯á·ááẠá¡á á០á áááºááááºááŒá áºáááºá FragmentSmack fix ááá¯áá á±á¬áá·áºáá² kernel ááᯠáá¬ááŒá±á¬áá·áº update áá¯ááºáá¬áá²á á¡ááŸááºááŸá¬ á¡ááá¯áá« á¡á¬ážáááºážáá»ááºáá»á¬ážááᯠáá¬ááœááºááŒááºážáá¯ááºáááºážá ááºááẠCentOS ááá¯ááºááá¯áẠááœááºážáá¶ááŒááºážáá¯ááºáááºážá ááºááŸáá·áº ááá¯ááºááá¯ááºáá±áá«ááẠ(Kernel áá áºáá¯áááºážááᯠááœááºážáá¶ááŒááºážááẠá¡áá»áááºááá¯ááŒá¬áááº)á ááá¯á·á¡ááŒááºá SegmentSmack ááẠááá¯áá¡áá¹ááá¬ááºáá»á¬ážáá±á¬ á¡á¬ážáááºážáá»ááºááŒá áºááŒá®áž áááºážá¡ááœáẠááŒááºáááºáá»ááºáá»ááºáá»ááºážáá±á«áºáá¬áá±á¬ááŒá±á¬áá·áº áááºááá¯á·áááºááŒá áºá á± á¡áááá¹áá«ááºááŸáá á±áááºá ááá¯á·áá±á¬áºáááºážá áá»áœááºá¯ááºááá¯á·ááẠCentOS ááœáẠkernel ááᯠááá¯ážááŸááºážá áœá¬ ááœááºážáá¶ááá¯ááºáá±á¬á·ááẠááŒá áºáá±á¬ááŒá±á¬áá·áº CentOS 7.5 ááœáẠáá±á«áºáá¬ááá·áº FragmentSmack á¡á¬ážáááºážáá»ááºááẠáá¬ážááŸááºáž 7.6 ááœááºáᬠááŒá¯ááŒááºáá¬ážáá±á¬ááŒá±á¬áá·áº á¡ááºááááºááᯠ7.5 ááá¯á· áááºááá·áºáᬠ7.6 ááá¯á· á¡ááºááááºááŒáá·áº ááŒááºáááºá áááºááá¯ááºáá«áááºá áá®ááá¯áááºáž ááŒá áºáááºáá«áááºá
áá¯áááá¡áá±ááŒáá·áºá ááŒá¿áá¬áá»á¬ážááŸáá·áºáááºáááºááŒá®áž ááŸá¬ážáá«ážá¡áá¯á¶ážááŒá¯áá° ááá»á±áááºáá»ááºáá»á¬ážááẠáá»áœááºá¯ááºááá¯á·áᶠááŒááºáááºáá±á¬ááºááŸááá¬áá«áááºá ááá¯á¡áá« áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠáá±á¬ááºáááºáá»á¬ážáá¶á០áá»áœááºá¯ááºááá¯á·ááá¬áá¬áá»á¬ážááá¯á· ááá¯ááºáá»á¬ážá¡ááºáá¯ááºáááºááŒááºážááŸáá·áº áááºááá¯ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áá±áá»á¬áááá¬ážááŒá®ážááŒá áºáááºá ááá¯á·á¡ááŒááºá á á¯á á¯áá±á«ááºážá¡á á¯ááá¯ááºá¡ááŒá¯á¶ááá¯ááºá០á¡ááºáá¯ááºá¡áá±á¡ááœáẠá¡ááœááºáááºážáá«ážáá±á¬ á¡áá±á¡ááœááºááẠá€áá¬áá¬áá»á¬ážááŸáááá·áº áá±á¬ááºááŸáááœá¬ážáá«áááºá
á¡áááºáá±á¬áºááŒáá« áá¯á¶ááŒááºá០áá»áœááºá¯ááºááá¯á· ááŸááºááááá·áºá¡ááá¯ááºážá Sysctl ááᯠáá±á¬ááºááŒá±á¬ááºážááŒááºááŸáá·áºááŒááºážááẠá¡áá±á¬ááºá¡áá° áááŒá
áºáá«á ááŒááºáááºá
áááºááŒááºážááᯠá¡áá±á¬ááºá¡áá°ááŒá
áºá
á±áá±á¬áºáááºáž áá¬áá®ááŒá
áºáááºá
Sysctl ááŸáá·áºáááºáááºá áá¶áááá»á¬ážááᯠááááºááŸá¬ážáá²á·áá±á¬áºáááºáž ááá¯áá
áºááŒáááºááœáẠá¡áá»ááºá¡áááºáá»á¬ážááᯠáááºááá¯ááºááá»áŸ á
á¯áá±á¬ááºážááẠááá¯á¡ááºáá«áááºá ááŒá
áºáá»ááºáá±áááºáá»á¬ážááᯠááá¯ááá¯áááá»á
áœá¬áá±á·áá¬áááºá¡ááœáẠclient ááœáẠá¡ááºáá¯ááºáááºááŒááºážááŒá¿áá¬ááᯠááŒááºáááºáááºáá®ážááá¯ááºá
áœááºážáááŸáááŒááºážáááºáž ááŸááá«áááºá
áááŸáááá¯ááºáá±á¬ á á¬áááºážá¡ááºážáá»á¬ážááŸáá·áº ááŸááºáááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒááºážááẠááŒá áºáá»ááºáá±ááá·áºá¡áá¬ááᯠáá¬ážáááºááẠáá»áœááºá¯ááºááá¯á·ááᯠááá¯ááá¯áá®ážáááºá á±áá«áááºá áá®ážááŒá¬ážáá»áááºáááºááŸá¯áá áºáá¯ááᯠâáá¶á á¬ážâ ááá¯ááºááẠááŒá¿áá¬ááᯠáá»áá¯ážááœá¬ážááẠá á°ážááŸáá±á¬á áœááºážáááºáááŸááá²á·áá«á áá±á¬ááºáá¯á¶ážááœááºá developer áá»á¬ážááẠá¡ááá®áá±ážááŸááºážá á¡áá°ážáá¬ážááŸááºážááᯠá¡áá¯á¶ážááŒá¯á Wi-Fi ááŸáá áºááá·áº áá»áááºáááºááá·áºá¡áá« á ááºážáááºáááááá¬áá áºáá¯ááœáẠááŒá¿áá¬áá»á¬ážááᯠáááºááŒáááºá áœá¬ ááŒááºáááºáá¯ááºáá¯ááºááá¯ááºáá²á·áááºá áá«áᬠá á¯á¶á ááºážá á áºáá±ážááŸá¯ááŸá¬ á¡á±á¬ááºááŒááºááŸá¯áá áºáá¯áá«áá²á áá»áœááºá¯ááºááá¯á·á Java á¡ááá®áá±ážááŸááºážááŒá áºááá·áº backend ááá¯á· proxy áá±ážáá±á¬ Nginx ááŸáá·áº áá»áááºáááºáá¬ážáá±á¬ client
ááŒá¿áá¬áá»á¬ážá¡ááœáẠááœá±ážááœá±ážááŸá¯ááŸá¬ á€áá²á·ááá¯á·ááŒá áºááẠ(Nginx proxy áááºááœáẠááŒááºáááºáá¬ážáááº)á
- áá±á¬ááºáááº- ááá¯ááºáá áºáá¯ááᯠáá±á«ááºážáá¯ááºááœá²ááŒááºážááŸáá·áºáááºáááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠáááºáá¶ááá°ááẠáá±á¬ááºážááá¯ááŒááºážá
- Java áá¬áá¬- áá¯á¶á·ááŒááºááŸá¯á
- áá¯á¶ážá áœá²áá°- ááá¯ááºááŒáá·áº ááá¯á·á áºáááºáá«á
- Java áá¬áá¬- á¡ááŸá¬ážá
áá
áºáá»áááºáááºážááŸá¬áááºá Java áá¬áá¬ááẠáááá¯ááºážááá·áºáá¶á០áá±áᬠ0 bytes áááºáá¶áááŸáááá·áº ááŸááºáááºážááá¯á· á
á¬áá±ážááŒá®áž áá±á¬ááºážááá¯áá»ááºááẠá
áá¹ááá·áº 30 áá»á±á¬áºááŒá¬ááŒá±á¬ááºáž Nginx proxy á áá±ážáá¬ážááẠ(á
áá¹ááá·áº 30 ááẠáááá¯ááºážááá·áºá¡ááá®áá±ážááŸááºážá á¡áá»áááºáá¯ááºáá¯á¶ážáá»áááºááŒá
áºáááº)á áá¬ááŒá±á¬áá·áº á¡áá»áááºáá¯ááºááŒá®áž áá¬ááŒá±á¬áá·áº 0 bytes áááºáá¬áá¬áá²á HTTP ááŸá¯áá±á¬áá·áºááŸááŒáá·áºáá»áŸáẠá¡áá¬á¡á¬ážáá¯á¶ážááẠáááºážáá²á·ááá¯á· áá¯ááºáá±á¬ááºááá¯ááºáá±á¬áºáááºáž ááá¯ááºáá«ááá·áº POST ááẠááœááºáááºá០áá»á±á¬ááºááœááºááœá¬ážáá¯á¶ááááºá ááá¯á·á¡ááŒááºá áááºážááẠclient ááŸáá·áº Nginx á¡ááŒá¬ážáá»á±á¬ááºááœááºááœá¬ážáááºá Tcpdump ááŒáá·áº ááá·áºááá¯ááºááẠáááºáá¬áááºááẠá¡áá»áááºáááºááŒá®á áá«áá±ááá·áº á¡áááºáá¯á¶áž network configuration ááᯠáá¬ážáááºááá¯á· ááá¯áá«áááºá Nginx proxy ááẠL3 balancer ááá±á¬ááºááœááºááŸááááºá
á€ááá á¹á ááœááºá ááœááºáááºááẠpacket áá»á¬ážááá¯á· áááºážáááá¯ááºááá¯ááºá¡ááœááºáá»á¬ážááᯠááá·áºááœááºážáá±ážááá·áº Vlan-tagged traffic áá¯á¶á á¶ááŒáá·áº á€áá¬áá¬áá¶ááá¯á· áá±á¬ááºááŸááá¬áááº-
ááá¯á·á¡ááŒáẠá€á¡ááœá¬ážá¡áá¬ááá¯áááºáž á¡ááá¯ááºážááá¯ááºážááœá²áá¬ážááá¯ááºááẠ( Workaround á០á¡áá¹ááá¬ááºáá»á¬ážááᯠá¡áá²ááŒááºáá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááŒá±á¬áá²á·ááá·áº á¡áááºá¡ááœááºá¡ááá¯ááºážá¡á á á¡áááºážáááºáá»áŸáá±á¬ áá¬ááá¯ááºááŸá¯ááºážá¡ááá¯ááºáž)á áá±á«ááºážá á®ážáá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬ááá¯áááºáž ááŒá±á¬ááºážáá²á á±áááº-
áá áºáááº- áá¯ááºááá¯ážááŸá¯áá»á¬ážááᯠVlan tag ááŒáá·áº áá¯ááºááá¯ážáá¬ážááŒá®áž á¥áááºááá¯ááºáá±á«ááºážáá áºáá¯ááŒáá·áº áá¯á¶ážá¡á¯ááºáá¬ážáᬠá¡ááá¯ááºážááá¯ááºážááœá²áá¬ážáááºá áááºážááẠáááºááá¯á·ááŒá áºáá»ááºáááºááᯠááá¯ááá¯áá¬ážáááºáááºá client á០Nginx proxy ááá¯á· packet áááºážááŒá±á¬ááºážááᯠááŒá±áá¬áá¶ááŒáá·áºááŒáá«á áá¯á·á
- packet ááẠL3 balancer ááá¯á· áá±á¬ááºááŸááááºá áá±áá¬á ááºáá¬á¡ááœááºáž ááŸááºáááºáá±á¬áááºážááŒá±á¬ááºážááŸá¬ááœá±ááŒááºážá¡ááœáẠáááºáááºááᯠá¥áááºááá¯ááºáá±á«ááºážáá áºáá¯ááœáẠáá¯ááºááá¯ážáá¬ážááŒá®áž ááœááºáááºáááºááá¯á· áá±ážááá¯á·áááºá
- áááºááẠ+ á¥áááºááá¯ááºáá±á«ááºážáá±á«ááºážáá»á¬ážááẠMTU ááŸáá·áº áááá¯ááºáá®áá±á¬ááŒá±á¬áá·áºá áááºáááºááᯠá¡á áááºá áááºá¡ááœáŸá¬ááœáŸá¬ ááŒááºáᬠááœááºáááºááá¯á· áá±ážááá¯á·áááºá
- L3 balancer ááŒá®ážáá±á¬áẠswitch ááẠpacket áá áºáá¯ááᯠáááºáá¶áááŸááá±á¬á¡áá«ááœáẠVlan tag áá áºáá¯ááᯠááá·áºáᬠáááºážááᯠáá±ážááá¯á·áááºá
- Nginx ááá±á¬ááºá á®áááŸá±á·ááŸá ááá¯ááºááẠáá¬áá¬á០Vlan-encapsulated packet ááá¯áá»áŸá±á¬áºááá·áºáá¬ážááŒá±á¬ááºáž (ááááºáááºážáááºáááºáá»á¬ážáá±á«áºá¡ááŒá±áá¶á) ááŒááºáá±á¬ááŒá±á¬áá·áº áááºážááẠVlan áááºááºááá¯ááááºááŸá¬ážáá² áááá¯á¡ááá¯ááºážááá¯á·áá±ážáá«áááºá
- Linux ááẠáá áºáŠážáá»ááºážá á® áááºáá±á·áá»áºáá»á¬ážá á¡ááá¯ááºážá¡á áá»á¬ážááᯠáá°áᬠáááºážááá¯á·ááᯠááŒá®ážáá¬ážáá±á¬ áááºáá±á·ááºá»áá áºáá¯á¡ááŒá Ạáá±á«ááºážá ááºážááá¯ááºáááºá
- ááá¯á·áá±á¬áẠpacket ááẠVlan interface ááá¯á·áá±á¬ááºááŸáááŒá®áž áááá¡ááœáŸá¬ááᯠáááºážááŸáááºááŸá¬ážááá¯ááºááẠ- Vlan encapsulation á
- ááá¯á·áá±á¬áẠLinux ááẠáááºážááŸá¡ááŒá¬ážá¡ááœáŸá¬ááá¯áááºááŸá¬ážááá·áº Tunnel interface ááá¯á·áá±ážááá¯á·ááẠ- Tunnel encapsulationá
á¡áááºá¡áá²ááŸá¬ á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠtcpdump ááá¯á· áá±á¬ááºáá»á¬ážá¡ááŒá
Ạáá»á±á¬áºááŒááºáááºááŒá
áºáááºá
á¡áá¯á¶ážááŸá
ááŒáá«á
áá¯á·- vlan ááŸáá·áº tunnel encapsulation ááá¯áááºááŸá¬ážááŒááºážááŒáá·áº clients áá»á¬ážáá¶á០IP packets áá»á¬áž (áááá¯á¡ááºáá²) ááá·áºááŸááºážááŸá¯ááŸááá«ááá¬ážá
tcpdump host <ip клОеМÑа>
ááá¯ááºáá«á áá¬áá¬ááœáẠááá¯ááá¯á·áá±á¬ áááºáá±á·ááºá»áá»á¬áž áááŸááá²á·áá«á áá®áá±á¬á· ááŒá¿áá¬á á á±á¬á á±á¬ááŸáááááºá Vlan encapsulation áᬠáááºááŸá¬ážáá¬ážáá±á¬ áááºáá±á·ááºá»áá»á¬áž ááŸááá«ááá¬ážá
tcpdump ip[32:4]=0xx390x2xx
0xx390x2xx ááẠhex áá±á¬áºáááºááŒáá·áº áá¯á¶ážá
áœá²áá° IP ááááºá
á¬ááŒá
áºáááºá
32:4 â SCR IP ááᯠââTunnel packet ááœáẠáá±ážáá¬ážááá·áº á¡ááœááºá ááááºá
á¬ááŸáá·áº á¡ááŸááºá
á¡ááºáá¬áááºáá±á«áºááœáẠ40á 44á 50á 54 á¡ááŒá±á¬ááºážáá±ážááŒáá±á¬áºáááºáž ááá¯áá±áá¬ááœáẠIP ááááºá á¬áááŸááá±á¬ááŒá±á¬áá·áº á¡ááœááºááááºá á¬ááᯠbrute force ááŒáá·áº ááœá±ážáá»ááºááááºááŒá áºáááºá hex (tcpdump ááŸá -xx ááá¯á·ááá¯áẠ-XX áá«áá¬áá®áá¬) ááŸá áááºáá±á·ááºá»áá»á¬ážáá²á០áá áºáá¯ááá¯áááºáž ááŒáá·áºááŸá¯ááá¯ááºááŒá®áž áááºáááá±á¬ IP ááááºá á¬ááᯠááœááºáá»ááºááá¯ááºáááºá
Vlan ááŸáá·áº Tunnel encapsulation ááááºááŸá¬ážáá² packet á¡ááá¯ááºážá¡á áá»á¬áž ááŸááá«ááá¬ážá
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 áá°áá±á¬á áá¬ážáá¯á¶ážááᯠáááá¡áá¯ááºááœááºááŒááºááááº)á á€á¡ááá·áºááœáẠáááºáá±á·áá»áºáá»á¬áž ááŸááá±áá±á¬áºáááºáž á¡ááŸáá¯ááºáá¯á¶áá»á¬ážááœáẠáá±á«ááºážá ááºáá¬ážááá·áº áá¯á¶á á¶ááá¯ááºáá±á¬ááŒá±á¬áá·áºá á ááºážáá±ážááœá²ááŸáá·áº ááŒá¿áá¬ááŸá¬ ááŸááºážááŸááºážáááºážáááºáž ááŒá áºáá±áááºá áá±á¬ááºáá¯á¶ážáá±á¬á· áá®á¡ááŒá±á¬ááºážááᯠááŸááºáááºážá¡áá±á¬ááºá¡áá¬ážááœá± ááŸááá¬áá«ááŒá®á
packet decoder ááẠáááºáá±á¬ááºááŸá¯ááᯠááá·áºáá¬ážááá¯ááºááá·áº áááºááá·áºááŒá¿áá¬ááá¯áá»áŸ áá±á¬áºááŒááá¬ážáá±á á€áá±áá¬ááœáẠá
ááºážááŒáá·áºáá«-
áá¬áá²ááŒá±á¬ááŒá±á¬ Sysctl áááœá²ááá¯á· áááŒá¬ážáá¬á០ááŸá¬áááœá±á·áá°ážá áá»ááºáá¬á¡á¬ážáá¯á¶ážá á¡ááá¯ááºážá¡áá¬ááᯠáá¬ážáááºááŒá®áž áá±á¬ááºáááºáá¯ááºáá±á¬ááºááŸá¯ááœá±ááᯠáá¯á¶ážááŒááºááá¯á·á¡ááœáẠááŒá¿áá¬áá¬áá¬ááœá±ááᯠáá±á¬áºáá¯ááºááá¯á· áááºážáááºážááŸá¬ááá¯á·áá²áá»ááºáá±á¬á·áááºá ááá¯á¡ááºáá±á¬áá±á¬ááºáá¬ááᯠáá»áŸááºááŒááºá
áœá¬ ááŸá¬ááœá±á·ááá¯ááºáááº-
netstat -s | grep "packet reassembles failedâ
áááºážááẠOID=1.3.6.1.2.1.4.31.1.1.16.1 (á¡á±á¬ááºááŸá snmpd ááœááºáááºáž ááŸááááºá
"IP ááŒááºáááºá á¯á ááºážááŸá¯ algorithm ááŸááœá±á·ááŸááá²á·áá±á¬ áá»ááºááœááºá¡áá±á¡ááœáẠ(áááºááá·áºá¡ááŒá±á¬ááºážááŒá±á¬áá·áºáááºááŒá áºáááº- á¡áá»áááºáá¯ááºááœá¬ážááŒááºážá á¡ááŸá¬ážá¡ááœááºážáá»á¬áž á áááºááŒáá·áº)"
ááŒá¿áá¬ááá¯áá±á·áá¬áá²á·ááá·áº áá¬áá¬á¡á¯ááºá á¯áá»á¬ážáá²ááœááºá á€áá±á¬ááºáá¬ááŸá áºáá¯ááœáẠááá¯ááŒááºáá¬ááŒá®áž ááŸá áºáá¯ááœáẠááá¯áááŸá±ážááœá±ážáᬠáá±á¬ááºáááºááŸá áºáá¯ááœáẠáá¯á¶ážááááá¯ážáá¬áá«á Java áá¬áá¬ááŸá HTTP á¡ááŸá¬ážá¡ááœááºážáá»á¬ážá ááá¯ááºážááá áºáá»á¬ážááᯠá€áá±á¬ááºáá¬á ááá¯ááºážááá áºáá»á¬ážááᯠááŸáá¯ááºážááŸááºááŒááºážááẠáááºá ááºááŸá¯ááᯠáááºááŸá¬ážá á±áááºá ááá¯ááá¯áááºááŸá¬ áá®áá¬ááᯠá á±á¬áá·áºááŒáá·áºááá¯ááºáááºá
ááŒá¿áá¬áá»á¬ážááá¯á¶ááŒááºá
áááºáá»ááá±á¬ááœáŸááºááŒáá»ááºáá
áºáá¯ááŸáááŒááºážáááºá¡ááœááºá¡áá±ážááŒá®ážáá«áááºá ááá¯á·ááŒá±á¬áá·áº Sysctl ááá¯ááŒááºááŸáá·áºááŒááºážáááºáá°áá®ááŒááºážááŸááááŸáááá¯áááá»á
áœá¬áá¯á¶ážááŒááºááá¯ááºáááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áºááááºáá¯á¶ááŒááºááŸáá»áœááºá¯ááºááá¯á·áááºá€áá»áŸá±á¬ááºááœáŸá¬ááá¯áá»ááºáá»ááºážáá¬ážáááºááá¯ááºáááºááá¯ááºááŒá±á¬ááºážáááá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá á€ááœáŸááºááŒáá»ááºááẠá¡áá¯á¶ážááŒá¯áá°áá»á¬áž áááºážááᯠááŸá¬ááœá±ááœá±á·ááŸáááŒááºážáááŒá¯áá® áá¯ááºáá¯ááºááŸá¯ááœáẠááŒá¿áá¬á¡á¬ážáá¯á¶ážááᯠáá±á¬áºáá¯ááºááá¯ááºá
á±áááºááŒá
áºáááºá
Sysctl ááᯠááŒááºááŸáá·áºááŒá®ážáá±á¬ááºá á
á±á¬áá·áºááŒáá·áºáá±áž á¡ááŸá¬ážá¡ááœááºážáá»á¬áž áááºááœá¬ážáááŒáá·áº ááŒá¿áá¬áá»á¬ážá á¡ááŒá±á¬ááºážáááºážááᯠáááºáá±ááŒáá²á·ááŒá®ážá ááŒááºááááºážááŒááºážááẠá¡áá±á¬ááºá¡áá°ááŒá
áºá
á±áááºáá°áá±á¬ á¡áá»ááºááᯠáááºáá±ááŒáá²á·áááºá
á á±á¬áá·áºááŒáá·áºááŸá¯á¡áá áºáá»á¬áž á áááºáá«áááºáá¬áá²á·ááá·áº á¡ááŒá¬ážáá¬áá¬áá»á¬ážááœáẠá¡ááœá²ááœá²á¡ááŒá¬ážááŒá¬ážáááºáááºáá»á¬ážááᯠááŒááºáááºáá¯ááºááááºážáá²á·ááŒá®ážá ááááºá áá¯á¶áá±ááẠá¡ááá¯ááºážá¡á áá»á¬ážá¡ááœáẠááŸááºáá¬ááºááá¯ááá¯áá»áá¬ážáá±ážááẠ(áááºážááŸá¬ UDP á á¬áááºážááá¬ážááŒá áºáááºá áá±áá¯áá»áá±á¬ááºáá¶ááŸáá·áº áááááá¬áá¬ááááá¬áá±á¬ áá áºá áááºáá áºááá¯ááºážáá¯á¶ážááŸá¯á¶ážááŸá¯) .
á¡áá±ážááŒá®ážáá¯á¶ážáá±ážááœááºážáá»á¬áž
áá»áœááºá¯ááºááá¯á·á L3 balancer ááœáẠáááºáá±á·ááºá»áá»á¬ážááᯠá¡áááºááŒá±á¬áá·áº á¡ááá¯ááºážááá¯ááºážááœá²áá¬ážááááºážá áá¯á¶ážá áœá²áá°áá»á¬ážáá¶á០áá»áááºááœááºáá»áŸá¬áá»á¬ážáá®ááá¯á· áá±á¬ááºááŸááá¬ááá·áº áááºáááºá¡áá»á¬ážá á¯ááŸá¬ SYN ááŸáá·áº ACK ááŒá áºáááºá á€á¡áá¯ááºáá»á¬ážá á¡ááœááºá¡á á¬ážáá»á¬ážááẠáá±ážáááºáááºá ááá¯á·áá±á¬áº ááá¯áá²á·ááá¯á·áá±á¬ áááºáá±á·ááºá»áá»á¬ážá áá±á á¯ááẠá¡ááœááºááŒá®ážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·á áá±á¬ááºáá¶ááŸáá·áº á¡ááá¯ááºážááá¯ááºážááœá²á ááŒá¯áá¬áá±á¬ ááŒá®ážáá¬ážáá±á¬ á¡áá¯ááºáá»á¬áž ááŸááá±áááºááᯠáá»áœááºá¯ááºááá¯á· ááááááŒá¯áááá²á·áá«á
á¡ááŒá±á¬ááºážááŒáá»ááºááŸá¬ ááœá²á¡ááºáá±áá±á¬ áá¬ááºááœáŸááºážáá
áºáá¯ááŒá
áºáááºá
Sysctl rollback ááẠá¡áááºááŒá±á¬áá·áº ááá°áá®ááááºážá ááá¯á·áá±á¬áº ááŒááºáááºá
áááºááŒááºážááŸá¬ á¡áááºááŒá±á¬áá·áºáááºážá Sysctl ááŒááºááŸáá·áºááŒááºážááẠáááºáá±á·áá»áºáá»á¬áž áá±á«ááºážá
ááºážááŒááºážá¡ááœáẠáááá¯ááºáá±á¬ áááºááá¯áá®ááá¬áááᯠááŒá±á¬ááºážáá²áá²á·áááºá áá
áºáá»áááºáááºážááŸá¬áááºá á¡á
áááºá
áááºá¡ááœáŸá¬ááœáŸá¬áá»á¬ážá¡ááœáẠááŸááºáá¬ááºááŒáá·áºáá»áŸá¶ááŸá¯ááẠáá»áááºáááºááŸá¯áá»á¬ážááᯠááŸá±ážááœá±ážááœá¬ážá
á±ááŒá®áž á¡ááá¯ááºážá¡á
áá»á¬áž áááºážá
á®áá¬ááœáẠá¡áá»áááºá¡áá±á¬áºááŒá¬ ááŸá±á¬áá·áºááŸá±ážááœá¬ážáááºááᯠáááºááŸá¬ážá
á±áááºá ááá¯ááá¯áááºááŸá¬ ááŒá
áºá
ááºááẠáá¶ááá¬áááºááœá¬ážáááºá
ááŒááºáááºá
áááºááŒááºážááẠáááºááá¯áá®ááᯠááŸááºážáááºážá
á±ááŒá®áž á¡áá¬á¡á¬ážáá¯á¶ážááẠá¡á
á®á¡á
ááºá¡ááá¯ááºáž ááŒááºááŒá
áºáá¬áááºá
Workaround ááá«áá² áá¯ááºááá¯á·ááá«ááá¬ážá áá¯ááºáááºá áá«áá±ááá·áº ááá¯ááºááá¯ááºááŸá¯áá áºáá¯ááŒá áºááœá¬ážáá²á·á¡áá« áá¯á¶ážá áœá²áá°ááœá±ááᯠáááºáá±á¬ááºááŸá¯ááá±ážáá² áá¬ážáá²á·ááá¯á· ááŒá áºááá¯ááºááŒá± ááŒáá·áºáá¬ážáá«áááºá áá¯ááºáá«áááºáá Workaround ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠáá¯á¶ážá áœá²áá°áá»á¬ážá¡ááœáẠáááºáá±á¬ááºááŸá¯áá»á¬ážáá²ááŸáá áºáᯠááŸá±ážááœá±ážááŒááºážá¡áá«á¡ááẠááŒá¿áá¬á¡áá»áá¯ážáá»áá¯ážááᯠááŒá áºáá±á«áºá á±áá±á¬áºáááºáž áááºááá¯á·áááºááá¯á á±áá¬áá° áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠááá¬ážáá»áŸááááºáᯠáá»áœááºá¯ááºááá¯á·áá¯á¶ááŒááºáá«áááºá
Andrey Timofeev (á¡ááºááá® Timofeev) á០áá»á±ážáá°ážá¡áá»á¬ážááŒá®ážáááºáá«áááºá
source: www.habr.com