Public network bridge nefunguje

Public network bridge nefunguje
« kdy: 06. 01. 2020, 11:55:50 »
Ahoj,
začal jsem používat QEMU na virtualizaci VMek a chtěl jsem přestat používat privátní sítě, abych nemusel všechno NATovat jako zběsilej.
V systemd-networkd jsem podle tohoto návodu tedy nastavil bridge na eth0 if: https://wiki.archlinux.org/index.php/Systemd-networkd#Bridge_interface
Poté bridge začal fungovat a dohonce si natáhl config z DHCP a na hostovi byla funkční síť.
Tak jsem spustil v QEMU VMko pomocí těchto příkazů: https://wiki.archlinux.org/index.php/QEMU#Bridged_networking_using_qemu-bridge-helper
Tap if se vytvořil a při vylistování mi to ukazovalo, že je to spojené s tím bridgem.
Poté jsem zkoušel tedy ve VMku spustit Arch instalačku.
Dhcpcd mi timeoutuje a ikdyž nastavím síť manuálně, tak nefunguje.
Už v tom ležím dva týdny a nepřišel jsem zatím na to, kde by mohl být problém.
Jakákoliv pomoc je vítána.
Děkuji


Re:Public network bridge nefunguje
« Odpověď #1 kdy: 06. 01. 2020, 14:06:12 »
Nemáte někde v cestě Wi-Fi? Wi-Fi klient a most nejdou moc dobře dohromady.

Re:Public network bridge nefunguje
« Odpověď #2 kdy: 06. 01. 2020, 14:33:39 »
No máme mikrotik, který funguje jako router a za ním máme switch, ve kterém je připojený kabelem server, kde se snažím zprovoznit bridge a také v tom switchi máme připojený Ubiquiti AP modul.
Může to být ten problém? Ještě mě napadají nějaké konflikty se softwarem jako libvirt atd.
Je možné někde najít nějaké logy, proč ten bridge nefunguje?

Re:Public network bridge nefunguje
« Odpověď #3 kdy: 06. 01. 2020, 15:04:00 »
V tom případě problém s Wi-Fi nebude. O tom dalším nic nevím ;)

Re:Public network bridge nefunguje
« Odpověď #4 kdy: 07. 01. 2020, 07:48:54 »
Firewall na host mašině nebo povolené STP na bridge s 30 sekundovým timeoutem - traffic přes bridge začne jít až po půl minutě po nahození interface. dhcpcd dělá interface down/up před tím, než začne vysílat a čekat.

V tom Mikrotiku se v Bridge->Hosts dá ověřit, jestli z toho portu je více MAC adres nebo je tam jenom jedna toho hosta.

A ten timeout jde změnit přes
Kód: [Vybrat]
brctl br0 setfd 0
« Poslední změna: 07. 01. 2020, 07:55:28 od Vantomas »


Re:Public network bridge nefunguje
« Odpověď #5 kdy: 07. 01. 2020, 11:11:05 »
Na host mašině firewall nemám. Ten mám až na Mikrotiku.

STP bylo nastaveno na 15 sekund. Nastavil jsem na 0 sekund, ale pořád to stejné.

V Bridge -> Hosts v Mikrotiku je 0 entries.

Ještě posílám vylistované info i bridgi (zdá se mi divné, že tap0 je forwarding...):
Kód: [Vybrat]
[root@devserver1 ~]# brctl showstp bridge0
bridge0
 bridge id 8000.324741588244
 designated root 8000.324741588244
 root port    0 path cost    0
 max age   19.99 bridge max age   19.99
 hello time    1.99 bridge hello time    1.99
 forward delay    0.00 bridge forward delay    0.00
 ageing time 299.99
 hello timer    0.00 tcn timer    0.00
 topology change timer    0.00 gc timer 130.98
 flags


enp30s0 (1)
 port id 8001 state      forwarding
 designated root 8000.324741588244 path cost    4
 designated bridge 8000.324741588244 message age timer    0.00
 designated port 8001 forward delay timer    0.00
 designated cost    0 hold timer    0.00
 flags

tap0 (2)
 port id 8002 state      forwarding
 designated root 8000.324741588244 path cost 100
 designated bridge 8000.324741588244 message age timer    0.00
 designated port 8002 forward delay timer    0.00
 designated cost    0 hold timer    0.00
 flags

Re:Public network bridge nefunguje
« Odpověď #6 kdy: 07. 01. 2020, 11:21:59 »
State: forwarding je v pořádku, to znamená, že do/z toho portu se posílají data. Jiné stavy jsou třeba listening nebo blocked, je to stav v rámci STP protokolu, což je ochrana proti smyčkám na síti.

Na tom Mikrotiku jsem pochopil, že ten ethernet bude v bridge, evidentně není, když v Hosts žádné záznamy nejsou :). V takovém případě by prostě měly být vidět alespoň MAC adresy v IP->ARP.

Dále bych tedy postupoval diagnostikou: z virtuálu zkusit ping na hosta, pak na Mikrotik, z Mikrotika zkusit ping na hosta, pak na virtuál. Zapnout si k tomu na hostu tcpdump na bridge.

Základní konfigurace bridge prostě je brctl addbr, brctl addif a brctl addif a mělo by to hned hrát a neměly být žádné komplikace.

Edit: Ještě mě napadlo, že dřív býval v Linuxu problém pokud bylo IP nastavené na eth0. IP musí být nastaveno pouze na br0 a eth0+tap0 musí být jen up bez IP adres.

Re:Public network bridge nefunguje
« Odpověď #7 kdy: 07. 01. 2020, 11:52:29 »
No v IP na Mikrotiku je Host. Mám tam pevně nastavenou DHCP adresu pro něj.

Z virtuálu nepingnu nic. Když nastavím síť staticky, tak mi nejde nic. Když zkusím nastavit přes DHCP, tak DHCP timeoutuje.

Ohledně toho tcpdumpu - proudí mi tam velké množství dat. Mám na hostovi ještě 100+ kontejnerů v dockeru. Ikdyž jsem docker vypnul, tak pořád tam běhaly tisícovky data v tom tcpdumpu za sekundu, takže buď to budu nějak muset filtrovat nebo nevím.

Na eth0 IP adresu nastavenou nemám. Po nastavení bridge jsem alokoval adresu na bridge a dealokoval z eth0.

Není možné, že mám špatnou MACAdresu toho zařízení a proto to nefunguje? Použil jsem tu defaultní, co mi nabízel tutoriál.
Také není možné, že je problém v dockeru? Má tam vlastní bridge do virtuálních sítí?.

Re:Public network bridge nefunguje
« Odpověď #8 kdy: 07. 01. 2020, 11:58:23 »
Aha, to by mohl být problém. Popravdě síťování v dockeru neznám, ale když jsem to hodil do googlu, tak je to častý problém. Třeba z prvního odkazu to někdo vyřešil doplněním pravidel do iptables: https://bbs.archlinux.org/viewtopic.php?id=233727

Re:Public network bridge nefunguje
« Odpověď #9 kdy: 07. 01. 2020, 12:22:37 »
Fakt to bylo tím Dockerem. Já zapomněl, že vlastně používá iptables, které jinak vůbec nepoužívám.
Přidal jsem si před start qemu vm
Kód: [Vybrat]
/usr/bin/iptables -A FORWARD -p all -i bridge0 -j ACCEPTA teď už to frčí dobře.
Skoro dva týdny to tu řeším a řešení bylo tak jednoduché...
Díky moc!

Re:Public network bridge nefunguje
« Odpověď #10 kdy: 07. 01. 2020, 12:25:02 »
Super.

Jak je v tom fóru, doporučuji dát ty řádky ExecStartPre do .service souboru od dockeru, aby bylo opravdu zajištěno, že se tato pravidla nastaví při každém restartu dockeru.

Re:Public network bridge nefunguje
« Odpověď #11 kdy: 07. 01. 2020, 12:26:51 »
Jo, to já si to tam přidám. Teď to mám zatím provizorně u toho QEMU, ale až budu mít čas s tím elaborovat, tak to přidám k Docker service.