బనానా పై R64 రూటర్ - డెబియన్, వైర్‌గార్డ్, RKN

బనానా పై 64 అనేది రాస్‌ప్‌బెర్రీ పై మాదిరిగానే ఒకే-బోర్డ్ కంప్యూటర్, కానీ అనేక ఈథర్‌నెట్ పోర్ట్‌లతో, ఇది సాధారణ-ప్రయోజన Linux పంపిణీ ఆధారంగా రూటర్‌గా మార్చడం సాధ్యం చేస్తుంది.

బనానా పై R64 రూటర్ - డెబియన్, వైర్‌గార్డ్, RKN

అవును, ఇప్పటికే Openwrt ఉంది, కానీ దాని స్వంత సమస్యలు, దాని GUI మరియు CLI ఉన్నాయి; Mikrotik ఉంది, కానీ మళ్లీ దాని స్వంత GUI/CLI ఉంది, మరియు Wireguard బాక్స్ నుండి పని చేయదు... సాధారణంగా, మీరు పనిచేసే ప్రామాణిక Linux ఫ్రేమ్‌వర్క్‌లో ఉంటూనే, సాధారణంగా, నాకు సౌకర్యవంతమైన సెట్టింగ్‌లతో కూడిన రూటర్ కావాలి. ప్రతి రోజు తో.

BPI, R64, సింగిల్-బోర్డ్ పేర్లతో ఉన్న వ్యాసంలో, నేను అదే విషయాన్ని అర్థం చేసుకుంటాను - బనానా పై R64 సింగిల్-బోర్డ్.

చిత్రాన్ని ఎంచుకోవడం. eMMC ద్వారా డౌన్‌లోడ్ చేసుకోండి

పని చేసేటప్పుడు మీరు పొందవలసిన మొదటి నైపుణ్యం SBC సాధారణంగా, మరియు ప్రత్యేకించి R64తో, ఆపరేటింగ్ సిస్టమ్‌ను దానిలోకి ఎలా లోడ్ చేయాలో నేర్చుకోవడం మరియు దానితో ఇంటరాక్ట్ అవ్వగలగడం దీని అర్థం, ఎందుకంటే R64కి మానిటర్ కోసం పోర్ట్ లేదు (HDMI, ఉదాహరణకు). ప్రతిదీ పడిపోయినప్పుడు - Wifi, ఈథర్‌నెట్, బ్లూటూత్, USB, మొదలైనవి పని చేయడం ఆగిపోయాయి. UART ఉంది, దాని ఇంటర్‌ఫేస్ ద్వారా మీరు ఎప్పుడు తప్పు జరిగిందో చూడవచ్చు మరియు అవసరమైతే, కన్సోల్ నుండి రెండు ఆదేశాలను కూడా అమలు చేయవచ్చు.

USB-UART ద్వారా R64కి కనెక్ట్ చేయడానికి అల్గోరిథం:

  • మేము USB-UART కేబుల్ (PL2303, సీరియల్-టు-USB) కోసం రేడియో విడిభాగాల దుకాణానికి వెళ్తాము
  • ఒక USB ఎండ్‌ను కంప్యూటర్‌కు మరియు మరొకటి, UARTని R64కి, నాలుగు వైర్లలో మూడు వైర్‌లతో, దిగువ చిత్రంలో ఉన్నట్లుగా కనెక్ట్ చేయండి
  • కంప్యూటర్ కన్సోల్‌లో అమలు చేయండి sudo minicom

దీని తరువాత, చాలా సందర్భాలలో సింగిల్-బోర్డ్ కన్సోల్ కనిపిస్తుంది = విజయం.
మీరు మరిన్ని వివరాలను చూడవచ్చు ఇక్కడ.

బనానా పై R64 రూటర్ - డెబియన్, వైర్‌గార్డ్, RKN

తరువాత, SD కార్డ్ నుండి ఆపరేటింగ్ సిస్టమ్‌ను లోడ్ చేయడం సులభమయిన మార్గం: ద్వారా డౌన్‌లోడ్ చేసుకోండి లింక్ చిత్రం మరియు దానిని పూరించండి:

unzip -p 2019-08-23-ubuntu-16.04-lite-preview-bpi-r64-sd-emmc.img.zip | pv | sudo dd of=/dev/mmcblk0 bs=10M status=noxfer

మేము కార్డ్‌ని R64 SD స్లాట్‌లోకి చొప్పించి, దాన్ని ఆన్ చేసి, కనెక్ట్ చేయబడిన కన్సోల్ లోడ్ అవుతుందని మొదట ఉబూట్ చేసి, ఆపై ప్రామాణిక Linux లోడింగ్‌ను గమనిస్తాము.

ప్రత్యామ్నాయ బూట్ ఎంపిక eMMC అని పిలువబడే R64లో ఇప్పటికే నిర్మించబడిన 8Gb కార్డ్‌ని ఉపయోగిస్తోంది. వికీలోని సూచనల ప్రకారం, మేము చిత్రాన్ని పరికరానికి కాపీ చేస్తాము
/dev/mmcblk0 నుండి BPIకి, రీబూట్ చేయండి, SD కార్డ్‌ని తీసివేయండి, మళ్లీ BPIని ఆన్ చేయండి... మరియు అది పని చేయదు. ముందుకు వెనుకకు ఎలా వెళ్ళాలి Boot select ఇబ్బంది పడకండి.

వాస్తవం ఏమిటంటే కనీసం BPI కోసం మీరు అంతర్గత ఫ్లాష్ డ్రైవ్ నుండి బూట్ చేయగలిగేలా ప్రత్యేక ఫ్లాగ్‌ను సెట్ చేయాలి:

root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'
Boot configuration bytes [PARTITION_CONFIG: 0x00]
root@bpi-r64:~# ./mmc bootpart enable 1 1 /dev/mmcblk1
root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'
Boot configuration bytes [PARTITION_CONFIG: 0x48]

తరువాత, మీరు ప్రత్యేక బూట్ విభజనలో ప్రీలోడర్‌ని వ్రాయాలి

root@bpi-r64:~# echo 0 > /sys/block/mmcblk0boot0/force_ro 
root@bpi-r64:~# dd if=preloader_evb7622_64_foremmc.bin of=/dev/mmcblk0boot0

తయారీదారు R64 (చైనా) ఈ బైనరీని పోస్ట్ చేసారు ఇక్కడ. అది ఏమి చేస్తుందో తెలియదు (సోర్స్ కోడ్‌లు లేవు), కానీ అది లేకుండా కూడా పని చేయదు.

సాధారణంగా, దీని తర్వాత, చిత్రాలు eMMC నుండి లోడ్ అవుతాయి. మీరు దాన్ని గుర్తించి, మొదటి నుండి చిత్రాలను సృష్టించాలనుకుంటే, రెండు సందర్భాల్లో (SD/eMMC) మీరు కెర్నల్‌ను లోడ్ చేయడానికి మరిన్ని ఫైల్‌లను (SD కార్డ్, ATF, u-boot కోసం ప్రీలోడర్) వ్రాయాలి. ఈ అంశం ఇప్పటికీ ఉంది అభివృద్ధి చెందుతుంది, కానీ మాకు ప్రధాన విషయం అది పనిచేస్తుంది మరియు సరే.

ఇప్పుడు నేను eMMC ద్వారా డౌన్‌లోడ్ చేస్తాను, నిజం చెప్పాలంటే, నేను దానిని ఉపయోగించను, SD కార్డ్ సరిపోతుంది, కానీ నేను దానిని పని చేయడానికి చాలా సమయం గడిపాను, కనుక ఇది కథనంలో ఉండనివ్వండి.

ఆపరేటింగ్ సిస్టమ్‌ను ఎంచుకోవడం. ఆర్ంబియన్

సహజంగా వైర్‌గార్డ్‌ని VPN ప్రారంభించడం మొదటి అప్లికేషన్ టాస్క్. కెర్నల్ వైపు అది అసెంబుల్ చేయలేదని మరియు హెడర్‌లు లేవని వెంటనే కనుగొనబడింది. నేను కెర్నల్‌ను పునర్నిర్మించాను మరియు x86తో నా అలవాటు వలె, DKMS ఉపయోగించి కెర్నల్ మాడ్యూల్‌ని అసెంబుల్ చేసాను. అయినప్పటికీ, arm64లో చిన్న యుటిలిటీలను నిర్మించే వేగం అసహ్యంగా నన్ను ఆశ్చర్యపరిచింది. ఆపై మరొక కెర్నల్ మాడ్యూల్ అవసరం, మొదలైనవి. సాధారణంగా, కెర్నల్‌కు సంబంధించిన ప్రతిదీ వెచ్చని x86 ల్యాప్‌టాప్‌లో ఉత్తమంగా సమీకరించబడిందని తేలింది, ఆపై సాధారణ కాపీ చేయడం, రీబూట్ చేయడం మరియు పరీక్షించడం ద్వారా R64కి బదిలీ చేయబడుతుంది.

మరొక విషయం యూజర్ స్పేస్ భాగం. నా డెబియన్‌ని ఎంచుకునే విషయంలో, arm64 ఆర్కిటెక్చర్‌కు సంబంధించిన ప్రతిదీ ప్యాకేజీలు.debian.orgలో ఇప్పటికే ఉంది మరియు దేనినీ పునర్నిర్మించాల్సిన అవసరం లేదు.

మరొక సైకిల్ ఉత్పత్తి చేయకుండా ఉండటానికి, I పోర్ట్ చేయబడింది అర్ంబియన్ BPI R64పై.
లేదా బదులుగా, ఇది: యూజర్‌స్పేస్ భాగం Armbian, మరియు కెర్నల్ రిపోజిటరీ నుండి తీసుకోబడింది ఫ్రాంక్-ఎ. తాజా చిత్రాన్ని డౌన్‌లోడ్ చేసుకోవచ్చు ఇక్కడ.

R64 యొక్క సాఫ్ట్‌వేర్ భాగం అభివృద్ధిపై అన్ని కార్యకలాపాలు నిర్వహించబడతాయి ఫోరమ్. సాధారణంగా చెప్పాలంటే, తయారీదారు స్వయంగా Openwrt కోసం రౌటర్‌ను ప్రాచుర్యంలోకి తీసుకురావడానికి ప్రయత్నిస్తాడు, అయితే జర్మనీకి చెందిన డెవలపర్ ఫ్రాంక్ యొక్క కార్యాచరణకు ధన్యవాదాలు, అన్ని లక్షణాలు డెబియన్ కోసం త్వరగా కెర్నల్‌లో ముగుస్తాయి. ఆశ్చర్యకరంగా, ఫ్రాంక్ ప్రతి ఫోరమ్ థ్రెడ్‌లో చురుకుగా ఉంటాడు.

కార్యస్థల సంస్థ: వైర్లు

ప్రత్యేకంగా, డెవలప్‌మెంట్/టెస్టింగ్ సమయంలో, గది/కార్యాలయం అంతటా ఇంటర్నెట్ సోర్స్ నుండి ఈథర్‌నెట్ కేబుల్‌ని అమలు చేయకుండా ఉండేందుకు, టేబుల్‌పై SBC (కేవలం BPI మాత్రమే కాదు) ఎలా ఉంచాలో నేను మీకు చెప్పాలనుకుంటున్నాను. వాస్తవం ఏమిటంటే, ఒక వైపు, మీరు ఇంటర్నెట్‌తో హార్డ్‌వేర్ భాగాన్ని అందించాలి, కానీ మరోవైపు, ఆ హార్డ్‌వేర్ ముక్కలోని ప్రతిదీ విచ్ఛిన్నమవుతుంది మరియు అన్నింటిలో మొదటిది Wifi.

మొదట, నేను చౌకైన USB-Wifi "విజిల్" కొనుగోలు చేయాలని నిర్ణయించుకున్నాను, దానిని BPIలోని ఏకైక పోర్ట్‌లోకి ప్లగ్ చేసి, వైర్ల గురించి మరచిపోయాను. దీన్ని చేయడానికి, నేను చవకైన TP-LINK TL-WN725N USB 2.0ని కొనుగోలు చేసాను, కానీ అది టేకాఫ్ కాదని చాలా త్వరగా స్పష్టమైంది: విజిల్ పని చేయడానికి, మీకు కెర్నల్ డ్రైవర్ అవసరం, అది ఖచ్చితంగా లేదు. (తరువాత నేను అవసరమైన RTL8XXXU డ్రైవర్‌ను సమీకరించాను, కానీ ఇది ఇప్పటికీ ఆచరణీయం కాదు ). మరియు ఈథర్నెట్ కేబుల్ కాసేపు గది రూపాన్ని పాడు చేసింది.

ఫలితంగా, నేను టెండా MW3 (వైఫై మెష్ సిస్టమ్) సహాయంతో కేబుల్‌ను వదిలించుకోగలిగాను: నేను కేవలం ఒక క్యూబ్‌ను టేబుల్ కింద ఉంచాను మరియు BPIని మీటర్ పొడవు గల ఈథర్‌నెట్ కేబుల్‌తో రెండో LAN పోర్ట్‌కి కనెక్ట్ చేసాను. విజయం.

వైర్‌గార్డ్, RKN, బర్డ్

నేను బనానా PIని ఉపయోగించాలనుకుంటున్న వాటిలో ఒకటి RKN ద్వారా బ్లాక్ చేయబడిన సైట్‌లకు ఉచిత ప్రాప్యతను కలిగి ఉండటం, ప్రత్యేకించి, టెలిగ్రామ్ మరియు స్లాక్ కాల్‌లు పని చేయగలవు. ఈ అంశంపై ఇప్పటికే హబ్రేపై కథనాలు ప్రతిపాదించబడ్డాయి: సమయం, два, మూడు.

నేను Ansible ఉపయోగించి సరిగ్గా ఈ పరిష్కారాన్ని అమలు చేసాను: ссылка.

VPS ఉబుంటు 18.04ని నడుపుతున్నట్లు భావించబడుతుంది. నేను ఐరోపాలోని రెండు హోస్టర్‌లలో కార్యాచరణను తనిఖీ చేసాను: అమెజాన్ మరియు డిజిటల్ ఓషన్.

కాబట్టి, మేము పైన పేర్కొన్న Armbianని R64లో ఇన్‌స్టాల్ చేసాము, ఇది పేరుతో ssh ద్వారా యాక్సెస్ చేయబడుతుంది hm-bananapi-1 మరియు ఇంటర్నెట్ యాక్సెస్ ఉంది. మేము స్థిరంగా Ansible, ఆటోమేషన్ స్క్రిప్ట్‌లను అమలు చేస్తాము మరియు 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):

$ grep current_vpn group_vars/all 
current_vpn: paris-vpn-aws-t2-micro-1
#current_vpn: frankfurt-vpn-d0-starter-1

అవును, ఈ అన్ని కార్యకలాపాలకు ముందు మీరు ఫోల్డర్‌లోకి రహస్యాలను (ముఖ్యంగా వైర్‌గార్డ్ కీలు) రూపొందించాలి ./secrets, డైరెక్టరీ ఇలా ఉండాలి కాబట్టి.

పైథాన్‌లో అన్సిబుల్ ఆటోమేషన్

మీరు YAML ఆకృతిలో కాకుండా, Ansible ఆదేశాలు పైథాన్ స్క్రిప్ట్‌లలో ఎన్‌కోడ్ చేయబడటం గమనించవచ్చు. పోలిక కోసం, బర్డ్ డెమోన్‌ను సాధారణ మార్గంలో ఎలా ప్రారంభించాలి:

- name: start bird
  systemd:
    name: bird
    state: started
    enabled: yes

మరియు పైథాన్ ద్వారా అదే ఎలా చేయాలి:

with mapping:
    append("name", "start bird")
    with mapping("systemd"):
        append("name",  "bird")
        append("state", "started")
        append("enabled", "yes")

పైథాన్‌లో Ansible ఆదేశాలను వ్రాయడం వలన మీరు కోడ్‌ని మళ్లీ ఉపయోగించుకోవచ్చు మరియు సాధారణంగా సాధారణ-ప్రయోజన భాష యొక్క అన్ని అవకాశాలను తెరుస్తుంది. ఉదాహరణకు, R64 మరియు VPSలో పక్షిని ఇన్‌స్టాల్ చేయడం:

install_bird("router/bird.conf.j2")
install_bird("vpn/bird.conf.j2")

ఫంక్షన్ కోడ్ చూడండి install_bird().

ఈ ఫీచర్ అంటారు pybook అమలు చేశారు ఇక్కడ. pybookలో ఇంకా డాక్యుమెంటేషన్ లేదు, కానీ నేను ఈ సమస్యను తర్వాత పరిష్కరిస్తాను.

అతను ఏమనుకుంటున్నాడు అప్స్ట్రీమ్ ఈ సందర్భంగా.

పర్యవేక్షణ. ప్రోమేథియస్

మొత్తం: టెలిగ్రామ్ వర్క్స్, లింక్డ్ఇన్ మరియు పోర్న్‌హబ్ కూడా, సాధారణంగా వినియోగదారు అనుభవం బాగానే ఉంది. కానీ చైనీస్ హార్డ్‌వేర్‌తో సహా ప్రతిదీ విచ్ఛిన్నమవుతుంది.

కెర్నల్ అప్‌డేట్‌లు కూడా ఆసక్తికరంగా ఉండవచ్చు: ఉదాహరణకు, నేను కెర్నల్ 5.4 => 5.6ని అప్‌డేట్ చేయాలనుకున్నాను, అలాగే, వైర్‌గార్డ్ బాక్స్ వెలుపల ఉంది, ప్యాచ్ చేయాల్సిన అవసరం లేదు... పూర్తి చేయడం కంటే త్వరగా చెప్పలేదు: నేను 5.4 నుండి ప్యాచ్‌లను చాలా కష్టపడి బదిలీ చేసాను. 5.6కి, కెర్నల్ ప్రారంభించబడింది, VPSకి సొరంగం పింగ్ చేయబడింది, కానీ బర్డ్ "BGP ఎర్రర్" లోపంతో కనెక్ట్ కాలేదు ... "నేను భయానకంగా వెనక్కి వచ్చాను" (c) నుండి 5.4; TODOలో 5.6కి తరలింపు వాయిదా పడింది.

అందువల్ల, రూటర్ మరియు VPSని ఇన్‌స్టాల్ చేయడంతో పాటు, నేను పర్యవేక్షణను జోడించాను (x86 ఉబుంటు 18.04లో), ఇది క్రింది భాగాలతో ప్రత్యేక హోస్ట్‌లో ఇన్‌స్టాల్ చేయబడింది:

  • ప్రోమేథియస్, అలర్ట్‌మేనేజర్, బ్లాక్‌బాక్స్_ఎక్స్‌పోర్టర్ - అన్నీ డాకర్‌లో ఉన్నాయి
  • హెచ్చరికలు metalmatze/alertmanager-bot bot ఉపయోగించి టెలిగ్రామ్ ఛానెల్‌కు పంపబడతాయి - డాకర్‌లో కూడా
  • బోట్ కోసం tor, తద్వారా బోట్ ఇంటర్నెట్ ఉన్నప్పుడు పరిస్థితులను హెచ్చరిస్తుంది, కానీ టెలిగ్రామ్ ఇప్పటికీ పని చేయదు మరియు బాట్ కూడా కనెక్ట్ కాలేదు
  • దరఖాస్తు చేసుకున్నాడు హెచ్చరికలు: NodeVPNTట్రబుల్స్ (VPSకి పింగ్ లేదు), BirdVPNTట్రబుల్స్ (బర్డ్ సెషన్ లేదు), యాంటీఫిల్టర్ డౌన్‌లోడ్ ట్రబుల్స్ (బ్లాక్ చేయబడిన IP చిరునామాలను లోడ్ చేయడంలో లోపం), SiteTroubles (దురదృష్టకరమైన టెలిగ్రామ్ అందుబాటులో లేదు)
  • సిస్టమ్ హెచ్చరికలు, ఉదాహరణకు, HostGrowingDiskReadLatency (చౌకైన SD కార్డ్ చదవలేనిదిగా మారుతుంది)

మానిటరింగ్ సెటప్ ఉదాహరణ:

ansible-playbook ./monitoring.py -l monitoring-preprod

ప్రోమేతియస్ కోసం ఆటో డిస్కవరీ /etc/prometheus/auto_http ఫోల్డర్‌లో కాన్ఫిగర్ చేయబడింది, మానిటరింగ్‌కు హోస్ట్‌ని జోడించడం యొక్క ఉదాహరణ (హోస్ట్‌లు డిఫాల్ట్‌గా పర్యవేక్షించబడవు):

bash << 'EOF'
HOSTNAME=hm-bananapi-1
IP_ADDRESS=`ssh -G $HOSTNAME | awk '/^hostname / { print $2 }'`

ssh monitoring-preprod sudo sponge /etc/prometheus/auto_http/$HOSTNAME.json << EOF2
[
  {
    "targets": ["$IP_ADDRESS:9100"],
    "labels": {
      "env": "prod",
      "hostname": "$HOSTNAME"
    }
  }
]
EOF2
EOF

TODO: 2 ప్రొవైడర్లు, 2 BPI, ఏదైనా ఫెయిల్‌ఓవర్

ప్రతిదానితో పాటు, ఒక ప్రొవైడర్‌కు నెట్‌వర్క్‌తో సమస్యలు ఉన్నప్పటికీ, లేదా వారు ఇంటర్నెట్ కోసం చెల్లించడం మర్చిపోయినప్పటికీ, మొదలైనవి మరియు ఇతర మానవ కారకాలు ఉన్నప్పటికీ, నేను ఇద్దరు ప్రొవైడర్‌లకు కనెక్ట్ అవ్వాలని ప్లాన్ చేసాను.

మల్టీ-వాన్ అంశంపై అత్యంత అధునాతన వినియోగదారు అనుభవం వివరించబడింది ఇక్కడ Openwrt క్రింద Mwan3 సిస్టమ్ కోసం. ఈ సొల్యూషన్ రిచ్ ఫంక్షనాలిటీని కలిగి ఉంది, అయితే దీనిని సాధారణంగా మల్టీ-వాన్ కోసం సెటప్ చేయడం మరియు ఆపరేట్ చేయడం చాలా సమస్యాత్మకం. కేవలం ఒక ఉదాహరణ: మీరు ఒకేసారి రెండు IP చిరునామాల నుండి కొన్ని సైట్‌లకు వచ్చినట్లయితే, వారు దానిని ఇష్టపడకపోవచ్చు, వారు పని చేయడం ఆపివేస్తారు => "ఇంటర్నెట్ పని చేయడం లేదు."

ఈ అనుభవాన్ని పరిగణనలోకి తీసుకొని, మల్టీహోమింగ్‌కు ఇంకా ప్రాధాన్యత లేదని, ఫెయిల్‌ఓవర్ మాత్రమే అని నేను నిర్ణయించుకున్నాను. అయినప్పటికీ, Linux యొక్క తాజా సంస్కరణల్లో ప్రతిదీ ఒక ఆదేశంతో పని చేయాలి:

ip route add default 
    nexthop via 192.168.1.1 weight 10 
    nexthop via 192.168.2.1 weight 5

కాబట్టి, ఒక పాయింట్ వైఫల్యాన్ని నివారించడానికి, మేము 2 BPIలను తీసుకుంటాము, ఒక్కొక్కటి ఒక ప్రొవైడర్‌కి కనెక్ట్ చేస్తాము, వాటిని ఒకదానికొకటి కనెక్ట్ చేస్తాము మరియు పక్షులు/OSPF ద్వారా ఒకదానికొకటి డైనమిక్ రూటింగ్‌ను చేస్తాము.

తర్వాత, సేవ అందుబాటులో ఉన్నట్లయితే (ఇంటర్నెట్, DNS) మేము ప్రతి దానిలో ఒకే IP చిరునామాను ప్రచారం చేస్తాము. అంటే, మేము డిఫాల్ట్ మార్గాన్ని మనమే సెట్ చేసుకోము, కానీ పక్షి ద్వారా. నేను పరిష్కారాన్ని గూఢచర్యం చేసాను ఇక్కడ .

ఈ కార్యాచరణ ఇంకా అమలు చేయబడలేదు, కృత్రిమ కరోనావైరస్ ఇక్కడ ఒక ఉపాయం ఆడింది (అన్నీ Aliexpress నుండి రాలేదు; మరొక ఆన్‌లైన్ స్టోర్, Layta, ఒక వారంలో బట్వాడా చేస్తామని వాగ్దానం చేసింది, కానీ ఒక నెల కంటే ఎక్కువ సమయం గడిచింది; రెండవ ప్రొవైడర్‌కు సమయం లేదు దిగ్బంధానికి ముందు కేబుల్‌ను విస్తరించడానికి, కేబుల్ కోసం గోడలోకి డ్రిల్‌లో రంధ్రం మాత్రమే పొందగలిగారు).

R64ని ఎలా ఆర్డర్ చేయాలి

బోర్డు అధికారిక దుకాణంలో ఉంది SinoVoip.
వెంటనే ఆర్డర్ చేయడం కూడా మంచిది:

  • ఆహార + EU లేదా US ప్లగ్ ప్రమాణాన్ని తెలియజేయండి
  • హీట్ సింక్: రేడియేటర్లు/అభిమానులు; ఎందుకంటే CPU మరియు స్విచ్ చిప్ రెండూ వేడెక్కుతున్నాయి
  • వైఫై యాంటెన్నా, ఉదాహరణకు

స్వల్పభేదాన్ని ఉంది - కొంతకాలంగా అధికారిక స్టోర్‌లో డెలివరీ ధర సరిపోదు. మేనేజర్ జూడీ హువాంగ్ ఎటువంటి లోపం లేదని నన్ను ఒప్పించారు మరియు మీరు $5కి ePacketని ఎంచుకోవచ్చు, కానీ రష్యాలో >$33కి EMS మాత్రమే ఉందని నేను చూశాను. అసహ్యకరమైనది, కానీ క్లిష్టమైనది కాదు. అంతేకాకుండా, మీరు డెలివరీ కోసం ఏదైనా ఇతర దేశాన్ని ఎంచుకుంటే (నేను అన్ని ఖండాల గుండా వెళ్లాను), డెలివరీకి ~$5 ఖర్చవుతుంది. రస్సోఫోబ్స్?.. కానీ ఫ్రాన్స్ డెలివరీ ధర కూడా ~30$ అని నేను కనుగొన్నాను మరియు నేను శాంతించాను.

తత్ఫలితంగా, జూడీ ఒక ఆర్డర్ ఇవ్వడానికి ప్రతిపాదించాడు, కానీ చెల్లించలేదు (సూచన: కార్డుపై తక్కువగా ఉంచండి, తద్వారా ఆటోమేటిక్ చెల్లింపు జరగదు); ఆమెకు వ్రాయండి మరియు ఆమె డెలివరీ ధరను సాధారణ స్థాయికి తగ్గిస్తుంది. విజయం.

సమస్యలు

ప్రతిదీ ఇంకా ఖచ్చితంగా పని చేయడం లేదు.

ఉత్పాదకత

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లో ఇది ఒక రోజు తర్వాత ఆగిపోతుంది, ఇలా వ్రాస్తుంది:

sa@bananapir64:~$ dmesg | grep -E 'mt7622_wmac.*timeout'
[470303.802539] mt7622_wmac 18000000.wmac: Message 38 (seq 3) timeout
[470314.042508] mt7622_wmac 18000000.wmac: Message 50 (seq 4) timeout
...

పునఃప్రారంభం మాత్రమే సహాయపడుతుంది. మనం ముందుకు సాగాలి క్రమబద్ధీకరించు.

ఈథర్నెట్

ఈథర్నెట్ పని చేస్తుంది, కానీ R64 నుండి ~XNUMX గంటల ప్యాకెట్లు (DHCP) రావడం ఆగిపోతుంది.
ఇంటర్‌ఫేస్‌ను పునఃప్రారంభించడం సహాయపడుతుంది:

ifdown br0; sleep 30; ifup br0

డ్రైవర్ కొత్తది, ఇది ఇంకా కెర్నల్‌లోకి అంగీకరించబడలేదు, ఇది చైనీస్ లాండెన్ చావో అని నేను ఆశిస్తున్నాను దానిని పూర్తి చేస్తుంది.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి