பனானா பை ஆர்64 ரூட்டர் - டெபியன், வயர்கார்ட், ஆர்கேஎன்
பனானா பை 64 என்பது ராஸ்பெர்ரி பை போன்ற ஒரு ஒற்றை பலகை கணினி ஆகும், ஆனால் பல ஈத்தர்நெட் போர்ட்களை கொண்டுள்ளது, இது பொது நோக்கத்திற்கான லினக்ஸ் விநியோகத்தின் அடிப்படையில் ஒரு திசைவியாக மாற்றுவதை சாத்தியமாக்குகிறது.
ஆம், ஏற்கனவே Openwrt உள்ளது, ஆனால் அதன் சொந்த பிரச்சனைகள், அதன் GUI மற்றும் CLI; Mikrotik உள்ளது. ஒவ்வொரு நாளும் கொண்டு.
பிபிஐ, ஆர் 64, சிங்கிள் போர்டு என்ற பெயர்களில் உள்ள கட்டுரையில், நான் அதையே குறிக்கிறேன் - பனானா பை ஆர் 64 சிங்கிள்-போர்டு.
ஒரு படத்தைத் தேர்ந்தெடுப்பது. eMMC வழியாக பதிவிறக்கவும்
வேலை செய்யும் போது நீங்கள் பெற வேண்டிய முதல் திறன் எஸ்பிசி பொதுவாக, மற்றும் குறிப்பாக R64 உடன், ஒரு இயக்க முறைமையை எவ்வாறு ஏற்றுவது என்பதைக் கற்றுக்கொள்வது மற்றும் அதனுடன் தொடர்புகொள்வது என்பது இதன் பொருள், ஏனெனில் R64 இல் ஒரு மானிட்டருக்கான போர்ட் இல்லை (எச்டிஎம்ஐ, எடுத்துக்காட்டாக). வைஃபை, ஈத்தர்நெட், புளூடூத், யூ.எஸ்.பி போன்ற அனைத்தும் செயலிழந்தவுடன், ஒரு UART உள்ளது, அதன் இடைமுகத்தின் மூலம் நீங்கள் எப்போதும் தவறு செய்ததைக் காணலாம், தேவைப்பட்டால், கன்சோலில் இருந்து இரண்டு கட்டளைகளை இயக்கவும்.
USB-UART வழியாக R64 உடன் இணைப்பதற்கான அல்காரிதம்:
USB-UART கேபிளுக்காக (PL2303, Serial-to-USB) ரேடியோ பாகங்கள் கடைக்கு ஓடுகிறோம்
ஒரு USB முனையை கணினியுடன் இணைக்கவும், மற்றொன்று, UART, R64 உடன், நான்கில் மூன்று கம்பிகளுடன், கீழே உள்ள படத்தில் உள்ளது போல இணைக்கவும்
கணினி கன்சோலில் இயக்கவும் sudo minicom
இதற்குப் பிறகு, பெரும்பாலான சந்தர்ப்பங்களில் ஒற்றை-பலகை கன்சோல் தோன்றும் = வெற்றி.
மேலும் விவரங்களை நீங்கள் பார்க்கலாம் இங்கே.
அடுத்து, SD கார்டில் இருந்து இயக்க முறைமையை ஏற்றுவது எளிதான வழி: பதிவிறக்கம் இணைப்பை படத்தை நிரப்பவும்:
R64 SD ஸ்லாட்டில் கார்டைச் செருகி, அதை இயக்கி, இணைக்கப்பட்ட கன்சோலை முதலில் உபூட் செய்து, பின்னர் நிலையான லினக்ஸ் ஏற்றப்படுவதைக் கவனிக்கிறோம்.
ஒரு மாற்று துவக்க விருப்பம், eMMC எனப்படும் R64 இல் ஏற்கனவே கட்டமைக்கப்பட்ட 8Gb கார்டைப் பயன்படுத்துகிறது. விக்கியில் உள்ள வழிமுறைகளின்படி, படத்தை சாதனத்தில் நகலெடுக்கிறோம்
/dev/mmcblk0 to BPI, reboot, SD card ஐ அகற்றி, BPI ஐ மீண்டும் இயக்கவும்... அது வேலை செய்யாது. முன்னும் பின்னுமாக செல்வது எப்படி Boot select தொந்தரவு செய்யாதே.
உண்மை என்னவென்றால், உள் ஃபிளாஷ் டிரைவிலிருந்து துவக்குவதற்கு குறைந்தபட்சம் பிபிஐக்கு நீங்கள் ஒரு சிறப்புக் கொடியை அமைக்க வேண்டும்:
உற்பத்தியாளர் R64 (சீனா) இந்த பைனரியை இடுகையிட்டார் இங்கே. அது என்ன செய்கிறது என்பது தெரியவில்லை (மூலக் குறியீடுகள் எதுவும் இல்லை), ஆனால் அது இல்லாமல் அது இயங்காது.
பொதுவாக, இதற்குப் பிறகு, படங்கள் eMMC இலிருந்து ஏற்றத் தொடங்கும். நீங்கள் அதைக் கண்டுபிடித்து புதிதாகப் படங்களை உருவாக்க விரும்பினால், இரண்டு நிகழ்வுகளுக்கும் (SD/eMMC) கர்னலை ஏற்றுவதற்கு இன்னும் பல கோப்புகளை (SD கார்டு, ATF, u-boot க்கான முன் ஏற்றி) எழுத வேண்டும். இந்த தலைப்பு இன்னும் உள்ளது உருவாகிறது, ஆனால் எங்களுக்கு முக்கிய விஷயம் அது வேலை மற்றும் சரி.
இப்போது நான் eMMC வழியாக பதிவிறக்கம் செய்கிறேன், உண்மையைச் சொல்வதென்றால், நான் அதைப் பயன்படுத்தவில்லை, ஒரு SD கார்டு போதும், ஆனால் அதை வேலை செய்ய நான் நிறைய நேரம் செலவிட்டேன், எனவே அது கட்டுரையில் இருக்கட்டும்.
ஒரு இயக்க முறைமையைத் தேர்ந்தெடுப்பது. ஆர்ம்பியன்
முதல் அப்ளிகேஷன் பணியானது, இயற்கையாகவே வயர்கார்டு ஒரு VPN ஐ தொடங்குவதாகும். கர்னல் பக்கத்தில் அது கூடியிருக்கவில்லை என்பதும், தலைப்புகள் இல்லை என்பதும் உடனடியாக கண்டுபிடிக்கப்பட்டது. நான் கர்னலை மீண்டும் உருவாக்கினேன், x86 உடன் எனது வழக்கம் போல், DKMS ஐப் பயன்படுத்தி கர்னல் தொகுதியை அசெம்பிள் செய்தேன். இருப்பினும், arm64 இல் சிறிய பயன்பாடுகளைக் கூட உருவாக்கும் வேகம் என்னை விரும்பத்தகாத வகையில் ஆச்சரியப்படுத்தியது. பின்னர் மற்றொரு கர்னல் தொகுதி தேவை, முதலியன. பொதுவாக, கர்னலுடன் தொடர்புடைய அனைத்தும் ஒரு சூடான x86 மடிக்கணினியில் சிறப்பாகச் சேகரிக்கப்படுகின்றன, பின்னர் எளிய நகலெடுப்பதன் மூலம் R64 க்கு மாற்றப்பட்டு, மறுதொடக்கம் செய்யப்பட்டு சோதனை செய்யப்பட்டது.
மற்றொரு விஷயம் பயனர்வெளி பகுதி. டெபியனைத் தேர்ந்தெடுக்கும் எனது விஷயத்தில், arm64 கட்டமைப்பிற்கான அனைத்தும் ஏற்கனவே packs.debian.org இல் உள்ளன, மேலும் எதையும் மீண்டும் உருவாக்க வேண்டிய அவசியமில்லை.
மற்றொரு சைக்கிள் தயாரிக்கக் கூடாது என்பதற்காக, ஐ துறைமுகம்ஆர்பியன் BPI R64 இல்.
அல்லது மாறாக, இது: பயனர்வெளி பகுதி Armbian, மற்றும் கர்னல் களஞ்சியத்தில் இருந்து எடுக்கப்பட்டது பிராங்க்-ஏ. சமீபத்திய படத்தை பதிவிறக்கம் செய்யலாம் இங்கே.
R64 இன் மென்பொருள் பகுதியை உருவாக்குவதற்கான அனைத்து நடவடிக்கைகளும் மேற்கொள்ளப்படுகின்றன மன்றம். பொதுவாக, உற்பத்தியாளரே Openwrtக்கான திசைவியை பிரபலப்படுத்த முயல்கிறார், ஆனால் ஜெர்மனியைச் சேர்ந்த டெவலப்பர் ஃபிராங்கின் செயல்பாட்டிற்கு நன்றி, அனைத்து அம்சங்களும் டெபியனுக்கான கர்னலில் விரைவாக முடிவடைகின்றன. ஆச்சரியப்படும் விதமாக, ஒவ்வொரு மன்றத் தொடரிலும் ஃபிராங்க் செயலில் இருக்கிறார்.
பணியிட அமைப்பு: கம்பிகள்
தனித்தனியாக, மேம்பாடு/சோதனையின் போது, ஒரு எஸ்பிசியை (பிபிஐ மட்டும் அல்ல) டேபிளில் வைப்பது எப்படி என்பதை நான் உங்களுக்குச் சொல்ல விரும்புகிறேன், இதனால் அறை/அலுவலகம் முழுவதும் இணைய மூலத்திலிருந்து ஈதர்நெட் கேபிளை இயக்கக்கூடாது. உண்மை என்னவென்றால், ஒருபுறம், நீங்கள் இணையத்துடன் ஒரு வன்பொருளை வழங்க வேண்டும், ஆனால் மறுபுறம், அந்த வன்பொருளில் உள்ள அனைத்தும் உடைந்து போகலாம், முதலில் வைஃபை.
முதலில், நான் மலிவான USB-Wifi "விசில்" வாங்க முடிவு செய்தேன், அதை BPI இல் உள்ள ஒரே போர்ட்டில் செருகவும் மற்றும் கம்பிகளை மறந்துவிடவும். இதைச் செய்ய, நான் மலிவான TP-LINK TL-WN725N USB 2.0 ஐ வாங்கினேன், ஆனால் அது புறப்படாது என்பது மிக விரைவில் தெளிவாகியது: விசில் வேலை செய்ய, உங்களுக்கு ஒரு கர்னல் இயக்கி தேவை, அது நிச்சயமாக இல்லை. (பின்னர் நான் தேவையான RTL8XXXU இயக்கியை அசெம்பிள் செய்தேன், ஆனால் அது இன்னும் நடைமுறைக்கு மாறானது ). மேலும் ஈதர்நெட் கேபிள் அறையின் தோற்றத்தை சிறிது நேரம் கெடுத்து விட்டது.
இதன் விளைவாக, டெண்டா எம்டபிள்யூ 3 (வைஃபை மெஷ் சிஸ்டம்) உதவியுடன் கேபிளை அகற்ற முடிந்தது: நான் ஒரு கனசதுரத்தை மேசையின் கீழ் வைத்து, பிபிஐயை பிபிஐ லேன் போர்ட்டில் மீட்டர் நீளமுள்ள ஈதர்நெட் கேபிளுடன் இணைத்தேன். வெற்றி.
வயர்கார்ட், ஆர்.கே.என்., பறவை
நான் வாழை PI ஐப் பயன்படுத்த விரும்பும் விஷயங்களில் ஒன்று, RKN ஆல் தடுக்கப்பட்ட தளங்களுக்கு இலவச அணுகலைப் பெறுவது, குறிப்பாக, டெலிகிராம் மற்றும் ஸ்லாக் அழைப்புகள் வேலை செய்ய முடியும். இந்த தலைப்பில் ஹப்ரே பற்றிய கட்டுரைகள் ஏற்கனவே முன்மொழியப்பட்டுள்ளன: நேரம், два, மூன்று.
நான் அன்சிபிளைப் பயன்படுத்தி இந்த தீர்வை சரியாக பயன்படுத்தினேன்: ссылка.
VPS ஆனது Ubuntu 18.04 இல் இயங்குவதாக கருதப்படுகிறது. ஐரோப்பாவில் இரண்டு ஹோஸ்டர்களின் செயல்பாட்டைச் சரிபார்த்தேன்: Amazon மற்றும் Digital Ocean.
எனவே, மேலே உள்ள Armbian ஐ R64 இல் நிறுவியுள்ளோம், அதை ssh என்ற பெயரில் அணுகலாம் hm-bananapi-1 மற்றும் இணைய அணுகல் உள்ளது. நாங்கள் தொடர்ந்து அன்சிபிள், ஆட்டோமேஷன் ஸ்கிரிப்ட்களை பயன்படுத்துகிறோம் மற்றும் R64 இல் நிறுவலைத் தொடங்குகிறோம்:
# зависимости для Debian-based дистрибутивов
$ sudo apt install --no-install-recommends python3-pip python3-setuptools python3-wheel git
$ which pip3
/usr/bin/pip3
# ansible с pybook, скриптование на Python
$ pip3 install https://github.com/muravjov/ansible/archive/ansible-2.10.0.dev0-pybook2019.tar.gz
$ export PATH=~/.local/bin:$PATH
$ which ansible-playbook
/home/sa/.local/bin/ansible-playbook
$ git clone https://github.com/muravjov/ansible-bpi-r64.git
$ cd ansible-bpi-r64
$ git submodule update --init
# убеждаемся в доступности hm-bananapi-1
$ ssh hm-bananapi-1 which python3
/usr/bin/python3
# собственно установка
$ ansible-playbook ./router.py -l hm-bananapi-1
அடுத்து, நீங்கள் எங்கள் VPN ஐ VPS க்கு அதே வழியில் பயன்படுத்த வேண்டும்:
ansible-playbook ./router.py -l current-vpn
இங்கே வாதமானது எப்போதும் நடப்பு-vpn ஆகும், மேலும் உண்மையான VPS பெயர் மாறியில் கட்டமைக்கப்படுகிறது (இந்த விஷயத்தில் இது paris-vpn-aws-t2-micro-1):
ஓ, இந்த அனைத்து செயல்பாடுகளுக்கும் முன் நீங்கள் கோப்புறையில் ரகசியங்களை (குறிப்பாக வயர்கார்ட் விசைகள்) உருவாக்க வேண்டும். ./secrets, அடைவு போல் இருக்க வேண்டும் எனவே.
பைத்தானில் அன்சிபிள் ஆட்டோமேஷன்
YAML வடிவத்தில் இருப்பதற்குப் பதிலாக, Ansible கட்டளைகள் பைதான் ஸ்கிரிப்ட்களில் குறியாக்கம் செய்யப்படுவதை நீங்கள் கவனிக்கலாம். ஒப்பிடுகையில், பறவை டீமானை வழக்கமான வழியில் எவ்வாறு இயக்குவது:
with mapping:
append("name", "start bird")
with mapping("systemd"):
append("name", "bird")
append("state", "started")
append("enabled", "yes")
பைத்தானில் அன்சிபிள் கட்டளைகளை எழுதுவது குறியீட்டை மீண்டும் பயன்படுத்த உங்களை அனுமதிக்கிறது, மேலும் பொதுவாக பொது-நோக்க மொழியின் அனைத்து சாத்தியக்கூறுகளையும் திறக்கிறது. எடுத்துக்காட்டாக, R64 மற்றும் VPS இல் பறவையை நிறுவுதல்:
மொத்தம்: டெலிகிராம் வேலைகள், லிங்க்டின் மற்றும் போர்ன்ஹப் கூட, பொதுவாக பயனர் அனுபவம் சரியாக உள்ளது. ஆனால் சீன வன்பொருள் உட்பட அனைத்தையும் உடைக்கலாம்.
கர்னல் புதுப்பிப்புகளும் சுவாரஸ்யமாக இருக்கலாம்: எடுத்துக்காட்டாக, நான் கர்னல் 5.4 => 5.6 ஐப் புதுப்பிக்க விரும்பினேன், சரி, வயர்கார்ட் பெட்டிக்கு வெளியே உள்ளது, பேட்ச் செய்ய வேண்டிய அவசியமில்லை... விரைவில் சொல்ல முடியாது: நான் 5.4 இலிருந்து பேட்ச்களை மிகவும் சிரமப்பட்டு மாற்றினேன். 5.6 க்கு, கர்னல் தொடங்கியது, VPS க்கு சுரங்கப்பாதை பிங் செய்யப்பட்டது, ஆனால் பறவை "BGP பிழை" பிழையுடன் இணைக்க முடியாது ... "நான் திகிலுடன் திரும்பினேன்" (c) 5.4; TODO இல் 5.6க்கு நகர்வது ஒத்திவைக்கப்பட்டது.
எனவே, திசைவி மற்றும் VPS ஐ நிறுவுவதற்கு கூடுதலாக, நான் கண்காணிப்பைச் சேர்த்துள்ளேன் (x86 Ubuntu 18.04 இல்), இது பின்வரும் கூறுகளுடன் ஒரு தனி ஹோஸ்டில் நிறுவப்பட்டுள்ளது:
prometheus, alertmanager, blackbox_exporter - அனைத்தும் டோக்கரில்
Metalmatze/alertmanager-bot bot ஐப் பயன்படுத்தி டெலிகிராம் சேனலுக்கு எச்சரிக்கைகள் அனுப்பப்படுகின்றன - டோக்கரிலும்
போட்டிற்கான tor, இதனால் போட் இணையம் இருக்கும்போது சூழ்நிலைகளை எச்சரிக்க முடியும், ஆனால் டெலிகிராம் இன்னும் வேலை செய்யவில்லை, மேலும் போட் தன்னை இணைக்க முடியாது
Prometheus க்கான ஆட்டோ டிஸ்கவரி /etc/prometheus/auto_http கோப்புறையில் கட்டமைக்கப்பட்டுள்ளது, இது ஒரு ஹோஸ்ட்டை கண்காணிப்பில் சேர்ப்பதற்கான எடுத்துக்காட்டு (இயல்புநிலையாக ஹோஸ்ட்கள் கண்காணிக்கப்படாது):
செய்ய வேண்டியவை: 2 வழங்குநர்கள், 2 பிபிஐ, ஏதேனும் தோல்வி
எல்லாவற்றிற்கும் மேலாக, ஒரு வழங்குநருக்கு நெட்வொர்க்கில் சிக்கல்கள் இருந்தாலும், அல்லது அவர்கள் இணையத்திற்கு பணம் செலுத்த மறந்துவிட்டாலும், மற்றும் பிற மனித காரணிகள் இருந்தாலும், இணையம் தொடர்ந்து செயல்படும் வகையில் இரண்டு வழங்குநர்களுடன் இணைக்க திட்டமிட்டுள்ளேன்.
மல்டி-வான் என்ற தலைப்பில் மிகவும் மேம்பட்ட பயனர் அனுபவம் விவரிக்கப்பட்டுள்ளது இங்கே Openwrt இன் கீழ் Mwan3 அமைப்புக்கு. இந்த தீர்வு சிறந்த செயல்பாட்டைக் கொண்டுள்ளது, ஆனால் மல்டி-வானுக்காக பொதுவாக அதை அமைத்து இயக்குவது மிகவும் தொந்தரவாக உள்ளது. ஒரே ஒரு உதாரணம்: இரண்டு IP முகவரிகளிலிருந்து சில தளங்களுக்கு ஒரே நேரத்தில் வந்தால், அவர்கள் அதை விரும்பாமல் இருக்கலாம், அவர்கள் வேலை செய்வதை நிறுத்திவிடுவார்கள் => "இன்டர்நெட் வேலை செய்யவில்லை."
இந்த அனுபவத்தை கணக்கில் எடுத்துக்கொண்டு, மல்டிஹோமிங் இன்னும் முன்னுரிமை இல்லை, தோல்வி மட்டுமே என்று முடிவு செய்தேன். இருப்பினும், லினக்ஸின் சமீபத்திய பதிப்புகளில் எல்லாம் ஒரு கட்டளையுடன் செயல்பட வேண்டும்:
ip route add default
nexthop via 192.168.1.1 weight 10
nexthop via 192.168.2.1 weight 5
எனவே, தோல்வியின் ஒரு புள்ளியைத் தவிர்ப்பதற்காக, நாங்கள் 2 பிபிஐகளை எடுத்து, ஒவ்வொன்றையும் ஒரு வழங்குனருடன் இணைத்து, அவற்றை ஒன்றுடன் ஒன்று இணைத்து, பறவை/ஓஎஸ்பிஎஃப் வழியாக ஒருவருக்கொருவர் டைனமிக் ரூட்டிங் செய்கிறோம்.
அடுத்து, சேவை இருந்தால் (இன்டர்நெட், டிஎன்எஸ்) ஒவ்வொன்றிலும் ஒரே ஐபி முகவரியை விளம்பரப்படுத்துவோம். அதாவது, இயல்புநிலை பாதையை நாமே அமைக்க மாட்டோம், ஆனால் பறவை மூலம். நான் தீர்வை உளவு பார்த்தேன் இங்கே .
இந்த செயல்பாடு இன்னும் செயல்படுத்தப்படவில்லை, நயவஞ்சகமான கொரோனா வைரஸ் இங்கே ஒரு தந்திரம் விளையாடியது (எல்லாம் Aliexpress இலிருந்து வரவில்லை; மற்றொரு ஆன்லைன் ஸ்டோர், Layta, ஒரு வாரத்தில் வழங்குவதாக உறுதியளித்தது, ஆனால் ஒரு மாதத்திற்கும் மேலாகிவிட்டது; இரண்டாவது வழங்குநருக்கு நேரம் இல்லை தனிமைப்படுத்தலுக்கு முன் கேபிளை நீட்டிக்க, கேபிளின் சுவரில் துளையிடுவதற்கு மட்டுமே முடிந்தது).
R64 ஐ எவ்வாறு ஆர்டர் செய்வது
பலகை அதிகாரப்பூர்வ கடையில் உள்ளது SinoVoip.
உடனடியாக ஆர்டர் செய்வது நல்லது:
питание + EU அல்லது US பிளக் தரநிலையை தெரிவிக்கவும்
வெப்ப மடு: ரேடியேட்டர்கள்/விசிறிகள்; ஏனெனில் CPU மற்றும் சுவிட்ச் சிப் இரண்டும் வெப்பமடைகின்றன
ஒரு நுணுக்கம் உள்ளது - உத்தியோகபூர்வ கடையில் சில காலமாக விநியோக விலை போதுமானதாக இல்லை. மேலாளர் ஜூடி ஹுவாங் எந்தப் பிழையும் இல்லை என்று என்னை நம்பவைத்தார், மேலும் நீங்கள் $5க்கு ePacket ஐத் தேர்வு செய்யலாம், ஆனால் ரஷ்யாவிற்கு >$33க்கு EMS மட்டுமே இருப்பதைக் கண்டேன். விரும்பத்தகாதது, ஆனால் விமர்சனமானது அல்ல. மேலும், நீங்கள் டெலிவரிக்கு வேறு எந்த நாட்டையும் தேர்வு செய்தால் (நான் எல்லா கண்டங்களிலும் சென்றேன்), டெலிவரிக்கு ~$5 செலவாகும். ருஸ்ஸோபோப்ஸ்?
இதன் விளைவாக, ஜூடி ஒரு ஆர்டரை வழங்க முன்வந்தார், ஆனால் செலுத்தவில்லை (குறிப்பை: கார்டில் குறைவாக வைக்கவும், இதனால் தானியங்கி கட்டணம் செல்லாது); அவளுக்கு எழுதுங்கள், அவள் டெலிவரி விலையை சாதாரணமாகக் குறைப்பாள். வெற்றி.
சிக்கல்கள்
எல்லாம் இன்னும் சரியாக வேலை செய்யவில்லை.
உற்பத்தித்
Ansible=Python கட்டளைகள் மெதுவாக, செயலற்றவையாக இருந்தாலும், 20-30 வினாடிகளுக்கு இயக்கப்படும்; x86 மடிக்கணினியை விட நீளமான வரிசை. மேலும், முதலில் அவை மிக விரைவாக செயல்படுத்தப்படுகின்றன, ~ 3 வினாடிகள், பின்னர் அவை கூர்மையாக குறைகின்றன. இது CPU வெப்பமடைவதன் காரணமாக இருக்கலாம் (த்ரோட்டில்). கோ குறியீடு வேலை செய்ய நீண்ட நேரம் எடுக்கும்:
# запрос метрик для прометея из node_exporter на Go
$ time curl -s http://172.30.1.1:9100/metrics > /dev/null
real 0m6,118s
user 0m0,005s
sys 0m0,009s
# однако температура 51 градус, не так и много
sa@bananapir64:~$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
51700
WiFi
வைஃபை வேலை செய்கிறது, ஆனால் Armbian இல் அது ஒரு நாள் கழித்து நின்றுவிடும், எழுதுகிறார்: