[MEGOLDVA]Proxmox és az ipv6

Fórumok

Sziasztok!

Eddig nem nagyon kellett az ipv6, de lassan megkerülhetetlen lesz. Gondoltam felhúzok pár ipv6-os címet és el is kezdhetjük használni.
Amibe rögtön beleszaladtam (7.2-11 és 7.0-13 alatt is):
Ha úgy veszem fel az ip címet, hogy az mögött nincs valós csatoló, akkor nem működik.
Magyarán:
Ha a vmbr0 úgy van beállítva, hogy

ipv4: 1.2.3.4/24
átjáró: 4.3.2.1
Bridge ports: eth0
ipv6: 1001:1001:0:1001::2/64
átjáró: 1001:1001:0:1001::1

 

Akkor ok, az 1.2.3.4 és az  1001:1001:0:1001::2 is pingelhető, elérhető

Ha viszont felveszek egy vmbr1-et így:

ipv4: 1.2.3.5/24
átjáró:
Bridge ports:
ipv6: 1001:1001:0:1001::3/64
átjáró:

Akkor az 1.2.3.5 működik, a 1001:1001:0:1001::3 viszont nem.

Mit baltázok el?

 

Köszi!

Hozzászólások

A vonatkozó hup topic alapján nekem a következőképpen működik:

auto lo
iface lo inet loopback

iface enp2s0 inet manual

auto vmbr0
iface vmbr0 inet static
	address 192.168.5.153/24
	gateway 192.168.5.1
	bridge-ports enp2s0
	bridge-stp off
	bridge-fd 0

iface vmbr0 inet6 static
	address 2a01:36d:1400:782:xxxx:1234:xxxx:1234/64
	gateway 2a01:36d:1400:782::

Ahol az ipv6 címek, a digitől kapott public ipv6 címek.

“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use them.”

― Philip K. Dick

Ezt olvastam, de a problémám nem az, hogy ez nekem nem működik (mert ez működik), hanem az, hogy ezek után ha felveszek egy vmbr1-et és adok neki egy másik ipv6-os címet, na az már nem működik, míg ipv4-es címmel igen.
 

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

Igen,mert nálad 2 bridge is van. Nálam egy alatt van minden és onnan kapják a vm-ek is az ip-t. Így működik.

“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use them.”

― Philip K. Dick

Szerkesztve: 2023. 02. 17., p – 09:44

Ha a két interfész tényleg egyazon bridge-en belül van, akkor jön a szokásos következő kérdésem: nem szűröd tűzfalon az NDP-t?

Egyáltalán, az NDP táblában mi látszik?
(ip neigh show)

Csak tipp: vmbr1-nél nincs benne az eth0  (vagy bármilyen más fizikai interface, ami rálátna a gatewayre) a bridge ports-ban a fenti leírás alapján, ezért valszeg nem látja a gatewayt, mert ez így egy izolált bridge.

Szerkesztve: 2023. 02. 17., p – 10:25

Én ugyan nem használok Proxmoxot, de már a koncepciót sem értem.

A bridge az olyan, mint egy ethernet switch. Mifelénk úgy szokás az ilyet csinálni, hogy csinálunk egy darab virtuális switchet (bridge-et, vagy ahogy tetszik), és a VM-ek azon csüngenek a saját, virtuális ethernet adaptereikkel. (Már persze, ha az a cél, hogy lássák egymást, egyazon VLAN-ban legyenek.) Ezen felül, a bridge-en belül lehet még memberként fizikai ethernet csatoló is, az upstream konnektivitás miatt, ha szükséges. Magának a bridge-nek nincs is szüksége IP címekre. A bridge-re ráakasztott ethernet csatolóknak van szüksége arra.

Az sem teljesen világos, hogy akkor most a topicnyitó hozzászólásban...

- miért van két darab bridge?

- az ott látható IP címek azok a VM hoszt gépen vannak, vagy a guestekben?

- ráadásul, ha két bridge van, aminek egymással nincs konnektivitása, akkor routing szempontjából nem lesz jó, ha egyazon prefixek vannak mindkettőn.

- miért van két darab bridge?
Több is van - mert több publikus ip van hozzárendelve a proxmoxhoz

És? Az ethernet switch/bridge egy Layer 2 eszköz, az IP cím pedig Layer 3-on van.
Ha több VLAN-ról beszélünk, akkor lehet jogosultsága a VLAN-onkénti bridgenek, viszont a topicnyitóban egyazon IP tartományokról volt szó.

-az ott látható IP címek azok a VM hoszt gépen vannak, vagy a guestekben?
A hoszton

A hosztnak tökéletesen elegendő maximum 1 darab IP cím / VLAN, és az is csak akkor kell, ha a fizikai hosztnak IP felett kommunikálnia kell tudni a guesttel, pl. management okokból.

Ha ip4-gyel működik, ipv6-tal miért nem.

Ha jól értem tehát, két olyan bridge volt, ami nem volt összekötve egymással, mégis át tudtál pingelni egyikből a másikba.

A pontos beállítások ismerete nélkül csak tippelni tudok. Hirtelen két tippem van:

1.) a rendszeredben valahol valami ARP proxy-ként viselkedik

2.) a Linux kernelben (esetleg alapból) bekapcsolt ARP accept_redirects mellékhatása (lásd sysctl -a | grep redirects)

Nem.

vmbr0 1.2.3.4

vmbr1 1.2.3.5

vmbr2 1.2.3.6

vmbr3 192.168.100.1

vm-ek:

vm1 192.168.100.100

vm2 192.168.100.101

vm3 192.168.100.102

Meg tudom azt csinálni:

1. kívülről pingelhető a 1.2.3.4 a 1.2.3.5 és a 1.2.3.6 is

2, Az 1.2.3.4 80-as port a vm1 80-as portjára megy a 993-as meg a vm2 993-as portjára a 465-ös meg a vm3-as 465-ös portjára

A gondom az volt, hogy ha felvettem ugyanígy ipv6-os címeket, azokat nem tudtam kívülről pingelni (mintha fel sem vettem volna őket, kivétel a volt mögötte fizikai hálókártya)
 

Áthidaló megoldásként most minden olyan vm, ahol kell az ipv4 és az ipv6 is, megkapja a vmbr0-t is hálózati csatolóként és a vm-en belül pedig felveszek neki egy publikus ipv6 címet.
Így megoldható továbbra is az, hogy egy ipv4-es cím különböző vm-ekre is natolható maradjon (nyilván eltérő portokról beszélünk), de elérhető legyen ipv6-on is.

 

Mindenkinek köszönöm.

 

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

Az ip önmagában nem elég infó. Ha kiindulunk egy /24-es netmaszkból akkor a vmbr0-1-2 setupja így nem feltétlen "a várt eredményhez vezet".

Amit most "áthidaló megoldást" csináltál azzal megkerülted a routeolást (natolást) és "kiraktad direktbe" az összes vm-et.
Ha az volt a cél hogy a vm-eket egyesével ne kelljen védeni "mert van előtte tűzfal" na az most nincs.

zászló, zászló, szív

Amit most "áthidaló megoldást" csináltál azzal megkerülted a routeolást (natolást) és "kiraktad direktbe" az összes vm-et.

Ez elég nyilvánvaló.

Ha az volt a cél hogy a vm-eket egyesével ne kelljen védeni "mert van előtte tűzfal" na az most nincs.

Nem ez volt a cél, írtam, hogy mi volt a cél (kevés ipv4-es cím)

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

Valójában a proxmoxnak sincs szüksége arra hogy a vmbr0 -n IP legyen. Csak így van a tutorialokban, a doksikban, így települ: "így szokás".

Nekem tizenéve volt úgy proxmoxom szolgáltatónál hogy a vmbr0 nem az eth0-ra volt téve hanem "sehova"

A vmbr1 volt kitéve az eth0-ra, azon ült egy tűzfal egy vm-ben, azon át jött be bármi a proxmoxra.

Nem mondom hogy remote egyszerű volt felinstallálni de konzolról meg lehet csinálni.

A vmbr-ek valójában ethernet szegmensek, úgy "kötözgeted" őket a fizikai interfészhez (meg egymáshoz) ahogy akarod.
Ha "hülyén" kötözgeted őket és pl. loopot csinálsz akkor "nem működik".

Ugyanarra a fizikai interfészre úgy tennék két bridge-et hogy azok külön VLAN-ba legyenek, akkor nem akadnak össze a layer2-ben sem.
 

zászló, zászló, szív

Nem lehet, hogy már eleve létezett egy 1.2.3.5 című host a vmbr0-án? Én se vagyok Proxmox szaki, csak kérdem :)

Színes vászon, színes vászon, fúj!

Kérem a Fiátot..

Szerkesztve: 2023. 02. 17., p – 11:28

Nos, ugye az alapkoncepció azért hangzik hülyén, mert annó volt 2 db ipv4 és ezzel kellett főzni. Így célszerű volt, hogy a hoston volt a két ip (vmbr0, vmbr1) és iptables-szel lehetett a subnet felé irányítani, hogy a 80-as erre a vm-re, a 8080-as arra vm-re, stb. Működött is. Még valami proxmox fórumról szedtük annó a beállításokat...
Ipv6-nál az ip-k darabszáma mondjuk nem téma :)
Szóval mehet minden vm-re saját ip, úgy egyébként működik.

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

(szerintem) ott hibázza el hogy mindenáron a proxmoxra akarja felhúzni az ip-ket meg a natolást meg a tűzfalat meg a mindent. Én biztos úgy csinálnám hogy egy pfsense vm megkapja az interfészt (vmbr0 ami eth0) és utána felhúzogatja rá azokat az ip-ket meg tűzfalszabályokat meg nat-ot amit csak tetszik. 

Proxmox sincs összegányolva, firewllingot,aliasingot is "az intézi aki ért hozzá". 

Separation of concerns.

A fent leírt szerintem nem egy jó megoldás. IPV4-re biztosan nem, az IPV6-hoz nem értek. 

zászló, zászló, szív

(szerintem) ott hibázza el hogy mindenáron a proxmoxra akarja felhúzni az ip-ket meg a natolást meg a tűzfalat meg a mindent.

Nem akarom, hanem ez pár éve így lett beállítva és így működik. Pont.
A gond az ipv6-tal kezdődött. Tűzfalról szó sem volt...

biztos úgy csinálnám hogy egy pfsense vm megkapja az interfészt (vmbr0 ami eth0) és utána felhúzogatja rá azokat az ip-ket meg tűzfalszabályokat meg nat-ot amit csak tetszik. 

Értem, a szomszéd meg úgy, hogy postagalambbal küld levelet, de sem a szomszédtól nem tudtam meg, hogy mi a gond, sem tőled
:)
Kéretik nem mellre szívni!

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

1, Mert így volt a leírásban, ami alapján ezt annak idején beállítottam, ami rendben is volt nekem, mert évekig nem kellett hozzányúlni

2, Közös interface-nél nem lehet szeparálni

3, Semminek nem kell így lennie, de ha nem lenne így, nem lett volna problémám és nem kérdeztem volna semmit :)

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

Szia!

Ha a vmbr0 úgy van beállítva, hogy

ipv4: 1.2.3.4/24
átjáró: 4.3.2.1
Bridge ports: eth0
ipv6: 1001:1001:0:1001::2/64
átjáró: 1001:1001:0:1001::1

 

Akkor ok, az 1.2.3.4 és az  1001:1001:0:1001::2 is pingelhető, elérhető

Ha viszont felveszek egy vmbr1-et így:

ipv4: 1.2.3.5/24
átjáró:
Bridge ports:
ipv6: 1001:1001:0:1001::3/64
átjáró:

Akkor az 1.2.3.5 működik, a 1001:1001:0:1001::3 viszont nem.

Mit baltázok el?

Leírás alapján úgy van megcsinálva/beállítva ( Hetzner ? ):
- ipv4 esetében, ha több publikus címed van, akkor van 1db főip ipv4 cím (transit/connector), amire routolják a többi ipv4 címet ( ezek forgalma mindíg keresztűlmegy a transit/connector 1db főip ipv4 címen)
- ipv6 esetében, alapból nem így van megoldva, ott nincsen transit/connector hanem "közvetlen" van összekötve ( ha a Supportot megkéred, akkor beállítják transit/connector alapú működést, akkor működne a konfigod ).

Van másik megoldás is fentiekre, hogy a fizikai-ethernet interfészből csinálunk logikailag többet ( ezek egyenértékűek a fizikai interfésszel, de egymástól függetlenek ) azokat teszed bele a különböző bridgek-be ( vmbr ) - ezek után vagy a HOST gépen vagy egy VM-ben állítod be a ipv4/ipv6 címet/címeket ).

( openvswitch -et használok, de a sima bridge-utils is jó)

modprobe ipvlan
ovs-vsctl add-br brtrunk
ovs-vsctl add-br vmbr0
ovs-vsctl add-br vmbr1
ovs-vsctl add-br vmbr2
ovs-vsctl add-br vmbr3

ovs-vsctl add-port brtrunk eth0
ip link add patchcable0 link brtrunk type ipvlan mode l2
ip link add patchcable1 link brtrunk type ipvlan mode l2
ip link add patchcable2 link brtrunk type ipvlan mode l2
ip link add patchcable3 link brtrunk type ipvlan mode l2
...

ovs-vsctl add-port vmbr0 patchcable0
ovs-vsctl add-port vmbr1 patchcable1
ovs-vsctl add-port vmbr2 patchcable2
ovs-vsctl add-port vmbr3 patchcable3

Ezt még lehet fokozni, mivel az egyes "logikai interfészeket" ( patchcable0,...) belehet tenni külön-külön más NS (NameSpace)-be, akkor már független route-táblája is lesz ( ilyenkor ugrik az iptables, mert az nem kezeli az NS-t rendesen ).

Meglehet csinálni "interfaces" fájlban is fentieket.

Itt van az elmélet:
https://developers.redhat.com/blog/2018/10/22/introduction-to-linux-int…

 

Nagyon szépen köszönöm!
Nem feltétel ipv6-nál, hogy így működjön, csak egyszerűen nem értettem. Mint írtam az ipv4-nél is kizárólag a kezdeti időkben a ipv4 címek mennyisége miatt lett így, aztán meg ez már nem lett változtatva.
Az ipv6 pedig előhozta ezt a problémát, amiről addig nem is tudtam, hogy létezik.
Persze bonyolítja a helyzetet, hogy egy régebbi 6-os telepítés, ami upgradelve lett 7-re, még nem is a vmbr0-ra húzta az alapértelmezetten megadott ipv4 címet, hanem ott pl a fizikai interfészre. (enp3s0 az ip, a vmbr0 és vmbr1 pedig két belső háló - mondjuk ez kb. 3 éves telepítés, szóval inkább csak így rémlik, mert általában nem szoktam csesztetni az ilyen alapértelmezett beállításokat) Ott majd le kell ezt cserélnem, de ezt nyilván nem távolról kezdem el :) Ezzel szemben a tiszta 7-es telepítésnél az enp3s0 már "üres" és alapértelmezetten a vmbr0-ra ment az ipv4 cím, illetve itt bekerült a bridge-port-ba a enp3s0.

Na szóval, még egyszer köszi a választ, így lett kerek a dolog! :)
 

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt