Te whakatu BGP ki te karo i te aukati, "Me pehea taku whakamutu i te mataku me taku aroha ki a RKN"

Ae, pai, mo te "aroha" he mea whakanui. Engari, "i kaha ki te noho tahi."

E mohio ana koutou katoa, mai i te Paenga-whāwhā 16, 2018, kua aukati a Roskomnadzor ki te uru ki nga rauemi i runga i te Ipurangi i roto i nga whiu tino whanui, me te taapiri atu ki te "Rehita Whakakotahi o nga ingoa rohe, tohu tohu whaarangi o nga waahi i runga i te Ipurangi me nga wahitau whatunga e taea ai te tautuhi i nga waahi. i runga i te Ipurangi,” kei roto nga korero e aukati ana te tohatoha i roto i te Russian Federation” (i roto i te tuhinga - he rehita noa) na /10 i etahi wa. Ko te mutunga, kei te mamae nga taangata o te Russian Federation me nga umanga, kua ngaro te uru ki nga rawa ture e hiahiatia ana e ratou.

I muri i taku korero i roto i nga korero ki tetahi o nga tuhinga mo Habré kua rite ahau ki te awhina i nga patunga ki te whakatu i tetahi kaupapa whakawhiti, he maha nga tangata i tae mai ki ahau ki te tono mo taua awhina. I te wa i pai ai nga mea katoa mo ratou, ka tūtohu tetahi o ratou ki te whakaahua i te tikanga i roto i tetahi tuhinga. I muri i etahi whakaaro, ka whakatau ahau ki te wawahi i taku wahangu i runga i te pae me te ngana mo te wa kotahi ki te tuhi i tetahi mea takawaenga i waenga i te kaupapa me te panui Facebook, i.e. habrapost. Ko te hua kei mua i a koe.

Whakakape

I te mea kaore i te tino ture te whakaputa i nga huarahi ki te karo i te aukati i te uru ki nga korero kua rahuitia i te rohe o te Russian Federation, ko te kaupapa o tenei tuhinga ko te korero mo tetahi tikanga e taea ai e koe te whakahaere aunoa i te uru ki nga rauemi e whakaaetia ana i runga i te rohe o te Russian Federation, engari na runga i nga mahi a tetahi kaore e uru tika mai i to kaiwhakarato. A ko te uru atu ki etahi atu rauemi i puta mai i nga mahi mai i te tuhinga he huanga kino, kaore rawa te kaupapa o te tuhinga.

I tua atu, i te mea ko ahau te nuinga o te kaitoi whatunga na roto i te umanga, te mahi me te huarahi ora, ko te kaupapa me te Linux ehara i te mea tino kaha. Na reira, ko te tikanga, ka pai ake te tuhi i nga tuhinga, ka taea te whakatau i nga take haumarutanga i roto i te VPS, me etahi atu. Ka whakaaehia o whakaaro me te mihi, mena he nui nga korero - Ka koa ahau ki te taapiri atu ki te tuhinga o te tuhinga.

TL; DR

Ka whakaaunoa matou i te uru ki nga rauemi ma roto i to kauhanga o naianei ma te whakamahi i te kape o te rehita me te kawa BGP. Ko te whainga ko te tango i nga waka katoa e arohia ana ki nga rauemi aukati ki roto i te kohanga. Ko nga whakamarama iti rawa, ko te nuinga o nga tohutohu taahiraa-i-taahiraa.

He aha taau e hiahia ana mo tenei?

Kia aroha mai, ehara tenei panui mo te katoa. Hei whakamahi i tenei tikanga, me whakauru koe i nga waahanga maha:

  1. Me whai tūmau linux koe ki waho o te mara aukati. Ko te hiahia ranei ki te whai i taua tuumau - Waimarie kei te utu mai i te $9/tau, me te iti ake pea. He pai ano te tikanga mena kei a koe he kohanga VPN motuhake, katahi ka tuu te tūmau ki roto i te mara aukati.
  2. Me mohio to pouara kia taea e koe
    • tetahi kaihoko VPN e pai ana koe (he pai ki ahau te OpenVPN, engari ka taea te PPTP, L2TP, GRE+IPSec, tetahi atu whiringa ranei e hanga ana i te atanga kauhanga);
    • Kawa BGPv4. Ko te tikanga mo te SOHO ka taea te Mikrotik, tetahi pouara ranei me te OpenWRT/LEDE/te ahua o te firmware ritenga e taea ai e koe te whakauru i a Quagga, Bird ranei. Ko te whakamahi i te pouara PC kaore hoki i te aukati. Mo te hinonga, rapua te tautoko BGP i roto i nga tuhinga mo to pouara rohe.
  3. Me mohio koe ki te whakamahi Linux me nga hangarau whatunga, tae atu ki te kawa BGP. Ranei i te iti rawa e hiahia ana ki te tiki i taua whakaaro. I te mea kaore au i te rite ki te awhi i te nui o tenei wa, me ako koe i etahi ahuatanga kaore koe e marama ki a koe. Heoi ano, ka whakautu au i nga patai motuhake i roto i nga korero kaore pea ko au anake te whakautu, na kaua koe e mangere ki te patai.

He aha te whakamahi i te tauira

  • He kape o te rehita - mai https://github.com/zapret-info/z-i 
  • VPS - Ubuntu 16.04
  • Ratonga ararere - manu 1.6.3   
  • Pouara - Mikrotik hAP ac
  • Ko nga kōpaki mahi - i te mea kei te mahi tatou hei pakiaka, ka noho te nuinga o nga mea katoa ki te kōpaki kainga o te pakiaka. tēnā:
    • /root/blacklist - mahi kōpaki me te tuhinga whakahiato
    • /root/zi - kape o te rehita mai i github
    • /etc/bird - kōpaki paerewa mō ngā tautuhinga ratonga manu
  • Ko te wāhitau IP o waho o te VPS me te tūmau ararere me te waahi whakamutu kohanga ko 194.165.22.146, ASN 64998; wāhitau IP waho o te pouara - 81.177.103.94, ASN 64999
  • Ko nga wahitau IP kei roto i te kauhanga ko 172.30.1.1 me te 172.30.1.2.

Te whakatu BGP ki te karo i te aukati, "Me pehea taku whakamutu i te mataku me taku aroha ki a RKN"

Ae ra, ka taea e koe te whakamahi i etahi atu pouara, punaha whakahaere me nga hua rorohiko, whakatika i te otinga ki o raatau arorau.

He poto - te arorau o te otinga

  1. Nga Mahi Whakarite
    1. Te tiki VPS
    2. Te whakaara i te kohanga mai i te pouara ki te VPS
  2. Ka whiwhi, ka whakahouhia e matou he kape o te rehita
  3. Te whakauru me te whirihora i te ratonga ararere
  4. Ka hangaia e matou he rarangi o nga ara pateko mo te ratonga ararere i runga i te rehita
  5. Ka honoa e matou te pouara ki te ratonga me te whirihora i te tuku waka katoa ma te kauhanga.

Ko te otinga pono

Nga Mahi Whakarite

He maha nga ratonga i runga i te Ipurangi e whakarato ana i te VPS mo nga utu tino whaitake. I tenei wa kua kitea e ahau me te whakamahi i te whiringa mo te $ 9 / tau, engari ahakoa kaore koe e raruraru nui, he maha nga waahanga mo te 1E / marama i nga kokonga katoa. Ko te patai mo te whiriwhiri i te VPS kei tua atu i te waahanga o tenei tuhinga, na, ki te kore tetahi e mohio ki tetahi mea mo tenei, patai ki nga korero.

Mena ka whakamahi koe i te VPS ehara i te mea mo te ratonga ararere anake, engari ki te whakamutu i tetahi kohanga ki runga, me whakaara e koe tenei kohanga, me te mea tino tika, whirihora NAT mo taua mea. He maha nga tohutohu mo enei mahi i runga i te Ipurangi, kaore au e whakahoki ano i konei. Ko te whakaritenga matua mo taua tunnel me hanga he atanga motuhake i runga i to pouara e tautoko ana i te kohanga ki te VPS. Ko te nuinga o nga hangarau VPN ka tutuki tenei whakaritenga - hei tauira, OpenVPN i roto i te aratau tun he tino tika.

Te tiki kape o te rehita

Mai ta Jabrail i parau, “O tei haafifi ia tatou, e tauturu mai oia ia tatou.” I te mea kei te hanga e te RKN he rehita o nga rawa kua rahuitia, he hara ki te kore e whakamahi i tenei rehita ki te whakaoti rapanga. Ka riro mai he kape o te rehita mai i github.

Ka haere matou ki to tūmau Linux, ka taka ki te horopaki pakiaka (sudo su -) me te whakauru i te git mena kaore ano kia whakauruhia.

apt install git

Haere ki to whaiaronga whare ka toia he kape o te rehita.

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

I whakaritea e matou he whakahou cron (Ka mahia e au i ia 20 meneti, engari ka taea e koe te kowhiri i tetahi waahi e pai ana ki a koe). Ki te mahi i tenei ka whakarewahia e matou crontab -e me te taapiri i te rarangi e whai ake nei:

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

Ka honoa he matau hei hanga i nga konae mo te ratonga ararere i muri i te whakahou i te rehita. Ki te mahi i tenei, hanga he konae /root/zi/.git/hooks/post-merge me nga ihirangi e whai ake nei:

#!/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"

a kaua e wareware ki te hanga i te mahi

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

Ka hangahia e matou te tuhinga makebgp e tohuhia ana e te matau i muri tata nei.

Te whakauru me te whirihora i tetahi ratonga ararere

Tāuta manu. Heoi ano, ko te ahua o te manu kua tukuna i tenei wa i roto i nga whare putunga Ubuntu he rite ki te hou ki te Archeopteryx feces, na me whakauru tuatahi te PPA mana o nga kaihanga rorohiko ki te punaha.

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

I muri i tenei, ka whakakorehia e matou te manu mo IPv6 - kaore e hiahiatia e matou i tenei whakaurunga.

systemctl stop bird6
systemctl disable bird6

Kei raro nei he kōnae whirihoranga ratonga manu iti (/etc/bird/bird.conf), he nui rawa mo matou (a ka whakamahara ano ahau ki a koe kaore tetahi e aukati i te whakawhanake me te whakatika i te whakaaro kia rite ki o hiahia)

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;
}

pouara id - pouara identifier, he rite te ahua ki te wahitau IPv4, engari ehara i te mea kotahi. I roto i to maatau, he nama 32-bit i roto i te whakatakotoranga wahitau IPv4, engari he ahua pai ki te tohu tika i te wahitau IPv4 o to taputapu (i tenei keehi, VPS).

ka tautuhi tika te kawa ko nga atanga ka mahi me te tukanga ararere. Ka hoatu e te tauira etahi ingoa tauira, ka taea e koe te taapiri i etahi atu. Ka taea e koe te whakakore noa i te raina; i tenei keehi, ka whakarongo te kaimau ki nga atanga katoa e waatea ana me tetahi wahitau IPv4.

Ko te protocol static ko to maatau makutu e utaina ana nga rarangi o nga prefix me nga wahitau IP (he tino /32 prefixes, o te akoranga) mai i nga konae mo te panui ka whai ake. No hea enei rarangi ka korerohia i raro nei. Kia mahara ko te utaina o nga wahitau IP he korero taunoa, ko te take tenei ko te nui o te tukunga ake. Hei whakataurite, i te wa e tuhi ana, he 78 nga rarangi kei roto i te rarangi o nga prefixes, me te 85898 i te rarangi o nga wahitau IP. Ka tino taunaki ahau ki te timata me te patuiro anake i runga i te rarangi o nga prefix, me te kore ranei e taea te whakauru IP ki roto. Ko te heke mai kei a koe te whakatau i muri i te whakamatautau me to pouara. E kore e taea e ratou katoa te keri i te 85 mano nga whakaurunga ki te ripanga ararere.

kawa bgp, i roto i te meka, whakaturia ake bgp titiro ki tou pouara. Ko te wahitau IP te wahitau o te atanga o waho o te pouara (te wahitau ranei o te atanga kauhanga kei te taha o te pouara), 64998 me 64999 nga nama o nga punaha motuhake. I tenei keehi, ka taea te tautapa ki te ahua o nga nama 16-bit, engari he pai te whakamahi i nga tau AS mai i te awhe motuhake kua tautuhia e RFC6996 - 64512-65534 whakauru (he whakatakotoranga mo nga ASN 32-bit, engari i roto i a maatau he tino nui tenei). Ko te whirihoranga i whakaahuatia e whakamahi ana i te eBGP peering, me rereke nga nama o nga punaha motuhake o te ratonga ararere me te pouara.

Ka taea e koe te kite, me mohio te ratonga ki te wahitau IP o te pouara, na mena kei a koe he wahitau hihiri, kore-routable motuhake (RFC1918) ranei tiritiri (RFC6598), kaore koe e whai waahi ki te whakaara i te tirohanga ki waho. atanga, engari ka mahi tonu te ratonga i roto i te kauhanga.

He maamaa ano hoki mai i tetahi ratonga ka taea e koe te whakarato huarahi ki etahi momo pouara rereke - taarua noa nga tautuhinga mo ratou ma te kape i te waahanga bgp kawa me te huri i te wahitau IP o te hoa tata. Koinei te take e whakaatu ana te tauira i nga tautuhinga mo te titiro ki waho o te kauhanga, ko te mea tino whanui. He ngawari ki te tango i a raatau ki roto i te kauhanga ma te huri i nga wahitau IP i roto i nga tautuhinga.

Te tukatuka i te rehita mo te ratonga ararere

Inaianei me hanga e matou he rarangi o nga prefix me nga wahitau IP, i whakahuahia i roto i te kawa i te wa o mua. Ki te mahi i tenei, ka tangohia e matou te konae rehita me te hanga i nga konae e hiahiatia ana ma te whakamahi i te tuhinga e whai ake nei, kua whakauruhia ki roto /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'

Kaua e wareware ki te whakarite kia taea

chmod +x /root/blacklist/makebgp

Inaianei ka taea e koe te whakahaere a-ringa me te mataki i te ahua o nga konae kei /etc/bird.

Ko te mea pea, kaore te manu e mahi mo koe i tenei wa, na te mea i te wa o mua ka tono koe ki te rapu i nga konae kaore ano kia noho. Na reira, ka whakarewahia e matou ka tirohia kua timata:

systemctl start bird
birdc show route

Ko te putanga o te whakahau tuarua me whakaatu mo te 80 nga rekoata (koinei mo tenei wa, engari ka whakatauhia e koe, ka whakawhirinaki nga mea katoa ki te kaha o te RKN ki te aukati i nga whatunga) penei:

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

rōpū

birdc show protocol

ka whakaatu i te mana o nga kawa i roto i te ratonga. Kia oti ra ano te whirihora i te pouara (tirohia te waahi e whai ake nei), ka noho te kawa OurRouter ki te ahua tiimata (Waea Hono, Hohe ranei), a, i muri i te hononga angitu ka haere ki te ahua o runga (Wahanga kua whakaritea). Hei tauira, i runga i taku punaha te ahua o te putanga o tenei whakahau:

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

Te hono i te pouara

Kua hoha pea te katoa ki te panui i tenei kakahu, engari kia ngakau nui - kua tata te mutunga. I tua atu, i tenei waahanga kaore e taea e au te tuku i nga tohutohu taahiraa-i-te-taahiraa - ka rereke mo ia kaihanga.

Heoi, ka taea e au te whakaatu ki a koe etahi tauira. Ko te arorau matua ko te whakaara i te BGP peering me te tautapa i te nexthop ki nga prefix kua riro katoa, me te tohu ki to tatou kohanga (mehemea me tuku waka ma te atanga p2p) te wahitau IP muri ranei mena ka haere te waka ki te ethernet).

Hei tauira, i runga i Mikrotik i RouterOS ka whakatauhia tenei e whai ake nei

/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

me te Cisco IOS - penei

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

Mena ka whakamahia taua kohanga mo te tirotiro BGP me te tuku waka whaihua, kaore e tika kia tautuhia te nexthop; ka tika te whakatakoto ma te whakamahi i te kawa. Engari ki te whakatauhia e koe ma te ringa, kaore e kino ake.

I runga i etahi atu papaaho, me whakaaro koe ki te whirihoranga, engari ki te raru koe, tuhia ki roto i nga korero, ka ngana ahau ki te awhina.

I muri i te tiimata o to huihuinga BGP, kua tae mai nga huarahi ki nga whatunga nui ka whakauruhia ki te teepu, kua rere nga waka ki nga wahitau mai i a raatau ka tata te harikoa, ka taea e koe te hoki ki te ratonga manu ka ngana ki te whakakore i te urunga ki reira e hono ana i te rarangi o nga wahitau IP, mahia i muri i tera

systemctl reload bird

ka kite i pehea te whakawhiti a to pouara i enei 85 mano huarahi. Kia rite ki te wetewete me te whakaaro me aha koe :)

Te tapeke

Ma te whakaaro noa, i muri i te whakaoti i nga waahanga kua whakaahuahia i runga ake nei, kei a koe he ratonga ka huri aunoa i nga waka ki nga wahitau IP kua aukatihia i te Russian Federation i mua i te punaha tātari.

Ko te tikanga, ka taea te whakapai ake. Hei tauira, he tino ngawari ki te whakarapopoto i te rarangi o nga wahitau IP ma te whakamahi i nga otinga perl, python ranei. He tuhi Perl ngawari e mahi ana i tenei ma te whakamahi i te Net::CIDR::Lite ka huri i te 85 mano prefix ki te 60 (ehara i te mano), engari, he pono, he nui ake te whānuitanga o nga waahi noho i te aukati.

I te mea kei te mahi te ratonga i te taumata tuatoru o te tauira ISO/OSI, e kore e whakaora ia koe mai i te aukati i tetahi pae/wharangi mena ka whakatauhia ki te wahitau he i tuhia ki te rehita. Engari i te taha o te rehita, ka tae mai te konae nxdomain.txt mai i te github, he iti noa nga whiu o te tuhinga ka huri hei puna korero mo, hei tauira, te mono SwitchyOmega i Chrome.

He mea tika ano kia whakahuahia ko te otinga me whakamahine ake mena ehara koe i te kaiwhakamahi Ipurangi anake, engari ka whakaputahia e koe etahi rauemi i runga i a koe ano (hei tauira, he paetukutuku, he tūmau mēra ranei kei runga i tenei hononga). Ma te whakamahi i nga tikanga a te pouara, he mea tika kia herea nga waka putaatu mai i tenei ratonga ki to wahitau whanui, mena ka ngaro koe i te hononga ki aua rauemi e kapi ana i te rarangi o nga prefix i whakawhiwhia e te pouara.

Mena kei a koe etahi patai, patai, kua rite ahau ki te whakautu.

UPD. Mauruuru koe whakatere waka и TerAnYu mo nga tawhā mo te git ka taea te whakaiti i nga pukapuka tango.

UPD2. E nga hoa mahi, te ahua nei kua he ahau na te kore e taapiri atu i nga tohutohu mo te whakatuu i tetahi kohanga i waenga i te VPS me te pouara ki te tuhinga. He maha nga patai ka whakaarahia e tenei.
I te wa ano, ka kite ano ahau i mua i te tiimata i tenei aratohu, kua whirihorahia e koe he kohanga VPN ki te huarahi e hiahia ana koe me te tirotiro i tana mahi (hei tauira, ma te huri i nga waka ki reira ma te taunoa, ma te taatai). Mena kaore ano kia oti i a koe tenei waahanga, kaore he tikanga nui ki te whai i nga waahanga o te tuhinga. Kaore ano au i a au ake tuhinga mo tenei, engari ki te google koe "whakaturia he OpenVPN server" me te ingoa o te punaha whakahaere i whakauruhia ki runga i te VPS, me te "whakaturia he kaihoko OpenVPN" me te ingoa o to pouara. , ka kitea pea e koe he maha o nga tuhinga mo tenei kaupapa, tae atu ki a Habré.

UPD3. Kore i whakahere I tuhia e au he waehere ka huri i te dump.csv hei konae hua mo te manu me te whakarāpopototanga o ngā wāhitau IP. Na reira, ko te waahanga "Tukatuka i te rehita mo te ratonga ararere" ka taea te whakakapi ma te waea i tana kaupapa. https://habr.com/post/354282/#comment_10782712

UPD4. He mahi iti mo nga hapa (kaore au i taapiri ki te tuhinga):
1) kē systemctl reload manu he mea tika ki te whakamahi i te whakahau whirihora birdc.
2) i roto i te pouara Mikrotik, hei utu mo te huri i te nexthop ki te IP o te taha tuarua o te kauhanga /tatari ararere tāpiri mahi=whakaae i te mekameka=dynamic-in protocol=bgp comment=»Tautuhi nexthop» set-in-nexthop=172.30.1.1 he mea tika ki te tautuhi tika i te ara ki te atanga kauhanga, kaore he wahitau /tatari ararere add action=accept chain=dynamic-in protocol=bgp comment=»Tautuhi nexthop» set-in-nexthop-direct=<ingoa atanga>

UPD5. Kua puta mai he ratonga hou https://antifilter.download, mai i te waahi ka taea e koe te tiki i nga rarangi kua rite mo nga wahitau IP. Whakahoutia ia hawhe haora. I te taha o te kiritaki, ko nga mea katoa e toe ana ko te whakatakoto i nga rekoata me te "ara... paopao".
Na i tenei wa, pea, he nui ki te tarai i to kuia me te whakahou i te tuhinga.

UPD6. He putanga whakahou o te tuhinga mo te hunga kaore e hiahia ki te whakaaro, engari e hiahia ana ki te timata - konei.

Source: will.com

Tāpiri i te kōrero