தடுப்பதைத் தவிர்ப்பதற்கு BGP ஐ அமைத்தல் அல்லது "நான் எப்படி பயப்படுவதை நிறுத்திவிட்டு RKNஐ காதலித்தேன்"

சரி, சரி, "நேசித்தேன்" என்பது மிகைப்படுத்தல். மாறாக, "இணைந்து வாழ முடிந்தது."

நீங்கள் அனைவரும் அறிந்தது போல, ஏப்ரல் 16, 2018 முதல், Roskomnadzor இணையத்தில் உள்ள வளங்களுக்கான அணுகலை மிகவும் பரந்த அளவில் தடுக்கிறது, மேலும் “டொமைன் பெயர்களின் ஒருங்கிணைந்த பதிவு, இணையத்தில் உள்ள தளங்களின் பக்க குறியீடுகள் மற்றும் தளங்களை அடையாளம் காண அனுமதிக்கும் பிணைய முகவரிகள் ஆகியவற்றைச் சேர்ப்பது. இணையத்தில், "ரஷ்ய கூட்டமைப்பில் விநியோகிப்பது தடைசெய்யப்பட்ட தகவல்களைக் கொண்டுள்ளது" (உரையில் - ஒரு பதிவு மட்டுமே) /10 சில நேரங்களில். இதன் விளைவாக, ரஷ்ய கூட்டமைப்பு மற்றும் வணிகங்களின் குடிமக்கள் பாதிக்கப்படுகின்றனர், அவர்களுக்குத் தேவையான முற்றிலும் சட்ட ஆதாரங்களுக்கான அணுகலை இழந்துவிட்டனர்.

ஹப்ரே பற்றிய கட்டுரைகளில் ஒன்றின் கருத்துக்களில், பைபாஸ் திட்டத்தை அமைப்பதில் பாதிக்கப்பட்டவர்களுக்கு உதவ நான் தயாராக இருக்கிறேன் என்று கூறிய பிறகு, பலர் என்னிடம் உதவி கேட்டு வந்தனர். எல்லாம் அவர்களுக்கு வேலை செய்யும் போது, ​​அவர்களில் ஒருவர் ஒரு கட்டுரையில் நுட்பத்தை விவரிக்க பரிந்துரைத்தார். சிறிது யோசனைக்குப் பிறகு, தளத்தில் எனது மௌனத்தைக் கலைத்து, ஒரு திட்டத்திற்கும் பேஸ்புக் இடுகைக்கும் இடையில் ஏதாவது ஒன்றை எழுத ஒரு முறை முயற்சி செய்ய முடிவு செய்தேன், அதாவது. ஹப்ராபோஸ்ட். முடிவு உங்கள் முன் உள்ளது.

பொறுப்புத் துறப்பு

ரஷ்ய கூட்டமைப்பின் பிரதேசத்தில் தடைசெய்யப்பட்ட தகவலுக்கான அணுகலைத் தடுப்பதைத் தவிர்ப்பதற்கான வழிகளை வெளியிடுவது மிகவும் சட்டபூர்வமானது அல்ல என்பதால், இந்த கட்டுரையின் நோக்கம், அனுமதிக்கப்பட்ட வளங்களுக்கான அணுகலை தானியங்குபடுத்த உங்களை அனுமதிக்கும் ஒரு முறையைப் பற்றி பேசுவதாகும். ரஷ்ய கூட்டமைப்பின் பிரதேசம், ஆனால் வேறொருவரின் செயல்கள் காரணமாக உங்கள் வழங்குநர் மூலம் நேரடியாக அணுக முடியாது. கட்டுரையின் செயல்களின் விளைவாக பெறப்பட்ட பிற ஆதாரங்களுக்கான அணுகல் ஒரு துரதிர்ஷ்டவசமான பக்க விளைவு மற்றும் கட்டுரையின் நோக்கம் எந்த வகையிலும் இல்லை.

மேலும், தொழில், தொழில் மற்றும் வாழ்க்கைப் பாதையில் நான் முதன்மையாக நெட்வொர்க் கட்டிடக் கலைஞராக இருப்பதால், நிரலாக்கமும் லினக்ஸும் எனது வலுவான புள்ளிகள் அல்ல. எனவே, நிச்சயமாக, ஸ்கிரிப்ட்களை சிறப்பாக எழுத முடியும், VPS இல் உள்ள பாதுகாப்பு சிக்கல்களை இன்னும் ஆழமாக உருவாக்க முடியும். உங்கள் பரிந்துரைகள் நன்றியுடன் ஏற்றுக்கொள்ளப்படும், அவை போதுமான அளவு விரிவாக இருந்தால் - அவற்றை கட்டுரையின் உரையில் சேர்ப்பதில் நான் மகிழ்ச்சியடைவேன்.

டிஎல்; DR

பதிவேடு மற்றும் BGP நெறிமுறையின் நகலைப் பயன்படுத்தி, ஏற்கனவே உள்ள சுரங்கப்பாதை மூலம் ஆதாரங்களுக்கான அணுகலை நாங்கள் தானியங்குபடுத்துகிறோம். சுரங்கப்பாதையில் தடுக்கப்பட்ட ஆதாரங்களுக்கு அனுப்பப்படும் அனைத்து போக்குவரத்தையும் அகற்றுவதே குறிக்கோள். குறைந்தபட்ச விளக்கங்கள், பெரும்பாலும் படிப்படியான வழிமுறைகள்.

இதற்கு என்ன வேண்டும்?

துரதிர்ஷ்டவசமாக, இந்த இடுகை அனைவருக்கும் இல்லை. இந்த நுட்பத்தைப் பயன்படுத்த, நீங்கள் பல கூறுகளை ஒன்றாக இணைக்க வேண்டும்:

  1. தடுக்கும் புலத்திற்கு வெளியே எங்காவது லினக்ஸ் சர்வர் இருக்க வேண்டும். அல்லது குறைந்தபட்சம் அத்தகைய சேவையகத்தை வைத்திருக்க ஆசை - அதிர்ஷ்டவசமாக இப்போது $9/ஆண்டுக்கு செலவாகும், மேலும் குறைவாக இருக்கலாம். உங்களிடம் தனி VPN சுரங்கப்பாதை இருந்தால் இந்த முறை பொருத்தமானது, பின்னர் சேவையகத்தைத் தடுக்கும் புலத்திற்குள் அமைக்கலாம்.
  2. உங்கள் திசைவி போதுமான புத்திசாலித்தனமாக இருக்க வேண்டும்
    • நீங்கள் விரும்பும் எந்த VPN கிளையண்ட் (நான் OpenVPN ஐ விரும்புகிறேன், ஆனால் அது PPTP, L2TP, GRE+IPSec அல்லது சுரங்கப்பாதை இடைமுகத்தை உருவாக்கும் வேறு ஏதேனும் விருப்பமாக இருக்கலாம்);
    • BGPv4 நெறிமுறை. அதாவது SOHO க்கு இது Mikrotik அல்லது OpenWRT/LEDE/இதே போன்ற தனிப்பயன் நிலைபொருளைக் கொண்ட எந்த ரூட்டராகவும் இருக்கலாம், இது Quagga அல்லது Bird ஐ நிறுவ உங்களை அனுமதிக்கிறது. பிசி ரூட்டரைப் பயன்படுத்துவதும் தடைசெய்யப்படவில்லை. ஒரு நிறுவனத்தைப் பொறுத்தவரை, உங்கள் எல்லை திசைவிக்கான ஆவணத்தில் BGP ஆதரவைத் தேடுங்கள்.
  3. பிஜிபி நெறிமுறை உட்பட லினக்ஸ் பயன்பாடு மற்றும் நெட்வொர்க்கிங் தொழில்நுட்பங்களைப் பற்றிய புரிதல் உங்களுக்கு இருக்க வேண்டும். அல்லது குறைந்தபட்சம் அத்தகைய யோசனையைப் பெற வேண்டும். இம்முறை அபரிமிதத்தை தழுவ நான் தயாராக இல்லை என்பதால், உங்களுக்கே புரியாத சில அம்சங்களை நீங்கள் படிக்க வேண்டும். இருப்பினும், கருத்துகளில் குறிப்பிட்ட கேள்விகளுக்கு நான் நிச்சயமாக பதிலளிப்பேன், மேலும் நான் மட்டுமே பதிலளிப்பதாக இருக்க வாய்ப்பில்லை, எனவே கேட்க தயங்க வேண்டாம்.

எடுத்துக்காட்டில் என்ன பயன்படுத்தப்படுகிறது

  • பதிவேட்டின் நகல் - இருந்து https://github.com/zapret-info/z-i 
  • VPS - உபுண்டு 16.04
  • வழித்தட சேவை - பறவை 1.6.3   
  • திசைவி - மைக்ரோடிக் ஹெச்ஏபி ஏசி
  • வேலை செய்யும் கோப்புறைகள் - நாம் ரூட்டாக வேலை செய்வதால், பெரும்பாலான அனைத்தும் ரூட்டின் முகப்பு கோப்புறையில் இருக்கும். முறையே:
    • /root/blacklist - தொகுத்தல் ஸ்கிரிப்ட்டுடன் வேலை செய்யும் கோப்புறை
    • /root/zi - github இலிருந்து பதிவேட்டின் நகல்
    • /etc/bird - பறவை சேவை அமைப்புகளுக்கான நிலையான கோப்புறை
  • ரூட்டிங் சர்வர் மற்றும் டன்னல் டெர்மினேஷன் புள்ளியுடன் VPS இன் வெளிப்புற IP முகவரி 194.165.22.146, ASN 64998; திசைவியின் வெளிப்புற IP முகவரி - 81.177.103.94, ASN 64999
  • சுரங்கப்பாதையின் உள்ளே இருக்கும் ஐபி முகவரிகள் முறையே 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 சரியானது.

பதிவேட்டின் நகலைப் பெறுதல்

ஜப்ரைல் கூறியது போல், "நம்மைத் தடுப்பவர் நமக்கு உதவுவார்." RKN தடைசெய்யப்பட்ட வளங்களின் பதிவேட்டை உருவாக்குவதால், நமது பிரச்சனையைத் தீர்க்க இந்தப் பதிவேட்டைப் பயன்படுத்தாமல் இருப்பது பாவம். கிதுப்பில் இருந்து பதிவேட்டின் நகலைப் பெறுவோம்.

நாங்கள் உங்கள் லினக்ஸ் சேவையகத்திற்குச் செல்கிறோம், ரூட் சூழலில் (சுடோ சு -) மற்றும் ஏற்கனவே நிறுவப்படவில்லை என்றால் 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 ஸ்கிரிப்டை சிறிது நேரம் கழித்து உருவாக்குவோம்.

ரூட்டிங் சேவையை நிறுவுதல் மற்றும் கட்டமைத்தல்

பறவையை நிறுவவும். துரதிர்ஷ்டவசமாக, உபுண்டு களஞ்சியங்களில் தற்போது வெளியிடப்பட்டுள்ள பறவையின் பதிப்பு 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;
}

திசைவி ஐடி - திசைவி அடையாளங்காட்டி, இது பார்வைக்கு IPv4 முகவரி போல் தெரிகிறது, ஆனால் ஒன்று அல்ல. எங்கள் விஷயத்தில், இது IPv32 முகவரி வடிவத்தில் ஏதேனும் 4-பிட் எண்ணாக இருக்கலாம், ஆனால் உங்கள் சாதனத்தின் IPv4 முகவரியைக் குறிப்பிடுவது நல்லது (இந்த விஷயத்தில், VPS).

ரூட்டிங் செயல்முறையுடன் எந்த இடைமுகங்கள் செயல்படும் என்பதை நெறிமுறை நேரடி வரையறுக்கிறது. உதாரணம் இரண்டு உதாரணப் பெயர்களைக் கொடுக்கிறது, நீங்கள் மற்றவர்களைச் சேர்க்கலாம். நீங்கள் வரியை நீக்கலாம்; இந்த விஷயத்தில், சேவையகம் IPv4 முகவரியுடன் கிடைக்கக்கூடிய அனைத்து இடைமுகங்களையும் கேட்கும்.

ப்ரோட்டோகால் ஸ்டேடிக் என்பது எங்களின் மேஜிக் ஆகும், இது முன்னொட்டுகள் மற்றும் IP முகவரிகளின் பட்டியல்களை (அவை உண்மையில் /32 முன்னொட்டுகள், நிச்சயமாக) அடுத்தடுத்த அறிவிப்புக்காக கோப்புகளிலிருந்து ஏற்றுகிறது. இந்த பட்டியல்கள் எங்கிருந்து வருகின்றன என்பதை கீழே விவாதிக்கப்படும். IP முகவரிகளை ஏற்றுவது இயல்புநிலையாக கருத்துரைக்கப்படுகிறது என்பதை நினைவில் கொள்ளவும், அதிக அளவு பதிவேற்றம் செய்யப்படுவதே இதற்குக் காரணம். ஒப்பிடுகையில், எழுதும் நேரத்தில், முன்னொட்டுகளின் பட்டியலில் 78 வரிகளும், ஐபி முகவரிகளின் பட்டியலில் 85898 வரிகளும் உள்ளன. முன்னொட்டுகளின் பட்டியலில் மட்டுமே தொடங்கி பிழைத்திருத்தம் செய்ய நான் கடுமையாக பரிந்துரைக்கிறேன், மேலும் ஐபி ஏற்றுதலை இயக்கலாமா வேண்டாமா உங்கள் ரூட்டரைப் பரிசோதித்த பிறகு எதிர்காலம் உங்களுடையது. ரூட்டிங் டேபிளில் உள்ள 85 ஆயிரம் உள்ளீடுகளை அவர்கள் ஒவ்வொருவராலும் எளிதில் ஜீரணிக்க முடியாது.

புரோட்டோகால் பிஜிபி, உண்மையில், உங்கள் ரூட்டருடன் பிஜிபி பியரிங் அமைக்கிறது. IP முகவரி என்பது திசைவியின் வெளிப்புற இடைமுகத்தின் முகவரி (அல்லது திசைவி பக்கத்தில் உள்ள சுரங்கப்பாதை இடைமுகத்தின் முகவரி), 64998 மற்றும் 64999 ஆகியவை தன்னாட்சி அமைப்புகளின் எண்கள் ஆகும். இந்த வழக்கில், அவை எந்த 16-பிட் எண்களின் வடிவத்திலும் ஒதுக்கப்படலாம், ஆனால் RFC6996 - 64512-65534 உள்ளடக்கிய தனிப்பட்ட வரம்பிலிருந்து AS எண்களைப் பயன்படுத்துவது நல்ல நடைமுறையாகும் (32-பிட் ASN களுக்கு ஒரு வடிவம் உள்ளது, ஆனால் எங்கள் விஷயத்தில் இது நிச்சயமாக மிகையானது). விவரிக்கப்பட்ட உள்ளமைவு eBGP பியரிங் பயன்படுத்துகிறது, இதில் ரூட்டிங் சேவை மற்றும் திசைவியின் தன்னாட்சி அமைப்புகளின் எண்கள் வேறுபட்டிருக்க வேண்டும்.

நீங்கள் பார்க்கிறபடி, சேவையானது திசைவியின் ஐபி முகவரியைத் தெரிந்துகொள்ள வேண்டும், எனவே உங்களிடம் டைனமிக் அல்லது ரூட்டபிள் அல்லாத தனிப்பட்ட (RFC1918) அல்லது பகிரப்பட்ட (RFC6598) முகவரி இருந்தால், வெளிப்புறத்தில் பியரிங் அதிகரிக்க உங்களுக்கு விருப்பம் இல்லை. இடைமுகம், ஆனால் சேவை இன்னும் சுரங்கப்பாதையில் வேலை செய்யும்.

ஒரு சேவையிலிருந்து நீங்கள் பல்வேறு திசைவிகளுக்கு வழிகளை வழங்க முடியும் என்பதும் தெளிவாக உள்ளது - நெறிமுறை பிஜிபி பிரிவை நகலெடுத்து அண்டை வீட்டு ஐபி முகவரியை மாற்றுவதன் மூலம் அவற்றுக்கான அமைப்புகளை நகலெடுக்கவும். அதனால்தான், சுரங்கப்பாதைக்கு வெளியே எட்டிப்பார்ப்பதற்கான அமைப்புகளை எடுத்துக்காட்டு மிகவும் உலகளாவியதாகக் காட்டுகிறது. அமைப்புகளில் ஐபி முகவரிகளை மாற்றுவதன் மூலம் அவற்றை சுரங்கப்பாதையில் அகற்றுவது எளிது.

ரூட்டிங் சேவைக்கான பதிவேட்டை செயலாக்குகிறது

இப்போது நாம் உண்மையில், முன்னொட்டுகள் மற்றும் ஐபி முகவரிகளின் பட்டியல்களை உருவாக்க வேண்டும், அவை முந்தைய கட்டத்தில் நிலையான நெறிமுறையில் குறிப்பிடப்பட்டுள்ளன. இதைச் செய்ய, நாங்கள் ரெஜிஸ்ட்ரி கோப்பை எடுத்து அதிலிருந்து நமக்குத் தேவையான கோப்புகளை பின்வரும் ஸ்கிரிப்டைப் பயன்படுத்தி உருவாக்குகிறோம். /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

ஒரு திசைவி இணைக்கிறது

எல்லோரும் அநேகமாக இந்த பாதத்துணியைப் படிப்பதில் சோர்வாக இருக்கலாம், ஆனால் தைரியமாக இருங்கள் - முடிவு நெருங்கிவிட்டது. மேலும், இந்த பிரிவில் நான் படிப்படியான வழிமுறைகளை வழங்க முடியாது - இது ஒவ்வொரு உற்பத்தியாளருக்கும் வித்தியாசமாக இருக்கும்.

இருப்பினும், நான் உங்களுக்கு இரண்டு உதாரணங்களைக் காட்ட முடியும். முக்கிய தர்க்கம் என்னவென்றால், பிஜிபி பியரிங் மற்றும் பெறப்பட்ட அனைத்து முன்னொட்டுகளுக்கும் நெக்ஸ்ட்ஹாப்பை ஒதுக்குவது, எங்கள் சுரங்கப்பாதையை (p2p இடைமுகம் மூலம் டிராஃபிக்கை அனுப்ப வேண்டும் என்றால்) அல்லது ட்ராஃபிக் ஈதர்நெட்டிற்குச் சென்றால் நெக்ஸ்ட்ஹாப் ஐபி முகவரியைச் சுட்டிக்காட்டுகிறது.

எடுத்துக்காட்டாக, 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

மற்றும் சிஸ்கோ 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 அமர்வு தொடங்கிய பிறகு, பெரிய நெட்வொர்க்குகளுக்கான வழிகள் வந்து அட்டவணையில் நிறுவப்பட்டுள்ளன, அவர்களிடமிருந்து முகவரிகளுக்கு போக்குவரத்து பாய்ந்தது மற்றும் மகிழ்ச்சி நெருங்கிவிட்டது, நீங்கள் பறவை சேவைக்குத் திரும்பி, அங்குள்ள நுழைவை இணைக்க முயற்சிக்கவும். IP முகவரிகளின் பட்டியல், அதன் பிறகு இயக்கவும்

systemctl reload bird

உங்கள் திசைவி இந்த 85 ஆயிரம் வழிகளை எவ்வாறு மாற்றியது என்பதைப் பார்க்கவும். துண்டிக்க தயாராக இருங்கள் மற்றும் அதை என்ன செய்வது என்று யோசிக்கவும் :)

மொத்தம்

முற்றிலும் கோட்பாட்டு ரீதியாக, மேலே விவரிக்கப்பட்ட படிகளை முடித்த பிறகு, வடிகட்டுதல் அமைப்புக்கு முந்தைய ரஷ்ய கூட்டமைப்பில் தடைசெய்யப்பட்ட ஐபி முகவரிகளுக்கு தானாகவே போக்குவரத்தைத் திருப்பிவிடும் ஒரு சேவை உங்களிடம் உள்ளது.

நிச்சயமாக, அதை மேம்படுத்த முடியும். எடுத்துக்காட்டாக, பெர்ல் அல்லது பைதான் தீர்வுகளைப் பயன்படுத்தி ஐபி முகவரிகளின் பட்டியலைச் சுருக்கமாகக் கூறுவது மிகவும் எளிதானது. Net ::CIDR::Lite ஐப் பயன்படுத்தி இதைச் செய்யும் ஒரு எளிய பெர்ல் ஸ்கிரிப்ட் 85 ஆயிரம் முன்னொட்டுகளை 60 ஆக மாற்றுகிறது (ஆயிரம் அல்ல), ஆனால், நிச்சயமாக, தடுக்கப்பட்டதை விட மிகப் பெரிய அளவிலான முகவரிகளை உள்ளடக்கியது.

ஐஎஸ்ஓ/ஓஎஸ்ஐ மாதிரியின் மூன்றாம் நிலையில் சேவை செயல்படுவதால், பதிவேட்டில் பதிவுசெய்யப்பட்ட தவறான முகவரிக்குத் தீர்வு காணப்பட்டால், தளம்/பக்கம் தடுப்பதில் இருந்து உங்களைக் காப்பாற்றாது. ஆனால் பதிவேட்டுடன், nxdomain.txt கோப்பு github இலிருந்து வருகிறது, இது ஸ்கிரிப்ட்டின் சில ஸ்ட்ரோக்குகளுடன் எளிதாக முகவரிகளின் ஆதாரமாக மாறும், எடுத்துக்காட்டாக, Chrome இல் உள்ள SwitchyOmega செருகுநிரல்.

நீங்கள் இணையப் பயனராக மட்டும் இல்லாமல், சில ஆதாரங்களை சொந்தமாக வெளியிடவும் (உதாரணமாக, இணையதளம் அல்லது அஞ்சல் சேவையகம் இந்த இணைப்பில் இயங்கும்) தீர்வுக்கு கூடுதல் சுத்திகரிப்பு தேவை என்பதையும் குறிப்பிட வேண்டியது அவசியம். திசைவியின் வழிமுறைகளைப் பயன்படுத்தி, இந்த சேவையிலிருந்து வெளிச்செல்லும் போக்குவரத்தை உங்கள் பொது முகவரிக்கு கண்டிப்பாக பிணைப்பது அவசியம், இல்லையெனில் திசைவியால் பெறப்பட்ட முன்னொட்டுகளின் பட்டியலால் மூடப்பட்ட அந்த ஆதாரங்களுடனான இணைப்பை நீங்கள் இழப்பீர்கள்.

உங்களிடம் ஏதேனும் கேள்விகள் இருந்தால், கேளுங்கள், நான் பதிலளிக்க தயாராக இருக்கிறேன்.

UPD நன்றி கடற்படை и TerAnYu பதிவிறக்க தொகுதிகளை குறைக்க அனுமதிக்கும் git க்கான அளவுருக்கள்.

UPD2. சகாக்களே, கட்டுரையில் VPSக்கும் ரூட்டருக்கும் இடையே சுரங்கப்பாதை அமைப்பதற்கான வழிமுறைகளைச் சேர்க்காமல் தவறு செய்துவிட்டேன் போல் தெரிகிறது. இதன் மூலம் பல கேள்விகள் எழுகின்றன.
ஒரு வேளை, இந்த வழிகாட்டியைத் தொடங்குவதற்கு முன், நீங்கள் ஏற்கனவே ஒரு VPN சுரங்கப்பாதையை உங்களுக்குத் தேவையான திசையில் உள்ளமைத்து அதன் செயல்பாட்டைச் சரிபார்த்துள்ளீர்கள் என்பதை மீண்டும் ஒருமுறை கவனிக்கிறேன் (எடுத்துக்காட்டாக, போக்குவரத்தை இயல்புநிலையாக அல்லது நிலையானதாக மாற்றுவதன் மூலம்). இந்த கட்டத்தை நீங்கள் இன்னும் முடிக்கவில்லை என்றால், கட்டுரையில் உள்ள படிகளைப் பின்பற்றுவதில் அர்த்தமில்லை. இதைப் பற்றிய எனது சொந்த உரை இன்னும் என்னிடம் இல்லை, ஆனால் VPS இல் நிறுவப்பட்ட இயக்க முறைமையின் பெயருடன் “OpenVPN சேவையகத்தை அமைத்தல்” மற்றும் உங்கள் ரூட்டரின் பெயருடன் “OpenVPN கிளையண்டை அமைத்தல்” என்று கூகுள் செய்தால் , ஹப்ரே உட்பட, இந்த தலைப்பில் பல கட்டுரைகளை நீங்கள் பெரும்பாலும் காணலாம்.

UPD3. தியாகம் செய்யப்படாத நான் ஒரு குறியீட்டை எழுதினேன், அது dump.csv ஐப் பறவைக்கான ஃபைலாக மாற்றுகிறது, அது IP முகவரிகளின் விருப்பத் தொகுக்கப்பட்டுள்ளது. எனவே, "ரூட்டிங் சேவைக்கான பதிவேட்டை செயலாக்குதல்" என்ற பகுதியை அதன் நிரலை அழைப்பதன் மூலம் மாற்றலாம். https://habr.com/post/354282/#comment_10782712

UPD4. பிழைகளில் ஒரு சிறிய வேலை (நான் அவற்றை உரையில் சேர்க்கவில்லை):
1) அதற்கு பதிலாக systemctl ரீலோட் பறவை கட்டளையைப் பயன்படுத்துவது அர்த்தமுள்ளதாக இருக்கிறது birdc கட்டமைப்பு.
2) மைக்ரோடிக் திசைவியில், சுரங்கப்பாதையின் இரண்டாவது பக்கத்தின் ஐபிக்கு நெக்ஸ்ட்ஹாப்பை மாற்றுவதற்குப் பதிலாக / ரூட்டிங் வடிப்பான் செயலைச் சேர்=செயின் ஏற்கிறேன்=டைனமிக்-இன் புரோட்டோகால்=பிஜிபி கருத்து=»செட் நெக்ஸ்ட்ஹாப்» set-in-nexthop=172.30.1.1 முகவரி இல்லாமல் நேரடியாக சுரங்கப்பாதை இடைமுகத்திற்கான வழியைக் குறிப்பிடுவது அர்த்தமுள்ளதாக இருக்கிறது /routing filter add action=accept chain=dynamic-in protocol=bgp comment=»Set nexthop» set-in-nexthop-direct=<interface name>

UPD5. ஒரு புதிய சேவை தோன்றியது https://antifilter.download, ஐபி முகவரிகளின் ஆயத்த பட்டியலை எங்கிருந்து எடுக்கலாம். ஒவ்வொரு அரை மணி நேரமும் புதுப்பிக்கப்படும். கிளையன்ட் பக்கத்தில், பதிவுகளை தொடர்புடைய "பாதை... நிராகரிப்புடன்" உருவாக்குவது மட்டுமே எஞ்சியுள்ளது.
இந்த கட்டத்தில், அநேகமாக, உங்கள் பாட்டியைக் கசக்கி, கட்டுரையைப் புதுப்பிப்பது போதுமானது.

UPD6. அதைக் கண்டுபிடிக்க விரும்பாத, ஆனால் தொடங்க விரும்புபவர்களுக்கான கட்டுரையின் திருத்தப்பட்ட பதிப்பு - இங்கே.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்