{"id":1676,"date":"2025-08-08T15:02:28","date_gmt":"2025-08-08T13:02:28","guid":{"rendered":"https:\/\/www.shukko.com\/x3\/?p=1676"},"modified":"2025-08-08T15:11:47","modified_gmt":"2025-08-08T13:11:47","slug":"proxmox-a-to-proxmox-b-gre-tunnel-and-use-proxmox-a-24-ips-on-proxmox-b-virtual-machines","status":"publish","type":"post","link":"https:\/\/www.shukko.com\/x3\/2025\/08\/08\/proxmox-a-to-proxmox-b-gre-tunnel-and-use-proxmox-a-24-ips-on-proxmox-b-virtual-machines\/","title":{"rendered":"proxmox A to proxmox B gre tunnel and use proxmox A \/24 ip&#8217;s on proxmox B Virtual Machines."},"content":{"rendered":"\n<p>for not to mess up with the current production system proxmox A,  I created a new debian Vm in proxmox A and set up the GRE tunnel between this VM and new Proxmox B node on provider B (New proxmox node is empty)<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><br>Provider A (Debian VM)            \nPublic IP: 38.248.1.150           \n\/24: 38.248.1.0\/24 (in Provider A)\n\/24 Gateway: 38.248.1.1 (Provider A)\n\nProvider B (Proxmox Node)\nPublic IP: 185.17.1.2\nGateway: 185.17.1.1\n<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>On Provider A (Debian VM)<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># Install bridge utils if missing\napt install bridge-utils\n\n# Create gretap tunnel\nip link add gre1 type gretap local 38.248.1.150 remote 185.17.1.2 ttl 255\n\n# Bring tunnel up\nip link set gre1 up mtu 1450\n\n# Create a bridge for the tunnel + upstream NIC\nbrctl addbr br0\nbrctl addif br0 ens18   # eth0 is your public interface in Provider A\nbrctl addif br0 gre1\n\n# Assign Provider A\u2019s public IP to the bridge (so Debian VM still works)\nip addr flush dev ens18\nip addr add 38.248.1.150\/24 dev br0\nip link set br0 up\nip route add default via 38.248.1.1\n<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>On Provider B (Proxmox Node)<br>edit \/etc\/network\/interfaces<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">auto gre1\niface gre1 inet manual\n    pre-up ip link add gre1 type gretap local 185.17.1.2 remote 38.248.1.150 ttl 255\n    up ip link set gre1 up mtu 1450\n    post-down ip link del gre1\n\nauto vmbr2\niface vmbr2 inet manual\n    bridge_ports gre1\n    bridge_stp off\n    bridge_fd 0\n    mtu 1476 # see below for extra notes\n<\/pre>\n\n\n\n<p>end edit and reboot<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Migrate a VM to Provider A to Provider B<br>Migrated VM network settings &#8211; keep everything intact and original<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>IMPORTANT NOTE:<\/p>\n\n\n\n<p>Because GRE uses more encapsulation overhead.<br>Lower the MTU in Provider B side<br>I set the MTU values as below and seems like working (may need a little bit more tweaking)<\/p>\n\n\n\n<p>Provider B Proxmox node set vmbr2 MTU 1476 &#8211; already setup in \/etc\/network\/interfaces<br>On Proxmox node side: Provider B Migrated VM: set net0 network device MTU 1400<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>EXTRA: Mandatory Tests:<\/p>\n\n\n\n<p>From Migrated VM with ip address 38.248.1.152<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> Host                             Loss%   Snt   Last   Avg  Best  Wrst StDev\n 1. 38.248.1.1                     0.0%    11    1.3   1.2   1.0   1.8   0.2\n 2. 62.113.192.83                  0.0%    11    1.5   1.6   1.2   2.0   0.2\n 3. 62.113.192.91                  0.0%    11    1.1   1.4   1.1   1.8   0.2\n 4. 80.150.168.241                 0.0%    11    2.3   2.2   1.8   2.4   0.2\n 5. 62.157.248.2                   0.0%    11    1.3   1.5   1.3   1.8   0.2\n 6. 212.156.101.219                0.0%    11   48.0  47.9  47.6  48.1   0.1\n 7. 81.212.31.191                 20.0%    11   48.1  48.2  47.9  48.4   0.2\n 8. 81.212.247.98                  0.0%    11   58.2  58.4  58.1  58.9   0.2\n 9. 81.212.246.109                 0.0%    11   58.9  59.0  58.7  59.2   0.2\n10. 195.175.103.254                0.0%    10   56.4  57.8  56.3  68.5   3.8\n11. (waiting for reply)\n12. 198.68.73.68                   0.0%    10   62.1  62.7  60.7  65.0   1.3\n<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>From My own office connection to Migrated VM<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> Host                           Loss%   Snt   Last   Avg  Best  Wrst StDev<br> 1. 192.168.88.1                 0.0%    13    0.3   0.3   0.2   0.3   0.0<br> 2. (waiting for reply)<br> 3. 172.25.16.13                 0.0%    13    9.3   8.5   7.0  11.5   1.5<br> 4. 195.33.217.229               0.0%    12   13.3  13.3  12.5  15.1   0.7<br> 5. 10.40.174.73                 0.0%    12   14.0  13.9  12.3  15.2   0.8<br> 6. (waiting for reply)<br> 7. (waiting for reply)<br> 8. (waiting for reply)<br> 9. 89.221.34.189                0.0%    12   55.8  56.1  51.9  70.1   6.0<br>10. 62.67.110.46                 0.0%    12   79.2  63.0  60.0  79.2   5.2<br>11. 62.113.192.66                0.0%    12   61.6  61.1  60.2  62.0   0.7<br>12. 38.248.1.152                 0.0%    12   61.4  62.2  60.8  66.7   1.6<br><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>for not to mess up with the current production system proxmox A, I created a new debian Vm in proxmox A and set up the GRE tunnel between this VM and new Proxmox B node on provider B (New proxmox node is empty) Provider A (Debian VM) Public IP: 38.248.1.150 \/24: 38.248.1.0\/24 (in Provider A) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1676","post","type-post","status-publish","format-standard","hentry","category-kategerisiz"],"_links":{"self":[{"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/posts\/1676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/comments?post=1676"}],"version-history":[{"count":5,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/posts\/1676\/revisions"}],"predecessor-version":[{"id":1682,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/posts\/1676\/revisions\/1682"}],"wp:attachment":[{"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/media?parent=1676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/categories?post=1676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/tags?post=1676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}