ืฉืืื ืืืืื! ืฉืื ืืืืืจื ืกืืกืื ืื, ืื ื ืขืืื ืืื ืื ืืขืจืืช ืืืืื ื- Odnoklassniki. ืืฉ ืื ื ืืืชืจ ื-7 ืืืฃ ืฉืจืชืื ืคืืืืื, 11 ืืืฃ ืงืื ืืืื ืจืื ืืขื ื ืฉืื ื ื-200 ืืคืืืงืฆืืืช, ืืฉืจ ืืชืฆืืจืืช ืฉืื ืืช ืืืฆืจืืช 700 ืืฉืืืืืช ืฉืื ืื. ืืจืื ืืืืจืืข ืฉื ืืฉืจืชืื ืืจืืฆืื CentOS 7.
ื-14 ืืืืืืกื 2018 ืคืืจืกื ืืืืข ืขื ืคืืืขืืช FragmentSmack
(
ืื, ืื ืื ื ืืืื ืื ื ืื ืขืืืื ืืงืจื ื! ืขื ืืืช, ืืฉ ื ืืืื ืกืื...
ืืืฆื ืื ื ืืขืืื ืื ืืช ืืืืื ืืืคืงื
ืืืืคื ืืืื, ืฉืื ืืืจ ืื ืืกืืื:
- ืืืจืืช ืืืืืืช;
- ืืชืงื ืืืชื ืืืกืคืจ ืฉืจืชืื (ืืืื ืฉืจืชืื ืืืืจืืื ืืช ืืขื ื ืฉืื ื);
- ืืื ืฉืฉืื ืืืจ ืื ืฉืืืจ;
- ืืื ืฉืื ืืืืจืืช ืืืืื ืืกืื ืืจืืืืช ืืืืฉืืืช ืืื ืฉืืืืืช;
- ืืืชื ืืื ืืืื;
- ืืืืง ืืช ืืืฆืืขื ืืฉืจืช;
- ืืืืฃ ืคืจืืกื ืฉื ืฉืจืชืื ืืืฉืื ืืงืจื ื ืืืืฉ;
- ืขืืื ืืช ืื ืืฉืจืชืื ืืคื ืืจืื ื ืชืื ืื (ืืจืื ื ืชืื ืื ืืื ืืื ืคืขื ืืื ืืืืขืจ ืืช ืืืฉืคืขื ืขื ืืืฉืชืืฉืื ืืืงืจื ืฉื ืืขืืืช);
- ืืคืขื ืืืืฉ ืืช ืื ืืฉืจืชืื.
ืืืืจ ืขื ืื ืืขื ืคืื ืฉื ืืืจืขืื ืื ืฉืืฉ ืื ื. ืืจืืข ืื:
- Stock CentOS 7 3.10 - ืขืืืจ ืจืื ืืฉืจืชืื ืืจืืืืื;
- ืื ืื 4.19 - ืืฉืื ื
ืขื ื ืื ืฉื ืขื ื ืืื , ืื ืื ืื ื ืฆืจืืืื BFQ, BBR ืืื'; - Elrepo kernel-ml 5.2 - ืขืืืจ
ืืคืืฆืื ืขืืืกืื ืืืื , ืื ืคืขื 4.19 ืืชื ืื ืื ืืฆืื, ืืื ืืฉ ืฆืืจื ืืืืชื ืชืืื ืืช.
ืืคื ืฉืืืื ื ืืืฉืชื, ืืชืืื ืืืืฉ ืฉื ืืืคื ืฉืจืชืื ืืืงื ืืช ืืืื ืืืจืื ืืืืชืจ. ืืืืืื ืฉืื ืื ืืคืืืขืืืืช ืงืจืืืืืช ืขืืืจ ืื ืืฉืจืชืื, ืื ื ืืืชืืืื ืจืง ืืช ืืื ืฉื ืืืฉืื ืืฉืืจืืช ืืืืื ืืจื ื. ืืขื ื, ืืื ืื ืืืืืื ืืช ืืืืืฉืืช, ืื ืื ื ืื ืงืืฉืจืื ืงืื ืืืื ืจืื ื ืืืฉืื ืืืฆืื ืืช ืืฉืจืชืื ืืืืืื ืขื ืงืจื ื ืืืฉ, ืืื ืืืชืืืื ืืช ืื ืืืืจืืื ืืื ืืืฆื ืื ืืืื. ืืืจืื ืืืื, ืืืืื ืฉื ืคืฉืื ืืืชืจ ืืืฉืจ ืืฉืจืชืื ืจืืืืื. ืืืืืื, ืงืื ืืืื ืจืื ืืกืจื ืืืื ื ืืืืืื ืคืฉืื ืืขืืืจ ืืฉืจืช ืืืจ ืืืืื ืืชืืื ืืืืฉ.
ืขื ืืืช, ืืฉ ืขืืืื ืืจืื ืขืืืื, ืืื ืืืื ืืงืืช ืืื ืฉืืืขืืช, ืืื ืืฉ ืืขืืืช ืขื ืืืจืกื ืืืืฉื, ืขื ืืื ืืืืฉืื. ืืชืืงืคืื ืืืื ืื ืืืช ืืืื, ืื ืื ืฆืจืืืื ืชืืื ืืช ื'.
FragmentSmack/SegmentSmack. ืืจื ืืขืงืืคืช ืืืขืื
ืืืจืื ืืืื, ืขืืืจ ื ืงืืืืช ืชืืจืคื ืืกืืืืืช ืงืืืืช ืชืืื ืืช B ืืื, ืืืื ื ืงืจืืช 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 ืืืชืืื. ื ืืื ืืืชืจ. ืืืืงืืช ืืจืืืช ืืจืืื ืงืื ื ืขื ืืฉืืขืืชืืช ืืฉืืืืฉ ืืืขืื ืืืืื ืืชืงืคื ืืืชืื ืืืืืจื, ืืืืืจืืช ืืืชื ืืื. ืขื ืืืช, ืขืฉืืื ืืืืืช ืืฉืคืขื ืืกืืืืช ืขื ืืืืฆืืขืื ืขืงื ipfrag_high_thresh=192 ืืชืื, ืืืืืื ืฉืจืง ืฉื ื ืืงืืขืื ืฉื 262144K ืืืืืื ืืืชืืื ืืชืืจ ืืืจืืื ืืืืฉ ืืื ืคืขื. ืืืืืื, ืืฉ ืกืืืื ืฉืืืฉืืืื ืฉืขืืืืื ืขื ืื ืืช 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.
ืืื ืื ื UDPs ืืืืืื ืขื ืฉืืจืืชื ืืืฆืืจ. ืืื ืชืขืืืจื ืืงืืืขืช ืืจืฉืช ื-LAN; ืืฉ ืชืขืืืจื ืืงืืืขืช ื-WAN, ืื ืื ืืฉืืขืืชืืช. ืืื ืกืืื ืื - ืืชื ืืืื ืืืคืขืื ืคืชืจืื ืืขืงืืคืช ืืืขืื!
FragmentSmack/SegmentSmack. ืื ืจืืฉืื
ืืืขืื ืืจืืฉืื ื ืฉื ืชืงืื ื ืื ืืื ืฉืืืืื ืขื ื ืืคืขืืื ืืคืขืืื ืืช ืืืืืจืืช ืืืืฉืืช ืจืง ืืืืคื ืืืงื (ืจืง ipfrag_low_thresh), ืืืคืขืืื ืื ืืืืื ืืืชื ืืืื โ ืื ืคืฉืื ืงืจืกื ืืืชืืื. ืื ื ืืชื ืืื ืืฉืืืจ ืืช ืืืขืื ืืืฆืืืืช (ืื ืืืืืจืืช ืืืืื ืืืืคื ืืื ื ืืื ืงืฉืืื). ืืืื ื ืืืืข ืืืืืื ืงืืจืกืช ืืืชืืื ืืื ืื ืื ืื ืื ืงืื: ืื ื ืืฆืื ืฉืืืืืช. ืืืจ ืืื ืืื ืืืื: ืืืืื ืืืืืจืืช ืืืืืจ ืคืืชืจ ืืช ืืืขืื ืขื ืงืจืืกืืช ืืืืืื.
ืืืืข ืื ืืกืคืืง ืืืืื Sysctl ืขื ืืืืจื? ืืงืื ืืืื ืจ ืื ืืจืฉืช ืืืขืืืืช Namespace ืืฉืื, ืื ืืคืืืช
ืืื ืืืืืง ืืืืืืช ืืืืจืืช Sysctl ืืงืื ืืืื ืจ? ืืืืืื ืฉืืืืืืืช ืฉืื ื ืื ืืกืจืืช ืคืจืืืืืืื, ืื ืชืืื ืืฉื ืืช ืฉืื ืืืืจืช Sysctl ืขื ืืื ืื ืืกื ืืงืื ืืืื ืจ ืขืฆืื - ืคืฉืื ืืื ืื ืืกืคืืง ืืืืืืช. ืืื ืืืคืขืื ืงืื ืืืื ืจืื, ืืขื ื ืฉืื ื ืืืืชื ืชืงืืคื ืืฉืชืืฉ ื-Docker (ืขืืฉืื
ืชืื ืืื ืืืคืืฉ ืืืจืกืืืช, ืืชืืจืจ ืฉื-Docker API ืื ืืืืืจ ืืช ืื ืืฉืืืืืช (ืืคืืืช ืืืจืกื 1.10). ืืฉื ืืกืื ื ืืืคืขืื ืืช ืืืืื ืืืืฆืขืืช "ืืืงืจ ืจืืฆืช", ืกืืฃ ืกืืฃ ืจืืื ื ืืคืืืช ืืฉืื:
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 ืืขื ื, ืืชืืืื ืืืืืข ืชืืื ืืช ื ืืืจืืช ืจืืฉืื ืืช ืฉื ืืฉืชืืฉืื. ืืืืชื ืืื, ืขืืจื ืืกืคืจ ืฉืืืขืืช ืืื ืชืืืืช ืืฉืืืืฉ ืืขืงืืคืช ืืืขืื ืืฉืจืชืื ืืจืืฉืื ืื. ืืืงืืจื ืืจืืฉืื ืืช ืืขืืชื ืื ืืชืงืืื ืชืืื ืืช ืื ืื ืฉืืจืืชืื ืืืืืื, ืืื ืื ืืฉืจืชืื ืฉื ืฉืืจืืชืื ืืื. ืืืขืื ืฉืื ืืคืื ืื ืืืืืช ืืืืชืจ.
ืงืืื ืื, ืืืืื, ื ืืกืื ื ืืืืืืจ ืืช ืืืืจืืช Sysctl ืืืืืจ, ืืื ืื ืื ืืฉืคืืข. ืื ืื ืืคืืืฆืืืช ืฉืื ืืช ืขื ืืืืจืืช ืืฉืจืช ืืืืคืืืงืฆืื ืื ืขืืจื. ืืชืืื ืืืืฉ ืขืืจ. ืืชืืื ืืื ืืงืก ืืื ืื ืืืขื ืืื ืฉืืื ืจืืื ืขืืืจ Windows ืืืืื ืขืืจื. ืขื ืืืช, ืื ืขืืจ, ืืืืื ื ืืช ืื ื"ืชืงืืช ืืืื" ืืขืช ืืืืช ืืืืืจืืช ืืืืฉืืช ื-Sysctl. ืืื ืงื ืืขืช ืื ืืื...
ืฉืืืฉื ืฉืืืขืืช ืืืืจ ืืื ืืืขืื ืืืจื ืขื ืขืฆืื. ืืชืฆืืจื ืฉื ืฉืจืชืื ืืื ืืืืชื ืคืฉืืื ืืืื: Nginx ืืืฆื ืคืจืืงืกื/ืืืืื. ืืื ืืจืื ืชื ืืขื. ืืขืจืช ืืืืจืืช ืืืฉื: ืืกืคืจ 504 ืฉืืืืืช ืืืงืืืืช ืืื ืืื ืืื (
ืื ืืฉืืืืืช ืื ืืขืจื ืืืชื backend - ืขื ืื ืฉื ืืฆื ืืขื ื. ืืจืฃ ืฆืจืืืช ืืืืืจืื ืขืืืจ ืงืืขื ืืืืื ื-backend ืื ื ืจืื ืื:
ืืื ืืื ืืืืืืืื ืืืจืืจืื ืืืืชืจ ืฉื ืืืขืื ืืืจืคืื ืฉื ืืขืจืืช ืืืคืขืื. ืืขื ื, ืืืืืง ืืืืชื ืืื, ืชืืงื ื ืืขืืืช ืจืฉืช ื ืืกืคืช ืืืืืจืืช QoS (ืืงืจืช ืชื ืืขื). ืืืจืฃ ืฉื ืฆืจืืืช ืืืืจืื ืขืืืจ ืฉืืจื ืื ืืช, ืื ื ืจืื ืืืืืง ืืืชื ืืืืจ:
ืืื ืื ืืืืชื ืคืฉืืื: ืื ืื ื ืจืืื ืืืชื ืืืืจ ืืืจืคืื, ืื ืืฉ ืืื ืืืชื ืกืืื. ืืชืจ ืขื ืื, ืื ืืขืื ืืืืืจืื ืืกืื ืื ืืื ื ืืืจื ืืืืชืจ.
ืืืืืช ืฉื ืืืขืื ืืืชืืงื ืช ืืืืชื ืฉืืฉืชืืฉื ื ืืืชืืื ืื ืืช fq ืขื ืืืืจืืช ืืจืืจืช ืืืืื ื-QoS. ืืืจืืจืช ืืืื, ืขืืืจ ืืืืืจ ืืื, ืืื ืืืคืฉืจืช ืืืืกืืฃ 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" ืืื ืืืืืืืช ืฉืืืจืื ืขืงื ืืจืืื ืืืืืืช ืืชืืจ ืฉื ืืืืืจ ืืื, ื-"ื ืคื 464545" ืืื ืืกืืื ืฉื ืื ืืืืืืืช ืฉืืืจืื ืฉื ืืชืืื ืื. ืืืืจ ืืืืืช ืืืจื ืืชืืจ ืืืืฃ ืืืคืขืื ืืืืฉ ืฉื ืืืืืืืช, ืืืขืื ืืคืกืืงื ืืืชืจืืฉ. ืืชื ืืืื ืืฉืืช ืืฉืงื ืืืฉืชืืช ืฉืืืง.
FragmentSmack/SegmentSmack. ืื ืืืจืื
ืจืืฉืืช, ืืกืคืจ ืืืืฉืื ืืืืจ ืืืืจืื ืขื ืคืจืฆืืช ืืงืจื ื, ืกืืฃ ืกืืฃ ืืืคืืข ืชืืงืื ืขืืืจ FragmentSmack (ืชื ืื ืืืืืืจ ืื ืฉืืื ืขื ืืืืจืื ืืืืืืกื, ืฉืืืจืจ ืชืืงืื ืจืง ืขืืืจ SegmentSmack), ืฉื ืชื ืื ื ืืืืื ืืช ืื ืืืฉ ืืช Workaround, ืื ืฉืืจื ืื ื ืื ืืจืื ืฆืจืืช. ืืืืื ืืืื ืืื, ืืืจ ืืกืคืงื ื ืืืขืืืจ ืืืง ืืืฉืจืชืื ืืงืจื ื ืืืืฉ, ืืขืืฉืื ืืืื ื ืฆืจืืืื ืืืชืืื ืืืืชืืื. ืืืืข ืขืืื ื ืืช ืืืืื ืืืื ืืืืืช ืืชืืงืื FragmentSmack? ืืขืืืื ืืื ืฉืชืืืื ืืืื ื ืืคื ื ืืคืืืขืืืืช ืืืื ืขืื ืืงื ื ืืื (ืืืชืืื) ืขื ืชืืืื ืขืืืื CentOS ืขืฆืื (ืฉืืืงื ืืคืืื ืืืชืจ ืืื ืืขืืืื ืืงืจื ื ืืืื). ืื ืืกืฃ, SegmentSmack ืืื ืคืืืขืืช ืืกืืื ืช ืืืชืจ, ืืชืืงืื ืื ืืืคืืข ืืื, ืื ืฉืื ืืื ืืืืื ื ืืื ืืงืจื. ืขื ืืืช, ืื ืืืืื ื ืคืฉืื ืืขืืื ืืช ืืืืื ื-CentOS ืืืืืื ืฉืคืืืขืืช FragmentSmack, ืฉืืืคืืขื ืืืืื CentOS 7.5, ืชืืงื ื ืจืง ืืืจืกื 7.6, ืื ื ืืืฆื ื ืืขืฆืืจ ืืช ืืขืืืื ื-7.5 ืืืืชืืื ืืืืฉ ืขื ืืขืืืื ื-7.6. ืืื ืื ืงืืจื.
ืฉื ืืช, ืชืืื ืืช ื ืืืจืืช ืฉื ืืฉืชืืฉืื ืขื ืืขืืืช ืืืจื ืืืื ื. ืขืืฉืื ืื ืื ื ืืืจ ืืืืขืื ืืืืืืืช ืฉืืืื ืงืฉืืจืื ืืืขืืืช ืงืืฆืื ืืืงืืืืช ืืืืง ืืืฉืจืชืื ืฉืื ื. ืืชืจื ืืื, ืืกืคืจ ืงืื ืืืื ืฉื ืืขืืืืช ืืืื ืืืกื ืขืืจ ืืจื ืืฉืจืชืื ืืืื.
ืืคื ืฉืื ื ืืืืจืื ืืืกืืคืืจ ืืืขืื, ืืืืจืช Sysctl ืื ืขืืจ. ืืชืืื ืืืืฉ ืขืืจ, ืืื ืืืืคื ืืื ื.
ืืืฉืืืช ืืืื Sysctl ืื ืืืกืจื, ืื ืืคืขื ืืื ืฆืืจื ืืืกืืฃ ืืืืข ืจื ืืื ืืืคืฉืจ. ืืื ืื ืืืกืจ ืขืฆืื ืืืืืืช ืืฉืืืจ ืืช ืืขืืืช ืืืขืืื ืขื ืืืงืื ืืื ืืืืื ืืฆืืจื ืืืืืงืช ืืืชืจ ืื ืงืืจื.
ื ืืชืื ืื ืื ืชืื ืื ืืกืืืืกืืืื ืืืืืื ืื ืืืืื ืื ืื ืงืืจื ืืืชื ื ืืืืื ืื ืงืืจื. ืืื ืืืกืจ ืืงืืื ืืืืืืช ืืฉืืืจ ืืช ืืืขืื ืืื "ืืืจืืืฉ" ืงืฉืจ ืกืคืฆืืคื. ืืืกืืฃ, ืืืคืชืืื, ืืืืฆืขืืช ืืจืกื ืืืืืืช ืฉื ืืืคืืืงืฆืื, ืืฆืืืื ืืืฉืื ืฉืืืืจ ืืฆืื ืฉื ืืขืืืช ืืืืฉืืจ ืืืืงื ืืืฉืจ ืื ืืืืืจืื ืืืืฆืขืืช Wi-Fi. ืื ืืืืชื ืคืจืืฆืช ืืจื ืืืงืืจื. ืืืงืื ืืชืืืจ ื-Nginx, ืฉืฉืื ืคืจืืงืกื ื-backend, ืฉืืื ืืคืืืงืฆืืืช Java ืฉืื ื.
ืืืืืืื ืืืขืืืช ืืื ืืื (ืชืืงื ืืฆื ื-Proxy ืฉื Nginx):
- ืืงืื: ืืงืฉื ืืงืื ืืืืข ืขื ืืืจืืช ืงืืืฅ.
- ืฉืจืช Java: ืชืืืื.
- ืืงืื: POST ืขื ืงืืืฅ.
- ืฉืจืช Java: ืฉืืืื.
ืืืงืืื, ืฉืจืช ื-Java ืืืชื ืืืื ืฉ-0 ืืชืื ืฉื ื ืชืื ืื ืืชืงืืื ืืืืงืื, ืืืคืจืืงืกื ืฉื Nginx ืืืชื ืฉืืืงืฉื ืืจืื ืืืชืจ ื-30 ืฉื ืืืช (30 ืฉื ืืืช ืื ืคืกืง ืืืื ืฉื ืืคืืืงืฆืืืช ืืืงืื). ืืื ืคืกืง ืืืื ืืืื 0 ืืชืื? ืื ืงืืืช ืืื ืฉื HTTP, ืืื ืขืืื ืืื ืฉืฆืจืื, ืืื ื ืจืื ืฉื-POST ืขื ืืงืืืฅ ื ืขืื ืืืจืฉืช. ืืชืจ ืขื ืื, ืืื ื ืขืื ืืื ืืืงืื ื-Nginx. ืืืืข ืืืื ืืืชืืืฉ ื-Tcpdump! ืืื ืงืืื ืืชื ืฆืจืื ืืืืื ืืช ืชืฆืืจืช ืืจืฉืช. ืคืจืืงืกื Nginx ื ืืฆื ืืืืืจื ืืืืื L3
ืืืงืจื ืื, ืืจืฉืช ืืืืขื ืืฉืจืช ืื ืืฆืืจื ืฉื ืชืขืืืจื ืืชืืืืช Vlan, ืืฉืจ ืืืกืืคื ืื ืฉืืืช ืืฉืื ืืืืืืืช:
ืืชืขืืืจื ืื ืืืืื ืืืืืช ืื ืืคืืฆืืช (ืืืชื ืืืื ืงืื ืฉื ืชืขืืืจื ืืคืืฆืืช ื ืื ืกืช ืฉืขืืื ืืืืจื ื ืืขืช ืืขืจืืช ืืกืืืื ืื ืืขืงืืคื), ืื ืฉืื ืืฉื ื ืืช ืชืืื ืืืืชืจืืช:
ืฉืื: ืื ืืช ืืืืืขืืช ืืชืืืช Vlan, ืืืืกืืช ืืื ืืจื, ืืงืืืขืืช. ืืื ืืืืื ืืื ืืืชืจ ืืื ืื ืงืืจื, ืืืื ื ืขืงืื ืืืจ ืืกืืื ืืืืืื ืืืืงืื ื-Proxy Nginx.
- ืืืืืื ืืืืขื ืืืืื L3. ืื ืืชืื ื ืืื ืืชืื ืืจืื ืื ืชืื ืื, ืืืืืื ืืืืกื ืืื ืืจื ืื ืฉืืืช ืืืจืืืก ืืจืฉืช.
- ืืืืืื ืฉืืืชืจืืช ืืืืืืืช + ืืื ืืจื ืืื ื ืืชืืืืื ื-MTU, ืืืืืื ื ืืชืืช ืืคืจืืื ืืื ืื ืฉืืืช ืืจืฉืช.
- ืืืชื ืฉืืืจื ืืืืืื L3, ืืขืช ืงืืืช ืืืืื, ืืืกืืฃ ืื ืชื Vlan ืืฉืืื ืืืชื ืืืื.
- ืืืชื ืฉืืคื ื ื-Proxy ืฉื Nginx ืจืืื (ืืืชืืกืก ืขื ืืืืจืืช ืืืฆืืื) ืฉืืฉืจืช ืืฆืคื ืืื ืืช ืืืืืขืช ืฉื Vlan, ืืืื ืืื ืฉืืื ืืืชื ืืคื ืฉืืื, ืืืื ืืืกืืจ ืืช ืชื Vlan.
- ืืื ืืงืก ืืืงืืช ืงืืขืื ืฉื ืืืืืืช ืืืืืืช ืืืืืืช ืืืชื ืืืืืื ืืืช ืืืืื.
- ืืืืจ ืืื, ืืืืืื ืืืืขื ืืืืฉืง Vlan, ืฉื ืืืกืจืช ืืื ื ืืฉืืื ืืจืืฉืื ื - Vlan encapsulation.
- ืืืืจ ืืื ืืื ืืงืก ืฉืืืืช ืืืชื ืืืืฉืง Tunnel, ืฉื ืืืกืจืช ืฉืืื ื ืืกืคืช ืืื ื - Tunnel encapsulation.
ืืงืืฉื ืืื ืืืขืืืจ ืืช ืื ืื ืืคืจืืืจืื ื-tcpdump.
ื ืชืืื ืืืกืืฃ: ืืื ืืฉื ื ืืืืืืช IP ื ืงืืืช (ืืื ืืืชืจืืช ืืืืชืจืืช) ืืืงืืืืช, ืืฉื-vlan ื-tunnel encapsulation ืืืกืจ?
tcpdump host <ip ะบะปะธะตะฝัะฐ>
ืื, ืื ืืื ืืืืืืช ืืืื ืืฉืจืช. ืื ืืืขืื ืืืืืช ืืืืืช ืฉื ืงืืื. ืืื ืืฉ ืืืืืืช ืฉืืืกืจื ืจืง ืื ืงืคืกืืืฆืื ืฉื Vlan?
tcpdump ip[32:4]=0xx390x2xx
0xx390x2xx ืืื ืืชืืืช ื-IP ืฉื ืืืงืื ืืคืืจืื hex.
32:4 - ืืชืืืช ืืืืจื ืืฉืื ืฉืื ื ืืชื ื-SCR IP ืืืืืืช ืืื ืืจื.
ืืชืืืช ืืฉืื ืืืืชื ืฆืจืืื ืืืืืืจ ืืืื ืืก, ืืืืืื ืฉืืืื ืืจื ื ืืืชืืื ืืขืจื 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 ..............
ืืืืืจ ืืฉื ื ืฉืืจืื ืฉื ืืืืื ืืืช (ืืืชื ืชืขืืืช ืืืืช 53652) ืขื ืฆืืืื (ืืืืื Exif ืืืืื ืืืืืื ืืจืืฉืื ื). ืืฉื ืืขืืืื ืฉืืฉ ืืืืืืช ืืจืื ืื, ืื ืื ืืฆืืจื ืืืืืืืช ืืืืืืืช, ืืืขืื ืืื ืืืืจืืจ ืืืจืืื. ืกืืฃ ืกืืฃ ืืฉ ืืืืืืช ืชืืขืืืืืช ืืื!
ืืคืขื ื ืืืืืืืช ืื ืืฉืฃ ืืขืืืช ืฉืืื ืขื ืืช ืืื ืืื. ื ืืกืืชื ืืช ืื ืืื:
ืื ืืฉื ื ืื ืืืืื, ืฉืื ืืืจ ืืืจ ืื ื ืืฆื ืืืื ืืืชื Sysctl. ืื ืฉื ืืชืจ ืืื ืืืฆืื ืืจื ืืืืืช ืฉืจืชืื ืืขืืืชืืื ืืื ืืืืื ืืช ืงื ื ืืืืื ืืืืืืื ืขื ืคืขืืืืช ื ืืกืคืืช. ืืืื ื ืื ืืจืฉ ื ืืฆื ืืืืืจืืช ืืกืคืงืช:
netstat -s | grep "packet reassembles failedโ
ืื ืื ื-snmpd ืชืืช OID=1.3.6.1.2.1.4.31.1.1.16.1 (
"ืืกืคืจ ืืชืงืืืช ืฉืืืื ืขื ืืื ืืืืืจืืชื ืืืจืืื ืืืืฉ ืฉื ื-IP (ืืื ืกืืื ืฉืืื: ืงืฆืื ืืืื ืืงืฆืื, ืฉืืืืืช ืืื')."
ืืื ืงืืืฆืช ืืฉืจืชืื ืฉืืื ื ืืงืจื ืืืขืื, ืืฉื ืืื ืืืื ื ืืื ืขืื ืืืจ ืืืชืจ, ืืฉื ืืื ืืืชืจ ืืื, ืืืฉื ืืื ื ืืกืคืื ืืื ืื ืืื ืืื. ืืฉืืืืช ืืืื ืืืงื ืฉื ืืื ื ืื ืขื ืืืื ืืืงื ืฉื ืฉืืืืืช HTTP ืืฉืจืช Java ืืืืชื ืืชืื. ืืืืืจ, ื ืืชื ืืื ืื ืืจ ืืช ืืืื ื.
ืืฉืื ืืืื ืฉืืืื ืืื ืืืงืืืจ ืืืื ืืืขืืืช ืืื ืฉืชืืืื ืืงืืืข ืืืืืืง ืืื ืืืืจืช Sysctl ืืืืืจ ืขืืืจืช, ืฉืื ืืืกืืคืืจ ืืงืืื ืื ื ืืืืขืื ืฉืื ื ืืชื ืืืืื ืืืช ืืื ืืืืคืืืงืฆืื. ืืืืื ืื ืืืคืฉืจ ืื ื ืืืืืช ืืช ืื ืืืืืจืื ืืืขืืืชืืื ืืืืฆืืจ ืืคื ื ืฉืืฉืชืืฉืื ืืืืื ืืืชื.
ืืืืจ ืืืืจืช Sysctl ืืืืืจ ื ืขืฆืจื ืฉืืืืืช ืื ืืืืจ, ืืืื ืืืืื ืกืืืช ืืืขืืืช, ืืื ืื ืืขืืืื ืฉืืืืจื ืขืืืจืช.
ืืืืจื ื ืืืืืจ ืืช ืืืืจืืช ืืคืจืืื ืืฆืื ืืฉืจืชืื ืืืจืื, ืฉืืื ื ืืืืจ ืืืฉ ื ืื ืก ืืคืขืืื, ืืืืคืฉืื ืืงืฆื ื ืืคืืื ืืืชืจ ืืืืจืื ืืคืจืืื ืืื ืืื ืฉืืื ืืขืืจ ืืจืืจืช ืืืืื (ืื ืืืืชื ืกืืืืกืืืงืช UDP, ืฉืืืืืื ืืืืงื ืฉืื ืื ืืื ืืืจืืฉ ืขื ืืจืงืข ืืืืื) .
ืืฉืืืืช ืืื ืืฉืืืืช
ืืืืข ืื ืืช ืืคืืฆืืืช ืืืืื L3 ืฉืื ื? ืจืื ืืืืืืืช ืฉืืืืขืืช ืืืืฉืชืืฉืื ืืืืื ืื ืื SYN ื-ACK. ืืืืืื ืฉื ืืืืืืืช ืืืื ืงืื ืืช. ืืื ืืืืืื ืฉืืืงื ืฉื ืื ืืช ืืืื ืืืื ืืืื, ืขื ืืจืงืข ืฉืืื ืื ืืืื ื ืื ืืืืืชื ืฉื ืื ืืช ืืืืืืช ืฉืืืื ืืืชืคืฆื.
ืืกืืื ืืืืชื ืกืงืจืืคื ืชืฆืืจื ืฉืืืจ
ืืืืข ืืืืจื ืืืืืจ ืฉื Sysctl ืื ืขืืจ, ืืื ืืชืืื ืืืืฉ ืื? ืืืืื Sysctl ืฉืื ื ืืช ืืืืช ืืืืืจืื ืืืืื ื ืืืืืื ืืืืืืช. ืืื ืขื ืืืช, ืืื ืื ืจืื ืขืฆื ืืฆืคืช ืืืืืจืื ืืคืจืืื ืืื ืืืืืื ืืืืื ืฉื โโืืืืืืจืื, ืื ืฉืืืืื ืืขืืืื ืฉื ืคืจืืื ืืื ืืืืจื ืืื ืืชืืจ. ืืืืืจ, ืืชืืืื ืขืืจ ืืืืืืจืืืช.
ืืืชืืื ื ืืงื ืืช ืืืืืจืื ืืืื ืืืจ ืืกืืจ.
ืืื ื ืืชื ืืื ืืืกืชืืจ ืืื ืขืงืืคืช ืืืขืื? ืื, ืืื ืืฉ ืกืืืื ืืืื ืืืฉืืืจ ืืฉืชืืฉืื ืืื ืฉืืจืืช ืืืงืจื ืฉื ืืชืงืคื. ืืืืื ืฉืืฉืืืืฉ ื- Workaround ืืจื ืืืขืืืช ืฉืื ืืช, ืืืื ืืืื ืฉื โโืืื ืืฉืืจืืชืื ืืืฉืชืืฉืื, ืื ืืืจืืช ืืืช ืื ื ืกืืืจืื ืฉืืคืขืืืืช ืืื ืืืฆืืงืืช.
ืชืืื ืจืื ืืื ืืจืื ืืืืืคืืื (
ืืงืืจ: www.habr.com