අවහිර කිරීම මඟ හැරීමට BGP පිහිටුවීම, හෝ "මම බිය වීම නැවැත්වූ ආකාරය සහ RKN සමඟ ආදරයෙන් බැඳුණු ආකාරය"

හොඳයි, හරි, "ආදරණීය" ගැන අතිශයෝක්තියක්. ඒ වෙනුවට, "සමඟ ජීවත් වීමට හැකි විය."

ඔබ කවුරුත් දන්නා පරිදි, 16 අප්‍රේල් 2018 වන දින සිට, Roskomnadzor අන්තර්ජාලයේ සම්පත් වෙත ප්‍රවේශ වීම අතිශයින් පුළුල් ලෙස අවහිර කරමින්, “වසම් නාමවල ඒකාබද්ධ ලේඛනයට, අන්තර්ජාලයේ අඩවි වල පිටු දර්ශක සහ අඩවි හඳුනා ගැනීමට ඉඩ සලසන ජාල ලිපින වලට එකතු කරයි. අන්තර්ජාලයේ,” රුසියානු සමූහාණ්ඩුවේ බෙදා හැරීම තහනම් කර ඇති තොරතුරු අඩංගු” (පෙළ - ලේඛනයක් පමණි) සමහර විට /10 න්. ප්රතිඵලයක් වශයෙන්, රුසියානු සමූහාණ්ඩුවේ සහ ව්යාපාරවල පුරවැසියන් දුක් විඳින අතර, ඔවුන්ට අවශ්ය සම්පූර්ණයෙන්ම නීතිමය සම්පත් සඳහා ප්රවේශය අහිමි වී ඇත.

බයිපාස් යෝජනා ක්‍රමයක් සැකසීමට වින්දිතයින්ට උදව් කිරීමට මම සූදානම් බව හබ්රේ හි එක් ලිපියකට අදහස් දැක්වීමේදී කී පසු, එවැනි උපකාරයක් ඉල්ලා කිහිප දෙනෙක් මා වෙත පැමිණියහ. සෑම දෙයක්ම ඔවුන් සඳහා වැඩ කරන විට, ඔවුන්ගෙන් එක් අයෙකු ලිපියක තාක්ෂණය විස්තර කිරීමට නිර්දේශ කළේය. මදක් සිතා බැලීමෙන් පසු, මම වෙබ් අඩවියේ මගේ නිශ්ශබ්දතාවය බිඳ දැමීමට තීරණය කළ අතර ව්‍යාපෘතියක් සහ ෆේස්බුක් සටහනක් අතර අතරමැදි යමක් ලිවීමට එක් වරක් උත්සාහ කළෙමි, එනම්. habrapost. එහි ප්‍රතිඵලය ඔබ ඉදිරියේ ඇත.

වගකීමෙන් යුතුව ඔබ එවන

රුසියානු සමූහාණ්ඩුවේ භූමියේ තහනම් කර ඇති තොරතුරු වෙත ප්‍රවේශ වීම අවහිර කිරීම මඟ හැරීමේ ක්‍රම ප්‍රකාශයට පත් කිරීම එතරම් නීත්‍යානුකූල නොවන බැවින්, මෙම ලිපියේ අරමුණ වනුයේ අවසර දී ඇති සම්පත් වෙත ප්‍රවේශය ලබා ගැනීම ස්වයංක්‍රීය කිරීමට ඔබට ඉඩ සලසන ක්‍රමයක් ගැන කතා කිරීමයි. රුසියානු සමූහාණ්ඩුවේ භූමිය, නමුත් වෙනත් කෙනෙකුගේ ක්රියාවන් හේතුවෙන් ඔබේ සැපයුම්කරු හරහා සෘජුවම ප්රවේශ විය නොහැක. තවද ලිපියේ ක්‍රියාවන්හි ප්‍රතිඵලයක් ලෙස ලබාගත් අනෙකුත් සම්පත් වෙත ප්‍රවේශය අවාසනාවන්ත අතුරු ආබාධයක් වන අතර එය කිසිඳු ආකාරයකින් ලිපියේ අරමුණ නොවේ.

එසේම, මම මූලික වශයෙන් වෘත්තියෙන්, වෘත්තියෙන් සහ ජීවන මාර්ගයෙන් ජාල ගෘහ නිර්මාණ ශිල්පියෙකු වන බැවින්, වැඩසටහන්කරණය සහ ලිනක්ස් මගේ ප්‍රබල කරුණු නොවේ. එමනිසා, ඇත්ත වශයෙන්ම, ස්ක්‍රිප්ට් වඩා හොඳින් ලිවිය හැකිය, VPS හි ආරක්ෂක ගැටළු වඩාත් ගැඹුරින් විසඳා ගත හැකිය. ඔබගේ යෝජනා කෘතඥතාවයෙන් යුතුව පිළිගනු ලැබේ, ඒවා ප්රමාණවත් තරම් සවිස්තරාත්මක නම් - ලිපියේ පෙළට ඒවා එක් කිරීමට මම සතුටු වෙමි.

TL; ඩී

අපි ලියාපදිංචියේ පිටපතක් සහ BGP ප්‍රොටෝකෝලය භාවිතයෙන් ඔබගේ පවතින උමග හරහා සම්පත් වෙත ප්‍රවේශය ස්වයංක්‍රීය කරන්නෙමු. ඉලක්කය වන්නේ අවහිර කරන ලද සම්පත් වෙත යොමු කර ඇති සියලුම මාර්ග තදබදය උමග තුළට ඉවත් කිරීමයි. අවම පැහැදිලි කිරීම්, බොහෝ විට පියවරෙන් පියවර උපදෙස්.

මේ සඳහා ඔබට අවශ්ය කුමක්ද?

අවාසනාවට, මෙම ලිපිය සෑම කෙනෙකුටම නොවේ. මෙම තාක්ෂණය භාවිතා කිරීම සඳහා, ඔබ මූලද්රව්ය කිහිපයක් එකට එකතු කළ යුතුය:

  1. ඔබට අවහිර කිරීමේ ක්ෂේත්‍රයෙන් පිටත කොතැනක හෝ ලිනක්ස් සේවාදායකයක් තිබිය යුතුය. නැතහොත් අවම වශයෙන් එවැනි සේවාදායකයක් තිබීමට ඇති ආශාව - වාසනාවකට මෙන් එය දැන් වසරකට ඩොලර් 9 සිට වියදම් වන අතර සමහර විට අඩු වේ. ඔබට වෙනම VPN උමගක් තිබේ නම් ක්‍රමය ද සුදුසු ය, එවිට සේවාදායකය අවහිර කිරීමේ ක්ෂේත්‍රය තුළ පිහිටා තිබිය හැකිය.
  2. ඔබගේ රවුටරය හැකි තරම් බුද්ධිමත් විය යුතුය
    • ඔබ කැමති ඕනෑම VPN සේවාලාභියෙකු (මම OpenVPN වලට කැමතියි, නමුත් එය PPTP, L2TP, GRE+IPSec හෝ උමං අතුරුමුහුණතක් නිර්මාණය කරන වෙනත් විකල්පයක් විය හැක);
    • BGPv4 ප්‍රොටෝකෝලය. එනම් SOHO සඳහා එය Mikrotik හෝ OpenWRT/LEDE/සමාන අභිරුචි ස්ථිරාංග සහිත ඕනෑම රවුටරයක් ​​විය හැකි අතර එය ඔබට Quagga හෝ Bird ස්ථාපනය කිරීමට ඉඩ සලසයි. PC රවුටරයක් ​​භාවිතා කිරීම ද තහනම් නොවේ. ව්‍යවසායක අවස්ථාවක, ඔබේ මායිම් රවුටරය සඳහා ලේඛනවල BGP සහාය සොයන්න.
  3. ඔබට BGP ප්‍රොටෝකෝලය ඇතුළුව Linux භාවිතය සහ ජාලකරණ තාක්ෂණයන් පිළිබඳ අවබෝධයක් තිබිය යුතුය. නැත්නම් අඩුම තරමින් එවැනි අදහසක් ලබා ගැනීමට අවශ්යයි. මෙවර අපරිමාණත්වය වැළඳ ගැනීමට මා සූදානම් නැති නිසා ඔබටම නොතේරෙන පැති කිහිපයක් ඔබටම අධ්‍යයනය කිරීමට සිදුවනු ඇත. කෙසේ වෙතත්, ඇත්ත වශයෙන්ම, මම අදහස් දැක්වීම්වල නිශ්චිත ප්‍රශ්නවලට පිළිතුරු සපයනු ඇති අතර පිළිතුරු සපයන එකම තැනැත්තා මම විය නොහැක, එබැවින් විමසීමට පසුබට නොවන්න.

උදාහරණයේ භාවිතා කරන දේ

  • ලේඛනයේ පිටපතක් - සිට 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 - පක්ෂි සේවා සැකසුම් සඳහා සම්මත ෆෝල්ඩරය
  • මාර්ගගත සේවාදායකය සහ උමග අවසන් කිරීමේ ස්ථානය සහිත VPS හි බාහිර IP ලිපිනය 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 තාක්ෂණයන් මෙම අවශ්‍යතාවය සපුරාලයි - උදාහරණයක් ලෙස, tun mode හි OpenVPN පරිපූර්ණයි.

රෙජිස්ට්රි පිටපතක් ලබා ගැනීම

Jabrail පැවසූ පරිදි, "අපට බාධා කරන තැනැත්තා අපට උපකාර කරයි." RKN විසින් තහනම් සම්පත් පිළිබඳ ලේඛනයක් නිර්මාණය කරන බැවින්, අපගේ ගැටලුව විසඳීමට මෙම ලේඛනය භාවිතා නොකරන්නේ නම් එය පාපයකි. අපට github වෙතින් registry පිටපතක් ලැබෙනු ඇත.

අපි ඔබේ ලිනක්ස් සේවාදායකය වෙත ගොස්, මූල සන්දර්භයට වැටෙන්න (සුදෝ සු -) සහ එය දැනටමත් ස්ථාපනය කර නොමැති නම් git ස්ථාපනය කරන්න.

apt install git

ඔබගේ මුල් නාමාවලිය වෙත ගොස් රෙජිස්ට්‍රියේ පිටපතක් අදින්න.

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

අපි ක්‍රෝන් යාවත්කාලීනයක් සකසන්නෙමු (මම එය සෑම විනාඩි 20 කට වරක් කරන්නෙමි, නමුත් ඔබට කැමති ඕනෑම පරතරයක් තෝරා ගත හැකිය). මෙය සිදු කිරීම සඳහා අපි දියත් කරමු crontab-e සහ එයට පහත පේළිය එක් කරන්න:

*/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 පිටපත මඳ වේලාවකට පසුව නිර්මාණය කරමු.

මාර්ගගත සේවාවක් ස්ථාපනය කිරීම සහ වින්‍යාස කිරීම

කුරුල්ලා ස්ථාපනය කරන්න. අවාසනාවකට මෙන්, දැනට Ubuntu ගබඩාවල පළ කර ඇති කුරුල්ලාගේ අනුවාදය Archeopteryx මළ මූත්‍රාවලට නැවුම් බව සමඟ සැසඳිය හැකිය, එබැවින් අපි පළමුව මෘදුකාංග සංවර්ධකයින්ගේ නිල PPA පද්ධතියට එක් කළ යුතුය.

add-apt-repository ppa:cz.nic-labs/bird
apt update
apt install 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;
}

router id - router identifier, එය දෘශ්‍යමය වශයෙන් IPv4 ලිපිනයක් මෙන් පෙනේ, නමුත් එකක් නොවේ. අපගේ නඩුවේදී, එය IPv32 ලිපින ආකෘතියේ ඕනෑම 4-bit අංකයක් විය හැක, නමුත් ඔබගේ උපාංගයේ IPv4 ලිපිනය හරියටම සඳහන් කිරීම හොඳ ආකාරයකි (මෙම අවස්ථාවේදී, VPS).

ප්‍රොටෝකෝලය සෘජුව මාර්ගගත කිරීමේ ක්‍රියාවලිය සමඟ ක්‍රියා කරන්නේ කුමන අතුරුමුහුණත් නිර්වචනය කරයි. උදාහරණය උදාහරණ නම් කිහිපයක් ලබා දෙයි, ඔබට වෙනත් අය එකතු කළ හැකිය. ඔබට සරලවම රේඛාව මකා දැමිය හැකිය; මෙම අවස්ථාවේදී, සේවාදායකය IPv4 ලිපිනයක් සමඟ පවතින සියලුම අතුරුමුහුණත් වලට සවන් දෙනු ඇත.

protocol static යනු පසු නිවේදන සඳහා ගොනු වලින් උපසර්ග සහ IP ලිපින (ඇත්ත වශයෙන්ම /32 උපසර්ග, ඇත්ත වශයෙන්ම) ලැයිස්තුව පූරණය කරන අපගේ මැජික් වේ. මෙම ලැයිස්තු පැමිණෙන්නේ කොහෙන්ද යන්න පහත සාකච්ඡා කෙරේ. IP ලිපින පූරණය කිරීම පෙරනිමියෙන් අදහස් දක්වා ඇති බව කරුණාවෙන් සලකන්න, මෙයට හේතුව උඩුගත කිරීමේ විශාල පරිමාවයි. සංසන්දනය කිරීම සඳහා, ලියන අවස්ථාව වන විට, උපසර්ග ලැයිස්තුවේ පේළි 78 ක් සහ IP ලිපින ලැයිස්තුවේ 85898 ක් ඇත. මම දැඩි ලෙස නිර්දේශ කරන්නේ උපසර්ග ලැයිස්තුවේ පමණක් ආරම්භ කිරීම සහ දෝෂහරණය කිරීම සහ IP පැටවීම සක්‍රීය කළ යුතුද නැද්ද යන්නයි. ඔබගේ රවුටරය සමඟ අත්හදා බැලීමෙන් පසු අනාගතය තීරණය කිරීම ඔබට භාරයි. ඒ හැම එකාටම රවුටින් ටේබල් එකේ 85 දහසක් ලේසියෙන් දිරවන්න බෑ.

ප්‍රොටෝකෝලය bgp, ඇත්ත වශයෙන්ම, ඔබේ රවුටරය සමඟ bgp පීරිං සකසයි. IP ලිපිනය යනු රවුටරයේ බාහිර අතුරුමුහුණතෙහි ලිපිනයයි (හෝ රවුටරයේ පැත්තේ ඇති උමං අතුරුමුහුණතේ ලිපිනය), 64998 සහ 64999 යනු ස්වයංක්‍රීය පද්ධති ගණනයි. මෙම අවස්ථාවෙහිදී, ඒවා ඕනෑම 16-බිට් සංඛ්‍යාවක ආකාරයෙන් පැවරිය හැක, නමුත් RFC6996 - 64512-65534 ඇතුළුව (බිට් 32 ASN සඳහා ආකෘතියක් ඇත, නමුත් අපගේ නඩුවේදී මෙය නියත වශයෙන්ම අතිශයෝක්තියකි). විස්තර කරන ලද වින්‍යාසය eBGP පීරිං භාවිතා කරයි, එහි මාර්ගගත සේවාවේ සහ රවුටරයේ ස්වයංක්‍රීය පද්ධතිවල සංඛ්‍යා වෙනස් විය යුතුය.

ඔබට පෙනෙන පරිදි, සේවාවට රවුටරයේ 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 හි ඇති ගොනු වල පෙනුම නිරීක්ෂණය කළ හැක.

බොහෝ දුරට ඉඩ ඇති පරිදි, කුරුල්ලා මේ මොහොතේ ඔබ වෙනුවෙන් වැඩ කරන්නේ නැත, මන්ද පෙර අදියරේදී ඔබ තවමත් නොපවතින ලිපිගොනු සෙවීමට එය ඉල්ලා සිටියේය. එබැවින්, අපි එය දියත් කර එය ආරම්භ කර ඇත්දැයි පරීක්ෂා කරන්න:

systemctl start bird
birdc show route

දෙවන විධානයේ ප්‍රතිදානය වාර්තා 80 ක් පමණ පෙන්විය යුතුය (මෙය දැනට වේ, නමුත් ඔබ එය සකසන විට, සියල්ල ජාල අවහිර කිරීමේදී RKN හි ජ්වලිතය මත රඳා පවතී) මේ වගේ දෙයක්:

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

කණ්ඩායම

birdc show protocol

සේවාව තුළ ඇති ප්‍රොටෝකෝලවල තත්ත්වය පෙන්වනු ඇත. ඔබ රවුටරය වින්‍යාස කරන තෙක් (ඊළඟ කරුණ බලන්න), OurRouter ප්‍රොටෝකෝලය ආරම්භක තත්වයේ (සම්බන්ධතා හෝ සක්‍රීය අවධිය) පවතිනු ඇති අතර සාර්ථක සම්බන්ධතාවයකින් පසු එය ඉහළ තත්වයට (ස්ථාපිත අදියර) යයි. උදාහරණයක් ලෙස, මගේ පද්ධතියේ මෙම විධානයේ ප්‍රතිදානය මේ ආකාරයෙන් පෙනේ:

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 පීරිං ඉහළ නැංවීම සහ ලැබෙන සියලුම උපසර්ග සඳහා nexthop පැවරීම, අපගේ උමග වෙත යොමු කිරීම (අපට p2p අතුරුමුහුණතක් හරහා ගමනාගමනය යැවීමට අවශ්‍ය නම්) හෝ තදබදය ඊතර්නෙට් වෙත යන්නේ නම් nexthop IP ලිපිනය).

උදාහරණයක් ලෙස, RouterOS හි Mikrotik මත මෙය පහත පරිදි විසඳනු ලැබේ

/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 ලිපින වෙත ගමනාගමනය ස්වයංක්‍රීයව හරවා යවන සේවාවක් තිබේ.

ඇත්ත වශයෙන්ම, එය වැඩිදියුණු කළ හැකිය. උදාහරණයක් ලෙස, perl හෝ python විසඳුම් භාවිතයෙන් IP ලිපින ලැයිස්තුවක් සාරාංශ කිරීම ඉතා පහසුය. Net::CIDR::Lite භාවිතයෙන් මෙය සිදු කරන සරල පර්ල් ස්ක්‍රිප්ට් එකක් උපසර්ග 85 දහසක් 60 (දහසක් නොවේ) බවට පත් කරයි, නමුත්, ඇත්ත වශයෙන්ම, අවහිර කර ඇති ලිපිනවලට වඩා විශාල ලිපින පරාසයක් ආවරණය කරයි.

සේවාව ISO/OSI ආකෘතියේ තුන්වන මට්ටමේ ක්‍රියාත්මක වන බැවින්, එය රෙජිස්ට්‍රියේ සටහන් කර ඇති පරිදි වැරදි ලිපිනයකට විසඳාගතහොත් එය වෙබ් අඩවියක්/පිටුවක් අවහිර කිරීමෙන් ඔබව සුරැකෙන්නේ නැත. නමුත් රෙජිස්ට්‍රිය සමඟින්, nxdomain.txt ගොනුව github වෙතින් පැමිණේ, එය ස්ක්‍රිප්ටයේ පහර කිහිපයක් සමඟින්, උදාහරණයක් ලෙස, Chrome හි SwitchyOmega ප්ලගිනය සඳහා ලිපින මූලාශ්‍රයක් බවට පත් වේ.

ඔබ අන්තර්ජාල පරිශීලකයෙකු පමණක් නොව, ඔබ විසින්ම සම්පත් කිහිපයක් ප්‍රකාශයට පත් කරන්නේ නම්, විසඳුමට අමතර ශෝධනයක් අවශ්‍ය බව සඳහන් කිරීම අවශ්‍ය වේ (උදාහරණයක් ලෙස, වෙබ් අඩවියක් හෝ තැපැල් සේවාදායකයක් මෙම සම්බන්ධතාවය මත ක්‍රියාත්මක වේ). රවුටරයේ මාධ්‍යයන් භාවිතා කරමින්, මෙම සේවාවෙන් පිටතට යන ගමනාගමනය ඔබේ පොදු ලිපිනයට තදින් සම්බන්ධ කිරීම අවශ්‍ය වේ, එසේ නොමැතිනම් රවුටරයට ලැබෙන උපසර්ග ලැයිස්තුවෙන් ආවරණය වන සම්පත් සමඟ සම්බන්ධතාවය ඔබට අහිමි වනු ඇත.

ඔබට කිසියම් ප්‍රශ්නයක් ඇත්නම්, අසන්න, මම පිළිතුරු දීමට සූදානම්.

UPD ඔයාට ස්තූතියි නාවික и TerAnYu බාගත පරිමාවන් අඩු කිරීමට ඉඩ දෙන git සඳහා පරාමිති සඳහා.

UPD2. සගයන්, VPS සහ රවුටරය අතර උමගක් සැකසීමට උපදෙස් ලිපියට එකතු නොකිරීමෙන් මා වැරදීමක් කර ඇති බව පෙනේ. මේකෙන් ප්‍රශ්න ගොඩක් මතු වෙනවා.
යම් අවස්ථාවක දී, මෙම මාර්ගෝපදේශය ආරම්භ කිරීමට පෙර, ඔබ දැනටමත් VPN උමගක් ඔබට අවශ්‍ය දිශාවට වින්‍යාස කර එහි ක්‍රියාකාරිත්වය පරීක්ෂා කර ඇති බව මම නැවත වරක් සටහන් කරමි (උදාහරණයක් ලෙස, පෙරනිමියෙන් හෝ ස්ථිතික ලෙස එහි ගමනාගමනය හැරවීමෙන්). ඔබ තවමත් මෙම අදියර සම්පූර්ණ කර නොමැති නම්, ලිපියේ පියවර අනුගමනය කිරීම අර්ථවත් නොවේ. මට තවම මේ ගැන මගේම පෙළක් නැත, නමුත් ඔබ VPS මත ස්ථාපනය කර ඇති මෙහෙයුම් පද්ධතියේ නම සමඟ “OpenVPN සේවාදායකයක් සැකසීම” සහ ඔබේ රවුටරයේ නම සමඟ “OpenVPN සේවාදායකයක් සැකසීම” ගූගල් කළහොත් , ඔබට බොහෝ විට Habré ඇතුළුව මෙම විෂය පිළිබඳ ලිපි ගණනාවක් සොයා ගත හැක.

UPD3. කැප නොකළ මම dump.csv IP ලිපිනවල විකල්ප සාරාංශයක් සහිත කුරුල්ලා සඳහා ප්‍රතිඵලයක් ලෙස ගොනුවක් බවට පත් කරන කේතයක් ලිව්වෙමි. එබැවින්, "මාර්ගගත කිරීමේ සේවාව සඳහා රෙජිස්ට්රි සැකසීම" යන කොටස එහි වැඩසටහන ඇමතීමෙන් ප්රතිස්ථාපනය කළ හැකිය. https://habr.com/post/354282/#comment_10782712

UPD4. දෝෂ පිළිබඳ කුඩා වැඩ (මම ඒවා පෙළට එකතු කළේ නැත):
1) ඒ වෙනුවට systemctl reload bird විධානය භාවිතා කිරීම අර්ථවත් කරයි birdc වින්‍යාසය.
2) මයික්‍රොටික් රවුටරයේ, උමගෙහි දෙවන පැත්තේ IP වෙත nexthop වෙනස් කිරීම වෙනුවට /routing filter add action=පිළිගන්න chain=dynamic-in protocol=bgp comment=»Set nexthop»set-in-nexthop=172.30.1.1 ලිපිනයක් නොමැතිව උමං අතුරුමුහුණත වෙත සෘජුවම මාර්ගය සඳහන් කිරීම අර්ථවත් කරයි /routing filter add action=පිළිගන්න chain=dynamic-in protocol=bgp comment=»Set nexthop» set-in-nexthop-direct=<අතුරුමුහුණත නම>

UPD5. නව සේවාවක් දර්ශනය වී ඇත https://antifilter.download, ඔබට IP ලිපිනවල සූදානම් කළ ලැයිස්තු ලබා ගත හැකි ස්ථානයෙන්. සෑම පැය භාගයකම යාවත්කාලීන වේ. සේවාලාභියාගේ පැත්තෙන්, ඉතිරිව ඇත්තේ අනුරූප "මාර්ගය ... ප්රතික්ෂේප කිරීම" සමඟ වාර්තා රාමු කිරීමයි.
මේ අවස්ථාවේ දී, බොහෝ විට, ඔබේ ආච්චි රැග් කිරීමට සහ ලිපිය යාවත්කාලීන කිරීමට ප්රමාණවත් වේ.

UPD6. එය තේරුම් ගැනීමට අකමැති, නමුත් ආරම්භ කිරීමට අවශ්‍ය අය සඳහා ලිපියේ සංශෝධිත අනුවාදයක් - මෙහි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න