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
- 375 megtekintés
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.
zászló, zászló, szív
- A hozzászóláshoz be kell jelentkezni
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:
auto vmbr0
#private sub network
iface vmbr0 inet static
address 192.168.0.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o enp5s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o enp5s0 -j MASQUERADE
- A hozzászóláshoz be kell jelentkezni
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)
zászló, zászló, szív
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Itt tartok most, csak épp nincs net a VM-eken...
- A hozzászóláshoz be kell jelentkezni
-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
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Bemásolnád ide a Te működő konfigodat anonimizálva?
Nekem ez nem működik...
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Ezzel már van fejlemény :)
A Hetzner leírásában találtam (egy szerintem új) megjegyzést, miszerint Proxmox 7-nél meg kell adni az
hwaddress <HW MAC Address>
értéket a vmbr0-hoz. Egyből kaptram is egy levelet: Dear Sir or Madam, We have detected that your server is using different MAC addresses from those allowed by your Robot account. Please take all necessary measures to avoid this in the future and to solve the issue. We also request that you send a short response to us. This response should contain information about how this could have happened and what you intend to do about it. In the event that the following steps are not completed successfully, your server can be locked at any time after 2021-12-29 16:44:12 +0100. How to proceed: - Solve the issue - Please note, in case you have fixed the problem, please wait at least 10 minutes before rechecking: Itt egy link van - After successfully testing that the issue is resolved, send us a statement by using the following link: Itt is egy link Please visit our FAQ here, if you are unsure how to proceed: https://docs.hetzner.com/robot/dedicated-server/faq/error-faq/#mac-errors Important note: When replying to us, please leave the abuse ID [AbuseID:9AD316:1B] unchanged in the subject line. Manual replies will only be handled in the event of a lock. Please note that we do not provide telephone support in our department. If you have any questions, please send them to us by responding to this email. Kind regards Network department Hetzner Online GmbH Industriestr. 25 91710 Gunzenhausen / Germany Tel: +49 9831 505-0 Fax: +49 9831 505-3 abuse@hetzner.com www.hetzner.com Register Court: Registergericht Ansbach, HRB 6089 CEO: Martin Hetzner, Stephan Konvickova, Günther Müller For the purposes of this communication, we may save some of your personal data. For information on our data privacy policy, please see: www.hetzner.com/datenschutzhinweis> (<IP címem>)
Allowed MACs: x:x:x:x:x:x (ez a HW MAC) Unallowed MACs: 82:9c:7e:f3:40:b4 (ez az egyik VM MAC címe, amit vmbr0-ra kötöttem) 9e:f5:1b:c2:4e:a0 (ez meg a másiké)
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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
auto lo
iface lo inet loopback
iface lo inet6 loopback
iface enp5s0 inet manual
auto vmbr0
iface vmbr0 inet static
address x.x.x.125/26
hwaddress y:y:y:y:y:y
pointopoint x.x.x.65
gateway x.x.x.65
bridge_ports enp5s0
bridge_stp off
bridge_fd 1
up route add -net x.x.x.64 netmask 255.255.255.192 gw x.x.x.65 dev vmbr0
# route 142.132.139.64/26 via 142.132.139.65
iface enp5s0 inet6 static
address z:z:z:z::2/64
gateway fe80::1
up sysctl -p
# for a subnet
auto vmbr1
iface vmbr1 inet static
address 192.168.0.1/24
bridge_ports none
bridge_stp off
bridge_fd 0
post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o vmbr1 -j MASQUERADE
- A hozzászóláshoz be kell jelentkezni
Szia!
FORWARD -ra szükség van iptables-ben, anélkül nem engedi át.
-A FORWARD -s 192.168.0.0/24 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -j ACCEPT
valamint a fenti szabályod se jó, mert a "külvilág" felé menő interface-n (L3) kell maszkolni:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j MASQUERADE
Fenti konfigban ezt a sort nem értem:
auto vmbr0
....
gateway x.x.x.65
up route add -net x.x.x.64 netmask 255.255.255.192 gw x.x.x.65 dev vmbr0
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:
iface vmbr0 inet static
bridge_ports enp5s0
iface enp5s0 inet6 static
xxx
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:
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto enp5s0
iface enp5s0 inet manual
auto brtrunk
iface brtrunk inet static
address x.x.x.125
netmask 255.255.255.255
pointopoint x.x.x.65
gateway x.x.x.65
bridge_ports enp5s0
iface brtrunk inet6 static
address z:z:z:z::2/64
gateway fe80::1
bridge_ports enp5s0
auto vmbr0
iface vmbr0 inet manaul
auto vmbr1
iface vmbr1 inet static
address 192.168.0.1/24
bridge_ports none
iptables -t filter -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -t filter -A FORWARD -d 192.168.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o brtrunk -j MASQUERADE
valamint,
/etc/sysctl.conf
net.ipv4.ip_forward = 1
- A hozzászóláshoz be kell jelentkezni
Ö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!
- A hozzászóláshoz be kell jelentkezni