Portál AbcLinuxu, 4. května 2025 09:12

Dotaz: Protažení L2 sítě do LXC v Proxmoxu

21.11.2022 13:45 MilanC | skóre: 16
Protažení L2 sítě do LXC v Proxmoxu
Přečteno: 592×
Odpovědět | Admin
Ahoj,

mám nějaké zařízení v internetu a cílem je protáhnout do kontejneru v proxmoxu síť tak, abych ji měl na úrovni L2 a tedy byl zcela ve stejné lokální síti jako dané zařízení (mohl využívat nástroje typu arp-scan aj.).

Pro navázání VPN ze zařízení na proxmox server využívám WireGuard VPN. Pro tunelování L2 skrze WireGuard pak GRE (resp. gretap).

Scénář 1) Původní plán byl samotný gretap navazovat až v konejneru. https://snipboard.io/xPn2FV.jpg Jak jsem ale pochopil, tak wg0 je L3 rozhraní a nelze jej dát do Proxmox bridge vmbr, alespoň mě se to nepodařilo. Toto jsem tedy vzdal.

Scénář 2) Gretap (je více zařízení, takže více gretap rozhraní) zakončit přímo na proxmoxu, každé pak umístit do vlastního vmbrX bridge a tento protáhnout do LXC kontejneru na tamní rozhraní. Idea zde: https://snipboard.io/f5mMHh.jpg Ale nefunguje. Např. gretap1 je protažený do kontejneru 101 na rozhraní eth1_gretap.
root@pve:/etc/network# brctl show
bridge name     bridge id               STP enabled     interfaces
cmbr2           8000.7aba7e4bbf31       no
vmbr0           8000.0cc47accec9d       no              eno2
vmbr1           8000.c6cd6eb3ee0b       no
vmbr2           8000.3a1f353fc751       no              gretap1
vmbr3           8000.ee8de825eab0       no              gretap2
vmbr4           8000.76f4934e237d       no              gretap3
Na gretap1 na proxmoxu tcpdumpuju traffic (ARPy/IPv6 z LAN sítě kde zařízení je = OK), totéž i uvnitř vmbr2. Ale v tom kontejneru jako takovém na eth1_gretap už nemám vůbec nic.

Koukal jsem na logy, ale také nic moc zajímavého, podezřelé je možná jen tohle? Ale nemyslím, že by to souviselo.
Nov 21 13:24:15 pve-routers kernel: [491140.133721] audit: type=1400 audit(1669033455.554:114): apparmor="DENIED" operation="file_inherit" namespace="root//lxc-101_<-var-lib-lxc>" profile="tcpdump" name="/dev/tty1" pid=1301000 comm="tcpdump" requested_mask="wr" denied_mask="wr" fsuid=100000 ouid=100000
Tak je otázka, jestli je ten návrh vůbec možný realizovat nebo to takto nepůjde. Prostě mám množství L2 sítí, do kterých chci přistupovat, proto jsem chtěl kontejnery, které se budou dynamicky vytvářet ze šablony dle potřeby a daný kontejner vždy bude součástí dané LAN sítě.

Milan
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.11.2022 15:59 X
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Abych si ujasnil scenar dva. Mas sprovozneny wireguard mezi proxmox a vzdalenym zarizenim ve kterem mas L2 GRE tunel zakonceny na proxmox jako greptapX. Tento greptapX jsi pridal do vmbrX. Dale mas kontejner se sitovkou ensX, ktera je take soucasti vmbrX. Problem je, ze na ensX nevidis data z toho tunelu ok?
21.11.2022 16:12 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Ahoj, ano, je to přesně tak, jak jsi shrnul.
22.11.2022 10:07 X
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Jen nahodou, mas v tom kontejneru zavedeny modul 'ip_gre' pripadne 'nf_conntrack_proto_gre'? Podle tohoto tvoje reseni funguje.
22.11.2022 14:23 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Mám, vypadá to v kontejneru takto, jinak firewally jsou všude vypnuté:
root@CT101:~# lsmod | grep gre
ip_gre                 28672  0
ip_tunnel              32768  1 ip_gre
gre                    16384  1 ip_gre
Ještě mě napadá, jestli na vině nemůže být pořadí. Já si nejprve v proxmoxu vytvořil ty gretap
ip link add gretap1 type gretap local 192.168.250.1 remote 192.168.250.2
ip link set dev gretap1 up

ip link add gretap2 type gretap local 192.168.250.1 remote 192.168.250.3
ip link set dev gretap2 up

ip link add gretap3 type gretap local 192.168.250.1 remote 192.168.250.4
ip link set dev gretap3 up
A le bridge mám v /etc/networking/interfaces. No nemělo by to asi vadit, když je v brctl show vidím správně?

root@pve:/home/milanc/varianta2# brctl show | grep gretap vmbr2 8000.3a1f353fc751 no gretap1 vmbr3 8000.ee8de825eab0 no gretap2 vmbr4 8000.76f4934e237d no gretap3

Kouknu na ten link.
22.11.2022 15:52 X
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Nemelo by to vadit. V navodu je to stejne:
brctl addbr superbr0

ifconfig superbr0 up

ip link add testgre type gretap remote 2.2.2.2 local 1.1.1.1. ttl 255

brctl addif superbr0 testgre
Both superbr0 bridges are connected to each other over the testgre tunnel and any VM or container which connects to the superbr0 bridge on either host will be on the same layer 2 network.
22.11.2022 17:24 Vantomas | skóre: 32 | Praha
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Raději se zeptám, ale ebtables je prázdné?

Co brctl showmacs? Je na hypervisoru vidět macovka z virtuálu?

Jaká je velikost MTU na gretap? Asi bychom mohli vidět "ip l"
23.11.2022 11:54 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
ebtables jsou prázdné, jak na proxmox serveru, tak i v kontejneru. Všechny chainy mají default policy ACCEPT.
23.11.2022 12:04 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
MTU na těch gretap* rozhraních je 1500.
23.11.2022 12:09 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Na proxmoxu
root@pve:/etc/pve/nodes/pve-routers/lxc# ip l
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 0c:c4:7a:cc:ec:9c brd ff:ff:ff:ff:ff:ff
    altname enp7s0
3: eno2: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq master vmbr0 state UP mode DEFAULT group default qlen 1000
    link/ether 0c:c4:7a:cc:ec:9d brd ff:ff:ff:ff:ff:ff
    altname enp8s0
4: eno7: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 0c:c4:7a:cc:ed:62 brd ff:ff:ff:ff:ff:ff
    altname enp4s0f0
5: eno8: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 0c:c4:7a:cc:ed:63 brd ff:ff:ff:ff:ff:ff
    altname enp4s0f1
9: veth100i0@if2: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether fe:f3:57:34:b5:37 brd ff:ff:ff:ff:ff:ff link-netnsid 0
12: cmbr2: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 7a:ba:7e:4b:bf:31 brd ff:ff:ff:ff:ff:ff
20: gre0@NONE: NOARP mtu 1476 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
21: gretap0@NONE: BROADCAST,MULTICAST mtu 1462 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
22: erspan0@NONE: BROADCAST,MULTICAST mtu 1450 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
23: gretap1@NONE: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast master vmbr2 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 3a:1f:35:3f:c7:51 brd ff:ff:ff:ff:ff:ff
24: gretap2@NONE: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast master vmbr3 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether ee:8d:e8:25:ea:b0 brd ff:ff:ff:ff:ff:ff
25: gretap3@NONE: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast master vmbr4 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 76:f4:93:4e:23:7d brd ff:ff:ff:ff:ff:ff
41: vmbr0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 0c:c4:7a:cc:ec:9d brd ff:ff:ff:ff:ff:ff
42: vmbr1: NO-CARRIER,BROADCAST,MULTICAST,UP mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether c6:cd:6e:b3:ee:0b brd ff:ff:ff:ff:ff:ff
43: wg0: POINTOPOINT,NOARP,UP,LOWER_UP mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/none
44: vmbr2: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 3a:1f:35:3f:c7:51 brd ff:ff:ff:ff:ff:ff
45: vmbr3: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether ee:8d:e8:25:ea:b0 brd ff:ff:ff:ff:ff:ff
46: vmbr4: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 76:f4:93:4e:23:7d brd ff:ff:ff:ff:ff:ff
51: veth101i0@if5: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue master vmbr0 state UP mode DEFAULT group default qlen 1000
    link/ether fe:a9:63:9c:a8:26 brd ff:ff:ff:ff:ff:ff link-netnsid 1
52: veth101i1@if6: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue master vmbr2 state UP mode DEFAULT group default qlen 1000
    link/ether fe:68:b7:cd:95:52 brd ff:ff:ff:ff:ff:ff link-netnsid 1
V LXC
root@CT101:~# ip l
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: gre0@NONE: NOARP mtu 1476 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
3: gretap0@NONE: BROADCAST,MULTICAST mtu 1462 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
4: erspan0@NONE: BROADCAST,MULTICAST mtu 1450 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
5: eth0@if51: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 3e:5e:fd:47:35:31 brd ff:ff:ff:ff:ff:ff link-netnsid 0
6: eth1_gretap@if52: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether f6:d0:3f:38:e1:c0 brd ff:ff:ff:ff:ff:ff link-netnsid 0
23.11.2022 13:40 Vantomas | skóre: 32 | Praha
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
No žádná vyslovená zrada tam na první pohled není zřejmá.

Tak pak, abychom vyloučili opravdu problém s MTU, tak bych zkusil takovou klasiku, jako nastavit si na tom vmbrX na proxmoxu IP a zkusit opingat obě dvě strany bridge. Nejprve klasicky s malým paketem a pak postupně přidávat až k 1492, aby se vyzkoušelo, že projde velký paket ping -d -s 1492 ip.

Tím by se alespoň mohlo lokalizovat kam až to funguje.
25.11.2022 02:14 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Ahoj,

tak mi to neprochází ani v rámci toho bridge, což bude ten problém. Nahodil jsem IP na vmbr2, totéž na interface v kontejneru (stejný subnet) a nepropinknu ani malý paket (např. -s 100).

Znovu jsem zkusil ručně přes brctl ten vmbr2 (smazat) a udělat znovu bez toho ložení gretap rozhraní, tedy nechat to pouze jako čistý bridge s IP a také nepropinknu skrz.

Během dneska si s tím chci ještě více pohrát.
25.11.2022 02:38 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Tak už nějak začínám tušit.

Když ten bridge založím jako prázdný (v networking/interfaces s bridge-ports none)

Tak brctl show ukazuje, že tam je automaticky nějaké rozhraní: veth101i1 S tímto mi to skrz pinká.

pokud přidám ještě do bridge gretapX, tak to pinká stále.

Problém je tedy v konfiguraci.

Pokud totiž v interfaces dám přímo toto: auto vmbr2 iface vmbr2 inet manual bridge-ports gretap1 bridge-stp off bridge-fd 0

Pak je součástí bridge gretap1, ale chybí tam ten veth101i1 a nepinkám.

Nějaký nápad, jak by to mohlo jít přes interfaces, abych to nemusel řešit nějakým skriptem v pre-up? Ale bude to také cesta.
25.11.2022 03:09 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Nicméně ani takto s tím přidaným gretap v tom kontejneru na tom rozhraní v bridgi vmbr2 nevidím vůbec nic. :(
23.11.2022 12:18 Petr
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj,
řešil jsem od minulého týdne síťové problémy v LXC. Zkus IRC - LiberaChat, kanál #lxc-dev, tam se ptej po uživateli "tomp".
Reaguje téměř ihned.

Petr
25.11.2022 03:11 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
Zkusil bych, ale nikam jsem se tam nedostal "Cannot join channel (+r) - you need to be logged into your NickServ account" M.
25.11.2022 08:22 Petr
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
25.11.2022 10:47 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: Protažení L2 sítě do LXC v Proxmoxu
díky, zkontaktovali jsme se. Jinak ten IRC prý ee, kdyby někdo řešil něco podobného a chtěl se dotazovat, pak prý rovnou tady, kde to sleduje a je též aktivní: https://discuss.linuxcontainers.org/

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.