{"id":301,"date":"2012-03-10T09:03:47","date_gmt":"2012-03-09T20:03:47","guid":{"rendered":"https:\/\/blog.shade.sh\/?p=301"},"modified":"2012-06-25T18:35:44","modified_gmt":"2012-06-25T06:35:44","slug":"proxmox-zusatzliche-ips-im-kvm-mode","status":"publish","type":"post","link":"https:\/\/blog.shade.sh\/index.php\/archive\/301","title":{"rendered":"Proxmox + Zus\u00e4tzliche IP&#8217;s im KVM Mode"},"content":{"rendered":"<p>Ich vergesse es immer wieder, daher schreib ich es mal nieder. Es ist schon manchmal ein Kampf mit Proxmox und den zus\u00e4tzlichen IP&#8217;s der jeweiligen Hoster klar zu kommen. Jeder macht es anders, egal ob <a href=\"http:\/\/www.hetzner.de\" target=\"_blank\">Hetzner<\/a>, OVH, Xirra, Serverloft oder meine osteurop\u00e4ischen Freunde \ud83d\ude09<\/p>\n<p>Als erstes sollte man ganz klar wissen: Jeder g\u00e4ngige Provider sollte zuf\u00e4llig generierte MAC Adressen verwerfen und den Zugriff dar\u00fcber sperren, deshalb ist eine Config nur im Routed Mode zuverl\u00e4ssig benutzbar, auf NAT und andere Modelle gehe ich hier nicht ein.<br \/>\n<!--more--><br \/>\n<span style=\"text-decoration: underline;\">Setup f\u00fcr IP&#8217;s im selben Subnetz:<\/span><\/p>\n<p>Wichtig ist beim eth0 dass Proxy ARP aktiviert wird damit die individuellen MAC Adressen der KVM G\u00e4ste maskiert werden.<\/p>\n<pre lang=\"bash\">auto eth0\r\niface eth0 inet static\r\n        address 111.111.111.111\r\n        netmask 255.255.255.0\r\n        network 111.111.111.0\r\n        broadcast 111.111.111.255\r\n        gateway 111.111.111.1\r\n        dns-nameservers 8.8.8.8 8.8.4.4\r\n        dns-search domain.org\r\n        up echo 1 > \/proc\/sys\/net\/ipv4\/conf\/eth0\/proxy_arp\r\n        post-up brctl addbr vmbr0<\/pre>\n<p>Wir legen eine Bridge mit dem Namen vmbr0 an und vergeben die selben IP Informationen. Legen aber f\u00fcr jede zus\u00e4tzliche IP eine Route an. Das k\u00f6nnen wir bei vielen Adressen auch mit der Anfags IP und deren Netzmaske abk\u00fcrzen, der Befehl<\/p>\n<pre lang=\"bash\">up route add -net 111.111.111.0\/24 dev vmbr0<\/pre>\n<p>w\u00fcrde z.B. eine Route f\u00fcr ein 24er Netz hinzuf\u00fcgen. Hier das vollst\u00e4ndige Beispiel mit den Zusatzadressen 112 bis 114:<\/p>\n<pre lang=\"bash\">auto vmbr0\r\niface vmbr0 inet static\r\n        address 111.111.111.111\r\n        netmask 255.255.255.0\r\n        broadcast 111.111.111.255\r\n        bridge_ports none\r\n        bridge_stp off\r\n        bridge_fd 0\r\n        up route add -host 111.111.111.112 dev vmbr0\r\n        up route add -host 111.111.111.113 dev vmbr0\r\n        up route add -host 111.111.111.114 dev vmbr0<\/pre>\n<p>Jetzt kann im Guest einfach eine Zusatz IP als IP Adresse vergeben werden, der Gateway ist die Haupt IP Adresse des Hosts, in diesem Fall w\u00e4re es die 111.111.111.111. Nat\u00fcrlich m\u00fcssen auf dem Host u.a. noch IPv4 Forwarding in der \/etc\/sysctl.conf aktiviert werden. Die n\u00f6tigen Optionen daf\u00fcr kann man sich allerdings leicht ergooglen und w\u00fcrden diesen Tip hier sprengen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich vergesse es immer wieder, daher schreib ich es mal nieder. Es ist schon manchmal ein Kampf mit Proxmox und den zus\u00e4tzlichen IP&#8217;s der jeweiligen Hoster klar zu kommen. Jeder macht es anders, egal ob Hetzner, OVH, Xirra, Serverloft oder &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/blog.shade.sh\/index.php\/archive\/301\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,5],"tags":[118,113,116,112,117,115,114],"class_list":["post-301","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-linux","tag-bridge","tag-ip-subnet","tag-network","tag-proxmox","tag-routed","tag-setup","tag-zusatzliche-ips"],"_links":{"self":[{"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/posts\/301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/comments?post=301"}],"version-history":[{"count":15,"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/posts\/301\/revisions"}],"predecessor-version":[{"id":582,"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/posts\/301\/revisions\/582"}],"wp:attachment":[{"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/media?parent=301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/categories?post=301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.shade.sh\/index.php\/wp-json\/wp\/v2\/tags?post=301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}