ืืืื, ืืกืืจ, ืืืื "ืืืื" ืื ืืืืื. ืืืงืื ืืืช, "ืืื ืืกืืื ืืืืืช ืืื ืขื."
ืืคื ืฉืืืืื ืืืืขืื, ืืื ื-16 ืืืคืจืื 2018, ืจืืกืงืืื ืืืืจ ืืืกืืช ืืช ืืืืฉื ืืืฉืืืื ืืืื ืืจื ื ืืชื ืืขืืช ืจืืืืช ืืืืชืจ, ืืืืกืืคื ื"ืจืืฉืื ืืืืืื ืฉื ืฉืืืช ืืชืื, ืืื ืืงืก ืืคืื ืฉื ืืชืจืื ืืืื ืืจื ื ืืืชืืืืช ืจืฉืช ืืืืคืฉืจืืช ืืืืื ืืชืจืื ืืืื ืืจื ื," ืืืืื ืืืืข ืฉืืคืฆืชื ืืกืืจื ืืคืืจืฆืื ืืจืืกืืช" (ืืืงืกื - ืจืง ืจืืฉืื) ืขื ืืื /10 ืืคืขืืื. ืืชืืฆืื ืืื, ืืืจืื ืืคืืจืฆืื ืืจืืกืืช ืืขืกืงืื ืกืืืืื, ืืืืจ ืฉืืืืื ืืืฉื ืืืฉืืืื ืืืืงืืื ืืืืืืื ืฉืื ืฆืจืืืื.
ืืืืจ ืฉืืืจืชื ืืชืืืืืช ืืืืช ืืืชืืืช ืขื Habrรฉ ืฉืื ื ืืืื ืืขืืืจ ืืงืืจืื ืืช ืืืงืืช ืชืืื ืืช ืขืืงืคืื, ืืืืขื ืืืื ืืื ืื ืฉืื ืืืืงืฉื ืขืืจื ืืื. ืืฉืืื ืขืื ืืื, ืืื ืืื ืืืืืฅ โโืืชืืจ ืืช ืืืื ืืงื ืืืืืจ. ืืืืจ ืืืฉืื ืืืืืชื ืืฉืืืจ ืฉืชืืงื ืืืชืจ ืืื ืกืืช ืคืขื ืืืช ืืืชืื ืืฉืื ืืื ืืื ืืื ืคืจืืืงื ืืคืืกื ืืคืืืกืืืง, ืืืืืจ. ืืืจืืคืืกื. ืืชืืฆืื ืืคื ืืื.
ืืชื ืืืชืืจ
ืืืืืื ืฉืื ืื ืืืื ืืืงื ืืคืจืกื ืืจืืื ืืขืงืืฃ ืืกืืืช ืืืฉื ืืืืืข ืืืกืืจ ืืฉืื ืืคืืจืฆืื ืืจืืกืืช, ืืืจืช ืืืืจ ืื ืชืืื ืืืืจ ืขื ืฉืืื ืืืืคืฉืจืช ืื ืืืคืื ืืช ืืฉืืช ืืืฉื ืืืฉืืืื ืืืืชืจืื ื- ืืฉืื ืฉื ืืคืืจืฆืื ืืจืืกืืช, ืื ืขืงื ืคืขืืืืชืื ืฉื ืืืฉืื ืืื ื ื ืืืฉืื ืืฉืืจืืช ืืจื ืืกืคืง ืฉืื. ืืืืฉื ืืืฉืืืื ืืืจืื ืืืชืงืืืื ืืชืืฆืื ืืคืขืืืืช ืืืืืืจ ืืื ืชืืคืขืช ืืืืื ืืฆืขืจืช ืืืื ื ื ืืฉืื ืืืคื ืืืจืช ืืืืืจ.
ืืื ืื, ืืืืืื ืฉืื ื ืืขืืงืจ ืืจืืืืงื ืจืฉืชืืช ืืืงืฆืืขื, ืืงืฆืืข ืืืกืืื ืืืื, ืชืื ืืช ืืืื ืืงืก ืื ืื ืืฆื ืืืืง ืฉืื. ืืื, ืืืืื, ื ืืชื ืืืชืื ืกืงืจืืคืืื ืืฆืืจื ืืืื ืืืชืจ, ื ืืชื ืืคืชืืจ ืืขืืืช ืืืืื ื-VPS ืืฆืืจื ืืขืืืงื ืืืชืจ ืืื'. ืืฆืขืืชืืื ืืชืงืืื ืืืืจืช ืชืืื, ืื ืื ืืคืืจืืืช ืืกืคืืง โ ืืฉืื ืืืืกืืฃ ืืืชื ืืืงืกื ืืืืืจ.
TL; DR
ืื ื ืืืคืืื ืืืฉื ืืืืืืืืืช ืืืฉืืืื ืืจื ืืื ืืจื ืืงืืืืช ืฉืื ืืืืฆืขืืช ืขืืชืง ืฉื ืืจืืฉืื ืืคืจืืืืงืื BGP. ืืืืจื ืืื ืืืกืืจ ืืช ืื ืืชืขืืืจื ืืืืคื ืืช ืืืฉืืืื ืืกืืืื ืืชืื ืืื ืืจื. ืืื ืืืื ืืกืืจืื, ืืขืืงืจ ืืืจืืืช ืฉืื ืืืจ ืฉืื.
ืื ืืชื ืฆืจืื ืืฉืืื ืื?
ืืืจืื ืืฆืขืจ, ืืคืืกื ืืื ืื ืืชืืื ืืืืื. ืขื ืื ืช ืืืฉืชืืฉ ืืืื ืืงื ืื, ืชืฆืืจื ืืืืจ ืืกืคืจ ืืืื ืืื ืืื:
- ืืืื ืืืืืช ืื ืฉืจืช ืืื ืืงืก ืืืคืฉืื ืืืืฅ ืืฉืื ืืืกืืื. ืื ืืคืืืช ืืจืฆืื ืืืืืืง ืฉืจืช ืืื - ืืืจืื ืืืื ืื ืขืืื ืืขืช ืืื ื-9$ ืืฉื ื, ืืืืื ืคืืืช. ืืฉืืื ืืชืืืื ืื ืื ืืฉ ืื ืื ืืจืช VPN ื ืคืจืืช, ืื ืืฉืจืช ืืืื ืืืืืช ืืืืงื ืืชืื ืฉืื ืืืกืืื.
- ืื ืชื ืฉืื ืฆืจืื ืืืืืช ืืื ืืกืคืืง ืืื ืืืืืช ืืกืืื
- ืื ืืงืื VPN ืฉืืชื ืืืื (ืื ื ืืขืืืฃ ืืช OpenVPN, ืืื ืื ืืืื ืืืืืช PPTP, L2TP, GRE+IPSec ืื ืื ืืคืฉืจืืช ืืืจืช ืฉืืืฆืจืช ืืืฉืง ืื ืืจื);
- ืคืจืืืืงืื BGPv4. ืื ืฉืืืืจ ืฉืขืืืจ SOHO ืื ืืืื ืืืืืช Mikrotik ืื ืื ื ืชื ืขื OpenWRT/LEDE/ืงืืฉืื ืืืชืืืช ืืืฉืืช ืืืื ืืืืคืฉืจืช ืื ืืืชืงืื Quagga ืื Bird. ืื ืฉืืืืฉ ืื ืชื PC ืืื ื ืืกืืจ. ืืืงืจื ืฉื ืืจืืื, ืืคืฉ ืืช ืชืืืืช BGP ืืชืืขืื ืฉื ื ืชื ืืืืื ืฉืื.
- ืืชื ืฆืจืื ืืืืืช ืืขื ืืื ื ืฉื ืืฉืืืืฉ ื-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, ืืืชืืื.
ืืืืื, ืืชื ืืืื ืืืฉืชืืฉ ืืื ื ืชืืื ืืืจืื, ืืขืจืืืช ืืคืขืื ืืืืฆืจื ืชืืื ื, ืืืชืืื ืืช ืืคืชืจืื ืืืืืืื ืฉืืื.
ืืงืฆืจื - ืืืืืืื ืฉื ืืคืชืจืื
- ืคืขืืืืืืช ืืื ื
- ืงืืืช VPS
- ืืขืืืช ืื ืืจื ืืื ืชื ื-VPS
- ืื ื ืืงืืืื ืืืขืืื ืื ืืืืคื ืงืืืข ืขืืชืง ืฉื ืืจืืฉืื
- ืืชืงื ื ืืืืืจื ืฉื ืฉืืจืืช ืื ืืชืื
- ืื ื ืืืฆืจืื ืจืฉืืื ืฉื ืืกืืืืื ืกืืืืื ืขืืืจ ืฉืืจืืช ืื ืืชืื ืขื ืกืื ืืจืืฉืื
- ืื ื ืืืืจืื ืืช ืื ืชื ืืฉืืจืืช ืืืืืืจืื ืฉืืืืช ืื ืืชืขืืืจื ืืจื ืืื ืืจื.
ืืคืชืจืื ืืคืืขื
ืคืขืืืืืืช ืืื ื
ืืฉื ื ืฉืืจืืชืื ืจืืื ืืืื ืืจื ื ืืืกืคืงืื 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. ืชืืื
UPD2. ืขืืืชืื, ื ืจืื ืฉืขืฉืืชื ืืขืืช ืืื ืฉืื ืืืกืคืชื ืืืืืจ ืืืจืืืช ืืืืืจืช ืื ืืจื ืืื ื-VPS ืื ืชื. ืืจืื ืฉืืืืช ืขืืืืช ืืขืงืืืช ืื.
ืืืชืจ ืืืืื, ืืฆืืื ืฉืื ืฉืืคื ื ืืชืืืช ืืืืจืื ืืื, ืืืจ ืืืืจืช ืื ืืจืช VPN ืืืืืื ืฉืืชื ืฆืจืื ืืืืงืช ืืช ืืคืื ืงืฆืืื ืืืืช ืฉืื (ืืืืืื, ืขื ืืื ืืคืืืช ืชื ืืขื ืืฉื ืืืจืืจืช ืืืื ืื ืกืืืืช). ืื ืขืืืื ืื ืืฉืืืช ืืช ืืฉืื ืืื, ืืื ืื ืืืืื ื ืืืฆืข ืืช ืืฉืืืื ืืืืืจ. ืืื ืื ืขืืืื ืืงืกื ืืฉืื ืขื ืื, ืืื ืื ืชืืคืฉ ืืืืื "ืืืืจืช ืฉืจืช OpenVPN" ืืื ืขื ืฉื ืืขืจืืช ืืืคืขืื ืืืืชืงื ืช ื-VPS, ื"ืืืืจืช ืืงืื OpenVPN" ืขื ืฉื ืื ืชื ืฉืื , ืกืืืจ ืืื ืื ืฉืชืืฆื ืืกืคืจ ืืืืจืื ืื ืืฉื ืื, ืืืื ืขื Habrรฉ.
UPD3.
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. ืฉืืจืืช ืืืฉ ืืืคืืข
ืืืฉืื ืืื, ืื ืจืื, ืืกืคืืง ืืกืืืช ืืช ืกืืชื ืืืขืืื ืืช ืืืืืจ.
UPD6. ืืจืกื ืืชืืงื ืช ืฉื ืืืืืจ ืืื ืฉืื ืจืืฆื ืืืืื ืืช ืื, ืืื ืจืืฆื ืืืชืืื -
ืืงืืจ: www.habr.com