Banana Pi R64 Router - Debian, Wireguard, RKN

Banana Pi 64 una tabula computatoriae Raspberry Pi similis est, sed cum multiplicibus portubus Aernei, quod propositum generale Linux iter itineris distribuit.

Banana Pi R64 Router - Debian, Wireguard, RKN

Imo Openwrt iam est, sed suum GUI et CLI habet; Est Mikrotik, sed rursus suum habet GUI / CLI, et Wireguard non operatur ex archa... In genere, volo iter flexibilium uncinis, manens in compage vexilli Linux, quod laboras. quotidie.

In articulo sub nominibus BPI, R64, una-tabula, idem significabo - Banana Pi R64 una-tabula ipsa.

Imago lectio. Download per eMMC

Ipsa prima scientia est acquirere cum laborat SBC in communi, et cum R64 in specie, significat discentem quomodo onerare OS in eam et cum ea penitus possit, quia R64 portum monitorem non habet (HDMI, exempli gratia). Cum omnia deciderunt - Wifi cessaverunt opus, Aer retis, Bluetooth, USB, etc. UART est, per cuius interfaciem semper videre potes quid erravit, et etiam iussa duo a console, si opus est, currere.

Algorithmus nexus cum R64 per USB-UART:

  • currere ad partes radiophonicae reponunt pro USB-UART cable (PL2303, Serial-ut-USB)
  • unum USB finem cum computatro coniungimus, alterum, UART ad R64 cum tribus e quatuor filis, ut in pictura infra.
  • in computatrum consolatorium run sudo minicom

Deinde, ut in pluribus, una tabula consolatorium apparebit = successus.
Plura inveniri possunt hic.

Banana Pi R64 Router - Debian, Wireguard, RKN

Deinceps via facillima est ad systema operantem onerandum e SD card: download by Link imaginem et imposuisti;

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

schedulam in R64 SD-slot inserimus, verte, observa onerationem uboot primum in connexo console, dein vexillum Linux cothurno.

Vel optio tabernus optionis 64Gb card utens iam in R8 infixa est, nomine eMMC. Secundum instructiones de wiki, imaginem machinae auto
/dev/mmcblk0 ad BPI, reboot, SD card remove, iterum BPI da ... et non operatur. Quam ut ibi Boot select non tenere.

Re vera BPI necesse est ut saltem vexillum speciale apponat ut ab interno mico minari cothurno possit;

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]

Deinceps scribere debes preloader ad partitionem specialem tabernus

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

R64 manufacturer (China) missae hoc binarii hic. Quid faciat, ignoratur (exstant codices aliunde), sed sine eo opus vel non erit.

Fere deinde imagines onerare ab eMMC incipiunt. Si vis eam figurare et imagines e vulnere creare, tum pro utroque casu (SD / eMMC) debes pauca plura scribere (praeloader pro SD card, ATF, u-boot), modo ut ad nucleum. Booz. Hic locus adhuc developssed nobis consectetur est ut ac purus.

Nunc, ut honestum sit, non utor eMMC electronicarum SD chartarum satis est, sed permultum temporis operam impendi, ut in articulo sit.

Electio operandi ratio. Armbian

Prima applicationis negotium est VPN mittere, utique Wireguard. Confestim evenit ut ex nucleo latere non congregato, nec capita sine essent. nucleum reaedificavi et, ex consuetudine cum x86, nucleum moduli usus DKMS aedificavi. Sed conventus celeritatem in arm64 etiam parvae utilitatis ingratiis admiratus est. Et tunc requirebatur alius nucleus moduli, et sic porro. Fere evenit ut omnia ad nucleum pertinentia melius in tubo fermentum x86 laptop congregari, deinde ad R64 transferri per simplicem exscri- pationem, rebooted et probatum.

Alia res est pars usoris. In casu meo eligendi Debian, omnia pro arm64 architectura iam in fasciculis.debian.org et nihil opus est aliquid reficere.

Ne alium birotum proferas, I . nare armbian on BPI R64.
Vel potius: spatium usoris pars est Armbiana, et nucleus sumitur ex repositorio Frank-A. Ultima imago potest downloaded hic.

Omnis actio in progressione R64 pars programmatis exercetur forum. In universum fabrica ipsa iter itineris Openwrt divulgare studet, sed ob activitates Frank de Germania, omnes lineamenta cito in nucleo Debian finiunt. Mire, Frank in omni foro activum est filum.

Workspace organization: filis

Separatim, dicere tibi volo quomodo SBC (non modo BPI) in mensa in evolutione / probatione ponat, ut funem Aernei e fonte interreti per totum cubiculum / officium ei non ducat. Ita res est, ex una parte, necesse est ut ferrum in interreti praebeas, et ex altera parte, omnia in hoc ferro frangantur, et praesertim Wifi.

Primum constitui USB-Wifi vilis "sibilus", obturaculum in unicum portum in BPI et oblivisci circa fila. Ad hoc faciendum vilia TP-LINK TL-WN725N USB 2.0 comparavi, sed brevissime apparuit quod non auferret: sibilus enim ad operandum opus erat nucleo agitator, quod utique ibi non erat. (postea compilavit rectorem necessarium RTL8XXXU, sed adhuc impracticum est). Funis et aethereus ad tempus visum cubiculi perdidit.

Quam ob rem funem Tenda MW3 ope (Wifi reticulum systematis) tollendum curavi: unum simpliciter sub mensa posui et BPI ad LAN portum illius cum fune metri Ethernet contexui. Successus.

Wireguard, RKN, Bird

Una ex iis, quae Banana PI utimur, est aditus ad situs RKN saepissime impeditus, ut Telegram et laborem retrahas. Articuli de hoc argumento iam proponebantur Habre: tempus, Π΄Π²Π°, tribus.

Talem solutionem ansible utendi modo adhibui instruere: Link.

De VPS Ubuntu currere existimatur 18.04. Prosequuntur duos hospites in Europa: Amazon et Digital Ocean.

Itaque, superius Armbianum in R64 constituimus, per nomen ssh praesto est hm-bananapi-1 ac penitus aditum habet. successiue ansibilis, automationis scriptorum explicamus et institutionem ipsam in R64 discurrimus;

# зависимости для 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

Deinde necesse est ut nostrum VPN ad VPS eodem modo explicandum sit:

ansible-playbook ./router.py -l current-vpn

Hic, argumentum semper currenti-vpn, ipsumque nomen VPS in variabili configuratur (in hoc casu 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

Immo ante omnes has operationes debes secreta generare (in specie claves Wireguard) in folder . ./secrets, indicem spectare debet ita.

Ansible automation in Pythone

Scias licet pro forma YAML praecepta Ansibilis in scriptis Pythonis enodari. Ad comparationem, quomodo avem daemonem in morem praebeat;

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

et quomodo eadem via Python;

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

Scribens Ansible mandata cum Pythone codice permittit ut codicem recludas, et generatim omnes facultates linguae generalis propositi apertae sint. Exempli gratia, avis in R64 et VPS insertis:

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

vide munus codice install_bird ().

Hoc pluma dicitur pybook implemented hic. Nulla documenta in pybook adhuc est, tum hunc defectum emendabo.

Quid cogitat? stabat super aquas fluminis ferunt.

Cras. Prometheus

Totalis: telegraphum opera, coniunctum et pornhub etiam in genere, experientia usuario ok est. Sed omnia frangunt, et Seres ferreas quoque.

Kernel updates potest etiam iucunda esse: exempli gratia, volui nucleum 5.4 => 5.6 renovare, bene, Wireguard e cista est, nulla repeciare opus est... Citius dictum quam factum est: sedule transferuntur inaequaliter ab 5.4 ad 5.6, nucleus incepit, cuniculum ad VPS pingendum, sed avis cum errore "BGP Error" ... coniungere non potest "horrorem revolvit" (c) ad 5.4; movere ad 5.6 dilata in TODO.

Ideo, praeter institutionem itineris et VPS, vigilantiam addidi (de Ubuntu x86 18.04), quod in hospite separato cum sequentibus componentibus instituitur;

  • prometheus, alertmanager, blackbox_exporter - omnia in docker
  • summis mittuntur ad alveum telegraphum utentes metalmatze/alertmanager-bot - etiam in docker
  • tor automati, ut automati condiciones excitare possint cum Internet praesto est, sed telegraphum adhuc non laborat et ipsa automata coniungere non potest.
  • applicatas summis: nodeVPNTroubles (no ping ad VPS), BirdVPNTroubles (avis sessionis nulla), AntifilterDownloadTroubles (defecit onere clausus IP oratio), SiteTroubles (telegraphum infortunatum unavailable)
  • ratio summis sicut HostGrowingDiskReadLatency (d card cheap desinit legi)

Cras exemplum setup:

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

Auto Inventio pro prometheo ad folder /etc/prometheum/auto_http praeponitur, exemplum hostiae ad vigilantiam addendi (exercitus non per default monitores sunt);

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 provisores, 2 BPIs, anycast failover

Praeter omnia, cogitavit duobus provisoribus coniungere ut interreti labor pergeret, etiamsi unus provisor difficultates reticulatas haberet, vel obliti sunt solvere pro Interreti, etc., et alia hominum facta.

Usor antecedens experientia in argumento multi-pallenti describitur hic for Mwan3 system under Openwrt. Solutio haec dives functionality habet, sed generatim instituens et operans pro multi- pallido magis molestus est. Unum exemplum: si ad aliquas sites e duabus IP inscriptionibus simul veneris, tunc non placet, operando cessabunt => "Internet not working."

Hac experientia, multihoming non prius esse iudicavi, sed solum deficientem. Quamvis in recentissimis versionibus Linux omnia uno mandato similia laborent debere;

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

Itaque, ut nullum desit punctum defectionis, accipimus 2 BPIs, singula connecti cum uno provisore, coniunge et communicare inter se dynamica per avem / OSPF.

Praeterea, in singulis nuntiamus eandem IPscriptionem electronicam si ministratio suppetat (Internet, DNS). Hoc est, nosmetipsos non deponamus itineris defectus, sed per avem. Solutio speculatorum hic .

Hoc munus nondum impletum est, coronavirus insidiosus messuit (non omnia ab aliexpressa; alia copia online, Layta, pollicitus est se per hebdomadam liberaturum, et ultra mensem praeteriit, provisor secundus extendere non potuit; funem ante quarentenam, tantum foramen parietis ad terebrare pro fune tractandum est).

Quomodo iubes R64

Ipsam tabulam in tabula publica SinoVoip.
Praestat etiam statim iubere;

  • cibus + Informare EU vel US obturaculum vexillum
  • heat sink: radiators/fans; quia et CPU calefactum est, et chip commutatio
  • antennae WiFi, exempli gratia

Nuntiatum est - pretium traditionis ex aliquo tempore parum alte in officiali copia factus est. Procurator Judy Huang affirmavit me non esse errorem, et ePacket eligere potes pro $5, sed pro Russia tantum EMS pro >33$ esse vidi. Iniucundus, non criticus. Praeterea, si aliam regionem ad partum vis (per omnes continentes perrexi), partus ~5$ constabit. Russophobes?.. Sed tunc inveni in Gallia pretium partus etiam ~$30 esse, et sedata.

Quam ob rem Judy iubetur ponere, sed non reddere (admonitus: minus in schedula immittatur, ut solutio statim non perveniat); ei scribere et pretium ad normales naves reducere. Successus.

exitus

Non omnia tamen perfecte operantur.

productivity

Ansibilia Python imperata lente, etiam otiosis, pro 20-30 secundis efficiuntur; magnitu- dine longior quam in x86 laptop. Ac primum celeriter fiunt, secundis ~3, deinde acrius tardant. Fortasse hoc ex CPU calefactione (throttling). In Go codice etiam diu cursus est:

# запрос ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ для промСтСя ΠΈΠ· 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 opera, sed desinit in Armbiano post fere diem, scribit;

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
...

Tantum sileo adiuvat. Non opus est ut longius exstat.

Aer

Aer opera, sed post diem facis (DHCP) ab R64 venire desinunt.
Restarting adjuvat interface:

ifdown br0; sleep 30; ifup br0

Auriga nova est, nucleo nondum accepto, spero Chinese Landen Chao metam.

Source: www.habr.com