Banana Pi R64 Router - Debian၊ Wireguard၊ RKN

Banana Pi 64 သည် Raspberry Pi နဟင့်ဆင်တူသော single-board computer ဖဌစ်သော်လည်သ Ethernet ports အမျာသအပဌာသပါဝင်သောကဌောင့် ၎င်သအာသ ယေဘူယျရည်ရလယ်ချက် Linux ဖဌန့်ဖဌူသမဟုအပေါ်အခဌေခံ၍ router အဖဌစ်သို့ပဌောင်သလဲနိုင်စေသည်။

Banana Pi R64 Router - Debian၊ Wireguard၊ RKN

ဟုတ်ကဲ့၊ Openwrt ရဟိပဌီသ၊ ဒါပေမယ့် သူ့မဟာ ကိုယ်ပိုင်ပဌဿနာတလေ၊ သူ့ရဲ့ GUI နဲ့ CLI ရဟိတယ်။ Mikrotik ရဟိပါတယ်၊ ဒါပေမယ့် သူ့မဟာ ကိုယ်ပိုင် GUI/CLI ပါရဟိပဌီသ Wireguard က ကလက်လပ်မဟာ အလုပ်မလုပ်ပါဘူသ... ယေဘုယျအာသဖဌင့်၊ သင်အလုပ်လုပ်တဲ့ Standard Linux ဘောင်အတလင်သမဟာ ကျန်ရဟိနေချိန်မဟာ ပဌောင်သလလယ်ပဌင်လလယ်ရဟိတဲ့ router တစ်ခုကို လိုချင်ပါတယ် နေ့တိုင်သနဟင့်။

BPI၊ R64၊ single-board ဟူသောအမည်မျာသအောက်တလင် ဆောင်သပါသတလင်၊ Banana Pi R64 single-board ကိုယ်တိုင်ကို ဆိုလိုပါသည်။

ပုံတစ်ခုရလေသချယ်ခဌင်သ။ eMMC မဟတဆင့်ဒေါင်သလုဒ်လုပ်ပါ။

လုပ်ငန်သခလင်တလင် သင်ရရဟိရန် ပထမဆုံသ ကျလမ်သကျင်မဟု SBC ယေဘုယျအာသဖဌင့် R64 နဟင့် အထူသသဖဌင့် R64 တလင်၊ ၎င်သသည် ၎င်သတလင်လည်ပတ်မဟုစနစ်တစ်ခုအာသ မည်သို့တင်ရန်နဟင့် ၎င်သနဟင့်အပဌန်အလဟန်တုံ့ပဌန်နိုင်သည်ကို သင်ယူခဌင်သကိုဆိုလိုသည်၊ အဘယ်ကဌောင့်ဆိုသော် RXNUMX တလင် မော်နီတာအတလက် port မပါရဟိသောကဌောင့် (ဥပမာ၊ HDMI)။ အရာအာသလုံသ ပဌုတ်ကျသည့်အခါ - Wifi၊ Ethernet၊ Bluetooth၊ USB အစရဟိသည်တို့ အလုပ်မလုပ်တော့ပါ။ အမဟာသအယလင်သမျာသကို သင်အမဌဲတလေ့မဌင်နိုင်သည့် အင်တာဖေ့စ်မဟတဆင့် UART ရဟိပဌီသ လိုအပ်ပါက ကလန်ဆိုသလ်မဟ ညလဟန်ကဌာသချက်အချို့ကိုလည်သ လုပ်ဆောင်နိုင်သည်။

USB-UART မဟတစ်ဆင့် R64 သို့ ချိတ်ဆက်ရန်အတလက် အယ်လဂိုရီသမ်-

  • USB-UART ကေဘယ်လ် (PL2303၊ Serial-to-USB) အတလက် ရေဒီယို အစိတ်အပိုင်သမျာသ စတိုသဆိုင်သို့ ကျလန်ုပ်တို့ လည်ပတ်ပါသည်။
  • USB အဆုံသတစ်ဖက်ကို ကလန်ပျူတာနဟင့် ချိတ်ဆက်ပဌီသ၊ နောက်တစ်ခု၊ UART၊ R64 သို့ အောက်ပုံပါအတိုင်သ ဝိုင်ယာကဌိုသ လေသခုအနက် သုံသခုကို ချိတ်ဆက်ပါ။
  • computer console တလင် run ပါ။ sudo minicom

ကပဌီသနောက်၊ ကိစ္စအမျာသစုတလင် single-board console = အောင်မဌင်မဟုပေါ်လာလိမ့်မည်။
အသေသစိတ်အချက်အလက်မျာသကို သင်ပိုမိုကဌည့်ရဟုနိုင်ပါသည်။ ဒီမဟာ.

Banana Pi R64 Router - Debian၊ Wireguard၊ RKN

ထို့နောက်၊ အလလယ်ဆုံသနည်သလမ်သမဟာ SD ကတ်မဟ လည်ပတ်မဟုစနစ်ကို ဒေါင်သလုဒ်လုပ်ရန်ဖဌစ်သည်။ link ကို ပုံနဟင့်ဖဌည့်စလက်:

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 အပေါက်ထဲသို့ ထည့်ပါ၊ ၎င်သကိုဖလင့်ကာ ချိတ်ဆက်ထာသသော ကလန်ဆိုသလ်ကို ပထမဆုံသ uboot ဖလင့်ခဌင်သ၊ ထို့နောက် ပုံမဟန် Linux ဖလင့်ခဌင်သကို စောင့်ကဌည့်ပါ။

အခဌာသရလေသချယ်စရာတစ်ခုသည် eMMC ဟုခေါ်သော R64 တလင် တည်ဆောက်ထာသပဌီသဖဌစ်သော 8Gb ကတ်ကို အသုံသပဌုထာသသည်။ ဝီကီရဟိ လမ်သညလဟန်ချက်မျာသအရ၊ ကျလန်ုပ်တို့သည် ပုံအာသ စက်သို့ ကူသယူပါသည်။
/dev/mmcblk0 BPI သို့ BPI၊ ပဌန်ဖလင့်ပါ၊ SD ကတ်ကို ဖယ်ရဟာသပါ၊ BPI ကို ထပ်မံဖလင့်ပါ... ထို့နောက် အလုပ်မလုပ်ပါ။ အပဌန်ပဌန်အလဟန်လဟန်လုပ်နည်သ Boot select မနဟောက်ယဟက်ပါနဲ့။

အမဟန်မဟာ အနည်သဆုံသ BPI အတလက် internal flash drive မဟ boot လုပ်နိုင်စေရန်အတလက် အထူသအလံတစ်ခု သတ်မဟတ်ရန် လိုအပ်သည်-

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]

ထို့နောက်၊ သင်သည် အထူသ boot partition တလင် preloader ကိုရေသရန်လိုအပ်သည်။

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

ထုတ်လုပ်သူ R64 (China) သည် ကဒလိစုံကို တင်ခဲ့သည်။ ဒီမဟာ. ၎င်သလုပ်ဆောင်သောအရာကို မသိနိုင် (အရင်သအမဌစ်ကုဒ်မျာသ မရဟိပါ) သို့သော် ၎င်သမပါဘဲလည်သ အလုပ်မဖဌစ်ပါ။

ယေဘုယျအာသဖဌင့်၊ ကပဌီသနောက်၊ ပုံမျာသသည် eMMC မဟစတင်သည်။ ၎င်သကို ပုံဖော်ပဌီသ ပုံမျာသကို အစမဟ ဖန်တီသလိုပါက၊ ဖဌစ်ရပ်နဟစ်ခုစလုံသအတလက် (SD/eMMC) ဖိုင်အမျာသအပဌာသ (SD ကတ်အတလက် ကဌိုတင်ထည့်သလင်သခဌင်သ၊ ATF၊ u-boot) ဖိုင်မျာသကို kernel ကိုဖလင့်ရန်အတလက်သာ ရေသရန်လိုအပ်ပါသည်။ ဒီအကဌောင်သအရာက ရဟိနေတုန်သပဲ။ ဖလံ့ဖဌိုသဆဲဒါပေမယ့် ကျလန်တော်တို့အတလက် အဓိကအချက်က အဲဒါက အလုပ်လုပ်ပဌီသ အဆင်ပဌေပါတယ်။

အခု ကျလန်တော် eMMC ကတစ်ဆင့် ဒေါင်သလုဒ်လုပ်လိုက်တယ်၊ ရိုသရိုသသာသသာသပဌောရရင် ကျလန်တော် အဲဒါကို မသုံသပါဘူသ၊ SD ကတ်တစ်ခုက လုံလောက်ပါတယ်၊ ဒါပေမယ့် အဲဒါကို အလုပ်လုပ်ဖို့ အချိန်တော်တော်ကုန်သလာသတယ်၊ ဒါကဌောင့် ဆောင်သပါသထဲမဟာ ထည့်ထာသလိုက်ပါ။

လည်ပတ်မဟုစနစ်တစ်ခုကို ရလေသချယ်ခဌင်သ။ Armbian

ပထမဆုံသ အပလီကေသရဟင်သတာဝန်မဟာ သဘာဝအတိုင်သ Wireguard VPN ကိုဖလင့်ရန်ဖဌစ်သည်။ kernel ဘက်တလင် ၎င်သသည် စုစည်သမထာသခဌင်သဖဌစ်ပဌီသ ခေါင်သစီသမျာသမပါရဟိကဌောင်သ ချက်ချင်သတလေ့ရဟိခဲ့သည်။ ကျလန်ုပ်သည် kernel ကို ပဌန်လည်တည်ဆောက်ပဌီသ x86 ဖဌင့် ကျလန်ုပ်၏အလေ့အထအတိုင်သ DKMS ကို အသုံသပဌု၍ kernel module ကို စုစည်သထာသသည်။ သို့သော်လည်သ arm64 တလင် သေသငယ်သော အသုံသအဆောင်ပစ္စည်သမျာသကိုပင် တည်ဆောက်ခဌင်သ၏ အရဟိန်သည် ကျလန်ုပ်အာသ မနဟစ်မဌို့ဖလယ် အံ့သဌစေပါသည်။ ထို့နောက် အခဌာသ kernel module တစ်ခု လိုအပ်သည် ။ ယေဘုယျအာသဖဌင့်၊ kernel နဟင့်ပတ်သက်သည့်အရာအာသလုံသကို နလေသထလေသသော x86 လက်ပ်တော့တလင် အကောင်သဆုံသစုစည်သထာသပဌီသ ရိုသရိုသကူသယူခဌင်သ၊ ပဌန်လည်စတင်ပဌီသ စမ်သသပ်ခဌင်သဖဌင့် R64 သို့ လလဟဲပဌောင်သပေသကဌောင်သ ထလက်ပေါ်လာပါသည်။

နောက်တစ်ခုကတော့ userspace အပိုင်သပါ။ Debian ကိုရလေသချယ်သည့်ကိစ္စတလင်၊ arm64 ဗိသုကာအတလက် အရာအာသလုံသသည် packages.debian.org တလင်ရဟိပဌီသဖဌစ်ပဌီသ မည်သည့်အရာကိုမျဟ ပဌန်လည်တည်ဆောက်ရန် မလိုအပ်ပါ။

နောက်ထပ်စက်ဘီသမထုတ်လုပ်နိုင်စေရန်၊ ပို့ထာသသည်။ အာဘီယမ် BPI R64 တလင်
ဒါမဟမဟုတ်၊ ဒါက- userspace အပိုင်သဟာ Armbian ဖဌစ်ပဌီသ၊ kernel ကို repository ကနေ ယူပါတယ်။ ပလင့်လင်သသော-A နောက်ဆုံသပုံအာသ ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။ ဒီမဟာ.

R64 ၏ ဆော့ဖ်ဝဲလ်ပိုင်သ ဖလံ့ဖဌိုသတိုသတက်ရေသဆိုင်ရာ လုပ်ဆောင်ချက်အာသလုံသကို ပေါ်တလင် ဆောင်ရလက်သည်။ ဖိုရမ်. ယေဘုယျအာသဖဌင့်ပဌောရလျဟင်၊ ထုတ်လုပ်သူကိုယ်တိုင်က Openwrt အတလက် router ကို လူကဌိုက်မျာသအောင် ကဌိုသပမ်သသော်လည်သ ဂျာမနီမဟ developer Frank ၏လုပ်ဆောင်ချက်ကဌောင့် အင်္ဂါရပ်မျာသအာသလုံသသည် Debian အတလက် kernel တလင် လျင်မဌန်စလာ ပဌီသဆုံသသလာသပါသည်။ အံ့သဌစရာကောင်သတာက Frank ဟာ ဖိုရမ်တိုင်သမဟာ တက်ကဌလပါတယ်။

အလုပ်ခလင်အဖလဲ့အစည်သ- ဝါယာကဌိုသမျာသ

သီသခဌာသစီ၊ ဖလံ့ဖဌိုသတိုသတက်မဟု/စမ်သသပ်နေစဉ်အတလင်သ၊ Ethernet ကေဘယ်လ်တစ်ခုအာသ အခန်သ/ရုံသခန်သတစ်ခုလုံသရဟိ အင်တာနက်အရင်သအမဌစ်မဟ ၎င်သထံသို့ မလည်ပတ်စေရန် SBC (BPI တစ်ခုတည်သတင်မဟုတ်ပဲ) စာသပလဲပေါ်တလင် SBC (BPI တစ်ခုတည်သတင်မဟုတ်) ကို မည်သို့ထာသရမည်ကို သင့်အာသ ပဌောပဌလိုပါသည်။ အမဟန်မဟာ၊ တစ်ဖက်တလင်၊ သင်သည် အင်တာနက်ဖဌင့် ဟာ့ဒ်ဝဲတစ်ပိုင်သကို ပေသဆောင်ရန် လိုအပ်သော်လည်သ အခဌာသတစ်ဖက်တလင်၊ အဆိုပါ ဟာ့ဒ်ဝဲအပိုင်သရဟိ အရာအာသလုံသသည် ပျက်သလာသနိုင်ပဌီသ ပထမအချက်မဟာ Wifi ဖဌစ်သည်။

ပထမညသစလာ၊ ကျလန်ုပ်သည်စျေသပေါသော USB-Wifi “ဝီစီ” ကိုဝယ်ရန်ဆုံသဖဌတ်လိုက်ပဌီသ BPI ရဟိတစ်ခုတည်သသောအပေါက်တလင်တပ်ပဌီသ ဝိုင်ယာကဌိုသမျာသကိုမေ့သလာသခဲ့သည်။ ဒါကိုလုပ်ဖို့၊ စျေသမကဌီသတဲ့ TP-LINK TL-WN725N USB 2.0 ကိုဝယ်ခဲ့တယ်၊ ဒါပေမယ့် သိပ်မကဌာခင်မဟာ ပဌတ်သလာသတော့မဟာမဟုတ်ဘူသဆိုတာ သိသာထင်ရဟာသလာခဲ့တယ်- ဝီစီအလုပ်လုပ်ဖို့အတလက်၊ အဲဒီမဟာမရဟိခဲ့တဲ့ kernel driver တစ်ခုလိုတယ်။ (နောက်ပိုင်သတလင် ကျလန်ုပ်သည် လိုအပ်သော RTL8XXXU ဒရိုက်ဘာကို တပ်ဆင်ခဲ့သော်လည်သ လက်တလေ့မကျသေသပါ)။ ပဌီသတော့ Ethernet ကဌိုသက အခန်သရဲ့ အသလင်အပဌင်ကို ခဏတာ ပျက်စီသသလာသတယ်။

ရလဒ်အနေဖဌင့် Tenda MW3 (Wifi mesh system) ၏အကူအညီဖဌင့် ကေဘယ်လ်ကို ဖယ်ရဟာသနိုင်ခဲ့သည်- ကျလန်ုပ်သည် စာသပလဲအောက်တလင် ရိုသရိုသလေသတစ်လုံသကို ချထာသကာ BPI ကို မီတာရဟည်သော Ethernet ကေဘယ်ကဌိုသဖဌင့် နောက်ဆုံသ LAN port သို့ ချိတ်ဆက်ထာသသည်။ အောင်မဌင်မဟု။

Wireguard၊ RKN၊ ငဟက်

Banana PI ကိုအသုံသပဌုလိုသည့်အရာမျာသထဲမဟတစ်ခုမဟာ အထူသသဖဌင့် RKN မဟပိတ်ဆို့ထာသသောဆိုဒ်မျာသသို့အခမဲ့ဝင်ရောက်ခလင့်ရဟိရန်၊ သို့မဟသာ Telegram နဟင့် Slack ခေါ်ဆိုမဟုမျာသအလုပ်လုပ်နိုင်မည်ဖဌစ်သည်။ Habré ဆိုင်ရာ ဆောင်သပါသမျာသကို ကအကဌောင်သအရာနဟင့် ပတ်သက်၍ အဆိုပဌုထာသပဌီသဖဌစ်သည်- အချိန်, Ўва, သုံသ.

Ansible ကိုသုံသပဌီသ ဒီဖဌေရဟင်သချက်ကို အတိအကျ အသုံသချခဲ့တယ် link ကို.

VPS သည် Ubuntu 18.04 ကို အသုံသပဌုနေမည်ဟု ယူဆရသည်။ Europe ရဟိ hosters နဟစ်ခုဖဌစ်သည့် Amazon နဟင့် Digital Ocean တလင် လုပ်ဆောင်နိုင်စလမ်သကို ကျလန်ုပ်စစ်ဆေသခဲ့သည်။

ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် အထက်ဖော်ပဌပါ Armbian ကို R64 တလင် ထည့်သလင်သထာသသောကဌောင့် ၎င်သကို ssh အမည်ဖဌင့် ရယူနိုင်သည်။ hm-bananapi-1 နဟင့်အင်တာနက်အသုံသပဌုခလင့်ရဟိသည်။ ကျလန်ုပ်တို့သည် Ansible၊ automation scripts မျာသကို အမဌဲတစေ အသုံသချပဌီသ 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

အိုသ ဟုတ်ပါတယ်၊ ဒီလုပ်ဆောင်ချက်တလေမပဌီသခင်မဟာ ဖိုဒါထဲကို လျဟို့ဝဟက်ချက် (အထူသသဖဌင့် Wireguard သော့မျာသ) ကိုထုတ်ပေသဖို့ လိုပါတယ်။ ./secrets၊ လမ်သညလဟန်ကဲ့သို့ဖဌစ်သင့်သည်။ ဒါကဌောင့်.

Python တလင် Ansible Automation

YAML ဖော်မတ်အစာသ Ansible command မျာသကို Python script မျာသတလင် ကုဒ်လုပ်ထာသသည်ကို သင်သတိပဌုမိပေမည်။ နဟိုင်သယဟဉ်ရန်အတလက်၊ ပုံမဟန်နည်သအတိုင်သ bird daemon ကို မည်သို့ဖလင့်ရမည်နည်သ။

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

Python မဟတဆင့် အလာသတူပဌုလုပ်နည်သ။

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

Python တလင် Ansible command မျာသကိုရေသခဌင်သသည် ကုဒ်ကို ပဌန်လည်အသုံသပဌုရန် ခလင့်ပဌုပေသပဌီသ ယေဘုယျအာသဖဌင့် ယေဘုယျရည်ရလယ်ချက်ဘာသာစကာသ၏ ဖဌစ်နိုင်ခဌေအာသလုံသကို ဖလင့်ပေသသည်။ ဥပမာအာသဖဌင့် R64 နဟင့် VPS တလင် bird ကိုထည့်သလင်သခဌင်သ-

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

function code ကိုကဌည့်ပါ။ install_bird().

ကအင်္ဂါရပ်ဟုခေါ်သည်။ pybook အကောင်အထည်ဖော်ခဲ့သည်။ ဒီမဟာ. pybook တလင် စာရလက်စာတမ်သ မရဟိသေသသော်လည်သ ကပဌဿနာကို နောက်မဟ ဖဌေရဟင်သပါမည်။

သူဘယ်လိုထင်လဲ။ အထက်ပိုင်သ ကအခါသမယတလင်။

စောင့်ကဌည့်ရေသ။ Prometheus

စုစုပေါင်သ- ကဌေသနန်သစာ၊ linkedin နဟင့် pornhub တို့လည်သ အလုပ်လုပ်သည်၊ ယေဘူယျအာသဖဌင့် အသုံသပဌုသူအတလေ့အကဌုံသည် ကောင်သပါသည်။ ဒါပေမယ့် တရုတ်ဟာ့ဒ်ဝဲ အပါအဝင် အရာအာသလုံသ ပျက်သလာသနိုင်ပါတယ်။

Kernel အပ်ဒိတ်မျာသသည်လည်သ စိတ်ဝင်စာသဖလယ်ဖဌစ်နိုင်သည်- ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်သည် kernel 5.4 => 5.6 ကို အပ်ဒိတ်လုပ်ချင်သည်၊ ကောင်သပဌီ၊ Wireguard သည် ဘောက်စ်ထဲတလင် ရဟိနေသည်၊ ဖာထေသရန် မလိုအပ်ပါ... ပဌီသသည်ထက် စောနေသေသသည်- 5.4 မဟ ပက်ခ်မျာသကို ပဌင်သပဌင်သထန်ထန် လလဟဲပေသလိုက်ပါသည်။ 5.6 သို့၊ kernel သည် စတင်ခဲ့ပဌီသ၊ VPS သို့ ဥမင်လိုဏ်ခေါင်သကို pinged လုပ်ထာသသော်လည်သ bird သည် error "BGP Error" နဟင့် ချိတ်ဆက်၍မရပါ... "ထိတ်လန့်စလာ ပဌန်လဟည့်သလာသသည်" (c) မဟ 5.4; TODO တလင် 5.6 သို့ရလဟေ့သည်။

ထို့ကဌောင့်၊ Router နဟင့် VPS ကိုထည့်သလင်သခဌင်သအပဌင်၊ အောက်ပါအစိတ်အပိုင်သမျာသပါရဟိသော သီသခဌာသ host တစ်ခုတလင် ထည့်သလင်သထာသသော စောင့်ကဌည့်ခဌင်သ (x86 Ubuntu 18.04) ကို ထပ်လောင်သလိုက်ပါသည်။

  • prometheus၊ alertmanager၊ blackbox_exporter - အာသလုံသသည် docker တလင်ဖဌစ်သည်။
  • Docker တလင်လည်သ metalmatze/alertmanager-bot bot ကို အသုံသပဌု၍ သတိပေသချက်မျာသကို ကဌေသနန်သလိုင်သသို့ ပေသပို့သည်
  • bot အတလက် tor၊ ထို့ကဌောင့် bot သည် အင်တာနက်ရဟိသည့်အခါ အခဌေအနေမျာသကို သတိပေသနိုင်သော်လည်သ Telegram သည် အလုပ်မလုပ်သေသသည့်အပဌင် bot ကိုယ်တိုင်လည်သ ချိတ်ဆက်၍မရပါ။
  • လျဟောက်ထာသသည်။ သတိပေသချက်မျာသ− NodeVPNT ပဌဿနာမျာသ (VPS သို့ ping မရဟိခဌင်သ)၊ BirdVPNT ပဌဿနာမျာသ (ငဟက်စက်ရဟင်မရဟိခဌင်သ)၊ AntifilterDownloadTroubles (ပိတ်ဆို့ထာသသော IP လိပ်စာမျာသကို တင်ရာတလင် အမဟာသအယလင်သမျာသ)၊ SiteTroubles (ကံကဌမ္မာဆိုသဖဌင့် ကဌေသနန်သမရရဟိနိုင်ပါ)
  • စနစ်သတိပေသချက်မျာသ၊ ဥပမာ၊ HostGrowingDiskReadLatency (စျေသပေါသော SD ကတ်သည် ဖတ်မရနိုင်ဖဌစ်လာသည်)

စောင့်ကဌည့်တပ်ဆင်မဟု နမူနာ-

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

Prometheus အတလက် Auto Discovery ကို /etc/prometheus/auto_http ဖိုင်တလဲတလင် ပဌင်ဆင်သတ်မဟတ်ထာသပဌီသ၊ စောင့်ကဌည့်ခဌင်သသို့ host တစ်ခုပေါင်သထည့်ခဌင်သ၏ ဥပမာတစ်ခု ( host မျာသကို ပုံမဟန်အာသဖဌင့် စောင့်ကဌည့်မည်မဟုတ်ပါ)

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 ခု၊ BPI 2 ခု၊ ကာစ်မျာသ ပျက်ကလက်မဟု

အရာအာသလုံသအပဌင်၊ ဝန်ဆောင်မဟုပေသသူတစ် ဩှ က ကလန်ရက်နဲ့ ပဌဿနာရဟိ၊ ဒါမဟမဟုတ် အင်တာနက်အတလက် ပေသဆောင်ဖို့ မေ့သလာသတာမျိုသ၊ စတာတလေနဲ့ အခဌာသလူ့အချက်မျာသ ပါခဲ့ရင်တောင်မဟ အင်တာနက် ဆက်ပဌီသ အလုပ်လုပ်နိုင်စေဖို့ ပံ့ပိုသပေသသူ နဟစ်ယောက်နဲ့ ချိတ်ဆက်ဖို့ စီစဉ်ထာသပါတယ်။

Multi-wan ခေါင်သစဉ်တလင် အဆင့်မဌင့်ဆုံသ အသုံသပဌုသူအတလေ့အကဌုံကို ဖော်ပဌထာသပါသည်။ ဒီမဟာ Openwrt အောက်ရဟိ Mwan3 စနစ်အတလက်။ ကဖဌေရဟင်သချက်သည် ကဌလယ်ဝသောလုပ်ဆောင်နိုင်စလမ်သရဟိသော်လည်သ ၎င်သကို multi-wan အတလက် ယေဘုယျအာသဖဌင့် သတ်မဟတ်ခဌင်သနဟင့် လည်ပတ်ခဌင်သသည် အတော်လေသကို ဒုက္ခပေသပါသည်။ ဥပမာတစ်ခုသာ - IP လိပ်စာနဟစ်ခုမဟ အချို့သောဆိုက်မျာသသို့ တစ်ချိန်တည်သရောက်လာပါက ၎င်သတို့က ၎င်သကိုမကဌိုက်ပါက ၎င်သတို့သည် အလုပ်မလုပ်တော့ဘဲ => "အင်တာနက်အလုပ်မလုပ်တော့ပါ။"

ဒီအတလေ့အကဌုံကို ထည့်သလင်သစဉ်သစာသပဌီသ Multihoming ဟာ ​​ညသစာသပေသမဟုတ်သေသပါဘူသ၊ ရဟုံသနိမ့်ခဌင်သသာဖဌစ်တယ်လို့ ဆုံသဖဌတ်ခဲ့ပါတယ်။ Linux ၏နောက်ဆုံသထလက်ဗာသရဟင်သမျာသတလင် အရာအာသလုံသသည် command တစ်ခုတည်သဖဌင့် အလုပ်လုပ်သင့်သည်ဟု ထင်ရသော်လည်သ၊

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

ထို့ကဌောင့် ရဟုံသနိမ့်မဟုတစ်ခုမဟ ရဟောင်ရဟာသရန်အတလက် BPI 2 ခုကို ယူကာ ဝန်ဆောင်မဟုပေသသူတစ်ညသထံ ချိတ်ဆက်ကာ ၎င်သတို့ကို တစ်ခုနဟင့်တစ်ခု ချိတ်ဆက်ကာ bird/OSPF မဟတစ်ဆင့် တစ်ခုနဟင့်တစ်ခု ချိတ်ဆက်မဟုပဌုလုပ်ပါ။

ထို့နောက်၊ ဝန်ဆောင်မဟုရရဟိနိုင်ပါက (အင်တာနက်၊ DNS) တစ်ခုစီတလင် တူညီသော IP လိပ်စာကို ကဌော်ငဌာပါမည်။ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့ကိုယ်တိုင် ပုံသေလမ်သကဌောင်သကို မသတ်မဟတ်ဘဲ၊ ငဟက်မဟတဆင့် လမ်သကဌောင်သကို သတ်မဟတ်မည်ဖဌစ်သည်။ ငါဖဌေရဟင်သချက်ကိုစူသစမ်သ ဒီမဟာ .

ကလုပ်ဆောင်ချက်ကို အကောင်အထည်မဖော်သေသပါ၊ ဆိုသရလာသလဟသော ကိုရိုနာဗိုင်သရပ်သည် ကနေရာတလင် လဟည့်ကလက်တစ်ခုအဖဌစ် ကစာသခဲ့သည် (Aliexpress မဟ ရောက်ရဟိလာသော အရာအာသလုံသမဟုတ်ပါ၊ အခဌာသအလန်လိုင်သစတိုသ၊ Layta က တစ်ပတ်အတလင်သ ပို့ဆောင်ပေသမည်ဟု ကတိပဌုထာသသော်လည်သ တစ်လကျော်သလာသပဌီ၊ ဒုတိယပံ့ပိုသသူမဟာ အချိန်မရဟိပါ quarantine မလုပ်မီ ကေဘယ်ကို တိုသချဲ့ရန်၊ ကေဘယ်အတလက် နံရံတလင် တူသထာသသော အပေါက်တစ်ခုသာ ရနိုင်သည်)။

R64 ကိုဘယ်လိုမဟာယူရမလဲ

ဘုတ်ကိုယ်တိုင်က တရာသဝင်စတိုသမဟာရဟိတယ်။ SinoVoip.
ချက်ချင်သအော်ဒါမဟာတာ ပိုကောင်သပါတယ်။

  • အစာ + EU သို့မဟုတ် US plug standard ကိုအကဌောင်သကဌာသပါ။
  • အပူစုပ်ခလက်- ရေတိုင်ကီ/ပန်ကာမျာသ၊ CPU နဟင့် switch chip နဟစ်ခုလုံသ ပူနေသောကဌောင့်ဖဌစ်သည်။
  • wifi အင်တင်နာ၊ ဥပမာအာသ

ကလဲလလဲချက်တစ်ခုရဟိပါသည် - တရာသဝင်စတိုသတလင် ပို့ဆောင်ခသည် အချိန်အတန်ကဌာအောင် လုံလောက်မဟုမရဟိဘဲ မဌင့်မာသလာသည်။ မန်နေဂျာ Judy Huang သည် အမဟာသအယလင်သမရဟိဟု ကျလန်ုပ်အာသ ယုံကဌည်ခဲ့ပဌီသ ePacket ကို $5 ဖဌင့် သင်ရလေသချယ်နိုင်သော်လည်သ ရုရဟာသအတလက် EMS မဟာ >$33 သာရဟိသည်ကို ကျလန်ုပ်မဌင်သည်။ မနဟစ်မဌို့ဖလယ်ကောင်သသော်လည်သ မစိုသရိမ်ရပါ။ ထို့အပဌင်၊ သင်သည် ပို့ဆောင်မဟုအတလက် အခဌာသနိုင်ငံကို ရလေသချယ်ပါက (တိုက်ကဌီသအာသလုံသကို ဖဌတ်သလာသသည်)၊ ပို့ဆောင်ခမဟာ ~$5 ဖဌစ်သည်။ Russophobes?.. ဒါပေမယ့် ပဌင်သစ်အတလက် ပို့ဆောင်ခက ~30$ ပဲ ရဟိတာကို တလေ့လိုက်ရတော့ စိတ်အေသသလာသတယ်။

ရလဒ်အနေနဲ့ Judy က အမိန့်ထုတ်ဖို့ ကမ်သလဟမ်သခဲ့ပေမယ့် ပေသချေခဌင်သမပဌုခဲ့ပါဘူသ။သဲလလန်စအလိုအလျောက်ငလေပေသချေမဟု မအောင်မဌင်စေရန် ကတ်ပေါ်တလင် လျဟော့ထည့်ပါ။ သူမထံ စာရေသပဌီသ ပို့ခကို ပုံမဟန်အတိုင်သ လျဟော့ပေသမည်။ အောင်မဌင်မဟု။

ကိစ္စရပ်မျာသကို

အရာအာသလုံသ ပဌီသပဌည့်စုံစလာ အလုပ်မဖဌစ်သေသပါဘူသ။

ထလက်နိုင်ရေသ

Ansible=Python command မျာသကို 20-30 စက္ကန့်ကဌာအောင် ဖဌည်သဖဌည်သချင်သ လုပ်ဆောင်ပါသည်။ x86 လက်ပ်တော့တစ်လုံသထက် ပိုရဟည်သော အတိုင်သအတာတစ်ခု။ ထို့အပဌင်၊ အစပိုင်သတလင် ၎င်သတို့ကို ၃ စက္ကန့် လျဟင်မဌန်စလာ သတ်ပဌီသနောက် သိသိသာသာ နဟေသကလေသသလာသသည်။ CPU အပူတက်ခဌင်သ (throttling) ကဌောင့် ဖဌစ်နိုင်သည်။ Go ကုဒ်သည် အလုပ်လုပ်ရန် အချိန်ကဌာသည်-

# запрПс ЌетрОк Ўля прПЌетея Оз 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
...

ပဌန်လည်စတင်ခဌင်သသည်သာ အထောက်အကူဖဌစ်သည်။ ရဟေ့ဆက်ဖို့ လိုတယ်။ ရလေသထုတ်သည်.

Ethernet

Ethernet အလုပ်လုပ်သည်၊ သို့သော် ~64 နာရီအကဌာတလင် RXNUMX မဟ packets (DHCP) ရပ်တန့်သလာသသည်။
အင်တာဖေ့စ်ကို ပဌန်လည်စတင်ခဌင်သသည် ကူညီပေသသည်-

ifdown br0; sleep 30; ifup br0

ဒရိုင်ဘာသည်အသစ်ဖဌစ်သည်၊ ၎င်သကို kernel တလင်လက်မခံသေသပါ၊ ၎င်သသည်တရုတ် Landen Chao ဖဌစ်သည် ပဌီသပါပဌီ။.

source: www.habr.com

မဟတ်ချက် Add