Ródaire Banana Pi R64 - Debian, Wireguard, RKN

Is ríomhaire aonchláir é an Banana Pi 64 cosúil leis an Raspberry Pi, ach le roinnt calafoirt Ethernet, rud a fhágann gur féidir é a iompú ina ródaire bunaithe ar dháileadh ginearálta Linux.

Ródaire Banana Pi R64 - Debian, Wireguard, RKN

Sea, tá Openwrt ann cheana féin, ach tá a chuid fadhbanna féin aige, a GUI agus CLI; Tá Mikrotik ann, ach arís tá a GUI/CLI féin aige, agus ní oibríonn Wireguard as an mbosca... Go ginearálta, teastaíonn uaim ródaire le socruithe solúbtha, agus é fós laistigh de chreat an ghnáth-Linux, a oibríonn tú le gach lá.

San alt faoi na hainmneacha BPI, R64, singil-bord, ciallóidh mé an rud céanna - an Banana Pi R64 aon-chlár féin.

Roghnú íomhá. Íoslódáil tríd eMMC

An chéad scil a chaithfidh tú a fháil agus tú ag obair leis SBC go ginearálta, agus leis an R64 go háirithe, ciallaíonn sé seo foghlaim conas córas oibriúcháin a luchtú isteach ann agus a bheith in ann idirghníomhú leis, toisc nach bhfuil calafort ag an R64 le haghaidh monatóireacht a dhéanamh (HDMI, mar shampla). Nuair a thit gach rud amach - Wifi, Ethernet, Bluetooth, USB, etc stop ag obair Tá UART, tríd an comhéadan ar féidir leat a fheiceáil i gcónaí cad a chuaigh mícheart, agus freisin a reáchtáil ar feadh cúpla orduithe ón consól, más gá.

Algartam chun nascadh le R64 trí USB-UART:

  • ritheann muid chuig an siopa páirteanna raidió le haghaidh cábla USB-UART (PL2303, Srathach-go-USB)
  • ceangail foirceann USB amháin leis an ríomhaire, agus an ceann eile, UART, leis an R64, le trí shreang as ceithre, mar atá sa phictiúr thíos
  • rith sa chonsól ríomhaire sudo minicom

Tar éis seo, i bhformhór na gcásanna beidh an consól aon-chláir le feiceáil = rath.
Is féidir leat tuilleadh sonraí a fheiceáil anseo.

Ródaire Banana Pi R64 - Debian, Wireguard, RKN

Ansin, is é an bealach is éasca an córas oibriúcháin a luchtú ó chárta SD: íoslódáil trí nasc íomhá agus líon é:

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

Cuirimid an cárta isteach sa sliotán R64 SD, cuirimid ar siúl é, agus breathnaimid ar an gconsól ceangailte ag luchtú an chéad uboot, ansin luchtú caighdeánach Linux.

Tá rogha tosaithe eile ag baint úsáide as cárta 64Gb a tógadh isteach sa R8 cheana féin, ar a dtugtar eMMC. De réir na dtreoracha sa vicí, cóipeáilimid an íomhá chuig an bhfeiste
/dev/mmcblk0 chuig BPI, atosaigh, bain an cárta SD, cas ar BPI arís ... agus ní oibríonn sé. Conas dul ar ais agus amach Boot select ná bac.

Is é an fírinne ná go gcaithfidh tú bratach speisialta a shocrú le haghaidh BPI ar a laghad chun go mbeidh tú in ann tosaithe ó thiomáint flash inmheánach:

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]

Ina dhiaidh sin, ní mór duit réamhlódóir a scríobh isteach i ndeighilt tosaithe speisialta

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

Rinne Monaróir R64 (tSín) an dénártha seo a phostáil anseo. Ní fios cad a dhéanann sé (níl aon cóid foinse ann), ach ní oibreoidh sé gan é ach an oiread.

Go ginearálta, tar éis seo, tosaíonn na híomhánna a luchtú ó eMMC. Más mian leat é a dhéanamh amach agus íomhánna a chruthú ón tús, ansin don dá chás (SD / eMMC) ní mór duit roinnt comhad eile a scríobh (réamh-lódóir le haghaidh cárta SD, ATF, u-tosaithe) díreach chun an eithne a luchtú. Tá an topaic seo fós ag forbairt, ach dúinn is é an rud is mó go n-oibríonn sé agus ceart go leor.

Anois déanaim é a íoslódáil trí eMMC, le bheith macánta, ní úsáidim é, is leor cárta SD, ach chaith mé go leor ama á fháil ag obair, mar sin lig dó a bheith san alt.

Roghnú córas oibriúcháin. Airm

Is é an chéad tasc iarratais ná VPN, go nádúrtha Wireguard. Fuarthas amach láithreach nach raibh sé le chéile ar thaobh na heithne agus nach raibh aon cheanntásca. D'atóg mé an eithne agus, mar is gnách le x86, chuir mé le chéile an modúl eithne ag baint úsáide as DKMS. Mar sin féin, chuir an luas a bhain le fiú fóntais bheaga a thógáil ar arm64 ionadh míthaitneamhach orm. Agus ansin bhí modúl eithne eile ag teastáil, etc. Go ginearálta, tharlaíonn sé gur fearr gach rud a bhaineann leis an eithne a chur le chéile ar ríomhaire glúine te x86, ansin aistrítear chuig an R64 trí chóipeáil shimplí, a atosaigh agus a thástáil.

Rud eile is ea an chuid userspace. I mo chás maidir le Debian a roghnú, tá gach rud le haghaidh ailtireacht arm64 cheana féin ar packages.debian.org agus ní gá aon rud a atógáil.

Chun gan rothar eile a tháirgeadh, I portáilte Airm ar BPI R64.
Nó ina áit sin, seo: tá an chuid spáis úsáideora Armbian, agus tógtar an eithne ón stór Frank-A. Is féidir an íomhá is déanaí a íoslódáil anseo.

Déantar gach gníomhaíocht ar fhorbairt na coda bogearraí de R64 ar fóram. Go ginearálta, déanann an monaróir féin a dhícheall tóir a dhéanamh ar an ródaire le haghaidh Openwrt, ach a bhuíochas le gníomhaíocht an fhorbróra Frank ón nGearmáin, críochnaíonn na gnéithe go léir go tapa san eithne do Debian. Is ionadh é go bhfuil Frank gníomhach i ngach snáithe fóraim.

Eagraíocht spás oibre: sreanga

Ar leithligh, ba mhaith liom a insint duit conas, le linn forbartha / tástála, SBC (ní hamháin BPI) a chur ar bhord ionas nach rithfí cábla Ethernet chuige ó fhoinse Idirlín ar fud an tseomra / oifig ar fad. Is é an fírinne, ar thaobh amháin, go gcaithfidh tú píosa crua-earraí a sholáthar leis an Idirlíon, ach ar an láimh eile, is féidir le gach rud sa phíosa crua-earraí sin briseadh síos, agus ar an gcéad dul síos Wifi.

Ar dtús, chinn mé “feadóg” USB-Wifi saor a cheannach, é a phlugáil isteach san aon phort amháin ar an BPI agus dearmad a dhéanamh ar na sreanga. Chun seo a dhéanamh, cheannaigh mé TP-LINK TL-WN725N USB 2.0 saor, ach go han-luath ba léir nach n-éireodh leis: le go n-oibreodh an fheadóg, is gá duit tiománaí eithne, nach raibh, ar ndóigh, ann. (Chruinnigh mé an tiománaí RTL8XXXU riachtanach níos déanaí, ach tá sé praiticiúil fós). Agus millte an cábla Ethernet cuma an tseomra ar feadh tamaill.

Mar thoradh air sin, d'éirigh liom fáil réidh leis an gcábla le cabhair ó Tenda MW3 (córas mogalra Wifi): chuir mé ciúb amháin faoin mbord agus cheangail mé an BPI le calafort LAN an dara ceann le cábla Ethernet méadar ar fhad. Rath.

Wireguard, RKN, Éan

Ceann de na rudaí is mian liom Banana PI a úsáid dó ná rochtain saor in aisce a bheith agam ar shuíomhanna atá bacáilte ag RKN, go háirithe, ionas gur féidir le glaonna Telegram agus Slack oibriú. Tá ailt ar Habré molta cheana ar an ábhar seo: am, два, trí.

D'imlonnaigh mé an réiteach seo go díreach ag baint úsáide as Ansible: nasc.

Glactar leis go bhfuil an VPS ag rith Ubuntu 18.04. Sheiceáil mé an fheidhmiúlacht ar dhá óstach san Eoraip: Amazon agus Aigéan Digiteach.

Mar sin, shuiteáileamar an Armbian thuas ar R64, tá sé inrochtana trí ssh faoin ainm hm-bananapi-1 agus tá rochtain idirlín aige. Imscaraimid go comhsheasmhach scripteanna uathoibrithe Ansible agus seolann muid an tsuiteáil féin ar 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

Ansin, ní mór duit ár VPN a imscaradh chuig an VPS ar an mbealach céanna:

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

Anseo tá an argóint i gcónaí current-vpn, agus tá an t-ainm VPS iarbhír cumraithe in athróg (sa chás seo is 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

Sea, roimh na hoibríochtaí seo go léir ní mór duit rúin a ghiniúint (go háirithe eochracha Wireguard) isteach san fhillteán ./secrets, ba chóir go mbeadh cuma ar an eolaire mar sin.

Uathoibriú Infheidhmithe i Python

Féadfaidh tú a thabhairt faoi deara, in ionad a bheith i bhformáid YAML, go bhfuil na horduithe Ansible ionchódaithe i scripteanna Python. Chun comparáid a dhéanamh, conas an deamhan éan a chumasú ar an ngnáthbhealach:

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

agus conas an rud céanna a dhéanamh trí Python:

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

Má scríobhtar orduithe Ansible i Python is féidir leat an cód a athúsáid, agus go ginearálta osclaíonn sé féidearthachtaí uile na teanga ilfheidhme. Mar shampla, éan a shuiteáil ar R64 agus VPS:

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

féach an cód feidhme install_bird().

An ghné seo ar a dtugtar pybook curtha i bhfeidhm anseo. Níl aon doiciméadú ar pybook fós, ach réiteoidh mé an cheist seo níos déanaí.

Cad a cheapann sé suas an sruth ar an ócáid ​​seo.

Monatóireacht. Prometheus

Iomlán: oibríonn teileagram, linkedin agus pornhub freisin, go ginearálta tá taithí an úsáideora ceart go leor. Ach is féidir gach rud a bhriseadh, lena n-áirítear crua-earraí na Síne.

Is féidir le nuashonruithe eithne a bheith suimiúil freisin: mar shampla, bhí mé ag iarraidh eithne 5.4 => 5.6 a nuashonrú, bhuel, tá Wireguard ann as an mbosca, ní gá paiste a dhéanamh ... Ní túisce a dúirt ná a rinneadh: d'aistrigh mé na paistí go cúramach ó 5.4 go 5.6, thosaigh an eithne suas, an tollán go dtí an VPS pinged, ach ní féidir éan a nascadh leis an earráid "Earráid BGP" ... "rolladh mé ar ais i horror" (c) go 5.4; Cuireadh an t-aistriú go 5.6 siar in TODO.

Mar sin, chomh maith leis an ródaire agus VPS a shuiteáil, chuir mé monatóireacht isteach (ar x86 Ubuntu 18.04), atá suiteáilte ar óstach ar leith leis na comhpháirteanna seo a leanas:

  • prometheus, alertmanager, blackbox_exporter - go léir i docker
  • Seoltar foláirimh chuig an gcainéal teileagram ag baint úsáid as an bot metalmatze/alertmanager-bot - in Docker freisin
  • tor don bot, ionas gur féidir leis an bot a chur san airdeall cásanna nuair a bhíonn an tIdirlíon ann, ach ní oibríonn Telegram go fóill, agus ní féidir leis an bot féin ceangal
  • i bhfeidhm foláirimh: Trioblóidí NodeVPNT (gan ping le VPS), Trioblóidí BirdVPNT (gan seisiún Éan), AntifilterDownloadTroubles (earráid agus seoltaí IP bactha á lódáil), SiteTroubles (níl teileagram droch-cháilithe ar fáil)
  • foláirimh chórais, mar shampla, HostGrowingDiskReadLatency (éiríonn cárta SD saor inléite)

Sampla suiteáil monatóireachta:

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

Tá Auto Discovery for Prometheus cumraithe san fhillteán /etc/prometheus/auto_http, sampla de óstach a chur leis an monatóireacht (ní dhéantar monatóireacht ar óstaigh de réir réamhshocraithe):

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 sholáthraí, 2 BPI, aon theilgean teip

Chomh maith le gach rud, bhí sé beartaithe agam ceangal a dhéanamh le dhá sholáthraí ionas go leanfadh an Idirlíon ag obair, fiú má bhí fadhbanna ag soláthraí amháin leis an líonra, nó má rinne siad dearmad íoc as an Idirlíon, etc., agus fachtóirí daonna eile.

Déantar cur síos ar an taithí úsáideora is airde ar an ábhar il-wan anseo don chóras Mwan3 faoi Openwrt. Tá feidhmiúlacht shaibhir ag an réiteach seo, ach tá sé deacair go leor é a bhunú agus a oibriú go ginearálta le haghaidh il-wan. Sampla amháin: má thagann tú chuig suíomhanna áirithe ó dhá sheoladh IP ag an am céanna, b’fhéidir nach dtaitníonn sé leo, stopfaidh siad ag obair => “níl an tIdirlíon ag obair.”

Agus an t-eispéireas seo á chur san áireamh, chinn mé nach tosaíocht go fóill é multihoming, gan ach teip. Cé gur cosúil, sna leaganacha is déanaí de Linux ba chóir go n-oibreodh gach rud le hordú amháin mar:

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

Mar sin, chun aon phointe teipe a sheachaint, glacaimid 2 BPI, nascaimid gach soláthraí le soláthraí amháin, nascaimid lena chéile agus déanaimid nasc lena chéile trí ródú dinimiciúil trí éan/OSPF.

Ansin, fógraímid an seoladh IP céanna ar gach ceann má tá an tseirbhís ar fáil (Idirlíon, DNS). Is é sin, ní leagfaimid an bealach réamhshocraithe dúinn féin, ach trí éan. spied mé an réiteach anseo .

Níl an fheidhmiúlacht seo curtha i bhfeidhm go fóill, d'imir an coronavirus insidious cleas anseo (níor tháinig gach rud ó Aliexpress; gheall siopa ar líne eile, Layta, a sheachadadh i gceann seachtaine, ach tá níos mó ná mí caite; ní raibh am ag an dara soláthraí chun an cábla a shíneadh roimh coraintín, níor éirigh leis ach poll sa druil a fháil isteach sa bhalla don chábla).

Conas a ordú R64

Tá an bord féin sa siopa oifigiúil SinVoip.
Is fearr freisin ordú láithreach:

  • bia + cuir an caighdeán breiseán AE nó SAM ar an eolas
  • doirteal teasa: radaitheoirí/lucht leanúna; toisc go bhfuil an LAP agus an sliseanna lasc araon ag téamh suas
  • antenna wifi, mar shampla

Tá nuance ann - níl an praghas seachadta sách ard sa siopa oifigiúil le tamall anuas. Chuir an bainisteoir Judy Huang ina luí orm nach raibh aon earráid ann, agus d’fhéadfá ePacket a roghnú ar $5, ach chonaic mé nach bhfuil sa Rúis ach EMS ar >$33. Míthaitneamhach, ach ní criticiúil. Ina theannta sin, má roghnaíonn tú aon tír eile le haghaidh seachadta (chuaigh mé tríd na mór-roinn go léir), cosnóidh an seachadadh ~$5. Russophobes?.. Ach ansin fuair mé amach go bhfuil an praghas seachadta don Fhrainc freisin ~30$, agus calmed mé síos.

Mar thoradh air sin, thairg Judy ordú a dhéanamh, ach gan íoc (leid: níos lú a chur ar an gcárta ionas nach dtéann an íocaíocht uathoibríoch); scríobh chuici agus laghdóidh sí an praghas seachadta go gnáth. Rath.

Ceisteanna

Níl gach rud ag obair go foirfe fós.

Táirgiúlacht

Ansible=Déantar orduithe Python go mall, fiú cinn díomhaoin, ar feadh 20-30 soicind; ord méide níos faide ná ar ríomhaire glúine x86. Ina theannta sin, ar dtús déantar iad a fhorghníomhú go tapa go leor, ~ 3 soicind, ansin mhoillíonn siad go géar. D'fhéadfadh sé seo a bheith mar gheall ar an LAP a théamh suas (throttling). Tógann an cód Téigh go leor ama chun oibriú freisin:

# запрос метрик для прометея из 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

Oibríonn Wifi, ach ar Armbian stopann sé tar éis thart ar lá, scríobhann:

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

Ní chabhraíonn ach atosú. Caithfimid bogadh ar aghaidh figiúr sé amach.

Ethernet

Oibríonn Ethernet, ach tar éis ~ 64 uair an chloig paicéid (DHCP) ó RXNUMX stop ag teacht.
Cuidíonn sé seo le atosú an chomhéadain:

ifdown br0; sleep 30; ifup br0

Tá an tiománaí nua, níor glacadh leis san eithne go fóill, tá súil agam gur Sínis Landen Chao é chríochnaíonn sé.

Foinse: will.com

Add a comment