Sziasztok!
A Hetznernél van egy dedikált szerver 1 db IPv4 címmel (és /64 IPv6 tartománnyal).
Tettem rá Debian 11-et, majd Proxmox VE 7-et.
Mit kellene tennem, hogy a 3 VM-ben futó (2 db Debian 11, 1 db Windows Server 2019) gép kapjon IPv4 címet a belső, 192.168.0.0/24 tartományból?
Bónuszként jó lenne, ha DHCP-n kapnák az IP-címet, amit MAC alapján én tudnék kiosztani, de e nélkül tudnék élni...
Próbáltam a Hetzner- és egyéb honlapok által fellelhető leírásokat. Bridge, Routed módot, de a SystemRescueCD, vagy Debian 11 NetInstall-ról bootolva sem kap a VM IP-címet.
Íme az /etc/network/interfaces eredeti tartatalma:
# cat /etc/network/interfaces
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto enp5s0
iface enp5s0 inet static
address x.y.z.125/26
gateway x.y.z.65
up route add -net x.y.z.64 netmask 255.255.255.192 gw x.y.z.65 dev enp5s0
# route x.y.z.64/26 via x.y.z.65
iface enp5s0 inet6 static
address p:q:r:s::2/64
gateway fe80::1
Az /etc/network/interfaces.d/ üres
A /etc/sysctl.conf tartalmazza a
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
bejegyzéseket.
A VM Network beállításainál próbáltam be- és kikapcsolt tűzfallal is.
tl:dr
Szeretnék Proxmox VE 7 alatt egy VirtualBox-like NAT network-öt, ahol a virtuális gépek látják egymást és az internetet, iptables-el pedig tudok portokat átirányítani a megfelelő gépek megfelelő portjaira.
Ha tudtok ebben segíteni, nagyon megköszönném! :(
Megoldás: https://hup.hu/comment/2715798#comment-2715798
A DHCP szerver végül az isc-dhcp-server lett
Hozzászólások
két dolog kell ehhez a legegyszerűbben:
- vmbr1 networköt csináld meg, arra kösd rá a vm-eket/konténereket
- tegyél a hostra egy dhcp servert (dhcpd vagy dnsmasq) és kösd rá a vmbr1 -re
nat-olnod ettől függetlenül még kelleni fog, mert a hetznertől egy ip-t kapsz, de a hostról már pingeni fognak a konténerek.
ennél eggyel komolyabb ha teszel rá egy olyan vm-et ami dhcp server, tűzfal, nat, minden lehet:
pfsense, endian firewall.
Értelemszerűen ezt úgy kell felrakni ahogy egy fizikai hálózatban tennéd.
Gábriel Ákos
pfSense-el próbálkoztam, de ugye az sem kapott IP-címet... :)
A vmbr1 konfigjára tudnál példát írni?
Szerk:: pl ezt próbáltam:
ez jó konfig szerintem.
a pfsense-nek nyilván fix ip-t kell adjál, ő majd ad a többinek dhcp-vel
Önmagában a proxmoxon nincs semmi ami adna neked dhcp-t. A hetzner se fog, ez nem az otthoni lan.
Ha otthoni lan-on van a proxmoxod, összebridgeled a vmbr0-t a lan interfészeddel akkor a helyi dhcp servered ad a konténereidnek is ip-t (nekem itthon így van)
Gábriel Ákos
Most indítottam egy Debian 11 Netinstall-t. A hálózatot nem tudja detektálni, kézi beállítást kér.
IP címnek beírtam: 192.168.0.2 netmask 255.255.225.0. a Telepítés a netes forrásokig végigfut, de azokat nem tudja elérni.
Próbáltam német és magyar szervereket is beállítani, mindre "Hibás archívum tükör" hibaüzenet jön.
Ha jól értettem...
host interfaces fájlba:
auto vmbr0
iface vmbr0 inet static
address 192.168.100.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
kliensbe:
auto eth0
iface eth0 inet static
address 192.168.100.2
netmask 255.255.255.0
gateway 192.168.100.1
Amúgy a proxmox admin felületén is beállítható
üdv: pomm
A 852-es kídlap telepötúsa sikeresen befejezádétt
Itt tartok most, csak épp nincs net a VM-eken...
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p tcp -m multiport --dports 80,443,8006 -j f2b-proxmox-web-gui
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.100.2/32 -i eno1 -p tcp -m tcp --dport 465 -j ACCEPT
-A FORWARD -d 192.168.100.2/32 -i eno1 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -d 192.168.100.2/32 -i eno1 -p tcp -m tcp --dport 993 -j ACCEPT
-A PREROUTING -d publikus_ip/32 -p tcp -m tcp --dport 54321 -j DNAT --to-destination 192.168.100.2:54321
-A PREROUTING -d publikus_ip/32 -p tcp -m tcp --dport 8443 -j DNAT --to-destination 192.168.100.2:8443
-A PREROUTING -d publikus_ip/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.100.2:443
-A PREROUTING -d publikus_ip/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.2:80
-A PREROUTING -d publikus_ip/32 -p tcp -m tcp --dport 465 -j DNAT --to-destination 192.168.100.2:465
-A PREROUTING -d publikus_ip/32 -p tcp -m tcp --dport 993 -j DNAT --to-destination 192.168.100.2:993
-A POSTROUTING -o eno1 -j MASQUERADE
-A POSTROUTING -o vmbr0 -j MASQUERADE
üdv: pomm
A 852-es kídlap telepötúsa sikeresen befejezádétt
Nálam pont így van (Hetzner + Proxmox), és jó úgy, ahogy a fenti configban írtad. Nincs benne semmi mágia, kell egy port/fizikai NIC nélküli bridge, a vm-ek networkjét ebbe teszed, és ennyi. Ha a hoston fut a dhcp szerver, akkor nyilván ezen a bridgen kell figyelnie.
Érdemes egyébként a Hetzner felé néző fizikai NIC-et is egy külön bridge-be tenni. Így ha veszel még tőlük publikus címe(ke)t, akkor a promox guin is kényelmesen állítgathatod hogy adott vm/konténer adott virtuális interfésze hol legyen (WAN/LAN). Egyébként maguk a bridgek is létrehozhatóak a gui-ról.
Bemásolnád ide a Te működő konfigodat anonimizálva?
Nekem ez nem működik...
DHCP-m nincs, de tessék:
iface enp4s0 inet manual
auto vmbr0
iface vmbr0 inet static
address x.x.x.230/27
gateway y.y.y.y
bridge-ports enp4s0
bridge-stp off
bridge-fd 0
up route add -net x.x.x.224 netmask 255.255.255.224 gw x.x.x.x dev vmbr0
#add static route to subnet (because the port security blocked arp for neighbour IPs)
auto vmbr1
iface vmbr1 inet static
address 10.x.x.x/24
bridge-ports none
bridge-stp off
bridge-fd 0
A vmbr0-án értelemszerűen a host saját public IP-je van, de ugyanezen a bridgen van egy vm, szintén public címmel (ezeket ugye külön lehet rendelni/venni a Hetznernél), ott nincs egyéb teendő, a vm-en belül beállítom a megszokott módon az interfészre, és megy.
Ezzel már van fejlemény :)
Ennek semmi köze a Proxmoxhoz, pontosabban bármilyen OS-hez köze van. A switchük csak azzal a mac addressel áll szóba, ami a roboton meg van adva, ez mindig is így volt, szóval megnézheted a bridge mac-jét, és felviheted a robotban is, de amúgy kb. mindegy, mindkét megoldás működik.
Ezt egyébként el is felejtettem írni, mert engem nem érint, illetve nem így, mert a szűrés csak primary IP-re vonatkozik, nálam pedig az pl. történelmi okból az egyik vm-é, így annak a mac-je van a robotban rögzítve, a Proxmox vmbr0-án egy külön vásárolt cím van, ezekhez nincs mac szűrés Hetzner oldalon.
Felraktam 2 Debiant 1-1 VM-be a vmbr1-re kötve.
Mindkettőnek kézzel adtam IP címet (192.168.0.2, és 0.3).
Egymást és a 192.168.0.1-et is tudják pingelni és a hostról is pingelhetőek.
De még mindig nincs net egyiken sem...
# cat /etc/network/interfaces
Szia!
FORWARD -ra szükség van iptables-ben, anélkül nem engedi át.
valamint a fenti szabályod se jó, mert a "külvilág" felé menő interface-n (L3) kell maszkolni
:
Fenti konfigban ezt a sort nem értem:
Itt már beállítottad a route-t a "gateway" opcióval.
Másik,ha egy fizikai interface-t már beleraksz egy "bridge"-be akkor az "L2 mode only" ( slave ) lesz, annak hiába adsz L3 paramétereket, figyelmen kívűl hagyja a rendszer:
Ez így eléggé összevisszaság, ehhez tudni kell mi a "BRIDGE, L2, L3 , hálózati OSI rétegek, NAT, routing vs. switching , stb " - ezek hogy vannak implementálva Linux alatt ( iptables ).
Segítség:
Debian alatt van egy ilyen csomag: netfilter-persistent
amikor kérdezi, "yes" mentse le a szabályokat:
-> /etc/iptables/rules.v4
-> /etc/iptables/rules.v6
Itt egyszerűbb szerkeszteni az iptables szabályokat, majd ha változtatni kell valamit akkor:
iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6
parancsot adod ki.
Valahogy így nézne ki a megoldás:
valamint,
Örök hálám üldözzön!
Az nekem is furcsa volt, hogy a vmbr1 sehol sem volt "összekötve" sem az enp5s0-val, sem a vmbr0-val, így mitől menne át a forgalom a külvilág felé/felöl?! (A GUI-ban sem engedte szerkeszteni az interfésztaz összehordott fa'sságaim miatt :D)
A fenti kusza konfigomban átírtam a maszkolást vmbr0-ra, így már van net a VM-ekben.
Most átírom úgy az egészet, ahogy javasoltad.
Megj.: Én az iptables-persistent -et használtam eddig, ami val'szeg ugyan az, mert ugyan azt csinálja, mint a netfilter-persistent.
Futok még egy kört a dnsmasq-al is, hogy a Windowsos VM-ekkel ne kelljen szxpni a kézi beállítással.
Még egyszer köszönöm a belém fektetett munkád és a részletes magyarázatot!