ืืขืืจื ืืืืืืื ืฉื ืืืื: ืืื ืชืืืชื ืคืขื ืืืฆื ืืื ืืกื Google Cloud Technical Solutions (TSE) ืืืคืืื ืืืงืฉืืช ืืชืืืื ืฉืืื? ืืื ืืกื ืืชืืืื ืืืื ืืช ืฉื TSE ืืืจืืื ืขื ืืืืื ืืชืืงืื ืืงืืจืืช ืืขืืืช ืฉืืืืื ืขื ืืื ืืฉืชืืฉืื. ืืืง ืืืืขืืืช ืืืื ืื ืคืฉืืืืช, ืืื ืืคืขืืื ื ืชืงืืื ืืืจืืืก ืฉืืืจืฉ ืชืฉืืืช ืื ืฉื ืืื ืืื ืืกืื ืื ืืื ืืช. ืืืืืจ ืื, ืืื ืืขืืืื TSE ืืกืคืจ ืื ื ืขื ืืขืื ืืืช ืืืื ืืกืืืืช ืืืชืจืืื ืืืืจืื ืฉืื -
ืคืชืจืื ืืขืืืช ืืื ืื ืืืข ืืื ืืื ืืช. ืืื ืืชืืื ืืื ืืืช ืืฉืขืจื ืืืื ืืกืืื ืืืชื ืืืืช ืืื ืกืื ืืจืืืช ืฉื ืืืขืจืืช, ืืืืืจ ืืื ืืื ื ืืืงืช ืขื ืืืืงื. ืขื ืืืช, ืืคื ื ืฉืื ื ืื ืกืืื ืืฉืขืจื, ืขืืื ื ืืืืืืจ ืืืืจืืจ ืืื ืกื ืืืืืืง ืืช ืืืขืื. ืื ืืฉืืื ื ืฉืืขืช ืืขืืจืคืืช ืืื, ืื ืชืฆืืจื ืื ืชื ืืื ืืืืืจืืช; ืืืื "ืืืื ืืช" ืฉื ืคืชืจืื ืืขืืืช.
ืชืืช Google Cloud, ืชืืืืืื ืืืื ืืืคืืื ืืืจืืืื ืืืชืจ ืืืืคื ืืงืกืคืื ื ืฆืืืื, ืืืืืื ืฉ-Google Cloud ืื ืกื ืืืืื ืืืืืชื ืืืืืื ืืช ืคืจืืืืช ืืืฉืชืืฉืื ืฉืื. ืืืื ืื, ืืืื ืืกื TSE ืืื ืืืฉื ืืขืจืื ืืช ืืืขืจืืืช ืฉืื, ืืื ืื ืืช ืืืืืืช ืืืฆืื ืชืฆืืจืืช ืืฆืืจื ืจืืื ืืื ืืืฉืชืืฉืื. ืืื, ืืื ืืืืืง ืื ืืืช ืืืืฉืขืจืืช ืฉืื ื, ืื ืื ื (ืืื ืืกืื) ืื ืืืืืื ืืฉื ืืช ืืืืืจืืช ืืช ืืืขืจืืช.
ืืืง ืืืืฉืชืืฉืื ืืืืื ืื ืฉื ืชืงื ืืื ืืื ืืืื ืืืช ืืฉืืจืืช ืจืื, ืืคืฉืื ื ืฉืื ืื ื ืืช ืชืขืืืช ืืืืืช ืฉื ืืืื ื ืืืจืืืืืืช, ืืขืื ืฉืืืฆืืืืช ืืชืืืื ืืชืจืืฉ ืืคืืจืื ืฉื ืฉืืื: ืืืกืืฃ ืืืืข, ืืืืืฉ ืืืืฉืืจ (ืื ืืคืจืืช) ืืฉืขืจืืช, ืืืกืืคื ืฉื ืืืจ, ืืขืืืช ืืืืื ืืืืกืกืืช ืขื ืชืงืฉืืจืช ืขื ืืืงืื.
ืืืขืื ืืืืืืจืช
ืืืื ืืฉ ืื ื ืกืืคืืจ ืขื ืกืืฃ ืืื. ืืืช ืืกืืืืช ืืคืชืจืื ืืืืฆืื ืฉื ืืืงืจื ืืืืฆืข ืืื ืชืืืืจ ืืคืืจื ืืืืืืง ืืืื ืฉื ืืืขืื. ืืืื ื ืืชื ืืจืืืช ืขืืชืง ืฉื ืืืจืืืก ืืจืืฉืื (ืขืจืื ืืื ืืืกืชืืจ ืืืืข ืกืืื):
ืืืืขื ืื ืืืืื ืืืืข ืจื ืฉืืืืฉื ืขืืืจื ื:
- ืฆืืื VM ืกืคืฆืืคื
- ืืืขืื ืขืฆืื ืืกืืื ืช - DNS ืื ืขืืื
- ืืฆืืื ืืืื ืืืขืื ืืื ืืืื ืืืืื - VM ืืืืื
- ืืฆืืื ืื ืืฆืขืืื ืฉืืืฉืชืืฉ ื ืงื ืืื ืืืืืช ืืช ืืืขืื.
ืืืงืฉื ื ืจืฉืื ื-"P1: ืืฉืคืขื ืงืจืืืืช - ืฉืืจืืช ืื ืฉืืืฉ ืืืืฆืืจ", ืืืืืจ ื ืืืืจ ืืชืืื ืฉื ืืืฆื 24/7 ืขื ืคื ืชืื ืืช "Follow the Sun" (ืชืืืื ืืงืจืื ืขืื ืขื
ืืฉืืืจืืืก ืืืืข ืืฆืืจืื, ืืืจ ืืื ืืืืื ื ืืืืืข ืืื:
- ืชืึนืึถื
/etc/hosts
- ืชืึนืึถื
/etc/resolv.conf
- ืคืื
iptables-save
- ืืืจืื ืขื ืืื ืืฆืืืช
ngrep
ืงืืืฅ pcap
ืขื ืื ืชืื ืื ืืืื, ืืืื ื ืืืื ืื ืืืชืืื ืืช ืฉืื ื"ืืงืืจื" ืืคืชืจืื ืืืขืืืช.
ืืฆืขืืื ืืจืืฉืื ืื ืฉืื ื
ืงืืื ืื, ืืืงื ื ืืช ืืืืื ืื ืืืกืืืืก ืฉื ืฉืจืช ืืืื ื ืชืื ืื ืืืืืื ื ืฉืืื ืคืืขื ืืืืื. ืฉืจืช ืืืื ื ืชืื ืื ืืืื ืืืชืืืช ื-IP 169.254.169.254 ืืืื ืืืชืจ ืืืจืื ืขื ืืฉืืืื ืืฉืืืช ืืืืืืื. ืืื ืื ืืืงื ื ืคืขืืืื ืฉืืืืช ืืืฉ ืคืืขืืช ืืืืื ืขื ื-VM ืืืื ื ืืืกืืช ืื ืืช.
ืื ืืืืชื ืืืืืฉืื ืืขืื ืืืืจื: ืืืืงืช nmap ืืคืจืืื ืืช ืืืฉืขืจื ืืขืืงืจืืช ืฉืื ื ืืืื ืืืืื ืื ืืช UDP, ืื ืืืขื ื ื ืคืฉืืช ืืขืื ืืื ืืคืฉืจืืืืช ืืืจืืื ืืืืืง ืืืชื:
- ืืื ืื ืืช ื ืืฉืจืืช ืืืืคื ืกืืงืืืื? => ืืืืง ืืช ืืืื iptables
- ืื ืื ืงืื ืืื?
MTU ? => ืืืืง ืคืืip a show
- ืืื ืืืขืื ืืฉืคืืขื ืจืง ืขื ืื ืืช UDP ืื TCP ืื ืื? => ืกืข ืืฉื
dig +tcp
- ืืื ืืืืืจืืช ืื ืืช ืฉื ืืฆืจื ืืืคืืจื? => ืกืข ืืฉื
tcpdump
- ืืื libdns ืคืืขื ืืืืื? => ืกืข ืืฉื
strace
ืืื ืืืืืง ืืขืืจืช ืื ืืช ืืฉื ื ืืืืืื ืื
ืืื ืื ื ืืืืืืื ืืืชืงืฉืจ ืืืฉืชืืฉ ืืื ืืคืชืืจ ืืขืืืช ืืฉืืืืจ ืื.
ืืืืื ืืฉืืื ื ืืื ืืืืืง ืืกืคืจ ืืืจืื:
- ืืืืจ ืืกืคืจ ืืืืงืืช ืื ื ืื ืืืืืื ืืช ืืืื iptables ืืจืฉืืืช ืืกืืืืช
- ืื ืื ื ืืืืงืื ืืืฉืงื ืจืฉืช ืืืืืืืช ื ืืชืื, ืืืืืงืื ืคืขืืืื ืฉื-MTU ืชืงืื
- ืื ืื ื ืืืืื ืืช ืื
dig +tcp google.com
(TCP) ืขืืื ืืื ืฉืฆืจืื, ืืืdig google.com
(UDP) ืื ืขืืื - ืืืืจ ืฉื ืกืขืชื ืืฉื
tcpdump
ืืืืื ืืขืืืืdig
, ืื ื ืืืืื ืฉืืืืืจืืช ืื ืืช UDP - ืื ืื ื ื ืืกืขืื ืืฉื
strace dig google.com
ืืื ืื ื ืจืืืื ืืื ืืืคืืจ ืงืืจื ื ืืืsendmsg()
ะธrecvms()
, ืืืื ืืฉื ื ืืืคืจืข ืขื ืืื ืคืกืง ืืื
ืืืจืื ืืฆืขืจ, ืกืืฃ ืืืฉืืจืช ืืืืข ืืื ื ื ืืืฆืื ืืืกืืื ืืช ืืืขืื ืืืืืจ ืืืื ืืื. ืืืงืฉื, ืืขืืืช ืืืช, ืขืืจืจื ืขื ืืื ืืฆืืืช ืฉืื ื, ืืขืืืช ืืฆืืข ืืืฆืืจ ืืช ืืืืืช ื-DNS ืืจืืฉืื ืืช ืืืืฆืขืืช ืืืืื Python ืืืจืืฃ.
from scapy.all import *
answer = sr1(IP(dst="169.254.169.254")/UDP(dport=53)/DNS(rd=1,qd=DNSQR(qname="google.com")),verbose=0)
print ("169.254.169.254", answer[DNS].summary())
ืงืืข ืื ืืืฆืจ ืืืืืช DNS ืืฉืืื ืืช ืืืงืฉื ืืฉืจืช ืืืื ื ืชืื ืื.
ืืืฉืชืืฉ ืืจืืฅ ืืช ืืงืื, ืชืืืืช ื-DNS ืืืืืจืช, ืืืืคืืืงืฆืื ืืงืืืช ืืืชื, ืืืฉืจืช ืฉืืื ืืขืื ืืจืืช ืืจืฉืช.
ืืืืจ "ืืืื ืืกืืื ืืขืืื" ืืืืจืช ืืืงืฉื ืืฆืืืช ืฉืื ื, ืืื ื ืืขืืืจ ืืืชื ืืืืจื ืืขืฆืื ืืชืื ืืืฉืื ืฉืืืื ื ืื ืืืชืจ ืืืฉืชืืฉ ืื ืืืงืฉื ืชืคืกืืง ืืืกืชืืื ืืืงืื ืืืงืื.
ืืื ืชืืื, ืืืฉืชืืฉ ืืกืืื ืืกืคืง ืชืืื ืช ืืฆื ืฉื ืชืืื ืช ืืืขืจืืช. ืืื ืืืฉืืช ืืืืืช ืืืื: ืืืืืืช ืืืืืง ืืช ืืืขืจืืช ืืขืฆืื ืืืคืืช ืืช ืคืชืจืื ืืชืงืืืช ืืืืืจ ืืจืื ืืืชืจ, ืื ืื ื ืืืจ ืื ืฆืจืื ืืืงืฉ ืืืืฉืชืืฉ ืืืจืืฅ ืคืงืืืืช, ืืฉืืื ืื ืืช ืืชืืฆืืืช ืืื ืชื ืืืชื, ืื ื ืืืื ืืขืฉืืช ืืื ืืขืฆืื!
ืืงืืืืืช ืฉืื ืืชืืืืื ืืงื ื ืื ืงืฆืช. ืืืืื ืืจืืืช ืืฆืืจืืื ืื ืื ื ืื ืื ืืืืจื, ืืื ืืืฃ ืืื ืืื ืืืฉื ืื ืงืืจื. ืืืจืื ืืืื, ืืืฉืชืืฉ ืขืฆืื ืืืจ ื ืงื ืืืืฆืขืื ืืื ืืฆืืฆื ืืช ืืืฉืืืืช ืืืื ื ืืืืจ, ืื ืืฉ ืื ื ืืื ืื ืชื ืืช ืืืขืื. ืืืืืืื ืฉืืฉ ืื ื ืชืืื ื, ืื ืื ื ืืืืืื ืืืจืืฅ ืื ืืืืงื ืฉืืขื ืืื ืช ืืืชื ื. ืืืื!
ืืืงืืื ืฆืขื ืืืืจื
ืืืช ืืฉืืืืช ืืจืืืื ืืช ืืคืืคืืืจืืืช ืืืืชืจ ืืชืคืงืืื ืืื ืืก ืืขืจืืืช ืืื: "ืื ืงืืจื ืืฉืืชื ืคืื ื
ืื ื ืืืืื ืืืืฉื ืืช ืฉืืืช ืืฉืืื ืื ืืฉ ืื ืขื ืืขืื ื ืืืืืช. ืืืืคื ืืก, ืืืฉืจ ืืชื ืื ืกื ืืงืืืข ืฉื DNS, ืงืืจื ืืืืจ ืืื:
- ืืืืฉืื ืงืืจื ืืกืคืจืืืช ืืขืจืืช ืืืื libdns
- libdns ืืืืง ืืช ืชืฆืืจืช ืืืขืจืืช ืืืืื ืฉืจืช DNS ืืื ืฆืจืืื ืืคื ืืช (ืืชืจืฉืื ืื 169.254.169.254, ืฉืจืช ืืื ื ืชืื ืื)
- libdns ืืฉืชืืฉ ืืงืจืืืืช ืืขืจืืช ืืื ืืืฆืืจ ืฉืงืข UDP (SOKET_DGRAM) ืืืฉืืื ืื ืืช UDP ืขื ืฉืืืืชืช DNS ืืฉื ื ืืืืืื ืื
- ืืจื ืืืฉืง sysctl ืชืืืื ืืืืืืจ ืืช ืขืจืืืช ื-UDP ืืจืืช ืืงืจื ื
- ืืงืจื ื ืืงืืื ืืื ืืจืืงืฆืื ืขื ืืืืืจื ืืื ืืืขืืืจ ืื ืืช ืืจื ืืจืฉืช ืืจื ืืืฉืง ืืจืฉืช
- ื-Hypervisor ืชืืคืก ืืืฉืืจ ืืช ืืืืืื ืืฉืจืช ืืืื ื ืชืื ืื ืืขืช ืืืข ืืืชื
- ืฉืจืช ืืืื ื ืชืื ืื, ืืงืกืื, ืงืืืข ืืช ืฉื ื-DNS ืืืืืืจ ืชืืืื ืืืืชื ืฉืืื
ืืจืฉื ืื ืืืืืืจ ืืื ืืืื ืืฉืขืจืืช ืืืจ ืฉืงืื ื:
ืืฉืขืจื: ืกืคืจืืืช ืฉืืืจืืช
- ืืืื 1: ืืคืขื ืืช ื-strace ืืืขืจืืช, ืืืืง ืฉืืคืืจื ืงืืจืืช ืืช ืงืจืืืืช ืืืขืจืืช ืื ืืื ืืช
- ืชืืฆืื: ืงืจืืืืช ืืขืจืืช ื ืืื ืืช ื ืงืจืืืช
- ืืืื 2: ืฉืืืืฉ ื-srapy ืืื ืืืืืง ืื ืื ืื ื ืืืืืื ืืงืืืข ืฉืืืช ืขืืงืคืื ืกืคืจืืืช ืืขืจืืช
- ืชืืฆืื: ืื ืื ื ืืืืืื
- ืืืื 3: ืืคืขื rpm โV ืขื ืืืืืช libdns ืืงืืฆื ืกืคืจืืืช md5sum
- ืชืืฆืื: ืงืื ืืกืคืจืืื ืืื ืืืืืืื ืืงืื ืืืขืจืืช ืืืคืขืื ืืขืืืืช
- ืืืื 4: ืืจืื ืืช ืชืืื ืช ืืขืจืืช ืืฉืืจืฉ ืฉื ืืืฉืชืืฉ ื-VM ืืื ืืชื ืืืืช ืื, ืืคืขื chroot, ืจืื ืื โโDNS ืขืืื
- ืชืืฆืื: DNS ืคืืขื ืืืืื
ืืกืงื ื ืขื ืกืื ืืืืงืืช: ืืืขืื ืื ืืกืคืจืืืช
ืืฉืขืจื: ืืฉ ืฉืืืื ืืืืืจืืช ื-DNS
- ืืืื 1: ืืืืง ืืช tcpdump ืืจืื ืื โโืื ืืช DNS ื ืฉืืืืช ืืืืืืจืืช ืืืืื ืืืืจ ืืคืขืืช ืืืคืืจื
- ืชืืฆืื: ืื ืืช ืืืขืืจืืช ืืืืื
- ืืืื 2: ืืืืง ืฉืื ืืฉืจืช
/etc/nsswitch.conf
ะธ/etc/resolv.conf
- ืชืืฆืื: ืืื ื ืืื
ืืกืงื ื ืขื ืกืื ืืืืงืืช: ืืืขืื ืืื ืื ืืชืฆืืจืช ื-DNS
ืืฉืขืจื: ืืืืื ืคืืืื
- ืืืืงื: ืืชืงื ืงืจื ื ืืืฉ, ืืืืง ืืชืืื, ืืคืขื ืืืืฉ
- ืชืืฆืื: ืืชื ืืืืช ืืืื
ืืกืงื ื ืขื ืกืื ืืืืงืืช: ืืงืจื ื ืืื ื ืคืืื
ืืฉืขืจื: ืืชื ืืืืช ืฉืืืื ืฉื ืจืฉืช ืืืฉืชืืฉ (ืื ืืืฉืง ืจืฉืช ื-Hypervisor)
- ืืืื 1: ืืืืง ืืช ืืืืจืืช ืืืืช ืืืฉ ืฉืื
- ืชืืฆืื: ืืืืช ืืืฉ ืืขืืืจื ืื ืืช DNS ืื ืืืืจื ืืื ื-GCP
- ืืืื 2: ืืืืจื ืชืขืืืจื ืืืคืงื ืขื ื ืืื ืืช ืืฉืืืืจ ืืืืืจื ืฉื ืืงืฉืืช DNS
- ืชืืฆืื: tcpdump ืืืฉืจ ืฉืืืืจื ืงืืื ืื ืืช ืืืืจื
ืืกืงื ื ืขื ืกืื ืืืืงืืช: ืืืขืื ืื ืืจืฉืช
ืืฉืขืจื: ืฉืจืช ืืืื ื ืชืื ืื ืื ืขืืื
- ืืืื 1: ืืืืง ืืช ืืืื ื ืฉืจืช ืืืื ื ืชืื ืื ืืืืชืืจ ืืจืืืืช
- ืชืืฆืื: ืืื ืืจืืืืช ืืืืื ืื
- ืืืื 2: ืขืืงืฃ ืืช ืฉืจืช ืืืื ื ืชืื ืื ืืจื
dig @8.8.8.8
- ืชืืฆืื: ืืจืืืืืฆืื ืฉืืืจื ืื ืืื ืฉืืืืฉ ืืฉืจืช ืืื ื ืชืื ืื
ืืกืงื ื ืขื ืกืื ืืืืงืืช: ืืืขืื ืืื ืื ืืฉืจืช ืืืื ื ืชืื ืื
ืืฉืืจื ืืชืืชืื ื: ืืืงื ื ืืช ืื ืชืช ืืืขืจืืืช ืืืื ืืืืจืืช ืืื ืจืืฆื!
ืฆืืืื ืืืืืจืืช ืืื ืจืืฆื ืฉื ืืืื
ืืื ืืืืืืจ ืืช ืกืืืืช ืืืืฆืืข ืฉื ืืืืื, ืืชื ืืืื ืืืฉืชืืฉ ืืืคืฉืจืืืืช ืฉืืจืช ืืคืงืืื (grub) ืื ืืืืฉืง sysctl. ืืกืชืืืชื ืคื ืืื /etc/sysctl.conf
ืืจืง ืชืืฉืื, ืืืืืชื ืืื ืืืืจืืช ืืืชืืืืช ืืืฉืืช. ืืจืืฉืชื ืืืืื ืชืคืกืชื ืืฉืื, ืืจืงืชื ืืช ืื ืืืืืจืืช ืฉืืื ื ืจืฉืช ืื ืฉืืื ื tcp, ื ืฉืืจืชื ืขื ืืืืจืืช ืืืจ net.core
. ืืืจ ืื ืืืืชื ืืืงืื ืฉืื ืืื ืืจืฉืืืช ืืืืจื ื-VM ืืืชืืืชื ืืืืื ืืช ืืืืืจืืช ืืืช ืืืช, ืืืช ืืืจื ืืฉื ืืื, ืขื ื-VM ืืฉืืืจ, ืขื ืฉืืฆืืชื ืืช ืืืฉื:
net.core.rmem_default = 2147483647
ืื ื ืื, ืชืฆืืจื ืฉืืืจืช DNS! ืืฆืืชื ืืช ืืื ืืจืฆื. ืืื ืืื ืื ืงืืจื? ืขืืืื ืืืืชื ืฆืจืื ืื ืืข.
ืืืื ืืืืจ ืื ืืช ื-DNS ืืืกืืกื ืืืืืจ ืืืืฆืขืืช net.core.rmem_default
. ืขืจื ืืืคืืกื ืืื ืืืคืฉืื ืืกืืืืืช 200KiB, ืืื ืื ืืฉืจืช ืฉืื ืืงืื ืืจืื ืื ืืช DNS, ืืืชืื ืฉืชืจืฆื ืืืืืื ืืช ืืืื ืืืืืจ. ืื ืืืืืจ ืืื ืืฉืืืืขื ืืืืื ืืืฉื, ืืืฉื ืืืื ืฉืืืคืืืงืฆืื ืื ืืขืืืช ืืืชื ืืกืคืืง ืืืจ, ืื ืชืชืืื ืืืื ืื ืืช. ืืืงืื ืฉืื ื ืืืืื ืืฆืืจื ื ืืื ื ืืช ืืืื ืืืืืจ ืืืืืื ืฉืืื ืคืื ืืืืืื ื ืชืื ืื, ืืืืืื ืฉืืื ืืฉืชืืฉ ืืืคืืืงืฆืื ืืืืกืืฃ ืืืืื ืืจื ืื ืืช DNS. ืืขืจื ืฉืืื ืงืืข ืืื ืืืงืกืืืื ืืืคืฉืจื: 231-1 (ืื ืืืืืจ ื-231, ืืงืจื ื ืืืืืจ "INVALID ARGUMENT").
ืคืชืืื ืืื ืชื ืืื nmap ื-scapy ืขืืืืื ืืื ืฉืฆืจืื: ืื ืืฉืชืืฉื ืืฉืงืขืื ืืืืืืื! ืฉืงืขืื ืืืืืืื ืฉืื ืื ืืฉืงืขืื ืจืืืืื: ืื ืขืืงืคืื ืืช ื-iptables, ืืื ืืื ื ืืืฆืคืื!
ืืื ืืื "ืืืืจ ืืืื ืืื" ืืืจื ืืืขืืืช? ืืจืืจ ืฉืื ืื ืขืืื ืืืชืืื ื.
ืืฉืื ืื ืืืืืชื ืืฉืืืจ ืืช ืืืขืื ืืืกืคืจ ืืจืขืื ืื ืืืคืฆืืช ืืจืืืืช. ืืืขืื ืืืจ ืืืคืืขื ืืืืืช 3.x ืืืขืช ืืื ืืืคืืขื ืื ืืืืืช 5.x.
ืืื, ืขื ืืืคืขืื
sysctl -w net.core.rmem_default=$((2**31-1))
DNS ืืคืกืืง ืืขืืื.
ืืชืืืชื ืืืคืฉ ืขืจืื ืขืืืื ืืืืฆืขืืช ืืืืืจืืชื ืืืคืืฉ ืืื ืืจื ืคืฉืื ืืืฆืืชื ืฉืืืขืจืืช ืขืืืืช ืขื 2147481343, ืืื ืืืกืคืจ ืืื ืืื ืขืืืจื ืงืืืฆื ืืกืจืช ืืฉืืขืืช ืฉื ืืกืคืจืื. ืืฆืขืชื ืืืงืื ืื ืกืืช ืืช ืืืกืคืจ ืืื, ืืืื ืขื ื ืฉืืืขืจืืช ืขืืืืช ืขื google.com, ืืื ืขืืืื ื ืชื ื ืฉืืืื ืขื ืืืืืื ืื ืืืจืื, ืื ืืืฉืืชื ืืืงืืจื ืฉืื.
ืืชืงื ืชื udp_queue_rcv_skb
. ืืืจืืชื ืืช ืืงืืจืืช ืืงืจื ื ืืืืกืคืชื ืืื printk
if
, ืืคืฉืื ืืื ืื ืืื ืื, ืื ืื ืืื ืื ืฉืืื ืกืืฃ ืกืืฃ ืืชืืื ืืชืืื ื ืฉืืื: 231-1, ืืกืคืจ ืืกืจ ืืฉืืขืืช, ืชืืื ืื ืขืืื... ืื ืืื ืืชืืืช ืงืื ื __udp_enqueue_schedule_skb
:
if (rmem > (size + sk->sk_rcvbuf))
goto uncharge_drop;
ืฉืืื ืื:
rmem
ืืื ืืกืื intsize
ืืื ืืกืื u16 (ืื ืืชืื ืฉืืฉื-ืขืฉืจ ืกืืืืืช int) ืืืืืกื ืืช ืืืื ืืืืืืsk->sk_rcybuf
ืืื ืืกืื int ืืืืืกื ืืช ืืืื ืืืืืจ ืืฉืจ, ืืืืืจื, ืฉืืื ืืขืจื innet.core.rmem_default
ืืืฉืจ sk_rcvbuf
ืืชืงืจื ื-231, ืกืืืื ืืืื ืืืืืื ืขืฉืื ืืืจืื
ื ืืชื ืืชืงื ืืช ืืฉืืืื ืืฆืืจื ืืจืืืืืืืืช: ืขื ืืื ืืืืืง unsigned int
. ืืืืชื ืืช ืืชืืงืื ืืืคืขืืชื ืืืืฉ ืืช ืืืขืจืืช ืื-DNS ืขืื ืฉืื.
ืืขื ืฉื ื ืืฆืืื
ืืขืืจืชื ืืช ืืืืฆืืื ืฉืื ืืืงืื ืืฉืืืชื
ืจืืื ืืืืืจ ืื ืืืงืจื ืืชืืจืจ ืื ืืืจ, ืืืืจืื ืืืื ืื ื ืืงืืืื ืจืง ืืขืชืื ืจืืืงืืช ืืงืฉืืช ืืืจืืืืช ืื ืื ืืืฉืชืืฉืื.
ืืงืืจ: www.habr.com