ื‘ื™ื™ืคึผืึทืก ILV ื‘ืœืึทืงื™ื ื’ ืžื™ื˜ DNSTap ืื•ืŸ BGP

ื‘ื™ื™ืคึผืึทืก ILV ื‘ืœืึทืงื™ื ื’ ืžื™ื˜ DNSTap ืื•ืŸ BGP

ื“ื™ ื˜ืขืžืข ืื™ื– ืฉื™ื™ืŸ ื’ืขืฉืœืื’ืŸ, ืื™ืš ื•ื•ื™ืกืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืื™ื– ืึท ื’ืจื•ื™ืก ืึทืจื˜ื™ืงืœ, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ื“ื™ IP ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื‘ืœืึธืงืœื™ืกื˜ ืื™ื– ื‘ืึทื˜ืจืึทื›ื˜ ื“ืึธืจื˜. ืžื™ืจ ื•ื•ืขืœืŸ ืื•ื™ืš ืœื™ื™ื’ืŸ ื“ืึธื•ืžื™ื™ื ื–.

ืฆื•ืœื™ื‘ ื“ืขื ื•ื•ืืก ื“ื™ ื’ืขืจื™ื›ื˜ืŸ ืื•ืŸ ื“ื™ ืจืงืŸ ื‘ืœืืงื™ืจืŸ ืืœืขืก ืจืขื›ื˜ืก ืื•ืŸ ืœื™ื ืงืก, ืื•ืŸ ื“ื™ ืคืืจื–ืืจื’ืขืจืก ืคืจื•ื‘ื™ืจืŸ ื–ื™ืš ื ื™ืฉื˜ ืฆื• ืคืืœืŸ ืื•ื ื˜ืขืจ ื“ื™ ืงื ืกื•ืช ื•ื•ืืก ืจืขื•ื•ื™ื–ืืจืจื ื”ืื˜ ืืจื•ื™ืกื’ืขื’ืขื‘ืŸ, ื–ืขื ืขืŸ ื“ื™ ืฆื•ื’ืขื‘ื•ื ื“ืขื ืข ืคืืจืœื•ืกื˜ืŸ ืคื•ืŸ ื‘ืœืืงื™ืจื•ื ื’ ื’ืื ืฅ ื’ืจื•ื™ืก. ืื•ืŸ ืฆื•ื•ื™ืฉืŸ ื“ื™ "ืœืึธืคืึทืœื™" ืืคื’ืขืฉื˜ืขืœื˜ ื–ื™ื™ื˜ืœืขืš ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ื ื•ืฆื™ืง ืึธื ืขืก (ื”ืขืœื, ืจื•ื˜ืจืึทืงืขืจ)

ืื™ืš ื•ื•ืื•ื™ืŸ ืื•ื™ืกืขืจ ื“ื™ ื“ื–ืฉื•ืจื™ืกื“ื™ืงืฉืึทืŸ ืคื•ืŸ ืจืงืŸ, ืึธื‘ืขืจ ืžื™ื™ืŸ ืขืœื˜ืขืจืŸ, ืงืจื•ื‘ื™ื ืื•ืŸ ืคืจื™ื™ื ื˜ ื–ืขื ืขืŸ ื’ืขื‘ืœื™ื‘ืŸ ืื™ืŸ ืฉื˜ื•ื‘. ืึทื–ื•ื™ ืขืก ืื™ื– ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืงื•ืžืขืŸ ืึทืจื•ื™ืฃ ืžื™ื˜ ืึทืŸ ื’ืจื™ื ื’ ื•ื•ืขื’ ืคึฟืึทืจ ืžืขื ื˜ืฉืŸ ื•ื•ื™ื™ึทื˜ ืคื•ืŸ ืขืก ืฆื• ื‘ื™ื™ืคึผืึทืก ื‘ืœืึทืงื™ื ื’, ืคึผืจืขืคืขืจืึทื‘ืœื™ ืึธืŸ ื–ื™ื™ืขืจ ืึธื ื˜ื™ื™ืœ ืื™ืŸ ืึทืœืข.

ืื™ืŸ ื“ืขื ื˜ืึธืŸ, ืื™ืš ื•ื•ืขืœ ื ื™ืฉื˜ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื™ืงืขืจื“ื™ืง ื ืขืฅ ื˜ื™ื ื’ื– ืื™ืŸ ืกื˜ืขืคึผืก, ืึธื‘ืขืจ ืื™ืš ื•ื•ืขืœ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืึทืœื’ืขืžื™ื™ื ืข ืคึผืจื™ื ืกืึทืคึผืึทืœื– ืคื•ืŸ ื•ื•ื™ ื“ืขื ืกื›ืขืžืข ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“. ืึทื–ื•ื™ ื•ื•ื™ืกืŸ ืคื•ืŸ ื•ื•ื™ ื“ื™ ื ืขืฅ ืึทืจื‘ืขื˜ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืื•ืŸ ืื™ืŸ ืœื™ื ื•ืงืก ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืื™ื– ืึท ืžื•ื–ืŸ ื”ืึธื‘ืŸ.

ื˜ื™ื™ืคึผืก ืคื•ืŸ ืœืึทืงืก

ืงื•ื“ื ืœืืžื™ืจ ื“ืขืจืคืจื™ืฉืŸ ืื•ื ื–ืขืจ ื–ื›ืจื•ืŸ ืคื•ืŸ ื•ื•ืืก ืžืขืŸ ื‘ืœืืงื™ืจื˜.

ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืœืึทืงืก ืื™ืŸ ื“ื™ ืึทื ืœืึธื•ื“ื™ื“ ืงืกืžืœ ืคึฟื•ืŸ RKN:

  • IP
  • ืคืขืœื“
  • URL

ืคึฟืึทืจ ืคึผืึทืฉื˜ืขืก, ืžื™ืจ ื•ื•ืขืœืŸ ืจืขื“ื•ืฆื™ืจืŸ ื–ื™ื™ ืฆื• ืฆื•ื•ื™ื™: IP ืื•ืŸ ืคืขืœื“, ืื•ืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืคืฉื•ื˜ ืฆื™ืขืŸ ื“ื™ ืคืขืœื“ ืคื•ืŸ ื‘ืœืึทืงื™ื ื’ ื“ื•ืจืš URL (ืžืขืจ ื’ืขื ื•ื™, ื–ื™ื™ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื’ืขื˜ืืŸ ื“ืึธืก ืคึฟืึทืจ ืื•ื ื“ื–).

ื’ื•ื˜ืข ืžืขื ื˜ืฉืŸ ืคื•ืŸ ืจืึธืกืงืึธืžืกื•ื•ืึธื‘ืึธื“ืึท ืื™ื™ื ื’ืขื–ืขืŸ ืึท ื•ื•ื•ื ื“ืขืจืœืขืš ืึทืคึผื™, ื“ื•ืจืš ื•ื•ืึธืก ืžื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ:

ืึทืงืกืขืก ืฆื• ืืคื’ืขืฉื˜ืขืœื˜ ื–ื™ื™ื˜ืœืขืš

ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืขื˜ืœืขื›ืข ืงืœื™ื™ืŸ ืคืจืขืžื“ ื•ื•ืคึผืก, ืคึผืจืขืคืขืจืึทื‘ืœื™ ืžื™ื˜ ืึทื ืœื™ืžืึทื˜ืึทื“ ืคืึทืจืงืขืจ - ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื–ื™ื™ ืคึฟืึทืจ 3-5 ื‘ืึทืงืก. ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ืขืžืขืŸ ืขืก ืื™ืŸ ื“ื™ ืœืขื‘ืŸ ืื•ื™ืกืœืื ื“ ืึทื–ื•ื™ ืึทื– ื“ื™ ืคึผื™ื ื’ ืื™ื– ื ื™ืฉื˜ ื–ื™ื™ืขืจ ื’ืจื•ื™ืก, ืึธื‘ืขืจ ื•ื•ื™ื“ืขืจ, ื ืขืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ืึทื– ื“ื™ ืื™ื ื˜ืขืจื ืขื˜ ืื•ืŸ ื’ืขืึธื’ืจืึทืคื™ ื˜ืึธืŸ ื ื™ื˜ ืฉื˜ืขื ื“ื™ืง ืฆื•ื ื•ื™ืคืคืึทืœืŸ. ืื•ืŸ ื–ื™ื ื˜ ืขืก ืื™ื– ืงื™ื™ืŸ SLA ืคึฟืึทืจ 5 ื‘ืึทืงืก, ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ื ืขืžืขืŸ 2+ ื‘ืจืขืงืœืขืš ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– ืคึฟืึทืจ ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ.

ื•ื•ื™ื™ึทื˜ืขืจ, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ืึทืจื•ื™ืฃ ืึท ื™ื ืงืจื™ืคึผื˜ื™ื“ ื˜ื•ื ืขืœ ืคื•ืŸ ื“ื™ ืงืœื™ืขื ื˜ ืจืึทื•ื˜ืขืจ ืฆื• ื“ื™ ื•ื•ืคึผืก. ืื™ืš ื ื•ืฆืŸ Wireguard ื•ื•ื™ ื“ื™ ืคืึทืกื˜ืึทืกื˜ ืื•ืŸ ื™ื–ื™ืึทืกื˜ ืฆื• ืฉื˜ืขืœืŸ ืึทืจื•ื™ืฃ. ืื™ืš ืื•ื™ืš ื”ืึธื‘ืŸ ืงืœื™ืขื ื˜ ืจืึธื•ื˜ืขืจืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืœื™ื ื•ืงืก (APU2 ืึธื“ืขืจ ืขืคึผืขืก ืื™ืŸ OpenWRT). ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืขื˜ืœืขื›ืข ืžื™ืงืจืึธื˜ื™ืง / ืกื™ืกืงืึธ, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ ืคึผืจืึธื˜ืึธืงืึธืœืก ื‘ื ื™ืžืฆื ืื•ื™ืฃ ื–ื™ื™ ื•ื•ื™ OpenVPN ืื•ืŸ GRE-over-IPSEC.

ืœืขื’ื™ื˜ื™ืžืึทืฆื™ืข ืื•ืŸ ืจื™ื“ืขืจืขืงืฉืึทืŸ ืคื•ืŸ ืคืึทืจืงืขืจ ืคื•ืŸ ืื™ื ื˜ืขืจืขืก

ืื™ืจ ืงืขื ืขืŸ, ืคื•ืŸ ืงื•ืจืก, ืงืขืจ ืึทื•ื•ืขืง ืึทืœืข ืื™ื ื˜ืขืจื ืขื˜ ืคืึทืจืงืขืจ ื“ื•ืจืš ืคืจืขืžื“ ืœืขื ื“ืขืจ. ืึธื‘ืขืจ, ืจื•ื‘ึฟ ืžืกืชึผืžื, ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื”ื™ื’ืข ืื™ื ื”ืึทืœื˜ ื•ื•ืขื˜ ืœื™ื™ึทื“ืŸ ื–ื™ื™ืขืจ ืคื•ืŸ ื“ืขื. ืคึผืœื•ืก, ื“ื™ ื‘ืึทื ื“ื•ื•ื™ื“ื˜ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืื•ื™ืฃ VPS ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคื™ืœ ื”ืขื›ืขืจ.

ื“ืขืจื™ื‘ืขืจ, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืขืคืขืก ืึทืœืึทืงื™ื™ื˜ ืคืึทืจืงืขืจ ืฆื• ืืคื’ืขืฉื˜ืขืœื˜ ื–ื™ื™ื˜ืœืขืš ืื•ืŸ ืกืึทืœืขืงื˜ื™ื•ื•ืœื™ ื“ื™ืจืขืงื˜ ืขืก ืฆื• ื“ืขื ื˜ื•ื ืขืœ. ืืคื™ืœื• ืื•ื™ื‘ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ "ืขืงืกื˜ืจืข" ืคืึทืจืงืขืจ ืงื•ืžื˜ ื“ืึธืจื˜, ืขืก ืื™ื– ื ืึธืš ืคื™ืœ ื‘ืขืกืขืจ ื•ื•ื™ ืคืึธืจ ืึทืœืฅ ื“ื•ืจืš ื“ืขื ื˜ื•ื ืขืœ.

ืฆื• ืคื™ืจืŸ ืคืึทืจืงืขืจ, ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ื“ื™ BGP ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ืžืขืœื“ืŸ ืจื•ืฅ ืฆื• ื“ื™ ื ื™ื™ื˜ื™ืง ื ืขื˜ื•ื•ืึธืจืงืก ืคึฟื•ืŸ ืื•ื ื“ื–ืขืจ ื•ื•ืคึผืก ืฆื• ืงืœื™ื™ืึทื ืฅ. ืœืึธืžื™ืจ ื ืขืžืขืŸ BIRD ื•ื•ื™ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืžืขืจืกื˜ ืคืึทื ื’ืงืฉืึทื ืึทืœ ืื•ืŸ ื‘ืึทืงื•ื•ืขื BGP ื“ืขืžืึธื ืก.

IP

ืžื™ื˜ ื‘ืœืึทืงื™ื ื’ ื“ื•ืจืš IP, ืึทืœืฅ ืื™ื– ืงืœืึธืจ: ืžื™ืจ ืคืฉื•ื˜ ืžืขืœื“ืŸ ืึทืœืข ืืคื’ืขืฉื˜ืขืœื˜ IPs ืžื™ื˜ VPS. ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ืึทื– ืขืก ื–ืขื ืขืŸ ื•ื•ืขื’ืŸ 600 ื˜ื•ื™ื–ื ื˜ ืกื•ื‘ื ืขืฅ ืื™ืŸ ื“ืขืจ ืจืฉื™ืžื” ื•ื•ืึธืก ื“ื™ API ืงืขืจื˜, ืื•ืŸ ื“ื™ ื•ื•ืึทืกื˜ ืžืขืจื”ื™ื™ึทื˜ ืคื•ืŸ ื–ื™ื™ ื–ืขื ืขืŸ /32 ืžื—ื ื•ืช. ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืจื•ืฅ ืงืขื ืขืŸ ืฆืขืžื™ืฉืŸ ืฉื•ื•ืึทืš ืงืœื™ืขื ื˜ ืจืึธื•ื˜ืขืจืก.

ื“ืขืจื™ื‘ืขืจ, ื•ื•ืขืŸ ืคึผืจืึทืกืขืกื™ื ื’ ื“ื™ ืจืฉื™ืžื”, ืขืก ืื™ื– ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืกืึทืžืขืจื™ื™ื– ืึทืจื•ื™ืฃ ืฆื• ื“ื™ ื ืขืฅ / 24 ืื•ื™ื‘ ืขืก ื”ืื˜ 2 ืึธื“ืขืจ ืžืขืจ ืžื—ื ื•ืช. ืื–ื•ื™, ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืจื•ืฅ ืื™ื– ืจื™ื“ื•ืกื˜ ืฆื• ~ 100 ื˜ื•ื™ื–ื ื˜. ื“ืขืจ ืฉืจื™ืคื˜ ืคึฟืึทืจ ื“ืขื ื•ื•ืขื˜ ื ืึธื›ืคืึธืœื’ืŸ.

ื“ืึธื•ืžื™ื™ื ื–

ืขืก ืื™ื– ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืื•ืŸ ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ื•ื•ืขื’ืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ืงืขื ืขืŸ ื™ื ืกื˜ืึทืœื™ืจืŸ ืึท ื˜ืจืึทื ืกืคึผืขืจืึทื ื˜ ืกืงื•ื•ื™ื“ ืื•ื™ืฃ ื™ืขื“ืขืจ ืงืœื™ืขื ื˜ ืจืึทื•ื˜ืขืจ ืื•ืŸ ื˜ืึธืŸ ื”ื˜ื˜ืคึผ ื™ื ื˜ืขืจืกืขืคึผืฉืึทืŸ ื“ืึธืจื˜ ืื•ืŸ ืคึผื™ืคึผืก ืื™ืŸ ื“ื™ TLS ื›ืึทื ื“ืฉื™ื™ืง ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื’ืขื‘ืขื˜ืŸ URL ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืคืึทืœ ืื•ืŸ ื“ื™ ืคืขืœื“ ืคื•ืŸ SNI ืื™ืŸ ื“ื™ ืจื’ืข.

ืึธื‘ืขืจ ืจืขื›ื˜ ืฆื• ืึทืœืข ืกืึธืจืฅ ืคื•ืŸ ื ื™ื™ึท-ืคืึทื ื’ื’ืึทืœื“ TLS1.3 + eSNI, HTTPS ืึทื ืึทืœื™ืกื™ืก ื•ื•ืขืจื˜ ื•ื•ื™ื™ื ื™ืงืขืจ ืื•ืŸ ื•ื•ื™ื™ื ื™ืงืขืจ ืคืึทืงื˜ื™ืฉ ื™ืขื“ืขืจ ื˜ืึธื’. ื™ืึธ, ืื•ืŸ ื“ื™ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ืื•ื™ืฃ ื“ื™ ืงืœื™ืขื ื˜ ื–ื™ื™ึทื˜ ืื™ื– ืฉื™ื™ืŸ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ - ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ื ื•ืฆืŸ ืœืคึผื—ื•ืช OpenWRT.

ื“ืขืจื™ื‘ืขืจ, ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื ืขืžืขืŸ ื“ืขื ื•ื•ืขื’ ืคื•ืŸ ื™ื ื˜ืขืจืกืขืคึผื˜ื™ื ื’ ืจืขืกืคึผืึธื ืกืขืก ืฆื• ื“ื ืก ืจื™ืงื•ื•ืขืก. ื“ืึธ ืื•ื™ืš, ืงื™ื™ืŸ DNS-over-TLS / HTTPS ื”ื™ื™ื‘ื˜ ืฆื• ื›ืึทื•ื•ืขืจ ืื™ื‘ืขืจ ื“ื™ื™ืŸ ืงืึธืคึผ, ืึธื‘ืขืจ ืžื™ืจ ืงืขื ืขืŸ (ื“ืขืจื•ื•ื™ื™ืœ) ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ืขื ื˜ื™ื™ืœ ืื•ื™ืฃ ื“ืขื ืงืœื™ืขื ื˜ - ืึธื“ืขืจ ื“ื™ืกื™ื™ื‘ืึทืœ ืขืก ืึธื“ืขืจ ื ื•ืฆืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืกืขืจื•ื•ืขืจ ืคึฟืึทืจ ื“ืึธื˜ / ื“ืึธื”.

ื•ื•ื™ ืฆื• ื™ื ื˜ืขืจืกืขืคึผื˜ DNS?

ืื•ื™ืš ื“ืึธ, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืขื˜ืœืขื›ืข ืึทืคึผืจืึธื•ื˜ืฉื™ื–.

  • ื™ื ื˜ืขืจืกืขืคึผืฉืึทืŸ ืคื•ืŸ ื“ื ืก ืคืึทืจืงืขืจ ื“ื•ืจืš PCAP ืึธื“ืขืจ NFLOG
    ื‘ื™ื™ื“ืข ื“ื™ ืžืขื˜ื”ืึธื“ืก ืคื•ืŸ ื™ื ื˜ืขืจืกืขืคึผืฉืึทืŸ ื–ืขื ืขืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื“ื™ ื ื•ืฆืŸ ืกื™ื“ืžืึทื˜. ืื‘ืขืจ ืขืก ืื™ื– ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜ ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืื•ืŸ ื“ื™ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืื™ื– ื–ื™ื™ืขืจ ืคึผืจื™ืžื™ื˜ื™ื•ื•, ืึทื–ื•ื™ ืื™ืจ ื ืึธืš ื“ืึทืจืคึฟืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ื›ืึทืจื ื™ืก ืคึฟืึทืจ ืขืก.
  • ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื“ื ืก ืกืขืจื•ื•ืขืจ ืœืึธื’ืก
    ืฆื•ื ื‘ืึทื“ื•ื™ืขืจืŸ, ื“ื™ ืจืขืงื•ืจืกืึธืจืก ื‘ืืงืื ื˜ ืฆื• ืžื™ืจ ื–ืขื ืขืŸ ื ื™ืฉื˜ ื‘ื™ื›ื•ืœืช ืฆื• ืงืœืึธืฅ ืจืขืกืคึผืึธื ืกืขืก, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ืจื™ืงื•ื•ืขืก. ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ื“ืึธืก ืื™ื– ืœืึทื“ื–ืฉื™ืงืึทืœ, ื•ื•ื™ื™ึทืœ, ื ื™ื˜ ืขื ืœืขืš ืจื™ืงื•ื•ืขืก, ืขื ื˜ืคึฟืขืจืก ื”ืึธื‘ืŸ ืึท ืงืึธืžืคึผืœืขืงืก ืกื˜ืจื•ืงื˜ื•ืจ ืื•ืŸ ืขืก ืื™ื– ืฉื•ื•ืขืจ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื–ื™ื™ ืื™ืŸ ื˜ืขืงืกื˜ ืคืึธืจืขื.
  • DNSTap
    ืฆื•ืž ื’ืœื™ืง, ืคื™ืœืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™ ืฉื•ื™ืŸ ืฉื˜ื™ืฆืŸ DNSTap ืคึฟืึทืจ ื“ืขื ืฆื•ื•ืขืง.

ื•ื•ืึธืก ืื™ื– DNSTap?

ื‘ื™ื™ืคึผืึทืก ILV ื‘ืœืึทืงื™ื ื’ ืžื™ื˜ DNSTap ืื•ืŸ BGP

ืขืก ืื™ื– ืึท ืงืœื™ืขื ื˜-ืกืขืจื•ื•ืขืจ ืคึผืจืึธื˜ืึธืงืึธืœ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคึผืจืึธื˜ืึธืงืึธืœ ื‘ืึทืคืขืจืก ืื•ืŸ ืจืึทื ืกื˜ืจืขืึทืžืก ืคึฟืึทืจ ื˜ืจืึทื ืกืคืขืจื™ื ื’ ืคื•ืŸ ืึท ื“ื ืก ืกืขืจื•ื•ืขืจ ืฆื• ืึท ื–ืึทืžืœืขืจ ืคื•ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื“ ื“ื ืก ืคึฟืจืื’ืŸ ืื•ืŸ ืจืขืกืคึผืึธื ืกืขืก. ื™ืกืขื ืฉืึทืœื™, ื“ื™ ื“ื ืก ืกืขืจื•ื•ืขืจ ื˜ืจืึทื ืกืžื™ืฅ ืึธื ืคึฟืจืขื’ ืื•ืŸ ืขื ื˜ืคืขืจ ืžืขื˜ืึทื“ืึทื˜ืึท (ื˜ื™ืคึผ ืคื•ืŸ ืึธื ื–ืึธื’, ืงืœื™ืขื ื˜ / ืกืขืจื•ื•ืขืจ IP, ืืื–"ื• ื•) ืคึผืœื•ืก ื’ืึทื ืฅ ื“ื ืก ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ ื“ื™ (ื‘ื™ื™ื ืขืจื™) ืคืึธืจืขื ืื™ืŸ ื•ื•ืึธืก ืขืก ืึทืจื‘ืขื˜ ืžื™ื˜ ื–ื™ื™ ืื™ื‘ืขืจ ื“ื™ ื ืขืฅ.

ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทื– ืื™ืŸ ื“ื™ DNSTap ืคึผืึทืจืึทื“ื™ื’ื, ื“ื™ ื“ื ืก ืกืขืจื•ื•ืขืจ ืึทืงื˜ ื•ื•ื™ ืึท ืงืœื™ืขื ื˜ ืื•ืŸ ื“ืขืจ ื–ืึทืžืœืขืจ ืึทืงื˜ ื•ื•ื™ ืึท ืกืขืจื•ื•ืขืจ. ืึทื– ืื™ื–, ื“ื™ ื“ื ืก ืกืขืจื•ื•ืขืจ ืงืึทื ืขืงืฅ ืฆื• ื“ื™ ืงืึทืœืขืงื˜ืขืจ, ืื•ืŸ ื ื™ืฉื˜ ื•ื•ื™ืฆืข ื•ื•ืขืจืกืึท.

ื”ื™ื™ึทื ื˜ DNSTap ืื™ื– ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ ืึทืœืข ืคืึธืœืงืก ื“ื ืก ืกืขืจื•ื•ืขืจืก. ืึธื‘ืขืจ, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, BIND ืื™ืŸ ืคื™ืœืข ื“ื™ืกื˜ืจื™ื‘ื™ื•ืฉืึทื ื– (ื•ื•ื™ Ubuntu LTS) ืื™ื– ืึธืคื˜ ื’ืขื‘ื•ื™ื˜ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื” ืึธืŸ ืฉื˜ื™ืฆืŸ. ืึทื–ื•ื™ ืœืึธื–ืŸ ืื•ื ื“ื– ื ื™ืฉื˜ ืึทืจืŸ ืžื™ื˜ ืจื™ืึทืกืขืžื‘ืึทืœื™ื ื’, ืึธื‘ืขืจ ื ืขืžืขืŸ ืึท ืœื™ื™ื˜ืขืจ ืื•ืŸ ืคืึทืกื˜ืขืจ ืจืขืงื•ืจืกืึธืจ - ื•ื ื‘ืึทื•ื ื“.

ื•ื•ื™ ืฆื• ื›ืึทืคึผืŸ DNSTap?

ืขืก ื™ื– ืคืึทืจืึทืŸ ืขื˜ืœืขื›ืข ื ื•ืžืขืจ CLI ื™ื•ื˜ื™ืœืึทื˜ื™ื– ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืึท ื˜ื™ื™ึทืš ืคื•ืŸ DNSTap events, ืึธื‘ืขืจ ื–ื™ื™ ื–ืขื ืขืŸ ื ื™ืฉื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืกืึทืœื•ื•ื™ื ื’ ืื•ื ื“ื–ืขืจ ืคึผืจืึธื‘ืœืขื. ื“ืขืจื™ื‘ืขืจ, ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืื•ื™ืกื˜ืจืึทื›ื˜ืŸ ืžื™ื™ืŸ ืื™ื™ื’ืŸ ื•ื•ืขืœืึธืกื™ืคึผืขื“ ื•ื•ืึธืก ื•ื•ืขื˜ ื˜ืึธืŸ ืึทืœืฅ ื•ื•ืึธืก ืื™ื– ื ื™ื™ื˜ื™ืง: ื“ื ืกื˜ืึทืคึผ-ื‘ื’ืคึผ

ืึทืจื‘ืขื˜ ืึทืœื’ืขืจื™ื“ืึทื:

  • ื•ื•ืขืŸ ืœืึธื ื˜ืฉื˜, ืขืก ืœืึธื•ื“ื– ืึท ืจืฉื™ืžื” ืคื•ืŸ ื“ืึธื•ืžื™ื™ื ื– ืคื•ืŸ ืึท ื˜ืขืงืกื˜ ื˜ืขืงืข, ื™ื ื•ื•ืขืจืฅ ื–ื™ื™ (habr.com -> com.habr), ื™ืงืกืงืœื•ื“ื– ืฆืขื‘ืจืื›ืŸ ืฉื•ืจื•ืช, ื“ื•ืคึผืœื™ืงืึทื˜ืŸ ืื•ืŸ ืกื•ื‘ื“ืึธืžืึทื™ื ืก (ื“"ื” ืื•ื™ื‘ ื“ื™ ืจืฉื™ืžื” ื›ึผื•ืœืœ habr.com ืื•ืŸ www.habr.com, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืœืึธื•ื“ื™ื“ ื‘ืœื•ื™ื– ื“ืขืจ ืขืจืฉื˜ืขืจ) ืื•ืŸ ื‘ื•ื™ืขืŸ ืึท ืคึผืจืขืคื™ืงืก ื‘ื•ื™ื ืคึฟืึทืจ ืฉื ืขืœ ื–ื•ื›ืŸ ื“ื•ืจืš ื“ืขื ืจืฉื™ืžื”
  • ืึทืงื˜ื™ื ื’ ื•ื•ื™ ืึท DNSTap ืกืขืจื•ื•ืขืจ, ืขืก ื•ื•ื™ื™ืฅ ืคึฟืึทืจ ืึท ืงืฉืจ ืคื•ืŸ ืึท ื“ื ืก ืกืขืจื•ื•ืขืจ. ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ืขืก ืฉื˜ื™ืฆื˜ ื‘ื™ื™ื“ืข ื™ื•ื ื™ืงืก ืื•ืŸ ื˜ืงืคึผ ืกืึทืงืึทืฅ, ืึธื‘ืขืจ ื“ื™ ื“ื ืก ืกืขืจื•ื•ืขืจืก ืื™ืš ื•ื•ื™ืกืŸ ืงืขื ืขืŸ ื‘ืœื•ื™ื– ื ื•ืฆืŸ ื™ื•ื ื™ืงืก ืกืึทืงืึทืฅ
  • ื™ื ืงืึทืžื™ื ื’ DNSTap ืคึผืึทืงื™ืฅ ื–ืขื ืขืŸ ืขืจืฉื˜ืขืจ ื“ืขืกืขืจื™ืึทืœื™ื–ืขื“ ืื™ืŸ ืึท ืคึผืจืึธื˜ืึธื‘ื•ืฃ ืกื˜ืจื•ืงื˜ื•ืจ, ืื•ืŸ ื“ืขืจื ืึธืš ื“ื™ ื‘ื™ื™ื ืขืจื™ ื“ื ืก ืึธื ื–ืึธื’ ื–ื™ืš, ืœื™ื’ืŸ ืื™ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืจืึธื˜ืึธื‘ื•ืฃ ืคืขืœื“ืขืจ, ืื™ื– ืคึผืึทืจืกื˜ ืฆื• ื“ื™ ืžื“ืจื’ื” ืคื•ืŸ ื“ื ืก ืจืจ ืจืขืงืึธืจื“ืก
  • ืขืก ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜ ืฆื™ ื“ืขืจ ื’ืขื‘ืขื˜ืŸ ื‘ืึทืœืขื‘ืึธืก (ืึธื“ืขืจ ื–ื™ื™ืŸ ืคืึธื˜ืขืจ ืคืขืœื“) ืื™ื– ืื™ืŸ ื“ื™ ืœืึธื•ื“ื™ื“ ืจืฉื™ืžื”, ืื•ื™ื‘ ื ื™ืฉื˜, ื“ืขืจ ืขื ื˜ืคืขืจ ืื™ื– ืื™ื’ื ืึธืจื™ืจื˜
  • ื‘ืœื•ื™ื– A / AAAA / CNAME RR ืก ื–ืขื ืขืŸ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืคื•ืŸ ื“ื™ ืขื ื˜ืคืขืจ ืื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ IPv4 / IPv6 ืึทื“ืจืขืกืขืก ื–ืขื ืขืŸ ื™ืงืกื˜ืจืึทืงื˜ื™ื“ ืคื•ืŸ ื–ื™ื™
  • IP ืึทื“ืจืขืกืขืก ื–ืขื ืขืŸ ืงืึทืฉื˜ ืžื™ื˜ ืงืึทื ืคื™ื’ื™ืขืจืึทื‘ืึทืœ TTL ืื•ืŸ ืึทื“ื•ื•ืขืจื˜ื™ื™ื–ื“ ืฆื• ืึทืœืข ืงืึทื ืคื™ื’ื™ืขืจื“ BGP ืคึผื™ืจื–
  • ื•ื•ืขืŸ ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืขื ื˜ืคืขืจ ืฆื• ืึท ืฉื•ื™ืŸ ืงืึทืฉื˜ IP, ื“ื™ TTL ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜
  • ื ืึธืš ื“ื™ TTL ื™ืงืกืคึผื™ื™ืขืจื–, ื“ื™ ืคึผืึธื–ื™ืฆื™ืข ืื™ื– ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืคื•ืŸ ื“ื™ ืงืึทืฉ ืื•ืŸ ืคื•ืŸ BGP ืžื•ื“ืขื•ืช

ื ืึธืš ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™:

  • ืจื™ืจื™ื“ื™ื ื’ ื“ื™ ืจืฉื™ืžื” ืคื•ืŸ ื“ืึธื•ืžื™ื™ื ื– ื“ื•ืจืš SIGHUP
  • ื”ืึทืœื˜ืŸ ื“ื™ ืงืึทืฉ ืื™ืŸ ืกื™ื ืง ืžื™ื˜ ืื ื“ืขืจืข ื™ื ืกื˜ืึทื ืกื™ื– ื“ื ืกื˜ืึทืคึผ-ื‘ื’ืคึผ ื“ื•ืจืš ื”ื˜ื˜ืคึผ / ื“ื–ืฉืกืึธืŸ
  • ื“ื•ืคึผืœื™ืงืึทื˜ ื“ื™ ืงืึทืฉ ืื•ื™ืฃ ื“ื™ืกืง (ืื™ืŸ ื“ื™ BoltDB ื“ืึทื˜ืึทื‘ื™ื™ืก) ืฆื• ื•ืžืงืขืจืŸ ื“ื™ ืื™ื ื”ืึทืœื˜ ื ืึธืš ืึท ืจื™ืกื˜ืึทืจื˜
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืกื•ื•ื™ื˜ืฉื™ื ื’ ืฆื• ืึท ืึทื ื“ืขืจืฉ ื ืขืฅ ื ืึธืžืขืŸ (ื•ื•ืึธืก ื“ืึธืก ืื™ื– ื“ืืจืฃ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื ื˜ืŸ)
  • IPv6 ืฉื˜ื™ืฆืŸ

ืœื™ืžื™ื˜ื™ื™ืฉืึทื ื–:

  • IDN ื“ืึธื•ืžื™ื™ื ื– ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜ ื ืึธืš
  • ืขื˜ืœืขื›ืข BGP ืกืขื˜ื˜ื™ื ื’ืก

ืื™ืš ื’ืขื–ืืžืœื˜ RPM ืื•ืŸ DEB ืคึผืึทืงืึทื“ื–ืฉืึทื– ืคึฟืึทืจ ื’ืจื™ื ื’ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’. ื–ืึธืœ ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ืึทืœืข ืœืขืคื™ืขืจืขืš ืคืจื™ืฉ ืึธืกืขืก ืžื™ื˜ ืกื™ืกื˜ืขืž. ื–ื™ื™ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืงื™ื™ืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–.

ืกื›ืขืžืข

ืึทื–ื•ื™, ืœืึธื–ืŸ 'ืก ืึธื ื”ื™ื™ื‘ืŸ ืึทืกืขืžื‘ืึทืœื™ื ื’ ืึทืœืข ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืฆื•ื–ืึทืžืขืŸ. ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืžื™ืจ ื–ืึธืœ ื‘ืึทืงื•ืžืขืŸ ืขืคึผืขืก ื•ื•ื™ ื“ืขื ื ืขืฅ ื˜ืึธืคึผืึธืœืึธื’ื™:
ื‘ื™ื™ืคึผืึทืก ILV ื‘ืœืึทืงื™ื ื’ ืžื™ื˜ DNSTap ืื•ืŸ BGP

ื“ื™ ืœืึธื’ื™ืง ืคื•ืŸ ืึทืจื‘ืขื˜, ืื™ืš ื˜ืจืึทื›ื˜ืŸ, ืื™ื– ืงืœืึธืจ ืคื•ืŸ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข:

  • ื“ืขืจ ืงืœื™ืขื ื˜ ื”ืื˜ ืื•ื ื“ื–ืขืจ ืกืขืจื•ื•ืขืจ ืงืึทื ืคื™ื’ื™ืขืจื“ ื•ื•ื™ ื“ื ืก, ืื•ืŸ ื“ื ืก ืงื•ื•ื™ืจื™ื– ืžื•ื–ืŸ ืื•ื™ืš ื’ื™ื™ืŸ ืื™ื‘ืขืจ ื“ื™ ื•ื•ืคึผืŸ. ื“ืึธืก ืื™ื– ื ื™ื™ื˜ื™ืง ืึทื–ื•ื™ ืึทื– ื“ืขืจ ืฉืคึผื™ื™ึทื–ืขืจ ืงืขืŸ ื ื™ืฉื˜ ื ื•ืฆืŸ ื“ื ืก ื™ื ื˜ืขืจืกืขืคึผืฉืึทืŸ ืฆื• ืคืึทืจืฉืคึผืึทืจืŸ.
  • ื•ื•ืขืŸ ืขืคืŸ ื“ืขื ืคึผืœืึทืฅ, ื“ืขืจ ืงืœื™ืขื ื˜ ืกืขื ื“ื– ืึท ื“ื ืก ืึธื ืคึฟืจืขื’ ื•ื•ื™ "ื•ื•ืึธืก ื–ืขื ืขืŸ ื“ื™ IPs ืคื•ืŸ xxx.org"
  • ื•ื ื‘ืึธื•ื ื“ ืกืึทืœื•ื•ื– xxx.org (ืึธื“ืขืจ ื ืขืžื˜ ืขืก ืคื•ืŸ ื“ื™ ืงืึทืฉ) ืื•ืŸ ืกืขื ื“ื– ืึท ืขื ื˜ืคืขืจ ืฆื• ื“ืขื ืงืœื™ืขื ื˜ "xxx.org ื”ืื˜ ืึทื–ืึท ืื•ืŸ ืึทื–ืึท IP", ื“ื•ืคึผืœื™ืงืึทื˜ ืขืก ืคึผืึทืจืึทืœืขืœ ื“ื•ืจืš DNSTap
  • ื“ื ืกื˜ืึทืคึผ-ื‘ื’ืคึผ ืึทื ืึทื•ื ืกื™ื– ื“ื™ ืึทื“ืจืขืกืขืก ืื™ืŸ ืคื•ื™ื’ืœ ื“ื•ืจืš BGP ืื•ื™ื‘ ื“ื™ ืคืขืœื“ ืื™ื– ืื•ื™ืฃ ื“ื™ ืืคื’ืขืฉื˜ืขืœื˜ ืจืฉื™ืžื”
  • ืคื•ื™ื’ืœ ืึทื“ื•ื•ืขืจื˜ื™ื™ื–ื™ื– ืึท ืžืึทืจืฉืจื•ื˜ ืฆื• ื“ื™ IPs ืžื™ื˜ next-hop self ืงืœื™ืขื ื˜ ืจืึทื•ื˜ืขืจ
  • ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืคึผืึทืงื™ืฅ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜ ืฆื• ื“ื™ IPs ื’ื™ื™ืŸ ื“ื•ืจืš ื“ืขื ื˜ื•ื ืขืœ

ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ, ืคึฟืึทืจ ืจื•ืฅ ืฆื• ืืคื’ืขืฉื˜ืขืœื˜ ื–ื™ื™ื˜ืœืขืš, ืื™ืš ื ื•ืฆืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื˜ื™ืฉ ื™ืŸ BIRD ืื•ืŸ ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ื™ื ื˜ืขืจืกืขืงื˜ ืžื™ื˜ ื“ื™ ืึทืก ืื™ืŸ ืงื™ื™ืŸ ื•ื•ืขื’.

ื“ืขืจ ืกื›ืขืžืข ื”ืื˜ ืึท ืฉื˜ืขืจื•ื ื’: ื“ืขืจ ืขืจืฉื˜ืขืจ SYN ืคึผืึทืงืึทื˜ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜, ืจื•ื‘ึฟ ืžืกืชึผืžื, ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื™ื™ื˜ ืฆื• ืœืึธื–ืŸ ื“ื•ืจืš ื“ื™ ื“ื™ื ืขืจ ืฉืคึผื™ื™ึทื–ืขืจ. ื“ืขืจ ืžืึทืจืฉืจื•ื˜ ืื™ื– ื ื™ืฉื˜ ืžื•ื“ื™ืข ืžื™ื“. ืื•ืŸ ื“ืึธ ืึธืคึผืฆื™ืขืก ื–ืขื ืขืŸ ืžืขื’ืœืขืš ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื•ื•ื™ ื“ืขืจ ืฉืคึผื™ื™ึทื–ืขืจ ื˜ื•ื˜ ื“ื™ ื‘ืœืึทืงื™ื ื’. ืื•ื™ื‘ ืขืจ ื ืึธืจ ื˜ืจืืคื ืก ืคืึทืจืงืขืจ, ืขืก ืื™ื– ืงื™ื™ืŸ ืคึผืจืึธื‘ืœืขื. ืื•ืŸ ืื•ื™ื‘ ืขืจ ืจื™ื“ืขืจืขืงืฅ ืขืก ืฆื• ืขื˜ืœืขื›ืข ื“ืคึผื™, ื“ืขืžืึธืœื˜ (ื˜ืขืึธืจืขื˜ื™ืฉ) ืกืคึผืขืฆื™ืขืœ ื™ืคืขืงืฅ ื–ืขื ืขืŸ ืžืขื’ืœืขืš.

ืขืก ืื™ื– ืื•ื™ืš ืžืขื’ืœืขืš ืึทื– ืงืœื™ื™ืึทื ืฅ ื˜ืึธืŸ ื ื™ื˜ ืจืขืกืคึผืขืงื˜ ื“ื™ DNS TTL ืžื™ืจืึทืงืึทืœื–, ื•ื•ืึธืก ืงืขื ืขืŸ ืึธื ืžืึทื›ืŸ ื“ืขื ืงืœื™ืขื ื˜ ืฆื• ื ื•ืฆืŸ ืขื˜ืœืขื›ืข ืึทืœื˜ - ื’ืขื‘ืึทืงืŸ ืื™ื™ื ืกืŸ ืคึฟื•ืŸ ื–ื™ื™ืŸ ืคึผืึทืกืงื•ื“ื ืข ืงืึทืฉ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืึทืกืงื™ื ื’ ืึทื ื‘ืึทื•ื ื“.

ืื™ืŸ ืคื™ืจ, ื ื™ื˜ ื“ืขืจ ืขืจืฉื˜ืขืจ ืื“ืขืจ ื“ื™ ืจื’ืข ื’ืขืคึฟื™ืจื˜ ืคึผืจืึธื‘ืœืขืžืก ืคึฟืึทืจ ืžื™ืจ, ืึธื‘ืขืจ ื“ื™ื™ืŸ ืžื™ื™ืœื™ื“ื–ืฉ ืงืขืŸ ื‘ื™ื™ึทื˜ืŸ.

ืกืขืจื•ื•ื™ืจืขืจ ื˜ื•ื ื™ื ื’

ืคึฟืึทืจ ื™ื– ืคื•ืŸ ืจืึธื•ืœื™ื ื’, ืื™ืš ื’ืขืฉืจื™ื‘ืŸ ืจืึธืœืข ืคึฟืึทืจ Ansible. ืขืก ืงืขื ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจ ื‘ื™ื™ื“ืข ืกืขืจื•ื•ืขืจืก ืื•ืŸ ืงืœื™ื™ืึทื ืฅ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืœื™ื ื•ืงืก (ื“ื™ื–ื™ื™ื ื“ ืคึฟืึทืจ ื“ืขื‘-ื‘ืื–ื™ืจื˜ ื“ื™ืกื˜ืจื™ื‘ื™ื•ืฉืึทื ื–). ืึทืœืข ืกืขื˜ื˜ื™ื ื’ืก ื–ืขื ืขืŸ ื’ืึทื ืฅ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืื•ืŸ ื–ืขื ืขืŸ ืฉื˜ืขืœืŸ ืื™ืŸ inventory.yml. ื“ื™ ืจืึธืœืข ืื™ื– ืฉื ื™ื™ึทื“ืŸ ืคึฟื•ืŸ ืžื™ื™ืŸ ื’ืจื•ื™ืก ืคึผืœื™ื™ึทื‘ืึธืึธืง, ืึทื–ื•ื™ ืขืก ืงืขืŸ ืึทื ื˜ื”ืึทืœื˜ืŸ ืขืจืจืึธืจืก - ืฆื™ืขืŸ ืจื™ืงื•ื•ืขืก ื‘ืึทื’ืจื™ืกื•ื ื’ ๐Ÿ™‚

ื–ืืœ ืก ื’ื™ื™ืŸ ื“ื•ืจืš ื“ื™ ื”ื•ื™ืคึผื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ.

BGP

ืคืœื™ืกื ื“ื™ืง ืฆื•ื•ื™ื™ BGP ื“ืขืžืึธื ืก ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื‘ืึทืœืขื‘ืึธืก ื”ืื˜ ืึท ืคื•ื ื“ืึทืžืขื ื˜ืึทืœ ืคึผืจืึธื‘ืœืขื: BIRD ื˜ื•ื˜ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ืฉื˜ืขืœืŸ BGP ืคึผื™ืจื™ื ื’ ืžื™ื˜ ื“ื™ ืœืึธืงืึทืœื”ืึธืกื˜ (ืึธื“ืขืจ ืงื™ื™ืŸ ื”ื™ื’ืข ืฆื•ื‘ื™ื ื“). ืคื•ืŸ ื“ื™ ื•ื•ืึธืจื˜ ื‘ื›ืœืœ. ื’ืึธืึธื’ืœื™ื ื’ ืื•ืŸ ืœื™ื™ืขื ืขืŸ ืžื™ื™ืœื™ื ื’ ืจืฉื™ืžื•ืช ื”ืื˜ ื ื™ืฉื˜ ื’ืขื”ืึธืœืคึฟืŸ, ื–ื™ื™ ืคืึธื“ืขืจืŸ ืึทื– ื“ืึธืก ืื™ื– ื“ื•ืจืš ืคึผืœืึทืŸ. ืืคืฉืจ ืื™ื– ื“ื ื ื•ื•ืขื’, ืื‘ืขืจ ืื™ืš ื”ืื‘ ืขืก ื ื™ืฉื˜ ื’ืขืคื•ื ืขืŸ.

ืื™ืจ ืงืขื ืขืŸ ืคึผืจื•ื‘ื™ืจืŸ ืืŸ ืื ื“ืขืจ BGP ื“ื™ื™ืžืึทืŸ, ืึธื‘ืขืจ ืื™ืš ื•ื•ื™ BIRD ืื•ืŸ ืขืก ืื™ื– ื’ืขื ื™ืฆื˜ ืื•ืžืขื˜ื•ื ื“ื•ืจืš ืžื™ืจ, ืื™ืš ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ืคึผืจืึธื“ื•ืฆื™ืจืŸ ืขื ื˜ื™ื˜ื™ื–.

ื“ืขืจืคึฟืึทืจ ื”ืึธื‘ ืื™ืš ื‘ืึทื”ืึทืœื˜ืŸ dnstap-bgp ืื™ืŸ ื“ื™ ื ืขืฅ ื ืึธืžืขืŸ ืกืคึผื™ื™ืก, ื•ื•ืึธืก ืื™ื– ืคืืจื‘ื•ื ื“ืŸ ืฆื• ื“ืขืจ ื•ื•ืึธืจืฆืœ ื“ื•ืจืš ื“ื™ ื•ื•ืขื˜ื” ืฆื•ื‘ื™ื ื“: ืขืก ืื™ื– ื•ื•ื™ ืึท ืจืขืจ, ื“ื™ ืขื ื“ืก ืคื•ืŸ ื•ื•ืึธืก ืฉื˜ืขืงืŸ ืื•ื™ืก ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื ืึทืžืขืกืคึผืึทืกืขืก. ืื•ื™ืฃ ื™ืขื“ืขืจ ืคื•ืŸ ื“ื™ ืขื ื“ืก, ืžื™ืจ ื”ืขื ื’ืขืŸ ืคึผืจื™ื•ื•ืึทื˜ ืคึผ 2 ืคึผ IP ืึทื“ืจืขืกืขืก ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ื’ื™ื™ืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืคื•ืŸ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก, ืึทื–ื•ื™ ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืขืคึผืขืก. ื“ืึธืก ืื™ื– ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžืขืงืึทื ื™ื–ืึทื ื’ืขื ื™ืฆื˜ ืฆื• ืึทืงืกืขืก ืคึผืจืึทืกืขืกืึทื– ื™ืŸ ืœื™ื‘ ื’ืขื”ืื˜ ื“ื•ืจืš ืึทืœืข ื“ืึธืงืงืขืจ ืื•ืŸ ืื ื“ืขืจืข ืงืึทื ื˜ื™ื™ื ืขืจื–.

ืคึฟืึทืจ ื“ืขื ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ืฉืจื™ืคื˜ ืื•ืŸ ื“ื™ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืฉื•ื™ืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื™ื‘ืŸ ืคึฟืึทืจ ืฉืœืขืคึผืŸ ื–ื™ืš ืžื™ื˜ ื“ื™ ื”ืึธืจ ืฆื• ืืŸ ืื ื“ืขืจ ื ืึธืžืขืŸ ืคึผืœืึทืฅ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• dnstap-bgp. ื•ื•ื™ื™ึทืœ ืคื•ืŸ ื“ืขื, ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืœื•ื™ืคืŸ ื•ื•ื™ ื•ื•ืึธืจืฆืœ ืึธื“ืขืจ ืืจื•ื™ืก ืฆื• ื“ื™ CAP_SYS_ADMIN ื‘ื™ื™ื ืขืจื™ ื“ื•ืจืš ื“ื™ ืกืขื˜ืงืึทืคึผ ื‘ืึทืคึฟืขืœ.

ื‘ื™ื™ึทืฉืคึผื™ืœ ืฉืจื™ืคื˜ ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ื ืึทืžืขืกืคึผืึทืกืข

#!/bin/bash

NS="dtap"

IP="/sbin/ip"
IPNS="$IP netns exec $NS $IP"

IF_R="veth-$NS-r"
IF_NS="veth-$NS-ns"

IP_R="192.168.149.1"
IP_NS="192.168.149.2"

/bin/systemctl stop dnstap-bgp || true

$IP netns del $NS > /dev/null 2>&1
$IP netns add $NS

$IP link add $IF_R type veth peer name $IF_NS
$IP link set $IF_NS netns $NS

$IP addr add $IP_R remote $IP_NS dev $IF_R
$IP link set $IF_R up

$IPNS addr add $IP_NS remote $IP_R dev $IF_NS
$IPNS link set $IF_NS up

/bin/systemctl start dnstap-bgp

dnstap-bgp.conf

namespace = "dtap"
domains = "/var/cache/rkn_domains.txt"
ttl = "168h"

[dnstap]
listen = "/tmp/dnstap.sock"
perm = "0666"

[bgp]
as = 65000
routerid = "192.168.149.2"

peers = [
    "192.168.149.1",
]

bird.conf

router id 192.168.1.1;

table rkn;

# Clients
protocol bgp bgp_client1 {
    table rkn;
    local as 65000;
    neighbor 192.168.1.2 as 65000;
    direct;
    bfd on;
    next hop self;
    graceful restart;
    graceful restart time 60;
    export all;
    import none;
}

# DNSTap-BGP
protocol bgp bgp_dnstap {
    table rkn;
    local as 65000;
    neighbor 192.168.149.2 as 65000;
    direct;
    passive on;
    rr client;
    import all;
    export none;
}

# Static routes list
protocol static static_rkn {
    table rkn;
    include "rkn_routes.list";
    import all;
    export none;
}

rkn_routes.list

route 3.226.79.85/32 via "ens3";
route 18.236.189.0/24 via "ens3";
route 3.224.21.0/24 via "ens3";
...

ื“ื ืก

ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืื™ืŸ ื•ื‘ื•ื ื˜ื•, ื“ื™ ื•ื ื‘ืึทื•ื ื“ ื‘ื™ื™ื ืขืจื™ ืื™ื– ืงืœืึทืžืคึผื˜ ื“ื•ืจืš ื“ื™ ืึทืคึผืคึผืึทืจืžืึธืจ ืคึผืจืึธืคื™ืœ, ื•ื•ืึธืก ืคืึทืจื•ื•ืขืจืŸ ืขืก ืคื•ืŸ ืงืึทื ืขืงื˜ื™ื ื’ ืฆื• ืึทืœืข ืกืึธืจืฅ ืคื•ืŸ DNSTap ืกืึทืงืึทืฅ. ืื™ืจ ืงืขื ื˜ ื•ื™ืกืžืขืงืŸ ื“ืขื ืคึผืจืึธืคื™ืœ ืึธื“ืขืจ ื“ื™ืกื™ื™ื‘ืึทืœ ืขืก:

# cd /etc/apparmor.d/disable && ln -s ../usr.sbin.unbound .
# apparmor_parser -R /etc/apparmor.d/usr.sbin.unbound

ื“ืึธืก ื–ืึธืœ ืžื™ืกื˜ืึธืžืข ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืฆื• ื“ื™ ืคึผืœื™ื™ึทื‘ืึธืึธืง. ืขืก ืื™ื– ื™ื“ืขืึทืœ, ืคื•ืŸ ืงื•ืจืก, ืฆื• ืคืึทืจืจื™ื›ื˜ืŸ ื“ืขื ืคึผืจืึธืคื™ืœ ืื•ืŸ ืึทืจื•ื™ืกื’ืขื‘ืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืจืขื›ื˜, ืึธื‘ืขืจ ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื• ืคื•ื™ืœ.

unbound.conf

server:
    chroot: ""
    port: 53
    interface: 0.0.0.0
    root-hints: "/var/lib/unbound/named.root"
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
    access-control: 192.168.0.0/16 allow

remote-control:
    control-enable: yes
    control-use-cert: no

dnstap:
    dnstap-enable: yes
    dnstap-socket-path: "/tmp/dnstap.sock"
    dnstap-send-identity: no
    dnstap-send-version: no

    dnstap-log-client-response-messages: yes

ื“ืึทื•ื ืœืึธื•ื“ื™ื ื’ ืื•ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืจืฉื™ืžื•ืช

ืฉืจื™ืคื˜ ืคึฟืึทืจ ื“ืึทื•ื ืœืึธื•ื“ื™ื ื’ ืื•ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืึท ืจืฉื™ืžื” ืคื•ืŸ IP ืึทื“ืจืขืกืขืก
ืขืก ื“ืึทื•ื ืœืึธื•ื“ื– ื“ื™ ืจืฉื™ืžื”, ืกืึทืžื– ืึทืจื•ื™ืฃ ืฆื• ื“ื™ ืคึผืจืขืคื™ืงืก pfx. ื“ื™ ื˜ืึธืŸ ื ื™ื˜_ืึทื“ื“ ะธ ื˜ืึธืŸ ื ื™ื˜_ืกื•ืžืขืจื™ื™ื– ืื™ืจ ืงืขื ืขืŸ ื–ืึธื’ืŸ ื“ื™ IPs ืื•ืŸ ื ืขื˜ื•ื•ืึธืจืงืก ืฆื• ื”ืึธืคึผืงืขืŸ ืึธื“ืขืจ ื ื™ืฉื˜ ืกืึทืžืขืจื™ื™ื–. ืื™ืš ื“ืืจืฃ ืขืก. ื“ื™ ืกื•ื‘ื ืขื˜ ืคื•ืŸ ืžื™ื™ืŸ ื•ื•ืคึผืก ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ืŸ ื“ื™ ื‘ืœืึทืงืœื™ืกื˜ ๐Ÿ™‚

ื“ื™ ืžืึธื“ื ืข ื–ืึทืš ืื™ื– ืึทื– ื“ื™ RosKomSvoboda API ื‘ืœืึทืงืก ืจื™ืงื•ื•ืขืก ืžื™ื˜ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืคึผื™ื˜ื”ืึธืŸ ื‘ืึทื ื™ืฆืขืจ ืึทื’ืขื ื˜. ืงื•ืงื˜ ื•ื•ื™ ื“ืขืจ ืฉืจื™ืคื˜-ืงื™ื“ื™ ื”ืื˜ ืขืก. ื“ืขืจื™ื‘ืขืจ, ืžื™ืจ ื˜ื•ื™ืฉืŸ ืขืก ืฆื• Ognelis.

ื‘ื™ื– ืื™ืฆื˜, ืขืก ืึทืจื‘ืขื˜ ื‘ืœื•ื™ื– ืžื™ื˜ IPv4. ื“ื™ ื˜ื™ื™ืœืŸ ืคื•ืŸ IPv6 ืื™ื– ืงืœื™ื™ืŸ, ืึธื‘ืขืจ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืจื™ื ื’ ืฆื• ืคืึทืจืจื™ื›ื˜ืŸ. ืกื™ื™ึทื“ืŸ ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื ื•ืฆืŸ bird6 ืื•ื™ืš.

rkn.py

#!/usr/bin/python3

import json, urllib.request, ipaddress as ipa

url = 'https://api.reserve-rbl.ru/api/v2/ips/json'
pfx = '24'

dont_summarize = {
    # ipa.IPv4Network('1.1.1.0/24'),
}

dont_add = {
    # ipa.IPv4Address('1.1.1.1'),
}

req = urllib.request.Request(
    url,
    data=None, 
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)

f = urllib.request.urlopen(req)
ips = json.loads(f.read().decode('utf-8'))

prefix32 = ipa.IPv4Address('255.255.255.255')

r = {}
for i in ips:
    ip = ipa.ip_network(i)
    if not isinstance(ip, ipa.IPv4Network):
        continue

    addr = ip.network_address

    if addr in dont_add:
        continue

    m = ip.netmask
    if m != prefix32:
        r[m] = [addr, 1]
        continue

    sn = ipa.IPv4Network(str(addr) + '/' + pfx, strict=False)

    if sn in dont_summarize:
        tgt = addr
    else:
        tgt = sn

    if not sn in r:
        r[tgt] = [addr, 1]
    else:
        r[tgt][1] += 1

o = []
for n, v in r.items():
    if v[1] == 1:
        o.append(str(v[0]) + '/32')
    else:
        o.append(n)

for k in o:
    print(k)

ืฉืจื™ืคื˜ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ
ืื™ืš ืœื•ื™ืคืŸ ืขืก ืื•ื™ืฃ ื“ื™ ืงืจื•ื™ืŸ ืึทืžืึธืœ ืึท ื˜ืึธื’, ืืคึฟืฉืจ ืขืก ืื™ื– ื•ื•ืขืจื˜ ืคึผื•ืœื™ื ื’ ืขืก ื™ืขื“ืขืจ 4 ืฉืขื”. ื“ืึธืก ืื™ื–, ืœื•ื™ื˜ ืžื™ื™ืŸ ืžื™ื™ื ื•ื ื’, ื“ื™ ืจื™ื ื•ืึทืœ ืฆื™ื™ึทื˜ ื•ื•ืึธืก ื“ื™ ืจืงืŸ ืคืืจืœืื ื’ื˜ ืคื•ืŸ ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื–. ืคึผืœื•ืก, ื–ื™ื™ ื”ืึธื‘ืŸ ืขื˜ืœืขื›ืข ืื ื“ืขืจืข ืกื•ืคึผืขืจ-ื“ืจื™ื ื’ืœืขืš ื‘ืœืึทืงื™ื ื’, ื•ื•ืึธืก ืงืขืŸ ืึธื ืงื•ืžืขืŸ ืคืึทืกื˜ืขืจ.

ื˜ื•ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข:

  • ืœื•ื™ืคื˜ ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉืจื™ืคื˜ ืื•ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ื™ ืจืฉื™ืžื” ืคื•ืŸ ืจื•ืฅ (rkn_routes.list) ืคึฟืึทืจ ืคื•ื™ื’ืœ
  • ืจื™ืœืึธื•ื“ ืคื•ื™ื’ืœ
  • ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืื•ืŸ ืงืœื™ื ื– ื“ื™ ืจืฉื™ืžื” ืคื•ืŸ ื“ืึธื•ืžื™ื™ื ื– ืคึฟืึทืจ dnstap-bgp
  • ืจื™ืœืึธื•ื“ ื“nstap-bgp

rkn_update.sh

#!/bin/bash

ROUTES="/etc/bird/rkn_routes.list"
DOMAINS="/var/cache/rkn_domains.txt"

# Get & summarize routes
/opt/rkn.py | sed 's/(.*)/route 1 via "ens3";/' > $ROUTES.new

if [ $? -ne 0 ]; then
    rm -f $ROUTES.new
    echo "Unable to download RKN routes"
    exit 1
fi

if [ -e $ROUTES ]; then
    mv $ROUTES $ROUTES.old
fi

mv $ROUTES.new $ROUTES

/bin/systemctl try-reload-or-restart bird

# Get domains
curl -s https://api.reserve-rbl.ru/api/v2/domains/json -o - | jq -r '.[]' | sed 's/^*.//' | sort | uniq > $DOMAINS.new

if [ $? -ne 0 ]; then
    rm -f $DOMAINS.new
    echo "Unable to download RKN domains"
    exit 1
fi

if [ -e $DOMAINS ]; then
    mv $DOMAINS $DOMAINS.old
fi

mv $DOMAINS.new $DOMAINS

/bin/systemctl try-reload-or-restart dnstap-bgp

ื–ื™ื™ ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ืึธืŸ ืคื™ืœ ื’ืขื“ืึทื ืง, ืึทื–ื•ื™ ืื•ื™ื‘ ืื™ืจ ื–ืขืŸ ืขืคึผืขืก ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ืžืคึผืจื•ื•ื•ื“ - ื’ื™ื™ืŸ ืคึฟืึทืจ ืื™ื.

ืงืœื™ืขื ื˜ ืกืขื˜ืึทืคึผ

ื“ืึธ ืื™ืš ื•ื•ืขืœ ื’ืขื‘ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ ืคึฟืึทืจ ืœื™ื ื•ืงืก ืจืึธื•ื˜ืขืจืก, ืึธื‘ืขืจ ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืžื™ืงืจืึธื˜ื™ืง / ืกื™ืกืงืึธ ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืืคื™ืœื• ื’ืจื™ื ื’ืขืจ.

ืขืจืฉื˜ืขืจ, ืžื™ืจ ืฉื˜ืขืœืŸ ืึทืจื•ื™ืฃ BIRD:

bird.conf

router id 192.168.1.2;
table rkn;

protocol device {
    scan time 10;
};

# Servers
protocol bgp bgp_server1 {
    table rkn;
    local as 65000;
    neighbor 192.168.1.1 as 65000;
    direct;
    bfd on;
    next hop self;
    graceful restart;
    graceful restart time 60;
    rr client;
    export none;
    import all;
}

protocol kernel {
    table rkn;
    kernel table 222;
    scan time 10;
    export all;
    import none;
}

ืื–ื•ื™, ืžื™ืจ ื•ื•ืขืœืŸ ืกื™ื ื’ืงืจืึทื ื™ื™ื– ื“ื™ ืจื•ืฅ ื‘ืืงื•ืžืขืŸ ืคึฟื•ืŸ BGP ืžื™ื˜ ื“ื™ ืงืขืจืŸ ืจื•ื˜ื™ื ื’ ื˜ื™ืฉ ื ื•ืžืขืจ 222.

ื ืึธืš ื“ืขื, ืขืก ืื™ื– ื’ืขื ื•ื’ ืฆื• ืคืจืขื’ืŸ ื“ื™ ืงืขืจืŸ ืฆื• ืงื•ืงืŸ ืื™ืŸ ื“ืขื ื˜ืขืœืขืจ ืื™ื™ื“ืขืจ ืื™ืจ ืงื•ืง ืื™ืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืื™ื™ื ืขืจ:

# ip rule add from all pref 256 lookup 222
# ip rule
0:  from all lookup local
256:    from all lookup 222
32766:  from all lookup main
32767:  from all lookup default

ืึทืœืฅ, ืขืก ื‘ืœื™ื™ื‘ื˜ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ DHCP ืื•ื™ืฃ ื“ื™ ืจืึทื•ื˜ืขืจ ืฆื• ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ื“ื™ ื˜ื•ื ืขืœ IP ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ื•ื•ื™ ื“ื ืก, ืื•ืŸ ื“ื™ ืกื›ืขืžืข ืื™ื– ื’ืจื™ื™ื˜.

ืœื™ืžื™ื˜ื™ื™ืฉืึทื ื–

ืžื™ื˜ ื“ืขื ืงืจืึทื ื˜ ืึทืœื’ืขืจื™ื“ืึทื ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืื•ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ื“ื™ ืจืฉื™ืžื” ืคื•ืŸ ื“ืึธื•ืžื™ื™ื ื–, ืขืก ื›ื•ืœืœ, ืฆื•ื•ื™ืฉืŸ ืื ื“ืขืจืข, youtube.com ืื•ืŸ ื–ื™ื™ึทืŸ CDNs.

ืื•ืŸ ื“ืึธืก ืคื™ืจื˜ ืฆื• ื“ื™ ืคืึทืงื˜ ืึทื– ืึทืœืข ื•ื•ื™ื“ื™ืืก ื•ื•ืขืœืŸ ื’ื™ื™ืŸ ื“ื•ืจืš ื“ื™ ื•ื•ืคึผืŸ, ื•ื•ืึธืก ืงืขื ืขืŸ ืคืึทืจืœื™ื™ื’ืŸ ื“ื™ ื’ืื ืฆืข ืงืึทื ืึทืœ. ื˜ืึธืžืขืจ ืื™ื– ื›ึผื“ืึทื™ ืฆื• ืžืึทื›ืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืคึผืึธืคึผื•ืœืขืจืข ื“ืึธื•ืžื™ื™ื ื–-ืื•ื™ืกืฉืœื•ืกืŸ ื•ื•ืึธืก ืคืึทืจืฉืคึผืึทืจืŸ ื“ืขื ืจืงืŸ ื“ืขืจื•ื•ื™ื™ืœ, ื“ื™ ื’ืขื“ืขืจืขื ืื™ื– ื“ื™ืŸ. ืื•ืŸ ื”ืึธืคึผืงืขืŸ ื–ื™ื™ ื•ื•ืขืŸ ืคึผืึทืจืกื™ื ื’.

ืกืึธืฃ

ื“ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ืคึฟืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ื™ื™ืคึผืึทืก ื›ึผืžืขื˜ ืงื™ื™ืŸ ื‘ืœืึทืงื™ื ื’ ืึทื– ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– ื“ืขืจื•ื•ื™ื™ึทืœ ื™ื ืกื˜ืจื•ืžืขื ื˜.

ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ื“ื ืกื˜ืึทืคึผ-ื‘ื’ืคึผ ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืคึฟืึทืจ ืงื™ื™ืŸ ืื ื“ืขืจืข ืฆื•ื•ืขืง ื•ื•ื• ืขื˜ืœืขื›ืข ืžื“ืจื’ื” ืคื•ืŸ ืคืึทืจืงืขืจ ืงืึธื ื˜ืจืึธืœ ืื™ื– ื“ืืจืฃ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืคืขืœื“ ื ืึธืžืขืŸ. ื ืึธืจ ื”ืึทืœื˜ืŸ ืื™ืŸ ืžื™ื™ื ื•ื ื’ ืึทื– ืื™ืŸ ืื•ื ื“ื–ืขืจ ืฆื™ื™ื˜, ืึท ื˜ื•ื™ื–ื ื˜ ื–ื™ื™ื˜ืœืขืš ืงืขื ืขืŸ ื”ืขื ื’ืขืŸ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ IP ืึทื“ืจืขืก (ื”ื™ื ื˜ืขืจ ืขื˜ืœืขื›ืข ืงืœืึธื•ื“ืคืœืึทืจืข, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ), ืึทื–ื•ื™ ื“ืขื ืื•ืคึฟืŸ ื”ืื˜ ืึท ื’ืึทื ืฅ ื ื™ื“ืขืจื™ืง ืึทืงื™ืขืจืึทืกื™.

ืื‘ืขืจ ืคึฟืึทืจ ื“ื™ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืคื•ืŸ ื‘ื™ื™ืคึผืึทืกื™ื ื’ ืœืึทืงืก, ื“ืึธืก ืื™ื– ื’ืึทื ืฅ ื’ืขื ื•ื’.

ืึทื“ื™ืฉืึทื ื–, ืขื“ื™ื˜ื™ื ื’, ืฆื™ืขืŸ ืจื™ืงื•ื•ืขืก - ื‘ืึทื’ืจื™ืกืŸ!

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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’