Banana Pi R1: možnosti a konfigurace LAN a Ethernet switche

28. 4. 2015
Doba čtení: 5 minut

Sdílet

Miniaturní počítač Banana Pi R1 má nejen LAN, ale i Ethernet switch. Po zprovoznění a konfiguraci Ethernet switche může být v počítači jedno až pět síťových rozhraní. Počítat zároveň může zastat funkci gigabitového routeru a switche. Jak je v Banana řešena síť? Jaká má omezení? Jak je výkonná?

Po instalaci Banana Linuxu jsou v systému tři síťové rozhraní.

  • eth0.101, které je na samostatném konektoru a je nakonfigurováno pro získání IP adresy z DHCP serveru.
  • eth0.102 není nakonfigurováno a obsahuje 4 zbylé LAN porty.
  • wlan0 bez konfigurace, funguje pouze v módu klient.

Úpravu konfigurace lze většinou provést v souboru /etc/network/interfaces, tak jak je v Debianu zvykem.

Možností kombinací síťových rozhraní

Ethernet switch společně s Linuxem poskytuje různé možnosti konfigurace systému a ethernetových rozhraní. Je možno jednotlivé síťové porty oddělit. Například rozdělit až na pět oddělených sítí:

  1. Internetová přípojka
  2. Demilitarizovaná zóna
  3. Zabezpečená síť
  4. Veřejná síť
  5. a stále jeden port zbude

Nebo mít všech pět portu pohromadě v jedné síti.

Výsledné nastavení pak může být značně odlišné od výchozí instalace. Nejdříve je však potřeba Ethernet switch a LAN nakonfigurovat.

Ethernet switch

Na desce počítače Banana Pi R1 je pět 1Gpbs portů. Sám procesor má však pouze jedno 1Gbps rozhraní. Více Ethernet portů zajišťuje čip BCM53125, což je sedmiportový Ethernet switch. Jeden port je použit pro propojení s CPU a pět je vyvedeno na konektory RJ-45. Ze součtu pak vychází, že jedna Ethernetová linka Ethernet switche je asi nevyužita.

Protože procesor má pouze jedno Ethernet rozhraní, je potřeba Ethernet switch nakonfigurovat a jednotlivé porty přiřadit do VLAN, které jsou pak v Linuxu viditelné jako Ethernet rozhraní.

Konfigurace může být libovolná od pět samostatných sítových rozhraní až po jedno společné. Přičemž žádný port nemá výsadní postavení.

Funkci L2 switche zajišťuje čip Ethernet switche, není třeba dávat Ethernet porty do bridge. Vlastně je potřeba provést opak, než když je v PC několik síťových karet. Dle potřeby se jedno síťové rozhraní pomocí VLAN rozdělí na více sítových rozhraní.

Ethernet switch je možné provozovat i pouze jako 5portový switch. I v takovém případě je stále potřeba nakonfigurovat Ethernet switch a vytvořit VLAN, protože bez této konfigurace nebude fungovat jako switch, přitom komunikace jednotlivých počítačů s B-Pi bude normálně fungovat.

Konfigurace Ethernet switche

Při pohledu na RJ-45 zdířky jsou jednotlivé ethernetové linky Ethernet switche na počítači Banana Pi R1 zapojeny v tomto pořadí: |2|1|0|4| |3|

Ethernet switch se konfiguruje nástrojem swconfig. Konfigurace je v souboru  /etc/network/if-pre-up.d/swconfig.

V čisté instalaci je obsah souboru následující:

#!/bin/sh
ifconfig eth0 up

swconfig dev eth0 set reset 1
swconfig dev eth0 set enable_vlan 1

swconfig dev eth0 vlan 101 set ports '3 8t'
swconfig dev eth0 vlan 102 set ports '4 0 1 2 8t'

swconfig dev eth0 set apply

Z konfigurace jsou jasně patrné dva řádky, které vytvářejí VLAN pro linku číslo 3 a zvlášť VLAN pro linky číslo 4,0,1 a 2. V systému se objeví jako síťové rozhraní eth0.101 a eth0.102.

V případě potřeby všech pěti portů jako jednoho rozhraní, tedy že počítač bude fungovat jako pětiportový switch, je potřeba zmíněné dva řádky nahradit jedním následujícím:

swconfig dev eth0 vlan 100 set ports '4 0 1 2 3 8t'

Protilehlou možností je Ethetnet switch nakonfigurovat jako pět samostatných síťových rozhraní a routovat pět sítí.

Dokumentace a názorný obrázek k programu swconfig je na webu OpenWRT.

Vytvořená ethernetová rozhraní se následně konfigurují standardním způsobem v souboru /etc/network/interfaces. Rozhraní eth0.101, které v defaultní konfiguraci představuje VLAN z linky č.3 Ethernet switche (zdířka samostatného LAN portu), má následující konfigurační zápis, který říká, že síťová karta se nastavuje dynamicky pomocí DHCP.

auto eth0.101
iface eth0.101 inet dhcp

Statická konfigurace může být následující.

iface eth0.102 inet static
       address 91.213.160.118
       netmask 255.255.255.0
       broadcast 91.213.160.255
       gateway 91.213.160.1

U statické konfigurace, je potřeba do souboru /etc/resolv.conf doplnit IP adresy DNS serverů, jinak Internet nebude fungovat.

Zapínání a vypínaní sítových rozhraní provedete příkazem:

ifdown/ifup ethX

Příkazy s swconfig  lze spouštět ručně, ale celkovou správnou funkčnost nezapomeňte ověřit restartem celého počítače.

V případě neúspěšné konfigurace sítě a Ethernet switche, určitě využijete možnost připojit se k počítači přes seriovou konzoli.

Výkon Ethernetu

Při nevhodném nasazení bylo slabinou Raspberry Pi pomalé Ethernetové rozhraní, protože je připojeno přes USB 2.0 sběrnici, která je pomalejší než 100Mbs síť.

Tímto problémem Banana Pi netrpí navíc má síťové rozhraní rychlejší 1Gbps.

Test programem iperf. Banana Pi R1 je spojeno přímo s PC s 1Gbps ethernet rozhraním.

[  3]  0.0-10.0 sec   357 MBytes   300 Mbits/sec
[  3]  0.0-10.0 sec   421 MBytes   353 Mbits/sec
[  3]  0.0-10.0 sec   434 MBytes   364 Mbits/sec
[  3]  0.0-10.0 sec   441 MBytes   370 Mbits/sec

Bohužel testy byly provedeny s kabelem pro 100Mbit síť. Proto taky asi iperf nedosáhl hodnoty 700–800 Mbits/sec jako v testech jiných uživatelů.

Orientačním testem přenosu souborů z Banana Pi R1 při použití Samby a SSD disku bylo dosaženo rychlosti cca 22 MB/s. Zápis byl slabší a výrazně kolísal.

Výchozí laditelné nastavení TCP / IP není optimalizované pro provoz gigabitové sítě. Zvýšení velikosti vyrovnávací paměti a délky fronty umožňuje lepší výsledky na gigabitové síti.

    sysctl -w net/core/rmem_max=8738000
    sysctl -w net/core/wmem_max=6553600
    sysctl -w net/ipv4/tcp_rmem="8192 873800 8738000"
    sysctl -w net/ipv4/tcp_wmem="4096 655360 6553600"
    sysctl -w vm/min_free_kbytes=65536
    ip link set eth0 txqueuelen 10000

Při použití síťových zařízení s vysokou latencí a malou šířkou pásma, však může takové nastavení výkon i snížit.

Další nastavení sítě

Jestli je povoleno routouvání mezí více síťovými rozhraními lze ověřit příkazem: cat /proc/sys/net/ipv4/ip_forward, nula znamená zakázáno jedna povoleno.

Trvalé povolení je nejlépe nastavit v souboru /etc/sysctl.conf. Řádek příslušného parametru s hodnotou jedna by měl vypadat takto:

bitcoin_skoleni

net.ipv4.ip_forward=1

Také je potřeba zkontrolovat nastavení firewallu. Jednorázově lze forward povolit příkazem:

iptables -P FORWARD ACCEPT

Závěr

Nyní můžete k Banana Pi R1 připojit 5 počítačů a provést rozličné testy výkonu sítě. Po zprovoznění WiFi i v módu AP, který bude v následujícím článku, bude možno připojit nespočet dalších zařízení bezdrátově.

Seriál: Banana Pi R1

Autor článku

Josef Jebavý je profesí linuxový admin a vývojář softwaru, ale zabývá se i hardwarem a elektronikou. Mimo dílnu a počítačové pracoviště se obvykle věnuje sportu.