ืกื™ืคื•ืจ ืขืœ ืžื ื•ืช DNS ื—ืกืจื•ืช ืžื”ืชืžื™ื›ื” ื”ื˜ื›ื ื™ืช ืฉืœ Google Cloud

ืžืขื•ืจืš ื”ื‘ืœื•ื’ื™ื ืฉืœ ื’ื•ื’ืœ: ื”ืื ืชื”ื™ืชื ืคืขื ื›ื™ืฆื“ ืžื”ื ื“ืกื™ Google Cloud Technical Solutions (TSE) ืžื˜ืคืœื™ื ื‘ื‘ืงืฉื•ืช ื”ืชืžื™ื›ื” ืฉืœื›ื? ืžื”ื ื“ืกื™ ื”ืชืžื™ื›ื” ื”ื˜ื›ื ื™ืช ืฉืœ TSE ืื—ืจืื™ื ืขืœ ื–ื™ื”ื•ื™ ื•ืชื™ืงื•ืŸ ืžืงื•ืจื•ืช ื‘ืขื™ื•ืช ืฉื“ื•ื•ื—ื• ืขืœ ื™ื“ื™ ืžืฉืชืžืฉื™ื. ื—ืœืง ืžื”ื‘ืขื™ื•ืช ื”ืœืœื• ื“ื™ ืคืฉื•ื˜ื•ืช, ืื‘ืœ ืœืคืขืžื™ื ื ืชืงืœื™ื ื‘ื›ืจื˜ื™ืก ืฉื“ื•ืจืฉ ืชืฉื•ืžืช ืœื‘ ืฉืœ ื›ืžื” ืžื”ื ื“ืกื™ื ื‘ื• ื–ืžื ื™ืช. ื‘ืžืืžืจ ื–ื”, ืื—ื“ ืžืขื•ื‘ื“ื™ TSE ื™ืกืคืจ ืœื ื• ืขืœ ื‘ืขื™ื” ืื—ืช ืžืื•ื“ ืžืกื•ื‘ื›ืช ืžื”ืชืจื’ื•ืœ ื”ืื—ืจื•ืŸ ืฉืœื• - ื‘ืžืงืจื” ืฉืœ ืžื ื•ืช DNS ื—ืกืจื•ืช. ื‘ืกื™ืคื•ืจ ื–ื” ื ืจืื” ื›ื™ืฆื“ ื”ืžื”ื ื“ืกื™ื ื”ืฆืœื™ื—ื• ืœืคืชื•ืจ ืืช ื”ืžืฆื‘, ื•ืื™ืœื• ื“ื‘ืจื™ื ื—ื“ืฉื™ื ื”ื ืœืžื“ื• ืชื•ืš ื›ื“ื™ ืชื™ืงื•ืŸ ื”ืฉื’ื™ืื”. ืื ื• ืžืงื•ื•ื™ื ืฉื”ืกื™ืคื•ืจ ื”ื–ื” ืœื ืจืง ืžืœืžื“ ืื•ืชืš ืขืœ ื‘ืื’ ืขืžื•ืง, ืืœื ื’ื ื ื•ืชืŸ ืœืš ืชื•ื‘ื ื•ืช ืœื’ื‘ื™ ื”ืชื”ืœื™ื›ื™ื ื”ื ืœื•ื•ื™ื ืœื”ื’ืฉืช ื›ืจื˜ื™ืก ืชืžื™ื›ื” ืœ-Google Cloud.

ืกื™ืคื•ืจ ืขืœ ืžื ื•ืช DNS ื—ืกืจื•ืช ืžื”ืชืžื™ื›ื” ื”ื˜ื›ื ื™ืช ืฉืœ Google Cloud

ืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื”ื•ื ื’ื ืžื“ืข ื•ื’ื ืืžื ื•ืช. ื”ื›ืœ ืžืชื—ื™ืœ ื‘ื‘ื ื™ื™ืช ื”ืฉืขืจื” ืœื’ื‘ื™ ื”ืกื™ื‘ื” ืœื”ืชื ื”ื’ื•ืช ื”ืœื ืกื˜ื ื“ืจื˜ื™ืช ืฉืœ ื”ืžืขืจื›ืช, ื•ืœืื—ืจ ืžื›ืŸ ื”ื™ื ื ื‘ื“ืงืช ืขืœ ื—ื•ื–ืงื”. ืขื ื–ืืช, ืœืคื ื™ ืฉืื ื• ืžื ืกื—ื™ื ื”ืฉืขืจื”, ืขืœื™ื ื• ืœื”ื’ื“ื™ืจ ื‘ื‘ื™ืจื•ืจ ื•ืœื ืกื— ื‘ืžื“ื•ื™ืง ืืช ื”ื‘ืขื™ื”. ืื ื”ืฉืืœื” ื ืฉืžืขืช ืžืขื•ืจืคืœืช ืžื“ื™, ืื– ืชืฆื˜ืจืš ืœื ืชื— ื”ื›ืœ ื‘ื–ื”ื™ืจื•ืช; ื–ื•ื”ื™ "ื”ืืžื ื•ืช" ืฉืœ ืคืชืจื•ืŸ ื‘ืขื™ื•ืช.

ืชื—ืช Google Cloud, ืชื”ืœื™ื›ื™ื ื›ืืœื” ื”ื•ืคื›ื™ื ืžื•ืจื›ื‘ื™ื ื™ื•ืชืจ ื‘ืื•ืคืŸ ืืงืกืคื•ื ื ืฆื™ืืœื™, ืžื›ื™ื•ื•ืŸ ืฉ-Google Cloud ืžื ืกื” ื›ืžื™ื˜ื‘ ื™ื›ื•ืœืชื• ืœื”ื‘ื˜ื™ื— ืืช ืคืจื˜ื™ื•ืช ื”ืžืฉืชืžืฉื™ื ืฉืœื•. ื‘ื’ืœืœ ื–ื”, ืœืžื”ื ื“ืกื™ TSE ืื™ืŸ ื’ื™ืฉื” ืœืขืจื•ืš ืืช ื”ืžืขืจื›ื•ืช ืฉืœืš, ื•ื’ื ืœื ืืช ื”ื™ื›ื•ืœืช ืœื”ืฆื™ื’ ืชืฆื•ืจื•ืช ื‘ืฆื•ืจื” ืจื—ื‘ื” ื›ืžื• ืœืžืฉืชืžืฉื™ื. ืœื›ืŸ, ื›ื“ื™ ืœื‘ื“ื•ืง ื›ืœ ืื—ืช ืžื”ื”ืฉืขืจื•ืช ืฉืœื ื•, ืื ื—ื ื• (ืžื”ื ื“ืกื™ื) ืœื ื™ื›ื•ืœื™ื ืœืฉื ื•ืช ื‘ืžื”ื™ืจื•ืช ืืช ื”ืžืขืจื›ืช.

ื—ืœืง ืžื”ืžืฉืชืžืฉื™ื ืžืืžื™ื ื™ื ืฉื ืชืงืŸ ื”ื›ืœ ื›ืžื• ืžื›ื•ื ืื•ืช ื‘ืฉื™ืจื•ืช ืจื›ื‘, ื•ืคืฉื•ื˜ ื ืฉืœื— ืœื ื• ืืช ืชืขื•ื“ืช ื”ื–ื”ื•ืช ืฉืœ ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช, ื‘ืขื•ื“ ืฉื‘ืžืฆื™ืื•ืช ื”ืชื”ืœื™ืš ืžืชืจื—ืฉ ื‘ืคื•ืจืžื˜ ืฉืœ ืฉื™ื—ื”: ืื™ืกื•ืฃ ืžื™ื“ืข, ื’ื™ื‘ื•ืฉ ื•ืื™ืฉื•ืจ (ืื• ื”ืคืจื›ืช) ื”ืฉืขืจื•ืช, ื•ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ื‘ืขื™ื•ืช ื”ื—ืœื˜ื” ืžื‘ื•ืกืกื•ืช ืขืœ ืชืงืฉื•ืจืช ืขื ื”ืœืงื•ื—.

ื”ื‘ืขื™ื” ื”ืžื“ื•ื‘ืจืช

ื”ื™ื•ื ื™ืฉ ืœื ื• ืกื™ืคื•ืจ ืขื ืกื•ืฃ ื˜ื•ื‘. ืื—ืช ื”ืกื™ื‘ื•ืช ืœืคืชืจื•ืŸ ื”ืžื•ืฆืœื— ืฉืœ ื”ืžืงืจื” ื”ืžื•ืฆืข ื”ื™ื ืชื™ืื•ืจ ืžืคื•ืจื˜ ื•ืžื“ื•ื™ืง ืžืื•ื“ ืฉืœ ื”ื‘ืขื™ื”. ืœื”ืœืŸ ื ื™ืชืŸ ืœืจืื•ืช ืขื•ืชืง ืฉืœ ื”ื›ืจื˜ื™ืก ื”ืจืืฉื•ืŸ (ืขืจื•ืš ื›ื“ื™ ืœื”ืกืชื™ืจ ืžื™ื“ืข ืกื•ื“ื™):
ืกื™ืคื•ืจ ืขืœ ืžื ื•ืช DNS ื—ืกืจื•ืช ืžื”ืชืžื™ื›ื” ื”ื˜ื›ื ื™ืช ืฉืœ Google Cloud
ื”ื•ื“ืขื” ื–ื• ืžื›ื™ืœื” ืžื™ื“ืข ืจื‘ ืฉื™ืžื•ืฉื™ ืขื‘ื•ืจื ื•:

  • ืฆื•ื™ืŸ 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 ืžื•ื—ื–ืจืช, ื•ื”ืืคืœื™ืงืฆื™ื” ืžืงื‘ืœืช ืื•ืชื•, ืžืืฉืจืช ืฉืื™ืŸ ื‘ืขื™ื” ื‘ืจืžืช ื”ืจืฉืช.

ืœืื—ืจ "ื˜ื™ื•ืœ ืžืกื‘ื™ื‘ ืœืขื•ืœื" ื—ื•ื–ืจืช ื”ื‘ืงืฉื” ืœืฆื•ื•ืช ืฉืœื ื•, ื•ืื ื™ ืžืขื‘ื™ืจ ืื•ืชื” ืœื’ืžืจื™ ืœืขืฆืžื™ ืžืชื•ืš ืžื—ืฉื‘ื” ืฉื™ื”ื™ื” ื ื•ื— ื™ื•ืชืจ ืœืžืฉืชืžืฉ ืื ื”ื‘ืงืฉื” ืชืคืกื™ืง ืœื”ืกืชื•ื‘ื‘ ืžืžืงื•ื ืœืžืงื•ื.

ื‘ื™ื ืชื™ื™ื, ื”ืžืฉืชืžืฉ ืžืกื›ื™ื ืœืกืคืง ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ืชืžื•ื ืช ื”ืžืขืจื›ืช. ืืœื• ื—ื“ืฉื•ืช ื˜ื•ื‘ื•ืช ืžืื•ื“: ื”ื™ื›ื•ืœืช ืœื‘ื“ื•ืง ืืช ื”ืžืขืจื›ืช ื‘ืขืฆืžื™ ื”ื•ืคื›ืช ืืช ืคืชืจื•ืŸ ื”ืชืงืœื•ืช ืœืžื”ื™ืจ ื”ืจื‘ื” ื™ื•ืชืจ, ื›ื™ ืื ื™ ื›ื‘ืจ ืœื ืฆืจื™ืš ืœื‘ืงืฉ ืžื”ืžืฉืชืžืฉ ืœื”ืจื™ืฅ ืคืงื•ื“ื•ืช, ืœืฉืœื•ื— ืœื™ ืืช ื”ืชื•ืฆืื•ืช ื•ืœื ืชื— ืื•ืชืŸ, ืื ื™ ื™ื›ื•ืœ ืœืขืฉื•ืช ื”ื›ืœ ื‘ืขืฆืžื™!

ื”ืงื•ืœื’ื•ืช ืฉืœื™ ืžืชื—ื™ืœื™ื ืœืงื ื ื‘ื™ ืงืฆืช. ื‘ืžื”ืœืš ืืจื•ื—ืช ื”ืฆื”ืจื™ื™ื ืื ื—ื ื• ื“ื ื™ื ื‘ื”ืžืจื”, ืื‘ืœ ืœืืฃ ืื—ื“ ืื™ืŸ ืžื•ืฉื’ ืžื” ืงื•ืจื”. ืœืžืจื‘ื” ื”ืžื–ืœ, ื”ืžืฉืชืžืฉ ืขืฆืžื• ื›ื‘ืจ ื ืงื˜ ื‘ืืžืฆืขื™ื ื›ื“ื™ ืœืฆืžืฆื ืืช ื”ื”ืฉืœื›ื•ืช ื•ืื™ื ื• ืžืžื”ืจ, ืื– ื™ืฉ ืœื ื• ื–ืžืŸ ืœื ืชื— ืืช ื”ื‘ืขื™ื”. ื•ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ืœื ื• ืชืžื•ื ื”, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืจื™ืฅ ื›ืœ ื‘ื“ื™ืงื” ืฉืžืขื ื™ื™ื ืช ืื•ืชื ื•. ื’ื“ื•ืœ!

ืœื•ืงื—ื™ื ืฆืขื“ ืื—ื•ืจื”

ืื—ืช ืžืฉืืœื•ืช ื”ืจืื™ื•ื ื•ืช ื”ืคื•ืคื•ืœืจื™ื•ืช ื‘ื™ื•ืชืจ ืœืชืคืงื™ื“ื™ ืžื”ื ื“ืก ืžืขืจื›ื•ืช ื”ื™ื: "ืžื” ืงื•ืจื” ื›ืฉืืชื” ืคื™ื ื’ www.google.com? ื”ืฉืืœื” ื”ื™ื ื’ื“ื•ืœื”, ืฉื›ืŸ ื”ืžื•ืขืžื“ ืฆืจื™ืš ืœืชืืจ ื”ื›ืœ ืžื”ืžืขื˜ืคืช ืœืžืจื—ื‘ ื”ืžืฉืชืžืฉ, ืœืงืจื ืœ ื”ืžืขืจื›ืช ื•ืื– ืœืจืฉืช. ืื ื™ ืžื—ื™ื™ืš: ืœืคืขืžื™ื ืฉืืœื•ืช ืจืื™ื•ื ื•ืช ืžืชื‘ืจืจื•ืช ื›ืžื•ืขื™ืœื•ืช ื‘ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื...

ืื ื™ ืžื—ืœื™ื˜ ืœื™ื™ืฉื ืืช ืฉืืœืช ืžืฉืื‘ื™ ืื ื•ืฉ ื–ื• ืขืœ ื‘ืขื™ื” ื ื•ื›ื—ื™ืช. ื‘ืื•ืคืŸ ื’ืก, ื›ืืฉืจ ืืชื” ืžื ืกื” ืœืงื‘ื•ืข ืฉื DNS, ืงื•ืจื” ื”ื“ื‘ืจ ื”ื‘ื:

  1. ื”ื™ื™ืฉื•ื ืงื•ืจื ืœืกืคืจื™ื™ืช ืžืขืจื›ืช ื›ื’ื•ืŸ libdns
  2. libdns ื‘ื•ื“ืง ืืช ืชืฆื•ืจืช ื”ืžืขืจื›ืช ืœืื™ื–ื” ืฉืจืช DNS ื”ื™ื ืฆืจื™ื›ื” ืœืคื ื•ืช (ื‘ืชืจืฉื™ื ื–ื” 169.254.169.254, ืฉืจืช ืžื˜ื ื ืชื•ื ื™ื)
  3. libdns ืžืฉืชืžืฉ ื‘ืงืจื™ืื•ืช ืžืขืจื›ืช ื›ื“ื™ ืœื™ืฆื•ืจ ืฉืงืข UDP (SOKET_DGRAM) ื•ืœืฉืœื•ื— ืžื ื•ืช UDP ืขื ืฉืื™ืœืชืช DNS ืœืฉื ื™ ื”ื›ื™ื•ื•ื ื™ื
  4. ื“ืจืš ืžืžืฉืง sysctl ืชื•ื›ืœื• ืœื”ื’ื“ื™ืจ ืืช ืขืจื™ืžืช ื”-UDP ื‘ืจืžืช ื”ืงืจื ืœ
  5. ื”ืงืจื ืœ ืžืงื™ื™ื ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ื—ื•ืžืจื” ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืžื ื•ืช ื“ืจืš ื”ืจืฉืช ื“ืจืš ืžืžืฉืง ื”ืจืฉืช
  6. ื”-Hypervisor ืชื•ืคืก ื•ืžืฉื“ืจ ืืช ื”ื—ื‘ื™ืœื” ืœืฉืจืช ื”ืžื˜ื ื ืชื•ื ื™ื ื‘ืขืช ืžื’ืข ืื™ืชื•
  7. ืฉืจืช ื”ืžื˜ื ื ืชื•ื ื™ื, ื‘ืงืกืžื•, ืงื•ื‘ืข ืืช ืฉื ื”-DNS ื•ืžื—ื–ื™ืจ ืชื’ื•ื‘ื” ื‘ืื•ืชื” ืฉื™ื˜ื”

ืกื™ืคื•ืจ ืขืœ ืžื ื•ืช DNS ื—ืกืจื•ืช ืžื”ืชืžื™ื›ื” ื”ื˜ื›ื ื™ืช ืฉืœ Google Cloud
ื”ืจืฉื• ืœื™ ืœื”ื–ื›ื™ืจ ืœื›ื ืื™ืœื• ื”ืฉืขืจื•ืช ื›ื‘ืจ ืฉืงืœื ื•:

ื”ืฉืขืจื”: ืกืคืจื™ื•ืช ืฉื‘ื•ืจื•ืช

  • ืžื‘ื—ืŸ 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, ืื‘ืœ ืขื“ื™ื™ืŸ ื ืชื ื” ืฉื’ื™ืื” ืขื ื“ื•ืžื™ื™ื ื™ื ืื—ืจื™ื, ืื– ื”ืžืฉื›ืชื™ ื‘ื—ืงื™ืจื” ืฉืœื™.

ื”ืชืงื ืชื™ dropwatch, ื›ืœื™ ืฉื”ื™ื” ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ื• ืงื•ื“ื ืœื›ืŸ: ื”ื•ื ืžืจืื” ื‘ื“ื™ื•ืง ื”ื™ื›ืŸ ื‘ืงืจื ืœ ืžื’ื™ืขื” ื—ื‘ื™ืœื”. ื”ืืฉื ื”ื™ื” ื”ืคื•ื ืงืฆื™ื” udp_queue_rcv_skb. ื”ื•ืจื“ืชื™ ืืช ืžืงื•ืจื•ืช ื”ืงืจื ืœ ื•ื”ื•ืกืคืชื™ ื›ืžื” ืคื•ื ืงืฆื™ื•ืช printk ื›ื“ื™ ืœืขืงื•ื‘ ืื—ืจ ื”ื™ื›ืŸ ื‘ื“ื™ื•ืง ืžื’ื™ืขื” ื”ื—ื‘ื™ืœื”. ืžืฆืืชื™ ื‘ืžื”ื™ืจื•ืช ืืช ื”ืžืฆื‘ ื”ื ื›ื•ืŸ if, ื•ืคืฉื•ื˜ ื‘ื”ื” ื‘ื• ื–ืžืŸ ืžื”, ื›ื™ ื–ื” ื”ื™ื” ืื– ืฉื”ื›ืœ ืกื•ืฃ ืกื•ืฃ ื”ืชืื—ื“ ืœืชืžื•ื ื” ืฉืœืžื”: 231-1, ืžืกืคืจ ื—ืกืจ ืžืฉืžืขื•ืช, ืชื—ื•ื ืœื ืขื•ื‘ื“... ื–ื” ื”ื™ื” ื—ืชื™ื›ืช ืงื•ื“ ื‘ __udp_enqueue_schedule_skb:

if (rmem > (size + sk->sk_rcvbuf))
		goto uncharge_drop;

ืฉื™ืžื• ืœื‘:

  • rmem ื”ื•ื ืžืกื•ื’ int
  • size ื”ื•ื ืžืกื•ื’ u16 (ืœื ื—ืชื•ื ืฉื™ืฉื”-ืขืฉืจ ืกื™ื‘ื™ื•ืช int) ื•ืžืื—ืกืŸ ืืช ื’ื•ื“ืœ ื”ื—ื‘ื™ืœื”
  • sk->sk_rcybuf ื”ื•ื ืžืกื•ื’ int ื•ืžืื—ืกืŸ ืืช ื’ื•ื“ืœ ื”ืžืื’ืจ ืืฉืจ, ื‘ื”ื’ื“ืจื”, ืฉื•ื•ื” ืœืขืจืš in net.core.rmem_default

ื›ืืฉืจ sk_rcvbuf ืžืชืงืจื‘ ืœ-231, ืกื™ื›ื•ื ื’ื•ื“ืœ ื”ื—ื‘ื™ืœื” ืขืฉื•ื™ ืœื’ืจื•ื ื’ืœื™ืฉื” ื ื•ืžืจื™ืช. ื•ืžื›ื™ื•ื•ืŸ ืฉืžื“ื•ื‘ืจ ื‘-int, ื”ืขืจืš ืฉืœื• ื”ื•ืคืš ืœืฉืœื™ืœื™, ืื– ื”ืชื ืื™ ื”ื•ืคืš ืœื”ื™ื•ืช ืืžื™ืชื™ ื›ืืฉืจ ื”ื•ื ืฆืจื™ืš ืœื”ื™ื•ืช ืฉืงืจ (ืชื•ื›ืœ ืœืงืจื•ื ืขื•ื“ ืขืœ ื›ืš ื‘- ืงืฉืจ).

ื ื™ืชืŸ ืœืชืงืŸ ืืช ื”ืฉื’ื™ืื” ื‘ืฆื•ืจื” ื˜ืจื™ื•ื•ื™ืืœื™ืช: ืขืœ ื™ื“ื™ ืœื™ื”ื•ืง unsigned int. ื”ื—ืœืชื™ ืืช ื”ืชื™ืงื•ืŸ ื•ื”ืคืขืœืชื™ ืžื—ื“ืฉ ืืช ื”ืžืขืจื›ืช ื•ื”-DNS ืขื‘ื“ ืฉื•ื‘.

ื˜ืขื ืฉืœ ื ื™ืฆื—ื•ืŸ

ื”ืขื‘ืจืชื™ ืืช ื”ืžืžืฆืื™ื ืฉืœื™ ืœืœืงื•ื— ื•ืฉืœื—ืชื™ LKML ืชื™ืงื•ืŸ ืœื™ื‘ื”. ืื ื™ ืžืจื•ืฆื”: ื›ืœ ื—ืœืง ื‘ืคืื–ืœ ืžืฉืชืœื‘, ืื ื™ ื™ื›ื•ืœ ืœื”ืกื‘ื™ืจ ื‘ื“ื™ื•ืง ืœืžื” ืฆืคื™ื ื• ื‘ืžื” ืฉืฆืคื™ื ื•, ื•ื”ื›ื™ ื—ืฉื•ื‘, ื”ืฆืœื—ื ื• ืœืžืฆื•ื ืคืชืจื•ืŸ ืœื‘ืขื™ื” ื‘ื–ื›ื•ืช ืขื‘ื•ื“ืช ื”ืฆื•ื•ืช ืฉืœื ื•!

ืจืื•ื™ ืœื”ื›ื™ืจ ื›ื™ ื”ืžืงืจื” ื”ืชื‘ืจืจ ื›ื ื“ื™ืจ, ื•ืœืžืจื‘ื” ื”ืžื–ืœ ืื ื• ืžืงื‘ืœื™ื ืจืง ืœืขืชื™ื ืจื—ื•ืงื•ืช ื‘ืงืฉื•ืช ืžื•ืจื›ื‘ื•ืช ื›ืœ ื›ืš ืžืžืฉืชืžืฉื™ื.

ืกื™ืคื•ืจ ืขืœ ืžื ื•ืช DNS ื—ืกืจื•ืช ืžื”ืชืžื™ื›ื” ื”ื˜ื›ื ื™ืช ืฉืœ Google Cloud


ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”