рдХреЗрд▓реЗ Pi R64 рд░рд╛рдЙрдЯрд░ - рдбреЗрдмрд┐рдпрди, рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб, RKN

Banana Pi 64 Raspberry Pi рдЬрд╕реНрддреИ рдПрдХрд▓-рдмреЛрд░реНрдб рдХрдореНрдкреНрдпреБрдЯрд░ рд╣реЛ, рддрд░ рдзреЗрд░реИ рдЗрдерд░рдиреЗрдЯ рдкреЛрд░реНрдЯрд╣рд░реВрд╕рдБрдЧ, рдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд░рд╛рдЙрдЯрд░рдорд╛ рдмрджрд▓реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред

рдХреЗрд▓реЗ Pi R64 рд░рд╛рдЙрдЯрд░ - рдбреЗрдмрд┐рдпрди, рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб, RKN

рд╣реЛ, рддреНрдпрд╣рд╛рдБ рдкрд╣рд┐рд▓реЗ рдиреИ Openwrt рдЫ, рддрд░ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН, рдпрд╕рдХреЛ GUI рд░ CLI; рддреНрдпрд╣рд╛рдБ Mikrotik рдЫ, рддрд░ рдлреЗрд░рд┐ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ GUI/CLI рдЫ, рд░ Wireguard рд▓реЗ рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░ рдХрд╛рдо рдЧрд░реНрджреИрди... рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдо рд▓рдЪрд┐рд▓реЛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рднрдПрдХреЛ рд░рд╛рдЙрдЯрд░ рдЪрд╛рд╣рдиреНрдЫреБ, рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рднрд┐рддреНрд░ рд░рд╣рдБрджрд╛, рдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рд╣рд░реЗрдХ рджрд┐рди рд╕рдВрдЧред

BPI, R64, рдПрдХрд▓-рдмреЛрд░реНрдб рдирд╛рдорд╣рд░реВ рдЕрдиреНрддрд░реНрдЧрдд рд▓реЗрдЦрдорд╛, рдо рдПрдЙрдЯреИ рдХреБрд░рд╛рдХреЛ рдорддрд▓рдм рдЧрд░реНрдиреЗрдЫреБ - рдХреЗрд▓реЗ Pi R64 рдПрдХрд▓-рдмреЛрд░реНрдб рдЖрдлреИред

рдЫрд╡рд┐ рдЪрдпрди рдЧрд░реНрджреИред eMMC рдорд╛рд░реНрдлрдд рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН

рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдо рдЧрд░реНрджрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд╣рд┐рд▓реЛ рд╕реАрдк рдПрд╕рдмреАрд╕реА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд░ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА R64 рд╕рдБрдЧ, рдпрд╕рдХреЛ рдорддрд▓рдм рдпрд╕рдорд╛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдХрд╕рд░реА рд▓реЛрдб рдЧрд░реНрдиреЗ рд░ рддреНрдпрд╕рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБ рд╣реЛ, рдХрд┐рдирднрдиреЗ R64 рд╕рдБрдЧ рдордирд┐рдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рдкреЛрд░реНрдЯ рдЫреИрди (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ HDMI)ред рдЬрдм рд╕рдмреИ рдХреБрд░рд╛ рдмрдиреНрдж рднрдпреЛ - рд╡рд╛рдЗрдлрд╛рдЗ, рдЗрдерд░рдиреЗрдЯ, рдмреНрд▓реБрдЯреБрде, рдпреВрдПрд╕рдмреА, рдЖрджрд┐рд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдЫреЛрдбреНрдпреЛред рддреНрдпрд╣рд╛рдБ рдПрдХ UART рдЫ, рдЬрд╕рдХреЛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрд▓реЗ рд╕рдзреИрдВ рдХреЗ рдЧрд▓реНрддреА рднрдпреЛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛ рдХрдиреНрд╕реЛрд▓рдмрд╛рдЯ рдХреЗрд╣реА рдЖрджреЗрд╢рд╣рд░реВ рдкрдирд┐ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

USB-UART рдорд╛рд░реНрдлрдд R64 рдЬрдбрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:

  • рд╣рд╛рдореА USB-UART рдХреЗрдмрд▓ (PL2303, Serial-to-USB) рдХреЛ рд▓рд╛рдЧрд┐ рд░реЗрдбрд┐рдпреЛ рдкрд╛рд░реНрдЯреНрд╕ рд╕реНрдЯреЛрд░рдорд╛ рдЬрд╛рдиреНрдЫреМрдВ
  • рдПрдЙрдЯрд╛ USB рдЫреЗрдЙрд▓рд╛рдИ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рд░ рдЕрд░реНрдХреЛ UART рд▓рд╛рдИ R64 рдорд╛ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН, рддрд▓рдХреЛ рддрд╕реНрдмрд┐рд░рдорд╛ рдЬрд╕реНрддреИ рдЪрд╛рд░ рдордзреНрдпреЗ рддреАрдирд╡рдЯрд╛ рддрд╛рд░рд╣рд░реВ рдЫрдиреНред
  • рдХрдореНрдкреНрдпреБрдЯрд░ рдХрдиреНрд╕реЛрд▓рдорд╛ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН sudo minicom

рдпрд╕ рдкрдЫрд┐, рдзреЗрд░реИ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдПрдХрд▓-рдмреЛрд░реНрдб рдХрдиреНрд╕реЛрд▓ рджреЗрдЦрд╛ рдкрд░реНрдиреЗрдЫ = рд╕рдлрд▓рддрд╛ред
рддрдкрд╛рдИрдВ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ.

рдХреЗрд▓реЗ Pi 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 рд╕реНрд▓рдЯрдорд╛ рдШреБрд╕рд╛рдЙрдБрдЫреМрдВ, рдпрд╕рд▓рд╛рдИ рдЦреЛрд▓реНрдЫреМрдВ, рд░ рдЬрдбрд╛рди рдЧрд░рд┐рдПрдХреЛ рдХрдиреНрд╕реЛрд▓ рд▓реЛрдбрд┐рдЩ рдкрд╣рд┐рд▓реЗ uboot, рддреНрдпрд╕рдкрдЫрд┐ рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рд▓реЛрдбрд┐рдЩ рдЕрд╡рд▓реЛрдХрди рдЧрд░реНрдЫреМрдВред

рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмреБрдЯ рд╡рд┐рдХрд▓реНрдкрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ R64 рдорд╛ рдирд┐рд░реНрдорд┐рдд 8Gb рдХрд╛рд░реНрдб рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ, рдЬрд╕рд▓рд╛рдИ 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]

рдЕрд░реНрдХреЛ, рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рд╢реЗрд╖ рдмреБрдЯ рд╡рд┐рднрд╛рдЬрдирдорд╛ рдкреНрд░рд┐рд▓реЛрдбрд░ рд▓реЗрдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ

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

Manufacturer R64 (China) рд▓реЗ рдпреЛ рдмрд╛рдЗрдирд░реА рдкреЛрд╕реНрдЯ рдЧрд░реНрдиреБрднрдпреЛ рдпрд╣рд╛рдБред рдпрд╕рд▓реЗ рдХреЗ рдЧрд░реНрдЫ рдЕрдЬреНрдЮрд╛рдд рдЫ (рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рд╕реНрд░реЛрдд рдХреЛрдбрд╣рд░реВ рдЫреИрдирдиреН), рддрд░ рдпреЛ рдмрд┐рдирд╛ рдХрд╛рдо рдЧрд░реНрджреИрдиред

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпрд╕ рдкрдЫрд┐, рдЫрд╡рд┐рд╣рд░реВ eMMC рдмрд╛рдЯ рд▓реЛрдб рд╣реБрди рдерд╛рд▓реНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓реНрди рд░ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдЫрд╡рд┐рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рджреБрд╡реИ рдХреЗрд╕рд╣рд░реВ (SD/eMMC) рдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдЗрдБрд▓реЗ рдХрд░реНрдиреЗрд▓ рд▓реЛрдб рдЧрд░реНрди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдлрд╛рдЗрд▓рд╣рд░реВ (SD рдХрд╛рд░реНрдб, ATF, u-boot рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рд┐рд▓реЛрдбрд░) рд▓реЗрдЦреНрдиреБ рдкрд░реНрдЫред рдпреЛ рд╡рд┐рд╖рдп рдЕрдЭреИ рдЫ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИрдЫрддрд░ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдореБрдЦреНрдп рдХреБрд░рд╛ рдпреЛ рдХрд╛рдо рдЧрд░реНрджрдЫ рд░ рдареАрдХ рдЫред

рдЕрдм рдо eMMC рдорд╛рд░реНрдлрдд рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдЫреБ, рдЗрдорд╛рдирджрд╛рд░ рд╣реБрди, рдо рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди, рдПрдХ SD рдХрд╛рд░реНрдб рдкрд░реНрдпрд╛рдкреНрдд рдЫ, рддрд░ рдореИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд╛рдо рдЧрд░реНрди рдзреЗрд░реИ рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реЗрдВ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ рд▓реЗрдЦрдорд╛ рд░рд╛рдЦреНрди рджрд┐рдиреБрд╣реЛрд╕реНред

рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдЪрдпрди рдЧрд░реНрджреИред рдЖрд░реНрдореНрдмрд┐рдпрди

рдкрд╣рд┐рд▓реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдп VPN рд╕реБрд░реБ рдЧрд░реНрдиреБ рд╣реЛ, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛ Wireguardред рдпреЛ рддреБрд░реБрдиреНрддреИ рдкрддреНрддрд╛ рд▓рд╛рдЧреНрдпреЛ рдХрд┐ рдХрд░реНрдиреЗрд▓ рдЫреЗрдЙрдорд╛ рдпреЛ рднреЗрд▓рд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрди рд░ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рд╣реЗрдбрд░рд╣рд░реВ рдерд┐рдПрдирдиреНред рдореИрд▓реЗ рдХрд░реНрдиреЗрд▓ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реЗрдВ рд░, x86 рдХреЛ рд╕рд╛рде рдореЗрд░реЛ рдмрд╛рдиреА рдЬрд╕реНрддреИ, DKMS рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓ рднреЗрд▓рд╛ рдЧрд░реЗрдВред рдпрджреНрдпрдкрд┐, arm64 рдорд╛ рдкрдирд┐ рд╕рд╛рдирд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдЧрддрд┐рд▓реЗ рдорд▓рд╛рдИ рдЕрдЪрдореНрдорд┐рдд рдмрдирд╛рдпреЛред рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЕрд░реНрдХреЛ рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓ рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ, рдЖрджрд┐ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рдХрд░реНрдиреЗрд▓рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдиреНрдпрд╛рдиреЛ x86 рд▓реНрдпрд╛рдкрдЯрдкрдорд╛ рдЙрддреНрддрдо рд░реВрдкрдорд╛ рднреЗрд▓рд╛ рд╣реБрдиреНрдЫрдиреН, рддреНрдпрд╕рдкрдЫрд┐ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, рд░рд┐рдмреБрдЯ рд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реЗрд░ R64 рдорд╛ рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫред

рдЕрд░реНрдХреЛ рдХреБрд░рд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдкреЗрд╕ рднрд╛рдЧ рд╣реЛред рдбреЗрдмрд┐рдпрди рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ рдореЗрд░реЛ рдорд╛рдорд▓рд╛рдорд╛, arm64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдкрд╣рд┐рд▓реЗ рдиреИ packages.debian.org рдорд╛ рдЫ рд░ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдкрдирд┐ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред

рдЕрд░реНрдХреЛ рд╕рд╛рдЗрдХрд▓ рдЙрддреНрдкрд╛рджрди рдирдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдо рдкреЛрд░реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЖрд░реНрдордмрд┐рдпрди BPI R64 рдорд╛ред
рд╡рд╛ рдмрд░реБ, рдпреЛ: рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдкреЗрд╕ рднрд╛рдЧ рдЖрд░реНрдореНрдмрд┐рдпрди рд╣реЛ, рд░ рдХрд░реНрдиреЗрд▓ рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛред рдлреНрд░реИрдВрдХ-рдПред рдирд╡реАрдирддрдо рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдпрд╣рд╛рдБ.

R64 рдХреЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рдХреЛ рд╡рд┐рдХрд╛рд╕ рдорд╛ рд╕рдмреИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдорд╛ рдЧрд░рд┐рдиреНрдЫ рдлреЛрд░рдоред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдирд┐рд░реНрдорд╛рддрд╛ рдЖрдлреИрдВрд▓реЗ Openwrt рдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдЙрдЯрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдмрдирд╛рдЙрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫ, рддрд░ рдЬрд░реНрдордиреАрдмрд╛рдЯ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдлреНрд░рд╛рдиреНрдХрдХреЛ рдЧрддрд┐рд╡рд┐рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж, рд╕рдмреИ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЪрд╛рдБрдбреИ рдбреЗрдмрд┐рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрд░реНрдиреЗрд▓рдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫрдиреНред рдЕрдЪрдореНрдордХреЛ рдХреБрд░рд╛, рдлреНрд░рд╛рдиреНрдХ рд╣рд░реЗрдХ рдлреЛрд░рдо рдереНрд░реЗрдбрдорд╛ рд╕рдХреНрд░рд┐рдп рдЫред

рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рд╕рдВрдЧрдарди: рддрд╛рд░

рдЕрд▓рдЧ рд░реВрдкрдорд╛, рдо рддрдкрд╛рдИрд▓рд╛рдИ рдмрддрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдХрд╕рд░реА рд╡рд┐рдХрд╛рд╕/рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреНрд░рдордорд╛, рдЯреЗрдмрд▓рдорд╛ SBC (рдХреЗрд╡рд▓ BPI рдорд╛рддреНрд░ рд╣реЛрдЗрди) рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рд╕рдореНрдкреВрд░реНрдг рдХреЛрдард╛/рдХрд╛рд░реНрдпрд╛рд▓рдпрдорд╛ рдЗрдиреНрдЯрд░рдиреЗрдЯ рд╕реНрд░реЛрддрдмрд╛рдЯ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдЪрд▓рд╛рдЙрди рдирдкрд░реЛрд╕реНред рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐, рдПрдХрд╛рддрд┐рд░, рддрдкрд╛рдИрд▓реЗ рдЗрдиреНрдЯрд░рдиреЗрдЯрдХреЛ рд╕рд╛рде рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рдЯреБрдХреНрд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддрд░ рдЕрд░реНрдХреЛрддрд░реНрдл, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рддреНрдпреЛ рдЯреБрдХреНрд░рд╛рдорд╛ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдмрд┐рдЧреНрд░рди рд╕рдХреНрдЫрдиреН, рд░ рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ рд╡рд╛рдЗрдлрд╛рдЗред

рдкрд╣рд┐рд▓реЗ, рдореИрд▓реЗ рд╕рд╕реНрддреЛ USB-Wifi "рд╕реАрдЯреА" рдХрд┐рдиреНрди рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ, рдпрд╕рд▓рд╛рдИ BPI рдорд╛ рдорд╛рддреНрд░ рдкреЛрд░реНрдЯрдорд╛ рдкреНрд▓рдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддрд╛рд░рд╣рд░реВ рдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реНред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ рд╕рд╕реНрддреЛ TP-LINK TL-WN725N USB 2.0 рдЦрд░рд┐рдж рдЧрд░реЗрдВ, рддрд░ рдзреЗрд░реИ рдЪрд╛рдБрдбреИ рдпреЛ рд╕реНрдкрд╖реНрдЯ рднрдпреЛ рдХрд┐ рдпреЛ рдмрдиреНрдж рд╣реБрдиреЗрдЫреИрди: рд╕реАрдЯреА рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд░реНрдиреЗрд▓ рдбреНрд░рд╛рдЗрднрд░ рдЪрд╛рд╣рд┐рдиреНрдЫ, рдЬреБрди рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддреНрдпрд╣рд╛рдБ рдерд┐рдПрдиред (рдкрдЫрд┐ рдореИрд▓реЗ рдЖрд╡рд╢реНрдпрдХ RTL8XXXU рдЪрд╛рд▓рдХ рднреЗрд▓рд╛ рдЧрд░реЗрдВ, рддрд░ рдпреЛ рдЕрдЭреИ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЫ)ред рд░ рдЗрдерд░рдиреЗрдЯ рдХреЗрдмрд▓рд▓реЗ рдХреЗрд╣реА рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдард╛рдХреЛ рд░реВрдк рдмрд┐рдЧрд╛рд░реНрдпреЛред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдореИрд▓реЗ Tenda MW3 (Wifi рдЬрд╛рд▓ рдкреНрд░рдгрд╛рд▓реА) рдХреЛ рдорджреНрджрддрд▓реЗ рдХреЗрдмрд▓рдмрд╛рдЯ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрдВ: рдореИрд▓реЗ рдЯреЗрдмрд▓рдореБрдирд┐ рдПрдЙрдЯрд╛ рдХреНрдпреВрдм рд░рд╛рдЦреЗрдВ рд░ BPI рд▓рд╛рдИ рдкрдЫрд┐рд▓реНрд▓реЛрдХреЛ LAN рдкреЛрд░реНрдЯрдорд╛ рдорд┐рдЯрд░-рд▓рд╛рдореЛ рдЗрдерд░рдиреЗрдЯ рдХреЗрдмрд▓рджреНрд╡рд╛рд░рд╛ рдЬрдбрд╛рди рдЧрд░реЗрдВред рд╕рдлрд▓рддрд╛ред

рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб, рдЖрд░рдХреЗрдПрди, рдмрд░реНрдб

рдореИрд▓реЗ Banana PI рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреЗ рдЪреАрдЬрд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рднрдиреЗрдХреЛ RKN рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рдЧрд░рд┐рдПрдХрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рдирд┐:рд╢реБрд▓реНрдХ рдкрд╣реБрдБрдЪ рд╣реБрдиреБ рд╣реЛ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рддрд╛рдХрд┐ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд░ рд╕реНрд▓реНрдпрд╛рдХ рдХрд▓рд╣рд░реВ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреВрдиреНред Habr├й рдорд╛ рд▓реЗрдЦ рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╕ рд╡рд┐рд╖рдпрдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ: рдкрдЯрдХ, ╨┤╨▓╨░, рддреАрди.

рдореИрд▓реЗ рдареНрдпрд╛рдХреНрдХреИ рдпреЛ рд╕рдорд╛рдзрд╛рди Ansible рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддреИрдирд╛рдд рдЧрд░реЗрдВ: рд▓рд┐рдЩреНрдХ.

VPS Ubuntu 18.04 рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдорд╛рдирд┐рдиреНрдЫред рдореИрд▓реЗ рдпреБрд░реЛрдкрдорд╛ рджреБрдИ рд╣реЛрд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬрд╛рдБрдЪ рдЧрд░реЗрдВ: рдЕрдореЗрдЬрди рд░ рдбрд┐рдЬрд┐рдЯрд▓ рдорд╣рд╛рд╕рд╛рдЧрд░ред

рддреНрдпрд╕реЛрднрдП, рд╣рд╛рдореАрд▓реЗ R64 рдорд╛ рдорд╛рдерд┐рдХреЛ Armbian рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдпреМрдВ, рдпреЛ рдирд╛рдо рдЕрдиреНрддрд░реНрдЧрдд 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 рд╣реЛ):

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

рдУ рд╣реЛ, рдпреА рд╕рдмреИ рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдЕрдШрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдлреЛрд▓реНрдбрд░рдорд╛ рдЧреЛрдкреНрдп (рд╡рд┐рд╢реЗрд╖ рдЧрд░реА Wireguard рдХреБрдЮреНрдЬреАрд╣рд░реВ) рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред ./secrets, рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреБ рдкрд░реНрдЫ рддреНрдпрд╕реИрд▓реЗ.

рдкрд╛рдЗрдердирдорд╛ рдЙрддреНрддрд░рджрд╛рдпреА рд╕реНрд╡рдЪрд╛рд▓рди

рддрдкрд╛рдИрд▓реЗ рдпрд╛рдж рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ YAML рдврд╛рдБрдЪрд╛рдорд╛ рд╣реБрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рдЙрддреНрддрд░рджрд╛рдпреА рдЖрджреЗрд╢рд╣рд░реВ рдкрд╛рдЗрдерди рд▓рд┐рдкрд┐рд╣рд░реВрдорд╛ рдЗрдиреНрдХреЛрдб рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рддреБрд▓рдирд╛рдХреЛ рд▓рд╛рдЧрд┐, рдХрд╕рд░реА рдмрд░реНрдб рдбреЗрдордирд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп рддрд░рд┐рдХрд╛рдорд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ:

- 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")

рдкрд╛рдЗрдердирдорд╛ рдЙрддреНрддрд░рджрд╛рдпреА рдЖрджреЗрд╢рд╣рд░реВ рд▓реЗрдЦреНрджрд╛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреЛрдб рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рднрд╛рд╖рд╛рдХреЛ рд╕рдмреИ рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ рдЦреЛрд▓реНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, R64 рд░ VPS рдорд╛ рдмрд░реНрдб рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ:

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

рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН install_bird().

рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рднрдирд┐рдиреНрдЫ pybook рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдпреЛ рдпрд╣рд╛рдБред pybook рдорд╛ рдХреБрдиреИ рдХрд╛рдЧрдЬрд╛рдд рдЫреИрди, рддрд░ рдо рдпреЛ рд╕рдорд╕реНрдпрд╛ рдкрдЫрд┐ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗрдЫреБред

рдЙрд╕рд▓рд╛рдИ рдХреЗ рд▓рд╛рдЧреНрдЫ upstream рдпрд╕ рдЕрд╡рд╕рд░рдорд╛ред

рдЕрдиреБрдЧрдордиред рдкреНрд░реЛрдореЗрдерд┐рдпрд╕

рдХреБрд▓: рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдХрд╛рдо рдЧрд░реНрджрдЫ, рд▓рд┐рдЩреНрдХрдбрдЗрди рд░ рдкреЛрд░реНрдирд╣рдм рдкрдирд┐, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдареАрдХ рдЫред рддрд░ рдЪрд┐рдирд┐рдпрд╛рдБ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рд╣рд┐рдд рд╕рдмреИ рдХреБрд░рд╛ рддреЛрдбреНрди рд╕рдХреНрдЫред

рдХрд░реНрдиреЗрд▓ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкрдирд┐ рд░реЛрдЪрдХ рд╣реБрди рд╕рдХреНрдЫрдиреН: рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдо рдХрд░реНрдиреЗрд▓ 5.4 => 5.6 рдЕрдкрдбреЗрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдереЗрдВ, рдЦреИрд░, Wireguard рддреНрдпрд╣рд╛рдБ рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░ рдЫ, рдкреНрдпрд╛рдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди... рдпрд╕реЛ рднрдиреНрджрд╛ рдЪрд╛рдБрдбреЛ рднрдирд┐рдПрдХреЛ рдЫреИрди: рдореИрд▓реЗ рдореЗрд╣рдирддрдкреВрд░реНрд╡рдХ 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, рддрд╛рдХрд┐ рдмреЛрдЯрд▓реЗ рдЗрдиреНрдЯрд░рдиреЗрдЯ рд╣реБрдБрджрд╛ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрд▓рд╛рдИ рд╕рдЪреЗрдд рдЧрд░рд╛рдЙрди рд╕рдХреНрдЫ, рддрд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдорд▓реЗ рдЕрдЭреИ рдХрд╛рдо рдЧрд░реНрджреИрди, рд░ рдмреЛрдЯ рдЖрдлреИрдВ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрджреИрдиред
  • рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ рдЕрд▓рд░реНрдЯрд╣рд░реВ: NodeVPNtroubles (VPS рдорд╛ рдкрд┐рдВрдЧ рдЫреИрди), BirdVPNtroubles (рдХреБрдиреИ рдмрд░реНрдб рд╕рддреНрд░), AntifilterDownloadTroubles (рддреНрд░реБрдЯрд┐ рд▓реЛрдб рдЧрд░реНрджрд╛ рдЕрд╡рд░реБрджреНрдз рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рд╣рд░реВ), 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, anycast рдлреЗрд▓рдУрднрд░

рд╕рдмреИ рдХреБрд░рд╛рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореИрд▓реЗ рджреБрдИ рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрд╕рдБрдЧ рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдХреЛ рдЫреБ рддрд╛рдХрд┐ рдЗрдиреНрдЯрд░рдиреЗрдЯрд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫ, рдПрдХ рдкреНрд░рджрд╛рдпрдХрдХреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рд╕рдорд╕реНрдпрд╛ рднрдП рддрд╛рдкрдирд┐, рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЗрдиреНрдЯрд░рдиреЗрдЯ, рдЖрджрд┐, рд░ рдЕрдиреНрдп рдорд╛рдирд╡ рдХрд╛рд░рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднреБрдХреНрддрд╛рди рдЧрд░реНрди рдмрд┐рд░реНрд╕рдиреБрднрдпреЛред

рдмрд╣реБ-рд╡рд╛рдирдХреЛ рд╡рд┐рд╖рдпрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдиреНрдирдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ рдпрд╣рд╛рдБ Openwrt рдЕрдиреНрддрд░реНрдЧрдд Mwan3 рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд▓рд╛рдЧрд┐ред рдпреЛ рд╕рдорд╛рдзрд╛рдирд╕рдБрдЧ рд╕рдореГрджреНрдз рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЫ, рддрд░ рдмрд╣реБ-рд╡рд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рд╕реЗрдЯрдЕрдк рд░ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛ рдЫред рдХреЗрд╡рд▓ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг: рдпрджрд┐ рддрдкрд╛рдЗрдБ рдПрдХреИ рдкрдЯрдХ рджреБрдИ рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рд╣рд░реВрдмрд╛рдЯ рдХреЗрд╣реА рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рдЖрдЙрдиреБрднрдпреЛ рднрдиреЗ, рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдпреЛ рдордирдкрд░реНрджреИрди, рдЙрдиреАрд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдЫреЛрдбреНрдиреЗрдЫрдиреН => "рдЗрдиреНрдЯрд░рдиреЗрдЯрд▓реЗ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреИрдиред"

рдпреЛ рдЕрдиреБрднрд╡рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ, рдореИрд▓реЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ рдХрд┐ рдорд▓реНрдЯрд┐рд╣реЛрдорд┐рдЩ рдЕрдЭреИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдЗрди, рдХреЗрд╡рд▓ рдлреЗрд▓рдУрднрд░ рд╣реЛред рдЬреЗ рд╣реЛрд╕реН, рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рд▓рд┐рдирдХреНрд╕рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рд╕рдмреИрд▓реЗ рдПрдЙрдЯрд╛ рдЖрджреЗрд╢рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реНрдЫ рдЬрд╕реНрддреИ:

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

рддреНрдпрд╕реЛрднрдП, рдЕрд╕рдлрд▓рддрд╛рдХреЛ рдПрдХрд▓ рдмрд┐рдиреНрджреБрдмрд╛рдЯ рдмрдЪреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА 2 BPI рд╣рд░реВ рд▓рд┐рдиреНрдЫреМрдВ, рдкреНрд░рддреНрдпреЗрдХрд▓рд╛рдИ рдПрдХ рдкреНрд░рджрд╛рдпрдХрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдЬреЛрдбреНрдЫреМрдВ рд░ рдмрд░реНрдб/рдУрдПрд╕рдкреАрдПрдл рдорд╛рд░реНрдлрдд рдПрдХ-рдЕрд░реНрдХрд╛рд▓рд╛рдИ рдЧрддрд┐рд╢реАрд▓ рд░реВрдЯрд┐рдЩрд╕рдБрдЧ рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВред

рдЕрд░реНрдХреЛ, рдпрджрд┐ рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рдЫ рднрдиреЗ рд╣рд╛рдореА рдкреНрд░рддреНрдпреЗрдХрдорд╛ рд╕рдорд╛рди рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рдХреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЧрд░реНрдЫреМрдВ (рдЗрдиреНрдЯрд░рдиреЗрдЯ, DNS)ред рддреНрдпреЛ рд╣реЛ, рд╣рд╛рдореА рдЖрдлреИрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рд░реНрдЧ рд╕реЗрдЯ рдЧрд░реНрджреИрдиреМрдВ, рддрд░ рдкрдХреНрд╖реА рдорд╛рд░реНрдлрддред рдореИрд▓реЗ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреЗрдБ рдпрд╣рд╛рдБ .

рдпреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдЭреИ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рдХрдкрдЯреА рдХреЛрд░реЛрдирд╛рднрд╛рдЗрд░рд╕рд▓реЗ рдпрд╣рд╛рдБ рдПрдХ рдЪрд╛рд▓ рдЦреЗрд▓реНрдпреЛ (рд╕рдмреИ рдХреБрд░рд╛ Aliexpress рдмрд╛рдЯ рдЖрдЗрдкреБрдЧреЗрдХреЛ рдЫреИрди; рдЕрд░реНрдХреЛ рдЕрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░, Layta рд▓реЗ рдПрдХ рд╣рдкреНрддрд╛рдорд╛ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдиреЗ рд╡рд╛рдЪрд╛ рдЧрд░реНрдпреЛ, рддрд░ рдПрдХ рдорд╣рд┐рдирд╛ рднрдиреНрджрд╛ рдмрдвреА рдмрд┐рддрд┐рд╕рдХреЗрдХреЛ рдЫ; рджреЛрд╕реНрд░реЛ рдкреНрд░рджрд╛рдпрдХрд╕рдБрдЧ рд╕рдордп рдЫреИрдиред рдХреНрд╡рд╛рд░реЗрдиреНрдЯрд╛рдЗрди рдЕрдШрд┐ рдХреЗрдмрд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди, рдХреЗрд╡рд▓ рдХреЗрдмрд▓ рдХреЛ рд▓рд╛рдЧреА рднрд┐рддреНрддрд╛ рдорд╛ рдбреНрд░рд┐рд▓ рдорд╛ рдПрдХ рдкреНрд╡рд╛рд▓ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╡реНрдпрд╡рд╕реНрдерд┐рдд)ред

R64 рдХрд╕рд░реА рдЕрд░реНрдбрд░ рдЧрд░реНрдиреЗ

рдмреЛрд░реНрдб рдЖрдлреИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдЯреЛрд░рдорд╛ рдЫ SinoVoip.
рдпреЛ рддреБрд░реБрдиреНрддреИ рдЕрд░реНрдбрд░ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ:

  • рдкреЛрд╖рдг + EU рд╡рд╛ US рдкреНрд▓рдЧ рдорд╛рдирдХрд▓рд╛рдИ рд╕реВрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
  • рдЧрд░реНрдореА рд╕рд┐рдВрдХ: рд░реЗрдбрд┐рдПрдЯрд░ / рдкреНрд░рд╢рдВрд╕рдХ; рдХрд┐рдирднрдиреЗ CPU рд░ рд╕реНрд╡рд┐рдЪ рдЪрд┐рдк рджреБрд╡реИ рддрддрд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН
  • рд╡рд╛рдЗрдлрд╛рдЗ рдПрдиреНрдЯреЗрдирд╛, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐

рддреНрдпрд╣рд╛рдБ рдПрдХ рд╕реВрдХреНрд╖реНрдорддрд╛ рдЫ - рд╡рд┐рддрд░рдг рдореВрд▓реНрдп рдХреЗрд╣реА рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдЯреЛрд░рдорд╛ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд░реВрдкрдорд╛ рдЙрдЪреНрдЪ рднрдПрдХреЛ рдЫред рдкреНрд░рдмрдиреНрдзрдХ рдЬреБрдбреА рд╣реБрдЖрдВрдЧрд▓реЗ рдорд▓рд╛рдИ рдХреБрдиреИ рддреНрд░реБрдЯрд┐ рдирднрдПрдХреЛ рдХреБрд░рд╛рдорд╛ рд╡рд┐рд╢реНрд╡рд╕реНрдд рдЧрд░рд╛рдЙрдиреБрднрдпреЛ, рд░ рддрдкрд╛рдИрдВрд▓реЗ $ 5 рдХреЛ рд▓рд╛рдЧрд┐ ePacket рдЫрдиреМрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рдореИрд▓реЗ рджреЗрдЦреЗрдХреЛ рдЫреБ рдХрд┐ рд░реВрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ EMS рдЫ >$33ред рдЕрдкреНрд░рд┐рдп, рддрд░ рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рдЫреИрдиред рдпрд╕рдмрд╛рд╣реЗрдХ, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбреЗрд▓рд┐рднрд░реАрдХреЛ рд▓рд╛рдЧрд┐ рдХреБрдиреИ рдЕрдиреНрдп рджреЗрд╢ рдЫрдиреМрдЯ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ (рдо рд╕рдмреИ рдорд╣рд╛рджреНрд╡реАрдкрд╣рд░реВ рдорд╛рд░реНрдлрдд рдЧрдПрдБ), рдбреЗрд▓рд┐рднрд░реАрдХреЛ рд▓рд╛рдЧрдд ~ $ 5 рд╣реБрдиреЗрдЫред Russophobes? .. рддрд░ рддреНрдпрд╕рдкрдЫрд┐ рдореИрд▓реЗ рдлреНрд░рд╛рдиреНрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдбреЗрд▓рд┐рднрд░реА рдореВрд▓реНрдп рдкрдирд┐ ~ 30$ рд╣реЛ рднрдиреЗрд░ рдлреЗрд▓рд╛ рдкрд╛рд░реЗ, рд░ рдо рд╢рд╛рдиреНрдд рднрдПрдБред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдЬреБрдбреАрд▓реЗ рдЕрд░реНрдбрд░ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реЗ, рддрд░ рднреБрдХреНрддрд╛рди рдирдЧрд░реНрдиреЗ (рд╕рдЩреНрдХреЗрдд: рдХрд╛рд░реНрдбрдорд╛ рдХрдо рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рднреБрдХреНрддрд╛рдиреА рдорд╛рд░реНрдлрдд рдЬрд╛рдБрджреИрди); рдЙрд╕рд▓рд╛рдИ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН рд░ рдЙрд╕рд▓реЗ рдбреЗрд▓рд┐рднрд░реА рдореВрд▓реНрдп рд╕рд╛рдорд╛рдиреНрдпрдорд╛ рдШрдЯрд╛рдЙрдиреЗрдЫред рд╕рдлрд▓рддрд╛ред

рдореБрджреНрджрд╛

рдЕрдЭреИ рдкрдирд┐ рд╕рдмреИ рдХреБрд░рд╛ рд░рд╛рдореНрд░рд░реА рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреИрдиред

рдЙрддреНрдкрд╛рджрдХрддрд╛

Ansible=рдкрд╛рдЗрдерди рдЖрджреЗрд╢рд╣рд░реВ рдмрд┐рд╕реНрддрд╛рд░реИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдкрдирд┐, реиреж-рейреж рд╕реЗрдХреЗрдиреНрдбрдХрд╛ рд▓рд╛рдЧрд┐; x20 рд▓реНрдпрд╛рдкрдЯрдкрдорд╛ рднрдиреНрджрд╛ рд▓рд╛рдореЛ рдореНрдпрд╛рдЧреНрдирд┐рдЪреНрдпреБрдбрдХреЛ рдЕрд░реНрдбрд░ред рдпрд╕рдмрд╛рд╣реЗрдХ, рд╕реБрд░реБрдорд╛ рддрд┐рдиреАрд╣рд░реВ рдПрдХрджрдо рдЪрд╛рдБрдбреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреНрдЫрдиреН, ~ 30 рд╕реЗрдХреЗрдиреНрдб, рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВ рддреАрд╡реНрд░ рд░реВрдкрдорд╛ рдврд┐рд▓реЛ рд╣реБрдиреНрдЫрдиреНред рдпреЛ 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
...

рдХреЗрд╡рд▓ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫред рд╣рд╛рдореА рдЕрдШрд┐ рдмрдвреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдорд┐рд▓рд╛рдЙрдиреБ.

рдЗрдерд░рдиреЗрдЯ

рдЗрдерд░рдиреЗрдЯрд▓реЗ рдХрд╛рдо рдЧрд░реНрдЫ, рддрд░ ~64 рдШрдгреНрдЯрд╛рдкрдЫрд┐ RXNUMX рдмрд╛рдЯ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ (DHCP) рдЖрдЙрди рд░реЛрдХреНрдЫрдиреНред
рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдЫ:

ifdown br0; sleep 30; ifup br0

рдЪрд╛рд▓рдХ рдирдпрд╛рдБ рдЫ, рдпреЛ рдЕрдЭреИ рдХрд░реНрдиреЗрд▓рдорд╛ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рдХрд┐ рдпреЛ рдЪрд┐рдирд┐рдпрд╛рдБ рд▓реНрдпрд╛рдиреНрдбрди рдЪрд╛рдУ рд╣реЛ рдпрд╕рд▓рд╛рдИ рд╕рдорд╛рдкреНрдд рдЧрд░реНрджрдЫ.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди