Banana Pi 64 แแ แแก Raspberry Pi-แก แแกแแแแกแ แแ แแแแ แขแแแแ แแแแแแฃแขแแ แ, แแแแ แแ แ แแแแแแแแ Ethernet แแแ แขแแ, แ แแช แจแแกแแซแแแแแแก แฎแแแก แแแก แ แแฃแขแแ แแ แแแแแฅแชแแแแก แแแแฃแฅแกแแก แแแแแแ แแแกแขแ แแแฃแชแแแก แกแแคแฃแซแแแแแ.
แแแแฎ, แฃแแแ แแ แกแแแแแก Openwrt, แแแแ แแ แแแก แแฅแแก แแแแแกแ แแ แแแแแแแแ, แแแกแ GUI แแ CLI; แแ แแก Mikrotik, แแแแ แแ แแกแแ แแแแแกแ GUI/CLI แแฅแแก แแ Wireguard แแ แแแแแแแก... แแแแแแแ, แแแฅแแแแ แแแ แแแแขแ แแแแก แแฅแแแ แ แแฃแขแแ แ แแแแแ แกแขแแแแแ แขแฃแแ แแแแฃแฅแกแแก แคแแ แแแแแจแ แแแ แฉแแก, แ แแแแแกแแช แจแแ แแฃแจแแแ. แงแแแแ แแฆแแกแแแ แแ แแแ.
แกแขแแขแแแจแ แกแแฎแแแฌแแแแแแ BPI, R64, แแ แแ แแแคแ, แแแแแแก แแแฃแแแกแฎแแแ - แแแแแ Banana Pi R64 แแ แแ แแแคแ.
แกแฃแ แแแแก แแ แฉแแแ. แฉแแแแขแแแ แแแ eMMC-แแก แกแแจแฃแแแแแแ
แแแ แแแแแแ แฃแแแ แ, แ แแแแแแช แฃแแแ แจแแแซแแแ แแฃแจแแแแแกแแก
แแแแแ แแแแ R64-แแแ USB-UART-แแ แแแกแแแแแจแแ แแแแแ:
- แฉแแแ แแแแแแแแ แ แ แแแแแก แแแฌแแแแแแก แแแฆแแแแแจแ USB-UART แแแแแแแกแแแแก (PL2303, Serial-to-USB)
- แแแแแแแจแแ แแ แแ แแ USB แแแแ แแแแแแฃแขแแ แแแ, แฎแแแ แแแแ แ, UART, R64-แแ, แแแฎแ แกแแแแแแ, แ แแแแ แช แฅแแแแแ แแแชแแแฃแ แกแฃแ แแแแ.
- แแแจแแแแ แแแแแแฃแขแแ แแก แแแแกแแแจแ
sudo minicom
แแแแก แจแแแแแ, แฃแแแขแแก แจแแแแฎแแแแแจแ แแแแแฉแแแแแ แแ แแ แแแคแแก แแแแกแแแ = แฌแแ แแแขแแแ.
แแแขแแก แแแฎแแ แจแแแแซแแแแ
แจแแแแแแ, แฃแแแ แขแแแแกแ แแแแ แแแแ แแชแแฃแแ แกแแกแขแแแแก แฉแแขแแแ แแแ 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 แกแแแขแจแ, แฉแแ แแแแ แแแก แแ แแแแแแ แแแแแ แแแแแแจแแ แแแฃแแ แแแแกแแแแก แฉแแขแแแ แแแแก แฏแแ uboot, แจแแแแแ แแ แกแขแแแแแ แขแฃแแ Linux-แแก แฉแแขแแแ แแแแก.
แฉแแขแแแ แแแแก แแแขแแ แแแขแแฃแแ แแแ แแแแขแแ R64-แจแ แฃแแแ แฉแแจแแแแแฃแแ 8 แแ แแแ แแแแก แแแแแงแแแแแ, แกแแฎแแแฌแแแแแแ eMMC. แแแแแจแ แแแชแแแฃแแ แแแกแขแ แฃแฅแชแแแก แแแฎแแแแแ, แฉแแแ แแแแแแแ แแแ แกแฃแ แแแก แแแฌแงแแแแแแแแแ
/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]
แจแแแแแแ, แแฅแแแ แฃแแแ แฉแแฌแแ แแ 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-แแ (แฉแแแแแ) แแแแแแฅแแแงแแ แแก แแแแแ แ
แแแแแแแ, แแแแก แจแแแแแ, แกแฃแ แแแแแแก แฉแแขแแแ แแแ แแฌแงแแแ eMMC-แแแ. แแฃ แแกแฃแ แ แแแแ แแแแแ แแ แจแแฅแแแแ แกแฃแ แแแแแ แแฃแแแแแ, แแแจแแ แแ แแแ แจแแแแฎแแแแแจแ (SD/eMMC) แแฅแแแ แฃแแแ แแแฌแแ แแ แแแแแ แ แแแแแแแแ แคแแแแ (preloader SD แแแ แแแแกแแแแก, ATF, u-boot) แแฎแแแแ แแแ แแแแก แฉแแขแแแ แแแแแแ. แแก แแแแ แฏแแ แแแแแ แแ แแก
แแฎแแ แแแแแแแฌแแ eMMC-แแก แกแแจแฃแแแแแแ, แแแ แแแแ แแแแฎแ แแ, แแ แแแงแแแแ, แกแแแแแ แแกแแ SD แแแ แแแ, แแแแ แแ แกแแแแแแ แแแแ แแ แ แแแแฎแแ แฏแ แแแก แแฃแจแแแแแจแ, แแกแ แ แแ แกแขแแขแแแจแ แแงแแก.
แแแแ แแชแแฃแแ แกแแกแขแแแแก แจแแ แฉแแแ. แแ แแแแแแ
แแแ แแแแ แแแแแแแชแแแก แแแแชแแแแ VPN-แแก แแแจแแแแ, แแฃแแแแ แแแแ Wireguard. แแแจแแแแ แแแแ แแแ, แ แแ แแแ แแแแก แแฎแแ แแก แแก แแ แแงแ แแฌแงแแแแแ แแ แแ แแงแ แกแแแแฃแ แแแ. แแ แแฆแแแแแแแ แแแ แแแ แแ, แ แแแแ แช แฉแแแ แฉแแแแแ x86-แแแ แแแแแแจแแ แแแแ, แแแแฌแงแ แแแ แแแแก แแแแฃแแ DKMS-แแก แแแแแงแแแแแแ. แแฃแแชแ arm64-แแ แแชแแ แ แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแจแแแแแแก แกแแฉแฅแแ แแ แฃแกแแแแแแแแ แแแแแแชแ. แจแแแแแ แแ แกแฎแแ แแแ แแแแก แแแแฃแแ แแงแ แกแแญแแ แ แแ แ.แจ. แแแแแแแ, แแแแแแแก, แ แแ แแแ แแแแแ แแแแแแจแแ แแแฃแแ แงแแแแแคแแ แ แกแแฃแแแแแกแแ แแ แแก แแฌแงแแแแแ แแแแ x86 แแแแขแแแแ, แจแแแแแ แแแแแแชแแแ R64-แแ แแแ แขแแแ แแแแแ แแแแ, แแแแแขแแแ แแแ แแ แขแแกแขแแ แแแ.
แแแแแ แแ แแ แ แแ แแ แแก แแแแฎแแแ แแแแแก แกแแแ แชแแก แแแฌแแแ. แฉแแแ Debian-แแก แแ แฉแแแแก แจแแแแฎแแแแแจแ, arm64 แแ แฅแแขแแฅแขแฃแ แแกแแแแก แงแแแแแคแแ แ แฃแแแ แแ แแก packages.debian.org-แแ แแ แแ แแคแ แแก แฎแแแแฎแแ แแจแแแแแ แแ แแ แแก แกแแญแแ แ.
แแแแกแแแแก, แ แแ แกแฎแแ แแแแแกแแแแแ แแ แแแแแแแแแก, แ
แฃแคแ แ แกแฌแแ แแ, แแก: แแแแฎแแแ แแแแแก แกแแแ แชแแก แแแฌแแแ แแ แแก Armbian, แฎแแแ แแแ แแแ แแฆแแแฃแแแ แกแแชแแแแแแ
แงแแแแ แแฅแขแแแแแ R64-แแก แแ แแแ แแแฃแแ แแแฌแแแแก แจแแแฃแจแแแแแแแ แแแแแแแแ แแแแก
แกแแแฃแจแแ แกแแแ แชแแก แแ แแแแแแแชแแ: แแแแแฃแแแแ
แชแแ-แชแแแแ, แแแแแ แแแแฎแ แแ, แแฃ แ แแแแ , แแแแแแแแ แแแแก/แขแแกแขแแ แแแแก แแ แแก, แแแแแแแกแแ SBC (แแ แ แแฎแแแแ BPI) แแแแแแแแ, แ แแแ แแ แแแฎแแแก แแแกแแ Ethernet แแแแแแ แแแขแแ แแแข แฌแงแแ แแแแ แแแแ แแแแฎแจแ/แแคแแกแจแ. แคแแฅแขแแ, แ แแ แแ แแแก แแฎแ แแ, แแฅแแแ แฃแแแ แแแแฌแแแแ แขแแฅแแแแแก แแแฌแแแ แแแขแแ แแแขแแ, แแแแ แแ, แแแแ แ แแฎแ แแ, แแ แแแแ แแขแฃแ แแจแ แงแแแแแคแแ แ แจแแแซแแแแ แแแคแฃแญแแแก แแ แแแ แแแ แ แแแจแ Wifi.
แฏแแ แแแแแแฌแงแแแขแ แแแงแแแ แแแคแคแแกแแแแ USB-Wifi โแกแแกแขแแแแโ, แจแแแแแ แแ แแก แแ แแแแแ แ แแแ แขแจแ BPI-แแ แแ แแแแแแแฌแงแ แกแแแแแแแ. แแแแกแแแแแก แแ แจแแแแซแแแ แแแคแ TP-LINK TL-WN725N USB 2.0, แแแแ แแ แซแแแแแ แแแแ แแแแ แแแ, แ แแ แแก แแ แแคแ แแแแแแแแ: แกแแกแขแแแแแก แแฃแจแแแแแกแแแแก แแญแแ แแแแแ แแแ แแแแก แแ แแแแแ แ, แ แแแแแแช, แ แ แแฅแแ แฃแแแ, แแ แแงแ. (แแแแแแแแแแแ แจแแแแ แแแ แกแแญแแ แ RTL8XXXU แแ แแแแแ แ, แแแแ แแ แแก แฏแแ แแแแแ แแ แแแ แแฅแขแแแฃแแแ). แแ Ethernet แแแแแแ แชแแขแ แฎแแแ แแแแคแฃแญแ แแแแฎแก.
แจแแแแแแ, แแ แแแแแฎแแ แฎแ แแแแแแแก แแแจแแ แแแ Tenda MW3-แแก (Wifi mesh system) แแแฎแแแ แแแแ: แฃแแ แแแแ แแแแแแแก แฅแแแจ แแแแแแแแกแ แแ แแ แแฃแแ แแ แแแแแแแแจแแ แ BPI แแ แฃแแแแแกแแแแแแก LAN แแแ แขแก แแแขแ แแแแ Ethernet แแแแแแแ. แฌแแ แแแขแแแแแ.
Wireguard, RKN, Bird
แแ แ-แแ แแ แ แแ, แ แแกแแแแกแแช แแแแแ แแแแแแแงแแแ Banana PI แแ แแก แฃแคแแกแ แฌแแแแแ RKN-แแก แแแแ แแแแแแแแ แกแแแขแแแแ, แแแ แซแแ, แ แแแ Telegram-แแกแ แแ Slack-แแก แแแ แแแ แแแฃแจแแแก. Habrรฉ-แแ แกแขแแขแแแแ แฃแแแ แจแแแแแแแแแแแฃแแแ แแ แแแแแแ:
แแ แแแแแแแแแกแ แแฃแกแขแแ แแก แแแแแกแแแแแ Ansible แแแแแงแแแแแแ:
แแแ แแฃแแแแแ, แ แแ VPS แแฃแจแแแแก Ubuntu 18.04-แแ. แแ แจแแแแแแฌแแ แคแฃแแฅแชแแแแแ แแแ แแ แฐแแกแขแแ แแ แแแ แแแแจแ: Amazon แแ Digital Ocean.
แแกแ แ แแ, แฉแแแ แแแแแงแแแแ แแแแแฎแกแแแแแฃแแ 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
แแแแฎ, แงแแแแ แแ แแแแ แแชแแแแแ แแฅแแแ แฃแแแ แจแแฅแแแแ แกแแแแฃแแแแแแแแ (แแแ แซแแ Wireguard แแแกแแฆแแแแแ) แกแแฅแแฆแแแแแจแ ./secrets
, แแแ แแฅแขแแ แแ แฃแแแ แแแแแแงแฃแ แแแแแแก
Ansible แแแขแแแแขแแแแชแแ แแแแแแจแ
แจแแแซแแแแ แจแแแแฉแแแแ, แ แแ 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")
Python-แจแ Ansible แแ แซแแแแแแแแก แแแฌแแ แ แกแแจแฃแแแแแแก แแแซแแแแ แฎแแแแฎแแ แแแแแแงแแแแ แแแแ แแ แแแแแแแ แฎแกแแแก แแแแแแ แแแแแจแแฃแแแแแก แแแแก แงแแแแ แจแแกแแซแแแแแแแแก. แแแแแแแแแ, แฉแแขแแก แแแงแแแแแ R64-แแ แแ VPS-แแ:
install_bird("router/bird.conf.j2")
install_bird("vpn/bird.conf.j2")
แแฎแแแแ แคแฃแแฅแชแแแก แแแแ
แแก แคแฃแแฅแชแแ แ.แฌ pybook
แแแแฎแแ แชแแแแแ
แ แแก แคแแฅแ แแแก
แฒแแแแขแแ แแแแ. แแ แแแแแ
แกแฃแ: แแฃแจแแแแก แขแแแแแ แแแ, แแแแแแแแแช แแ แแแ แแแฐแแแแช, แแแแแแแ แแแแฎแแแ แแแแแก แแแแแชแแแแแแ แแแ แแแแฃแ แแ. แแแแ แแ แงแแแแแคแแ แ แจแแแซแแแแ แแแแ แฆแแแก, แแแ แจแแ แแก แฉแแแฃแ แ แแแแ แแขแฃแ แ.
แแแ แแแแก แแแแแฎแแแแแแ แแกแแแ แจแแแซแแแแ แแงแแก แกแแแแขแแ แแกแ: แแแแแแแแแ, แแ แแแแแแแ 5.4 => 5.6-แแก แแแแแฎแแแแ, Wireguard แแ แแก แแแแแขแแแแแ, แแ แแ แแก แกแแญแแ แ แแแขแฉแ... แแแ แ แแ แแแฅแแ: แแ แแฃแแแแแแแแแ แแแแแแแขแแแ แแแขแฉแแแ 5.4-แแแ. 5.6-แแแ, แแแ แแแ แแแแฅแแแแแ, แแแแ แแแ VPS-แแแ pinged, แแแแ แแ แคแ แแแแแแก แแ แจแแฃแซแแแ แแแฃแแแแจแแ แแแก แจแแชแแแแแก "BGP Error" ... "I roll in horror" (c) to 5.4; 5.6-แแ แแแแแกแแแ TODO-แจแ แแแแแแแ.
แแแแขแแ, แ แแฃแขแแ แแก แแ VPS-แแก แแแงแแแแแแก แแแ แแ, แแแแแแแขแ แแแแแขแแ แแแแ (x86 Ubuntu 18.04-แแ), แ แแแแแแช แแแงแแแแแฃแแแ แชแแแแ แฐแแกแขแแ แจแแแแแแ แแแแแแแแแขแแแแ:
- prometheus, alertmanager, blackbox_exporter - แงแแแแแคแแ แ แแแแแ แจแ
- แจแแขแงแแแแแแแแแ แแแแแแแแแ แขแแแแแ แแแแก แแ แฎแแ metalmatze/alertmanager-bot แแแขแแก แแแแแงแแแแแแ - แแกแแแ Docker-แจแ
- tor แแแขแแกแแแแก, แ แแแ แแแขแแ แแแแคแ แแฎแแแแก แกแแขแฃแแชแแแแ, แ แแแแกแแช แแ แแก แแแขแแ แแแขแ, แแแแ แแ Telegram แแแแแช แแ แแฃแจแแแแก แแ แแแแแ แแแขแ แแแ แแแแแจแแ แแแก
- แแแแแงแแแแแแแ
แแแคแ แแฎแแแแแแแ : NodeVPNTroubles (Ping-แแก แแแ แแจแ VPS-แแ), BirdVPNTroubles (แคแ แแแแแแแก แกแแกแแแก แแแ แแจแ), AntifilterDownloadTroubles (แจแแชแแแแ แแแแแแแแแ IP แแแกแแแแ แแแแแก แฉแแขแแแ แแแแกแแก), SiteTroubles (แแแแแแแแ แขแแแแแ แแแ แแแฃแฌแแแแแแแแ) - แกแแกแขแแแแก แแแคแ แแฎแแแแแแแ, แแแแแแแแแ, HostGrowingDiskReadLatency (แแแคแ SD แแแ แแแ แฌแแฃแแแแฎแแแ แฎแแแแ)
แแแแแขแแ แแแแแก แแแกแขแแแแชแแแก แแแแแแแแ:
ansible-playbook ./monitoring.py -l monitoring-preprod
Prometheus-แแกแแแแก Auto Discovery แแแแคแแแฃแ แแ แแแฃแแแ /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, anycast failover
แงแแแแแคแ แแก แแแ แแ แแแแแแแแแ แแ แแ แแแแแแแ แแแ แแแแแแจแแ แแแแก, แ แแ แแแขแแ แแแขแแ แแแแแ แซแแแแก แแฃแจแแแแ, แแฃแแแแช แแ แ แแ แแแแแแแ แก แฅแกแแแแแ แแแแแแจแแ แแแแ แแ แแแแแแแแ แฐแฅแแแแแก, แแ แแแแแแฌแงแแแก แแแขแแ แแแขแแก แแแแแฎแแ แแ แ.แจ. แแ แกแฎแแ แแแแแแแแฃแ แ แคแแฅแขแแ แแแ.
แแฆแฌแแ แแแแ แแแแฎแแแ แแแแแก แงแแแแแแ แแแฌแแแแแ แแแแแชแแแแแแ แแฃแแขแ-แแแ แแแแแแ
แแ แแแแแชแแแแแแแก แแแแแแแแกแฌแแแแแแ, แแแแแแฌแงแแแขแ, แ แแ แแฃแแขแแฐแฃแแแแแ แฏแแ แแ แแ แแก แแ แแแ แแขแแขแ, แแฎแแแแ แแแ แชแฎแ. แแฃแแชแ, แ แแแแ แช แฉแแแก, Linux-แแก แฃแแฎแแแก แแแ แกแแแแจแ แงแแแแแคแแ แ แฃแแแ แแแฃแจแแแก แแ แแ แแ แซแแแแแแ, แ แแแแ แแชแแ:
ip route add default
nexthop via 192.168.1.1 weight 10
nexthop via 192.168.2.1 weight 5
แแกแ แ แแ, แแ แแ แแแ แชแฎแแก แฌแแ แขแแแแก แแแแแแแ แแชแแแแแแก แแแแแแ, แฉแแแ แแแฆแแแ 2 BPI-แก, แแแแแแจแแ แแแ แแแแแแฃแแก แแ แ แแ แแแแแแแ แแแ, แแฃแแแแจแแ แแแแแ แแ แแแแแแแก แแ แแแแแแแแ แแแแจแแ แก แแ แแแแแแแแแ แแแแแแแฃแ แแแ แจแ แฃแขแแ bird/OSPF-แแก แกแแจแฃแแแแแแ.
แจแแแแแแ, แฉแแแ แแแชแฎแแแแแ แแ แแกแ แแ แแแแแ IP แแแกแแแแ แแก แแแแแแฃแแแ, แแฃ แกแแ แแแกแ แฎแแแแแกแแฌแแแแแแ (แแแขแแ แแแขแ, DNS). แแแฃ แฉแแแ แแแแแแ แแ แแแแแงแแแแแ แแแแฃแแแกแฎแแแ แแแ แจแ แฃแขแก, แแ แแแแ แฉแแขแแก แแแจแแแแแแ. แแ แจแแแแแจแแ แแแแแกแแแแแ
แแก แคแฃแแฅแชแแแแแแแแ แฏแแ แแ แแแแฎแแ แชแแแแแแฃแแ, แแแแแแ แฃแแแ แแแ แแแแแแ แฃแกแแ แแฅ แแแแแแจแ (แงแแแแแคแแ แ แแ แฉแแแแแแแ Aliexpress-แแแ; แแแแแ แแ แแ แแแแแแ แแแฆแแแแ, Layta, แแแฐแแแ แแ แแแฌแแแแแแก แแ แ แแแแ แแจแ, แแแแ แแ แแแแแ แแแขแ แแแแแแ; แแแแ แ แแ แแแแแแแ แก แแ แ แแ แฐแฅแแแแ แแแ แแแขแแแแแแ แแแแแแแก แแแกแแแ แซแแแแแแแ, แแแแแแจแ แแฎแแแแ แกแแแฃแ แฆแ แฎแแ แแแแ แแแแแแแกแแแแก).
แ แแแแ แจแแฃแแแแแแ R64
แแแแแ แแแคแ แแ แแก แแคแแชแแแแฃแ แแแฆแแแแแจแ
แแกแแแ แฃแแฏแแแแกแแ แจแแฃแแแแแแ แแแฃแงแแแแแแแแ:
แกแแแแแแ + แจแแแขแงแแแแแแ แแแ แแแแแจแแ แแก แแ แแจแจ-แก แแแแแแแขแแก แกแขแแแแแ แขแก- แแแแแแแแแแแ: แ แแแแแขแแ แแแ/แแแแขแแแแขแแ แแแ; แ แแแแแ แแ แแชแแกแแ แแช แแ แแแแแ แแแแก แฉแแแแช แแแแแ
- wifi แแแขแแแ,
แแแแแแแแแ
แแ แแก แแแฃแแแกแ - แแแขแแแแก แคแแกแ แแแ แแแแฃแแ แแแ แแแแแก แแแแแแแแแแแจแ แแ แแแแแแแแขแฃแ แแ แแแฆแแแ แแแฎแแ แแคแแชแแแแฃแ แแแฆแแแแแจแ. แแแแแฏแแ แแ แฏแฃแแ แฐแฃแแแแแ แแแแแ แฌแแฃแแ, แ แแ แจแแชแแแแ แแ แงแแคแแแ แแ แจแแแแซแแแแ แแแ แฉแแแ ePacket 5$-แแ, แแแแ แแ แแแแแแแฎแ, แ แแ แ แฃแกแแแแกแแแแก แแ แแก แแฎแแแแ EMS >33$-แแ. แฃแกแแแแแแแ, แแแแ แแ แแ แ แแ แแขแแแฃแแ. แฃแคแ แ แแแขแแช, แแฃ แแแขแแแแกแแแแก แ แแแแแแแ แกแฎแแ แฅแแแงแแแแก แแแ แฉแแแ (แงแแแแ แแแแขแแแแแขแ แแแแแแ แ), แแแฌแแแแแ แแแแแฏแแแแแ ~5$. แ แฃแกแแคแแแแแ?.. แแแแ แแ แแแ แ แแฆแแแแแฉแแแ แ แแ แกแแคแ แแแแแแจแแช แแแขแแแแก แคแแกแแ ~30$ แแ แแแแแจแแแแแ.
แจแแแแแแ, แฏแฃแแแ แจแแกแแแแแแ แจแแแแแแแก แแแแแแแกแแแ, แแแแ แแ แแ แ แแแแแฎแแ (แแแแแจแแแแ: แแแ แแแแ แแแแแแแ แฉแแแแ, แ แแ แแแขแแแแขแฃแ แ แแแแแฎแแ แแ แแแแฎแแ แชแแแแแแก); แแแฌแแ แ แแ แแแขแแแแก แคแแกแก แแแ แแแแฃแ แแ แแแแแแแแก. แฌแแ แแแขแแแแแ.
แกแแแแแฎแแแจแ
แฏแแ แงแแแแแคแแ แ แแแแแแฃแ แแ แแ แแฃแจแแแแก.
แแแฅแแแแแแ
Ansible=แแแแแแแก แแ แซแแแแแแแ แจแแกแ แฃแแแแฃแแแ แแแแ, แแฃแแแแช แฃแแแฅแแแแ, 20-30 แฌแแแแก แแแแแแแแแแแจแ; แกแแแแแแก แแ แซแแแแแแ แฃแคแ แ แแ แซแแแ แแแแ แ x86 แแแแขแแแแ. แฃแคแ แ แแแขแแช, แฏแแ แกแแแแแแ แกแฌแ แแคแแ แกแ แฃแแแแแ, ~ 3 แฌแแแจแ, แจแแแแแ แแแแแแ แแ แแแแแแแแ. แแก แจแแแซแแแแ แแแแแฌแแแฃแแ แแงแแก CPU-แแก แแแฎแฃแ แแแแ (แแแฎแจแแแ). 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
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 แแฃแจแแแแก, แแแแ แแ ~64 แกแแแแแก แจแแแแแ แแแแแขแแแ (DHCP) RXNUMX-แแแ แฉแแ แแแแ.
แแแขแแ แคแแแกแแก แแแแแขแแแ แแแ แแแแแฎแแแ แแแแ:
ifdown br0; sleep 30; ifup br0
แแ แแแแแ แ แแฎแแแแ, แฏแแ แแ แแ แแก แแแฆแแแฃแแ แแแ แแแจแ, แแแแแแ แฉแแแฃแ แ Landen Chao-แแ
แฌแงแแ แ: www.habr.com