ื”ื’ื“ืจืช BGP ื›ื“ื™ ืœืขืงื•ืฃ ื—ืกื™ืžื”, ืื• "ืื™ืš ื”ืคืกืงืชื™ ืœืคื—ื“ ื•ื”ืชืื”ื‘ืชื™ ื‘-RKN"

ื•ื‘ื›ืŸ, ื‘ืกื“ืจ, ืœื’ื‘ื™ "ืื”ื•ื‘" ื–ื• ื”ื’ื–ืžื”. ื‘ืžืงื•ื ื–ืืช, "ื”ื™ื” ืžืกื•ื’ืœ ืœื—ื™ื•ืช ื™ื—ื“ ืขื."

ื›ืคื™ ืฉื›ื•ืœื›ื ื™ื•ื“ืขื™ื, ืžืื– ื”-16 ื‘ืืคืจื™ืœ 2018, ืจื•ืกืงื•ืžื ื“ื–ื•ืจ ื—ื•ืกืžืช ืืช ื”ื’ื™ืฉื” ืœืžืฉืื‘ื™ื ื‘ืื™ื ื˜ืจื ื˜ ื‘ืชื ื•ืขื•ืช ืจื—ื‘ื•ืช ื‘ื™ื•ืชืจ, ื•ืžื•ืกื™ืคื” ืœ"ืจื™ืฉื•ื ื”ืžืื•ื—ื“ ืฉืœ ืฉืžื•ืช ืžืชื—ื, ืื™ื ื“ืงืก ื“ืคื™ื ืฉืœ ืืชืจื™ื ื‘ืื™ื ื˜ืจื ื˜ ื•ื›ืชื•ื‘ื•ืช ืจืฉืช ื”ืžืืคืฉืจื•ืช ื–ื™ื”ื•ื™ ืืชืจื™ื ื‘ืื™ื ื˜ืจื ื˜," ื”ืžื›ื™ืœ ืžื™ื“ืข ืฉื”ืคืฆืชื• ืืกื•ืจื” ื‘ืคื“ืจืฆื™ื” ื”ืจื•ืกื™ืช" (ื‘ื˜ืงืกื˜ - ืจืง ืจื™ืฉื•ื) ืขืœ ื™ื“ื™ /10 ืœืคืขืžื™ื. ื›ืชื•ืฆืื” ืžื›ืš, ืื–ืจื—ื™ ื”ืคื“ืจืฆื™ื” ื”ืจื•ืกื™ืช ื•ืขืกืงื™ื ืกื•ื‘ืœื™ื, ืœืื—ืจ ืฉืื™ื‘ื“ื• ื’ื™ืฉื” ืœืžืฉืื‘ื™ื ื”ื—ื•ืงื™ื™ื ืœื—ืœื•ื˜ื™ืŸ ืฉื”ื ืฆืจื™ื›ื™ื.

ืœืื—ืจ ืฉืืžืจืชื™ ื‘ืชื’ื•ื‘ื•ืช ืœืื—ืช ื”ื›ืชื‘ื•ืช ืขืœ Habrรฉ ืฉืื ื™ ืžื•ื›ืŸ ืœืขื–ื•ืจ ืœืงื•ืจื‘ื ื•ืช ื‘ื”ืงืžืช ืชื•ื›ื ื™ืช ืขื•ืงืคื™ื, ื”ื’ื™ืขื• ืืœื™ื™ ื›ืžื” ืื ืฉื™ื ื•ื‘ื™ืงืฉื• ืขื–ืจื” ื›ื–ื•. ื›ืฉื”ื›ืœ ืขื‘ื“ ืœื”ื, ืื—ื“ ืžื”ื ื”ืžืœื™ืฅ โ€‹โ€‹ืœืชืืจ ืืช ื”ื˜ื›ื ื™ืงื” ื‘ืžืืžืจ. ืœืื—ืจ ืžื—ืฉื‘ื” ื”ื—ืœื˜ืชื™ ืœืฉื‘ื•ืจ ืฉืชื™ืงื” ื‘ืืชืจ ื•ืœื ืกื•ืช ืคืขื ืื—ืช ืœื›ืชื•ื‘ ืžืฉื”ื• ื‘ื™ื ื™ื™ื ื‘ื™ืŸ ืคืจื•ื™ืงื˜ ืœืคื•ืกื˜ ื‘ืคื™ื™ืกื‘ื•ืง, ื›ืœื•ืžืจ. ื”ื‘ืจืืคื•ืกื˜. ื”ืชื•ืฆืื” ืœืคื ื™ื›ื.

ื›ืชื‘ ื•ื™ืชื•ืจ

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

ื›ืžื• ื›ืŸ, ืžื›ื™ื•ื•ืŸ ืฉืื ื™ ื‘ืขื™ืงืจ ืืจื›ื™ื˜ืงื˜ ืจืฉืชื•ืช ื‘ืžืงืฆื•ืขื™, ืžืงืฆื•ืข ื•ืžืกืœื•ืœ ื—ื™ื™ื, ืชื›ื ื•ืช ื•ืœื™ื ื•ืงืก ื”ื ืœื ื”ืฆื“ ื”ื—ื–ืง ืฉืœื™. ืœื›ืŸ, ื›ืžื•ื‘ืŸ, ื ื™ืชืŸ ืœื›ืชื•ื‘ ืกืงืจื™ืคื˜ื™ื ื‘ืฆื•ืจื” ื˜ื•ื‘ื” ื™ื•ืชืจ, ื ื™ืชืŸ ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืื‘ื˜ื—ื” ื‘-VPS ื‘ืฆื•ืจื” ืžืขืžื™ืงื” ื™ื•ืชืจ ื•ื›ื•'. ื”ืฆืขื•ืชื™ื›ื ื™ืชืงื‘ืœื• ื‘ื”ื›ืจืช ืชื•ื“ื”, ืื ื”ืŸ ืžืคื•ืจื˜ื•ืช ืžืกืคื™ืง โ€“ ืืฉืžื— ืœื”ื•ืกื™ืฃ ืื•ืชืŸ ืœื˜ืงืกื˜ ื”ืžืืžืจ.

TL; DR

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

ืžื” ืืชื” ืฆืจื™ืš ื‘ืฉื‘ื™ืœ ื–ื”?

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

  1. ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืœืš ืฉืจืช ืœื™ื ื•ืงืก ืื™ืคืฉื”ื• ืžื—ื•ืฅ ืœืฉื“ื” ื”ื—ืกื™ืžื”. ืื• ืœืคื—ื•ืช ื”ืจืฆื•ืŸ ืœื”ื—ื–ื™ืง ืฉืจืช ื›ื–ื” - ืœืžืจื‘ื” ื”ืžื–ืœ ื–ื” ืขื•ืœื” ื›ืขืช ื”ื—ืœ ืž-9$ ืœืฉื ื”, ื•ืื•ืœื™ ืคื—ื•ืช. ื”ืฉื™ื˜ื” ืžืชืื™ืžื” ื’ื ืื ื™ืฉ ืœืš ืžื ื”ืจืช VPN ื ืคืจื“ืช, ืื– ื”ืฉืจืช ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืžื•ืงื ื‘ืชื•ืš ืฉื“ื” ื”ื—ืกื™ืžื”.
  2. ื”ื ืชื‘ ืฉืœืš ืฆืจื™ืš ืœื”ื™ื•ืช ื—ื›ื ืžืกืคื™ืง ื›ื“ื™ ืœื”ื™ื•ืช ืžืกื•ื’ืœ
    • ื›ืœ ืœืงื•ื— VPN ืฉืืชื” ืื•ื”ื‘ (ืื ื™ ืžืขื“ื™ืฃ ืืช OpenVPN, ืื‘ืœ ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช PPTP, L2TP, GRE+IPSec ืื• ื›ืœ ืืคืฉืจื•ืช ืื—ืจืช ืฉื™ื•ืฆืจืช ืžืžืฉืง ืžื ื”ืจื”);
    • ืคืจื•ื˜ื•ืงื•ืœ BGPv4. ืžื” ืฉืื•ืžืจ ืฉืขื‘ื•ืจ SOHO ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช Mikrotik ืื• ื›ืœ ื ืชื‘ ืขื OpenWRT/LEDE/ืงื•ืฉื—ื” ืžื•ืชืืžืช ืื™ืฉื™ืช ื“ื•ืžื” ื”ืžืืคืฉืจืช ืœืš ืœื”ืชืงื™ืŸ Quagga ืื• Bird. ื’ื ืฉื™ืžื•ืฉ ื‘ื ืชื‘ PC ืื™ื ื• ืืกื•ืจ. ื‘ืžืงืจื” ืฉืœ ืืจื’ื•ืŸ, ื—ืคืฉ ืืช ืชืžื™ื›ืช BGP ื‘ืชื™ืขื•ื“ ืฉืœ ื ืชื‘ ื”ื’ื‘ื•ืœ ืฉืœืš.
  3. ืืชื” ืฆืจื™ืš ืœื”ื™ื•ืช ื‘ืขืœ ื”ื‘ื ื” ืฉืœ ื”ืฉื™ืžื•ืฉ ื‘-Linux ื•ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืจืฉืช, ื›ื•ืœืœ ืคืจื•ื˜ื•ืงื•ืœ BGP. ืื• ืœืคื—ื•ืช ืจื•ืฆื” ืœืงื‘ืœ ืจืขื™ื•ืŸ ื›ื–ื”. ืžื›ื™ื•ื•ืŸ ืฉืื ื™ ืœื ืžื•ื›ืŸ ืœืืžืฅ ืืช ื”ืขืฆื•ืžื•ืช ื”ืคืขื, ืชืฆื˜ืจืš ืœืœืžื•ื“ ื›ืžื” ื”ื™ื‘ื˜ื™ื ืฉืื™ื ื ืžื•ื‘ื ื™ื ืœืš ื‘ืขืฆืžืš. ืขื ื–ืืช, ื›ืžื•ื‘ืŸ ืืขื ื” ืขืœ ืฉืืœื•ืช ืกืคืฆื™ืคื™ื•ืช ื‘ืชื’ื•ื‘ื•ืช ื•ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืœื ืื”ื™ื” ื”ื™ื—ื™ื“ ืฉื™ืขื ื”, ืื– ืืœ ืชื”ืกืกื• ืœืฉืื•ืœ.

ืžื” ืžืฉืžืฉ ื‘ื“ื•ื’ืžื”

  • ื”ืขืชืง ื”ืคื ืงืก - ืž https://github.com/zapret-info/z-i 
  • VPS - ืื•ื‘ื•ื ื˜ื• 16.04
  • ืฉื™ืจื•ืช ื ื™ืชื•ื‘ - ืฆื™ืคื•ืจ 1.6.3   
  • ื ืชื‘ - Mikrotik hAP ac
  • ืชื™ืงื™ื•ืช ืขื‘ื•ื“ื” - ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืขื•ื‘ื“ื™ื ื›-root, ืจื•ื‘ ื”ื›ืœ ื™ืžื•ืงื ื‘ืชื™ืงื™ื™ืช ื”ื‘ื™ืช ืฉืœ ื”-root. ื‘ื”ืชืืžื”:
    • /root/blacklist - ืชื™ืงื™ื™ืช ืขื‘ื•ื“ื” ืขื ืกืงืจื™ืคื˜ ื”ื”ื™ื“ื•ืจ
    • /root/zi - ืขื•ืชืง ืฉืœ ื”ืจื™ืฉื•ื ืž-github
    • /etc/bird - ืชื™ืงื™ื™ื” ืจื’ื™ืœื” ืœื”ื’ื“ืจื•ืช ืฉื™ืจื•ืช ืฆื™ืคื•ืจื™ื
  • ื›ืชื•ื‘ืช ื”-IP ื”ื—ื™ืฆื•ื ื™ืช ืฉืœ ื”-VPS ืขื ืฉืจืช ื”ื ื™ืชื•ื‘ ื•ื ืงื•ื“ืช ืกื™ื•ื ื”ืžื ื”ืจื” ื”ื™ื 194.165.22.146, ASN 64998; ื›ืชื•ื‘ืช IP ื—ื™ืฆื•ื ื™ืช ืฉืœ ื”ื ืชื‘ - 81.177.103.94, ASN 64999
  • ื›ืชื•ื‘ื•ืช ื”-IP ื‘ืชื•ืš ื”ืžื ื”ืจื” ื”ืŸ 172.30.1.1 ื•-172.30.1.2, ื‘ื”ืชืืžื”.

ื”ื’ื“ืจืช BGP ื›ื“ื™ ืœืขืงื•ืฃ ื—ืกื™ืžื”, ืื• "ืื™ืš ื”ืคืกืงืชื™ ืœืคื—ื“ ื•ื”ืชืื”ื‘ืชื™ ื‘-RKN"

ื›ืžื•ื‘ืŸ, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ื ืชื‘ื™ื ืื—ืจื™ื, ืžืขืจื›ื•ืช ื”ืคืขืœื” ื•ืžื•ืฆืจื™ ืชื•ื›ื ื”, ืœื”ืชืื™ื ืืช ื”ืคืชืจื•ืŸ ืœื”ื™ื’ื™ื•ืŸ ืฉืœื”ื.

ื‘ืงืฆืจื” - ื”ื”ื™ื’ื™ื•ืŸ ืฉืœ ื”ืคืชืจื•ืŸ

  1. ืคืขื™ืœื•ื™ื•ืช ื”ื›ื ื”
    1. ืงื‘ืœืช VPS
    2. ื”ืขืœืืช ืžื ื”ืจื” ืžื”ื ืชื‘ ืœ-VPS
  2. ืื ื• ืžืงื‘ืœื™ื ื•ืžืขื“ื›ื ื™ื ื‘ืื•ืคืŸ ืงื‘ื•ืข ืขื•ืชืง ืฉืœ ื”ืจื™ืฉื•ื
  3. ื”ืชืงื ื” ื•ื”ื’ื“ืจื” ืฉืœ ืฉื™ืจื•ืช ื”ื ื™ืชื•ื‘
  4. ืื ื• ื™ื•ืฆืจื™ื ืจืฉื™ืžื” ืฉืœ ืžืกืœื•ืœื™ื ืกื˜ื˜ื™ื™ื ืขื‘ื•ืจ ืฉื™ืจื•ืช ื”ื ื™ืชื•ื‘ ืขืœ ืกืžืš ื”ืจื™ืฉื•ื
  5. ืื ื• ืžื—ื‘ืจื™ื ืืช ื”ื ืชื‘ ืœืฉื™ืจื•ืช ื•ืžื’ื“ื™ืจื™ื ืฉืœื™ื—ืช ื›ืœ ื”ืชืขื‘ื•ืจื” ื“ืจืš ื”ืžื ื”ืจื”.

ื”ืคืชืจื•ืŸ ื‘ืคื•ืขืœ

ืคืขื™ืœื•ื™ื•ืช ื”ื›ื ื”

ื™ืฉื ื ืฉื™ืจื•ืชื™ื ืจื‘ื™ื ื‘ืื™ื ื˜ืจื ื˜ ื”ืžืกืคืงื™ื VPS ื‘ืžื—ื™ืจื™ื ื ื•ื—ื™ื ื‘ืžื™ื•ื—ื“. ืขื“ ื›ื” ืžืฆืืชื™ ื•ืžืฉืชืžืฉ ื‘ืื•ืคืฆื™ื” ืขื‘ื•ืจ $9 ืœืฉื ื”, ืื‘ืœ ื’ื ืื ืืชื” ืœื ื˜ื•ืจื— ื™ื•ืชืจ ืžื“ื™, ื™ืฉ ื”ืจื‘ื” ืืคืฉืจื•ื™ื•ืช ืขื‘ื•ืจ 1E ืœื—ื•ื“ืฉ ื‘ื›ืœ ืคื™ื ื”. ืฉืืœืช ื‘ื—ื™ืจืช ื”-VPS ื ืžืฆืืช ื”ืจื‘ื” ืžืขื‘ืจ ืœืชื—ื•ื ื”ืžืืžืจ ื”ื–ื”, ืื– ืื ืžื™ืฉื”ื• ืœื ืžื‘ื™ืŸ ืžืฉื”ื• ื‘ื–ื”, ืฉืืœ ื‘ืชื’ื•ื‘ื•ืช.

ืื ืืชื” ืžืฉืชืžืฉ ื‘-VPS ืœื ืจืง ืขื‘ื•ืจ ืฉื™ืจื•ืช ื”ื ื™ืชื•ื‘, ืืœื ื’ื ื›ื“ื™ ืœืกื™ื™ื ื‘ื• ืžื ื”ืจื”, ืขืœื™ืš ืœื”ืขืœื•ืช ืืช ื”ืžื ื”ืจื” ื”ื–ื•, ื•ื›ืžืขื˜ ื‘ื•ื•ื“ืื•ืช, ืœื”ื’ื“ื™ืจ ืขื‘ื•ืจื” ืืช ื”-NAT. ื™ืฉื ืŸ ืžืกืคืจ ืจื‘ ืฉืœ ื”ื•ืจืื•ืช ืขืœ ืคืขื•ืœื•ืช ืืœื• ื‘ืื™ื ื˜ืจื ื˜, ืœื ืื—ื–ื•ืจ ืขืœื™ื”ืŸ ื›ืืŸ. ื”ื“ืจื™ืฉื” ื”ืขื™ืงืจื™ืช ืœืžื ื”ืจื” ื›ื–ื• ื”ื™ื ืฉื”ื™ื ื—ื™ื™ื‘ืช ืœื™ืฆื•ืจ ืžืžืฉืง ื ืคืจื“ ื‘ื ืชื‘ ืฉืœืš ืฉืชื•ืžืš ื‘ืžื ื”ืจื” ืœื›ื™ื•ื•ืŸ ื”-VPS. ืจื•ื‘ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื”-VPN ื”ืžืฉื•ืžืฉื•ืช ืขื•ื ื•ืช ืขืœ ื”ื“ืจื™ืฉื” ื”ื–ื• - ืœื“ื•ื’ืžื”, OpenVPN ื‘ืžืฆื‘ tun ืžื•ืฉืœื.

ืงื‘ืœืช ืขื•ืชืง ืฉืœ ื”ืจื™ืฉื•ื

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

ืื ื—ื ื• ื”ื•ืœื›ื™ื ืœืฉืจืช ื”ืœื™ื ื•ืงืก ืฉืœืš, ื ื›ื ืกื™ื ืœื”ืงืฉืจ ื”ืฉื•ืจืฉ (ืกื•ื“ื• ืกื• -) ื•ื”ืชืงืŸ git ืื ื”ื•ื ืขื“ื™ื™ืŸ ืœื ืžื•ืชืงืŸ.

apt install git

ืขื‘ื•ืจ ืืœ ืกืคืจื™ื™ืช ื”ื‘ื™ืช ืฉืœืš ื•ืฉืœื•ืฃ ืขื•ืชืง ืฉืœ ื”ืจื™ืฉื•ื.

cd ~ && git clone --depth=1 https://github.com/zapret-info/z-i 

ื”ื’ื“ืจื ื• ืขื“ื›ื•ืŸ cron (ืื ื™ ืขื•ืฉื” ืืช ื–ื” ืคืขื ื‘-20 ื“ืงื•ืช, ืื‘ืœ ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ ื›ืœ ืžืจื•ื•ื— ืฉืžืขื ื™ื™ืŸ ืื•ืชืš). ืœืฉื ื›ืš ืื ื• ืžืฉื™ืงื™ื -e crontab ื•ื”ื•ืกื™ืคื• ืœื• ืืช ื”ืฉื•ืจื” ื”ื‘ืื”:

*/20 * * * * cd ~/z-i && git pull && git gc

ืื ื• ืžื—ื‘ืจื™ื ื”ื•ืง ืฉื™ื™ืฆื•ืจ ืงื‘ืฆื™ื ืขื‘ื•ืจ ืฉื™ืจื•ืช ื”ื ื™ืชื•ื‘ ืœืื—ืจ ืขื“ื›ื•ืŸ ื”ืจื™ืฉื•ื. ืœืฉื ื›ืš, ืฆื•ืจ ืงื•ื‘ืฅ /root/zi/.git/hooks/post-merge ืขื ื”ืชื•ื›ืŸ ื”ื‘ื:

#!/usr/bin/env bash
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_run() {
    echo "$changed_files" | grep --quiet "$1" && eval "$2"
}
check_run dump.csv "/root/blacklist/makebgp"

ื•ืืœ ืชืฉื›ื— ืœืขืฉื•ืช ืืช ื–ื” ื‘ืจ ื”ืคืขืœื”

chmod +x /root/z-i/.git/hooks/post-merge

ื ื™ืฆื•ืจ ืืช ื”ืกืงืจื™ืคื˜ makebgp ืฉืืœื™ื• ื”-hook ืžืชื™ื™ื—ืก ืงืฆืช ืžืื•ื—ืจ ื™ื•ืชืจ.

ื”ืชืงื ื” ื•ื”ื’ื“ืจื” ืฉืœ ืฉื™ืจื•ืช ื ื™ืชื•ื‘

ื”ืชืงืŸ ืฆื™ืคื•ืจ. ืœืจื•ืข ื”ืžื–ืœ, ื”ื’ืจืกื” ืฉืœ bird ืฉืคื•ืจืกืžื” ื›ืขืช ื‘ืžืื’ืจื™ ืื•ื‘ื•ื ื˜ื• ื“ื•ืžื” ื‘ื˜ืจื™ื•ืชื” ืœืฆื•ืืช Archeopteryx, ื•ืœื›ืŸ ืขืœื™ื ื• ืœื”ื•ืกื™ืฃ ืชื—ื™ืœื” ืืช ื”-PPA ื”ืจืฉืžื™ ืฉืœ ืžืคืชื—ื™ ื”ืชื•ื›ื ื” ืœืžืขืจื›ืช.

add-apt-repository ppa:cz.nic-labs/bird
apt update
apt install bird

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

systemctl stop bird6
systemctl disable bird6

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

log syslog all;
router id 172.30.1.1;

protocol kernel {
        scan time 60;
        import none;
#       export all;   # Actually insert routes into the kernel routing table
}

protocol device {
        scan time 60;
}

protocol direct {
        interface "venet*", "tun*"; # Restrict network interfaces it works with
}

protocol static static_bgp {
        import all;
        include "pfxlist.txt";
        #include "iplist.txt";
}

protocol bgp OurRouter {
        description "Our Router";
        neighbor 81.177.103.94 as 64999;
        import none;
        export where proto = "static_bgp";
        local as 64998;
        passive off;
        multihop;
}

ื ืชื‘ ืžื–ื”ื” - ืžื–ื”ื” ื ืชื‘, ืฉื ืจืื” ื—ื–ื•ืชื™ืช ื›ืžื• ื›ืชื•ื‘ืช IPv4, ืืš ืื™ื ื• ืื—ื“. ื‘ืžืงืจื” ืฉืœื ื•, ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื›ืœ ืžืกืคืจ ืฉืœ 32 ืกื™ื‘ื™ื•ืช ื‘ืคื•ืจืžื˜ ื›ืชื•ื‘ืช IPv4, ืื‘ืœ ื–ื” ืฆื•ืจื” ื˜ื•ื‘ื” ืœืฆื™ื™ืŸ ื‘ื“ื™ื•ืง ืืช ื›ืชื•ื‘ืช ื”-IPv4 ืฉืœ ื”ืžื›ืฉื™ืจ ืฉืœืš (ื‘ืžืงืจื” ื–ื”, VPS).

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

ืคืจื•ื˜ื•ืงื•ืœ ืกื˜ื˜ื™ ื”ื•ื ื”ืงืกื ืฉืœื ื• ืฉื˜ื•ืขืŸ ืจืฉื™ืžื•ืช ืฉืœ ืงื™ื“ื•ืžื•ืช ื•ื›ืชื•ื‘ื•ืช IP (ืฉื”ืŸ ืœืžืขืฉื” /32 ืงื™ื“ื•ืžื•ืช, ื›ืžื•ื‘ืŸ) ืžืงื‘ืฆื™ื ืœื”ื›ืจื–ื” ืœืื—ืจ ืžื›ืŸ. ืžื”ื™ื›ืŸ ืžื’ื™ืขื•ืช ื”ืจืฉื™ืžื•ืช ื”ืœืœื• ื™ื™ื“ื•ื ื• ืœื”ืœืŸ. ืฉื™ืžื• ืœื‘ ืฉื˜ืขื™ื ืช ื›ืชื•ื‘ื•ืช IP ืžื•ื’ืžืจืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืกื™ื‘ื” ืœื›ืš ื”ื™ื ื ืคื— ื”ื”ืขืœืื•ืช ื”ื’ื“ื•ืœ. ืœืฉื ื”ืฉื•ื•ืื”, ื‘ื–ืžืŸ ื›ืชื™ื‘ืช ืฉื•ืจื•ืช ืืœื• ื™ืฉ 78 ืฉื•ืจื•ืช ื‘ืจืฉื™ืžืช ื”ืงื™ื“ื•ืžื•ืช, ื•-85898 ื‘ืจืฉื™ืžืช ื›ืชื•ื‘ื•ืช ื”-IP. ืื ื™ ืžืžืœื™ืฅ ื‘ื—ื•ื ืœื”ืชื—ื™ืœ ื•ืœื‘ืฆืข ื ื™ืคื•ื™ ื‘ืื’ื™ื ืจืง ื‘ืจืฉื™ืžืช ื”ืงื™ื“ื•ืžื•ืช, ื•ื”ืื ืœืืคืฉืจ ื˜ืขื™ื ืช IP ื‘- ื”ืขืชื™ื“ ืชืœื•ื™ ื‘ืš ืœื”ื—ืœื™ื˜ ืœืื—ืจ ื ื™ืกื•ื™ ืขื ื”ื ืชื‘ ืฉืœืš. ืœื ื›ืœ ืื—ื“ ืžื”ื ื™ื›ื•ืœ ืœืขื›ืœ ื‘ืงืœื•ืช 85 ืืœืฃ ืขืจื›ื™ื ื‘ื˜ื‘ืœืช ื”ื ื™ืชื•ื‘.

ืคืจื•ื˜ื•ืงื•ืœ bgp, ืœืžืขืฉื”, ืžื’ื“ื™ืจ bgp peering ืขื ื”ื ืชื‘ ืฉืœืš. ื›ืชื•ื‘ืช ื”-IP ื”ื™ื ื”ื›ืชื•ื‘ืช ืฉืœ ื”ืžืžืฉืง ื”ื—ื™ืฆื•ื ื™ ืฉืœ ื”ื ืชื‘ (ืื• ื”ื›ืชื•ื‘ืช ืฉืœ ืžืžืฉืง ื”ืžื ื”ืจื” ื‘ืฆื“ ื”ื ืชื‘), 64998 ื•-64999 ื”ื ื”ืžืกืคืจื™ื ืฉืœ ืžืขืจื›ื•ืช ืื•ื˜ื•ื ื•ืžื™ื•ืช. ื‘ืžืงืจื” ื–ื”, ื ื™ืชืŸ ืœื”ืงืฆื•ืช ืื•ืชื ื‘ืฆื•ืจื” ืฉืœ ื›ืœ ืžืกืคืจ ืฉืœ 16 ืกื™ื‘ื™ื•ืช, ืืš ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘ืžืกืคืจื™ AS ืžื”ื˜ื•ื•ื— ื”ืคืจื˜ื™ ื”ืžื•ื’ื“ืจ ืขืœ ื™ื“ื™ RFC6996 - 64512-65534 ื›ื•ืœืœ (ื™ืฉ ืคื•ืจืžื˜ ืขื‘ื•ืจ ASNs ืฉืœ 32 ืกื™ื‘ื™ื•ืช, ืื‘ืœ ื‘ืžืงืจื” ืฉืœื ื• ื–ื” ื‘ื”ื—ืœื˜ ืžื•ื’ื–ื). ื”ืชืฆื•ืจื” ื”ืžืชื•ืืจืช ืžืฉืชืžืฉืช ื‘-eBGP peering, ืฉื‘ื” ื”ืžืกืคืจื™ื ืฉืœ ื”ืžืขืจื›ื•ืช ื”ืื•ื˜ื•ื ื•ืžื™ื•ืช ืฉืœ ืฉื™ืจื•ืช ื”ื ื™ืชื•ื‘ ื•ื”ื ืชื‘ ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ืฉื•ื ื™ื.

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื”ืฉื™ืจื•ืช ืฆืจื™ืš ืœื“ืขืช ืืช ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ื ืชื‘, ื›ืš ืฉืื ื™ืฉ ืœืš ื›ืชื•ื‘ืช ืคืจื˜ื™ืช ื“ื™ื ืžื™ืช ืื• ื‘ืœืชื™ ื ื™ืชื ืช ืœื ื™ืชื•ื‘ (RFC1918) ืื• ืžืฉื•ืชืคืช (RFC6598), ืื™ืŸ ืœืš ืืคืฉืจื•ืช ืœื”ืขืœื•ืช ืืช ื”ืฆืคื™ื™ื” ืขืœ ื”ื—ื™ืฆื•ื ื™ ืžืžืฉืง, ืื‘ืœ ื”ืฉื™ืจื•ืช ืขื“ื™ื™ืŸ ื™ืขื‘ื•ื“ ื‘ืชื•ืš ื”ืžื ื”ืจื”.

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

ืขื™ื‘ื•ื“ ื”ืจื™ืฉื•ื ืขื‘ื•ืจ ืฉื™ืจื•ืช ื”ื ื™ืชื•ื‘

ื›ืขืช ืื ื• ืฆืจื™ื›ื™ื, ืœืžืขืฉื”, ืœื™ืฆื•ืจ ืจืฉื™ืžื•ืช ืฉืœ ืงื™ื“ื•ืžื•ืช ื•ื›ืชื•ื‘ื•ืช IP, ืฉื”ื•ื–ื›ืจื• ื‘ืคืจื•ื˜ื•ืงื•ืœ ื”ืกื˜ื˜ื™ ื‘ืฉืœื‘ ื”ืงื•ื“ื. ืœืฉื ื›ืš, ืื ื• ืœื•ืงื—ื™ื ืืช ืงื•ื‘ืฅ ื”ืจื™ืฉื•ื ื•ืžื™ื™ืฆืจื™ื ืžืžื ื• ืืช ื”ืงื‘ืฆื™ื ืฉืื ื• ืฆืจื™ื›ื™ื ื‘ืืžืฆืขื•ืช ื”ืกืงืจื™ืคื˜ ื”ื‘ื, ืฉื”ื•ื›ื ืก ืืœื™ื• /root/blacklist/makebgp

#!/bin/bash
cut -d";" -f1 /root/z-i/dump.csv| tr '|' 'n' |  tr -d ' ' > /root/blacklist/tmpaddr.txt
cat /root/blacklist/tmpaddr.txt | grep / | sed 's_.*_route & reject;_' > /etc/bird/pfxlist.txt
cat /root/blacklist/tmpaddr.txt | sort | uniq | grep -Eo "([0-9]{1,3}[.]){3}[0-9]{1,3}" | sed 's_.*_route &/32 reject;_' > /etc/bird/iplist.txt
/etc/init.d/bird reload
logger 'bgp list compiled'

ืืœ ืชืฉื›ื— ืœืขืฉื•ืช ืืช ื–ื” ื‘ืจ ื”ืคืขืœื”

chmod +x /root/blacklist/makebgp

ื›ืขืช ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืื•ืชื• ื‘ืื•ืคืŸ ื™ื“ื ื™ ื•ืœืฆืคื•ืช ื‘ืžืจืื” ืฉืœ ืงื‘ืฆื™ื ื‘-/etc/bird.

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

systemctl start bird
birdc show route

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

54.160.0.0/12      unreachable [static_bgp 2018-04-19] * (200)

ืงื‘ื•ืฆื”

birdc show protocol

ื™ืฆื™ื’ ืืช ืžืฆื‘ ื”ืคืจื•ื˜ื•ืงื•ืœื™ื ื‘ืชื•ืš ื”ืฉื™ืจื•ืช. ืขื“ ืฉืชื’ื“ื™ืจ ืืช ื”ื ืชื‘ (ืจืื” ืืช ื”ื ืงื•ื“ื” ื”ื‘ืื”), ืคืจื•ื˜ื•ืงื•ืœ OurRouter ื™ื”ื™ื” ื‘ืžืฆื‘ ื”ืชื—ืœื” (Connect ืื• Active phase), ื•ืœืื—ืจ ื—ื™ื‘ื•ืจ ืžื•ืฆืœื— ื”ื•ื ื™ืขื‘ื•ืจ ืœืžืฆื‘ ืœืžืขืœื” (Established phase). ืœื“ื•ื’ืžื”, ื‘ืžืขืจื›ืช ืฉืœื™ ื”ืคืœื˜ ืฉืœ ืคืงื•ื“ื” ื–ื• ื ืจืื” ื›ืš:

BIRD 1.6.3 ready.
name     proto    table    state  since       info
kernel1  Kernel   master   up     2018-04-19
device1  Device   master   up     2018-04-19
static_bgp Static   master   up     2018-04-19
direct1  Direct   master   up     2018-04-19
RXXXXXx1 BGP      master   up     13:10:22    Established
RXXXXXx2 BGP      master   up     2018-04-24  Established
RXXXXXx3 BGP      master   start  2018-04-22  Connect       Socket: Connection timed out
RXXXXXx4 BGP      master   up     2018-04-24  Established
RXXXXXx5 BGP      master   start  2018-04-24  Passive

ื—ื™ื‘ื•ืจ ื ืชื‘

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

ืขื ื–ืืช, ืื ื™ ื™ื›ื•ืœ ืœื”ืจืื•ืช ืœืš ื›ืžื” ื“ื•ื’ืžืื•ืช. ื”ื”ื™ื’ื™ื•ืŸ ื”ืขื™ืงืจื™ ื”ื•ื ืœื”ืขืœื•ืช ืืช ื”-BGP peering ื•ืœื”ืงืฆื•ืช ืืช nexthop ืœื›ืœ ื”ืงื™ื“ื•ืžื•ืช ืฉื”ืชืงื‘ืœื•, ืชื•ืš ื”ืฆื‘ืขื” ืขืœ ื”ืžื ื”ืจื” ืฉืœื ื• (ืื ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืฉืœื•ื— ืชืขื‘ื•ืจื” ื“ืจืš ืžืžืฉืง p2p) ืื• ื›ืชื•ื‘ืช ื”-IP ืฉืœ nexthop ืื ื”ืชืขื‘ื•ืจื” ืชืขื‘ื•ืจ ืœ-ethernet).

ืœื“ื•ื’ืžื”, ื‘-Mikrotik ื‘-RouterOS ื–ื” ื ืคืชืจ ื‘ืื•ืคืŸ ื”ื‘ื

/routing bgp instance set default as=64999 ignore-as-path-len=yes router-id=172.30.1.2
/routing bgp peer add in-filter=dynamic-in multihop=yes name=VPS remote-address=194.165.22.146 remote-as=64998 ttl=default
/routing filter add action=accept chain=dynamic-in protocol=bgp comment="Set nexthop" set-in-nexthop=172.30.1.1

ื•ื‘-Cisco IOS - ื›ื›ื”

router bgp 64999
  neighbor 194.165.22.146 remote-as 64998
  neighbor 194.165.22.146 route-map BGP_NEXT_HOP in
  neighbor 194.165.22.146 ebgp-multihop 250
!
route-map BGP_NEXT_HOP permit 10
  set ip next-hop 172.30.1.1

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

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

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

systemctl reload bird

ื•ืจืื” ืื™ืš ื”ื ืชื‘ ืฉืœืš ื”ืขื‘ื™ืจ ืืช 85 ืืœืฃ ื”ืžืกืœื•ืœื™ื ื”ืืœื”. ื”ื™ื• ืžื•ื›ื ื™ื ืœื ืชืง ื•ืœื—ืฉื•ื‘ ืžื” ืœืขืฉื•ืช ืขื ื–ื” :)

ื‘ืกืš ื”ื›ืœ

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

ืืคืฉืจ ื›ืžื•ื‘ืŸ ืœืฉืคืจ. ืœื“ื•ื’ืžื”, ื“ื™ ืงืœ ืœืกื›ื ืจืฉื™ืžื” ืฉืœ ื›ืชื•ื‘ื•ืช IP ื‘ืืžืฆืขื•ืช ืคืชืจื•ื ื•ืช perl ืื• python. ืกืงืจื™ืคื˜ ืคืฉื•ื˜ ืฉืœ Perl ืฉืขื•ืฉื” ื–ืืช ื‘ืืžืฆืขื•ืช Net::CIDR::Lite ื”ื•ืคืš 85 ืืœืฃ ืงื™ื“ื•ืžื•ืช ืœ-60 (ืœื ืืœืฃ), ืื‘ืœ, ื›ืžื•ื‘ืŸ, ืžื›ืกื” ื˜ื•ื•ื— ื”ืจื‘ื” ื™ื•ืชืจ ื’ื“ื•ืœ ืฉืœ ื›ืชื•ื‘ื•ืช ืžืžื” ืฉื ื—ืกื.

ืžื›ื™ื•ื•ืŸ ืฉื”ืฉื™ืจื•ืช ืคื•ืขืœ ื‘ืจืžื” ื”ืฉืœื™ืฉื™ืช ืฉืœ ืžื•ื“ืœ ื”-ISO/OSI, ื”ื•ื ืœื ื™ื—ืกื•ืš ืžืžืš ื—ืกื™ืžืช ืืชืจ/ื“ืฃ ืื ื”ื•ื ื™ืคืชื•ืจ ืœื›ืชื•ื‘ืช ืฉื’ื•ื™ื” ื›ืคื™ ืฉื ืจืฉืžื” ื‘ืจื™ืฉื•ื. ืื‘ืœ ื™ื—ื“ ืขื ื”ืจื™ืฉื•ื, ื”ืงื•ื‘ืฅ nxdomain.txt ืžื’ื™ืข ืž-github, ืฉื‘ื›ืžื” ืชื ื•ืขื•ืช ืฉืœ ื”ืกืงืจื™ืคื˜ ื”ื•ืคืš ื‘ืงืœื•ืช ืœืžืงื•ืจ ื›ืชื•ื‘ื•ืช ืขื‘ื•ืจ, ืœืžืฉืœ, ื”ืชื•ืกืฃ SwitchyOmega ื‘ื›ืจื•ื.

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

ืื ื™ืฉ ืœืš ืฉืืœื•ืช, ืฉืืœ, ืื ื™ ืžื•ื›ืŸ ืœืขื ื•ืช.

UPD. ืชื•ื“ื” navion ะธ TerAnYu ืœืคืจืžื˜ืจื™ื ืขื‘ื•ืจ git ื”ืžืืคืฉืจื™ื ื”ืคื—ืชืช ื ืคื—ื™ ื”ื•ืจื“ื”.

UPD2. ืขืžื™ืชื™ื, ื ืจืื” ืฉืขืฉื™ืชื™ ื˜ืขื•ืช ื‘ื›ืš ืฉืœื ื”ื•ืกืคืชื™ ืœืžืืžืจ ื”ื•ืจืื•ืช ืœื”ื’ื“ืจืช ืžื ื”ืจื” ื‘ื™ืŸ ื”-VPS ืœื ืชื‘. ื”ืจื‘ื” ืฉืืœื•ืช ืขื•ืœื•ืช ื‘ืขืงื‘ื•ืช ื–ื”.
ืœื™ืชืจ ื‘ื˜ื—ื•ืŸ, ืืฆื™ื™ืŸ ืฉื•ื‘ ืฉืœืคื ื™ ื”ืชื—ืœืช ื”ืžื“ืจื™ืš ื”ื–ื”, ื›ื‘ืจ ื”ื’ื“ืจืช ืžื ื”ืจืช VPN ื‘ื›ื™ื•ื•ืŸ ืฉืืชื” ืฆืจื™ืš ื•ื‘ื“ืงืช ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœื” (ืœื“ื•ื’ืžื”, ืขืœ ื™ื“ื™ ื”ืคื™ื›ืช ืชื ื•ืขื” ืœืฉื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืื• ืกื˜ื˜ื™ืช). ืื ืขื“ื™ื™ืŸ ืœื ื”ืฉืœืžืช ืืช ื”ืฉืœื‘ ื”ื–ื”, ืื™ืŸ ื–ื” ื”ื’ื™ื•ื ื™ ืœื‘ืฆืข ืืช ื”ืฉืœื‘ื™ื ื‘ืžืืžืจ. ืื™ืŸ ืœื™ ืขื“ื™ื™ืŸ ื˜ืงืกื˜ ืžืฉืœื™ ืขืœ ื–ื”, ืื‘ืœ ืื ืชื—ืคืฉ ื‘ื’ื•ื’ืœ "ื”ื’ื“ืจืช ืฉืจืช OpenVPN" ื™ื—ื“ ืขื ืฉื ืžืขืจื›ืช ื”ื”ืคืขืœื” ื”ืžื•ืชืงื ืช ื‘-VPS, ื•"ื”ื’ื“ืจืช ืœืงื•ื— OpenVPN" ืขื ืฉื ื”ื ืชื‘ ืฉืœืš , ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืชืžืฆื ืžืกืคืจ ืžืืžืจื™ื ื‘ื ื•ืฉื ื–ื”, ื›ื•ืœืœ ืขืœ Habrรฉ.

UPD3. ืœื ืžื•ืงืจื‘ ื›ืชื‘ืชื™ ืงื•ื“ ืฉื”ื•ืคืš ืืช dump.csv ืœืงื•ื‘ืฅ ืฉื ื•ืฆืจ ืขื‘ื•ืจ bird ืขื ืกื™ื›ื•ื ืื•ืคืฆื™ื•ื ืœื™ ืฉืœ ื›ืชื•ื‘ื•ืช IP. ืœื›ืŸ, ื ื™ืชืŸ ืœื”ื—ืœื™ืฃ ืืช ื”ืกืขื™ืฃ "ืขื™ื‘ื•ื“ ื”ืจื™ืฉื•ื ืœืฉื™ืจื•ืช ื”ื ื™ืชื•ื‘" ืขืœ ื™ื“ื™ ืงืจื™ืื” ืœืชื•ื›ื ื™ืช ืฉืœื•. https://habr.com/post/354282/#comment_10782712

UPD4. ืงืฆืช ืขื‘ื•ื“ื” ืขืœ ืฉื’ื™ืื•ืช (ืœื ื”ื•ืกืคืชื™ ืื•ืชืŸ ืœื˜ืงืกื˜):
1) ื‘ืžืงื•ื ื–ืืช systemctl ื˜ืขืŸ ืžื—ื“ืฉ ืฆื™ืคื•ืจ ื”ื’ื™ื•ื ื™ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” birdc ืœื”ื’ื“ื™ืจ.
2) ื‘ื ืชื‘ Mikrotik, ื‘ืžืงื•ื ืœืฉื ื•ืช ืืช Nexthop ืœ-IP ืฉืœ ื”ืฆื“ ื”ืฉื ื™ ืฉืœ ื”ืžื ื”ืจื” /ืžืกื ืŸ ื ื™ืชื•ื‘ ื”ื•ืกืฃ action=accept chain=dynamic-in protocol=bgp comment=ยปื”ื’ื“ืจ nexthopยป set-in-nexthop=172.30.1.1 ื”ื’ื™ื•ื ื™ ืœืฆื™ื™ืŸ ืืช ื”ืžืกืœื•ืœ ื™ืฉื™ืจื•ืช ืœืžืžืฉืง ื”ืžื ื”ืจื”, ืœืœื ื›ืชื•ื‘ืช /ืžืกื ืŸ ื ื™ืชื•ื‘ add action=accept chain=dynamic-in protocol=bgp comment=ยปื”ื’ื“ืจ nexthopยป set-in-nexthop-direct=<ืฉื ืžืžืฉืง>

UPD5. ืฉื™ืจื•ืช ื—ื“ืฉ ื”ื•ืคื™ืข https://antifilter.download, ืžืฉื ืืชื” ื™ื›ื•ืœ ืœืืกื•ืฃ ืจืฉื™ืžื•ืช ืžื•ื›ื ื•ืช ืฉืœ ื›ืชื•ื‘ื•ืช IP. ืžืชืขื“ื›ืŸ ื›ืœ ื—ืฆื™ ืฉืขื”. ื‘ืฆื“ ื”ืœืงื•ื—, ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœืžืกื’ืจ ืืช ื”ืจืฉื•ืžื•ืช ืขื "ืžืกืœื•ืœ... ื“ื—ื™ื™ื”" ื”ืžืงื‘ื™ืœ.
ื•ื‘ืฉืœื‘ ื”ื–ื”, ื›ื ืจืื”, ืžืกืคื™ืง ืœืกื—ื‘ืช ืืช ืกื‘ืชื ื•ืœืขื“ื›ืŸ ืืช ื”ืžืืžืจ.

UPD6. ื’ืจืกื” ืžืชื•ืงื ืช ืฉืœ ื”ืžืืžืจ ืœืžื™ ืฉืœื ืจื•ืฆื” ืœื”ื‘ื™ืŸ ืืช ื–ื”, ืื‘ืœ ืจื•ืฆื” ืœื”ืชื—ื™ืœ - ื›ืืŸ.

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

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