{"id":1257,"date":"2025-01-26T11:32:19","date_gmt":"2025-01-26T15:02:19","guid":{"rendered":"https:\/\/blog.pelleys.com\/?p=1257"},"modified":"2025-01-30T12:33:35","modified_gmt":"2025-01-30T16:03:35","slug":"proxmox-single-nic-vlans-and-nas-storage","status":"publish","type":"post","link":"https:\/\/blog.pelleys.com\/?p=1257","title":{"rendered":"Proxmox, Single NIC, VLANs and NAS Storage"},"content":{"rendered":"\r\n<p>I <em>think<\/em> that I have finally figured out how to get my EliteDesk 705 G3 Mini PC working. Part of the problem is the Broadcom BCM5762 NIC in which case you have to (a) blacklist the NIC driver <code>tg3 <\/code>and (b) ensure that you have added <code>GRUB_CMDLINE_LINUX_DEFAULT=\"quiet iommu=pt\"<\/code> as detailed in my post <a href=\"https:\/\/blog.pelleys.com\/?p=961\">https:\/\/blog.pelleys.com\/?p=961<\/a>.<\/p>\r\n\r\n\r\n\r\n<p>It seems that you have to blacklist the <code>tg3 <\/code>driver as the BCM5762 is buggy as all get out &#8211; VLANs do not even seem to work (for me, at least) if <code>tg3 <\/code>is not blacklisted. You seem to need iommu=pt otherwise you will get a &#8220;transmit queue 0 timed out&#8221; error and lose networking.<\/p>\r\n\r\n\r\n\r\n<p>It is <strong>not<\/strong> perfect. There seems to be a delay in the network configuration to come fully up and the console show the wrong IP. In my case it gets an IP from the native VLAN but then reverts to the set IP, subnet and VLAN.<\/p>\r\n\r\n\r\n\r\n<p>With that out of the way, I really had to think through the logic of what I was trying to do. Here is the scenario:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Single NIC<\/li>\r\n\r\n\r\n\r\n<li>NFS storage on a different subnet and VLAN<\/li>\r\n\r\n\r\n\r\n<li>Need to have the ability for VMs to join different VLANs<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>The key part of the logic is to remember that NFS needs to be the native bridge interface otherwise NFS tries to connect using the wrong network. Here is an example configuration in<code>\/etc\/network\/interfaces<\/code>:<\/p>\r\n<pre>auto vmbr0<br \/>iface vmbr0 inet static<br \/> \u00a0\u00a0address 10.1.1.1\/24 \u2190 This is the NFS host IP for the Mini G3<br \/> \u00a0\u00a0bridge-ports enp1s0 \u2190 This is the host physical NIC (normal)<br \/> \u00a0\u00a0bridge-stp off<br \/> \u00a0\u00a0bridge-fd 0<br \/> \u00a0\u00a0bridge-vlan-aware yes \u2190 Make sure the bridge is configured for VLANs<br \/> \u00a0\u00a0bridge-vids 100 200 300 400 \u2190 I manually restrict to my VM VLANs<\/pre>\r\n\r\n\r\n\r\n<pre class=\"is-layout-flow wp-block-quote-is-layout-flow\"># This is the administrative interface and forcing VLAN for it<br \/>auto vmbr0.200<br \/>iface vmbr0.200 inet static<br \/>\u00a0  address 10.1.200.5\/24<br \/>\u00a0  gateway 10.1.200.254<\/pre>\r\n\r\n\r\n\r\n<p>On your switch, UniFi in my case, you need to set the Native VLAN\/Network to the network your NFS storage is on (called &#8220;NFS-VLAN (100)&#8221; in my case) and Tagged VLAN Management to Allow All.<\/p>\r\n\r\n\r\n\r\n<p>This seems to work even even when using Proxmox Datacenter Manager migration (PDM) of VMs with no transmit queue time out. On that point, even though PDM is currently <em>alpha<\/em> code, it shows real promise. I like that I do not have to set up a cluster to move VMs between nodes (my HP DL360 Gen8 is usually off &#8211; too &#8220;whiny&#8221; fans and I don&#8217;t pay the power bill.<\/p>\r\n\r\n\r\n\r\n<p>Hope this helps someone!<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>I think that I have finally figured out how to get my EliteDesk 705 G3 Mini PC working. Part of the problem is the Broadcom BCM5762 NIC in which case you have to (a) blacklist the NIC driver tg3 and &hellip; <a href=\"https:\/\/blog.pelleys.com\/?p=1257\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1257","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=\/wp\/v2\/posts\/1257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1257"}],"version-history":[{"count":6,"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=\/wp\/v2\/posts\/1257\/revisions"}],"predecessor-version":[{"id":1268,"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=\/wp\/v2\/posts\/1257\/revisions\/1268"}],"wp:attachment":[{"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.pelleys.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}