Virtual Machines Disappearing From Device List

Comments

21 comments

  • Avatar
    Firewalla

    This depends on how your VM network is set up.   If they all bridge through a common network and share an adapter, it means they also share the same MAC (and also NAT).   In this case, firewalla will only see one MAC address, and all of your VM traffic will be from it. 

    0
    Comment actions Permalink
  • Avatar
    Jason Reynolds

    I'm using the Bridged option for the network adapters, meaning each virtual NIC has a unique IP address and MAC. I can further confirm this when the device shows up in the device list for a short time. The IP address and MAC is unique and different than the host machine. For all intensive purposes, the virtual machine should just appear as any other physical device on the network from the perspective of Firewalla.

    2
    Comment actions Permalink
  • Avatar
    Jason Reynolds

    I did some more investigative work on my end. I did a tcpdump on the Firewalla and viewed the ARP table. Although unique MACs are assigned to the VMs on the VMware Workstation side, it appears the same MAC (host MAC) is presented to other devices on the network, including the Firewalla.

    I believe this is causing issues with Firewalla being able to correctly identify the virtual machines on the network. Is there any way to have Firewalla take into account this use case? I host my website on a virtual machine, and when the virtual machine disappears from the device list, the port forwarding rules disappear along with it. As long as the virtual machine shows up in the device list, the web server is accessible from the Internet. As soon as the virtual machine disappears from the device list, it is no longer accessible.

    2
    Comment actions Permalink
  • Avatar
    Jason Reynolds

    I finally got this to work by first changing the network adapter for the VM in VMware Workstation from Bridged to NAT. Second, I had to allow the necessary ports through Windows firewall on the host itself. Third, I had to forward these ports to the VM by editing the NAT settings through the virtual network editor in VMware Workstation.

    Although this works, I don't think it's an ideal solution. First, you can't control the VM directly through Firewalla. Second, this configuration is more cumbersome to implement. Third, it's not as secure, because you have to open up the ports destined for the VM on the VMware host itself.

    So just to reiterate, it would be nice if Firewalla could distinguish between devices with the same MAC but different IP addresses in the case of virtual machines. Or, and maybe easier to implement, allow for the configuration of port forwarding to an IP address on Firewalla without the need for the device to be present in the device list. This is how most WiFi routers function, as I've configured port forwarding to virtual machines on multiple WiFi routers without issue.

    Thanks for your time and a great product! I look forward to seeing how the functionality on the Firewalla evolves through continued user input and software development :)

    0
    Comment actions Permalink
  • Avatar
    Firewalla

    Have you tried to set a static MAC or configure VMware to use a dynamic MAC per VMware instance?  For example https://kb.vmware.com/s/article/219

    Not sure if this applies to the workstation or not. 

    0
    Comment actions Permalink
  • Avatar
    Christer Tysdal

    Thanks for investigating this Jason.
    I'm currently experience the same using Hyper-V clusters running both Windows and Linux Vm's. All VMs using their own ip as well as static MACs. 
    In Firewalla this appears as two devices showing up and disappearing, both having the same ip. The MAC's on these are of course different - one related to the VM and the other is the host's MAC.

    It's very unfortunate as my rules and NAT Port Forwarders disappears when the device is "gone". Should at least have an option in both rules and Port Forwarders to be able to see inactive rules. (In addition to solve the issue)

    0
    Comment actions Permalink
  • Avatar
    Firewalla

    @Christer

    I have created a case for us to follow up with you. In general, if your MAC address is for sure different, then they should all show up on the devices page. Also, make sure the VM or real machine can respond to ping, or at least send some traffic to your WAN

    1
    Comment actions Permalink
  • Avatar
    Christer Tysdal

    Thanks for the update and reaching out on email.
    I will make sure my VM's allow ping requests from Firewalla and let you know if that helps.

    0
    Comment actions Permalink
  • Avatar
    Tom van B

    Same here actually for virtualbox. I have made a DMZ for malware analysis . The Virtual Hosts disappear after some timeframe, when left switched off, but reappear when started again.

    0
    Comment actions Permalink
  • Avatar
    Firewalla

    Make sure your virtual machine is bridged directly to your main network, it has its own MAC. (not NAT via the physical host's network)

    0
    Comment actions Permalink
  • Avatar
    eemq

    Old thread, but has this been resolved??

    I'm still experiencing this using Virtualbox to manage virtual machines. These are my findings:

    Use Case: On a Host with two physical network connections

    1. Create a VM with a bridge using the primary Wifi device, the VM and IP address will disappear in Firewalla. 
    2. Create VM with a bridge to the secondary Ethernet device, IP address are issued to both network cards and the VMs and stays listed in Firewalla.

    It sounds like there are workarounds as listed in this thread but I'm hoping for a fix as I otherwise really love my Purple device!! This use case worked on my current Orbi (now access point) and on all my other routers owned since the dawn of home networking :)  (Linksys, Netgear, DDWRT, etc.)

    0
    Comment actions Permalink
  • Avatar
    Firewalla

    Does your VM share the same MAC as the host machine? from your description, it looked the same. When two devices sharing the same MAC, it will look like the same device to firewalla. 

    0
    Comment actions Permalink
  • Avatar
    Michael Lee Vazquez

    My FWP does the same with VMWare Fusion, MacOS guest on MacOS host. The VM is bridged and has its own MAC address.

    A few things to note:

    * Initially, the VM device will get put into Quarantine with its own IP Address. When it is released from Quarantine, the device entry is there without an IP Address. The host device then gets updated with the VM’s IP Address. It seems the last host or VM to request an IP Address through DHCP (initial boot or hitting “Renew”) will update the host device with the given IP Address.

    * While both IP Addresses work from a second real device on the network, the host name will resolve to the last IP Address given on the host/VM.

    * You cannot assign (I was trying to “pin” it) an IP Address to a device with no IP Address. I was hoping it would solve the host name resolving correctly.

    * IF my memory serves me, this was not an issue with Proxmox 8.X since I was able to run a VM and assign the FWP’s DMZ to it by name.

    How can I debug things?

    **EDIT**

    Disabling NordVPN on the host machine seems to put everything back to what is expected from FWP!  NordVPN also tinkered with the pf rules as reported by Murus.  Time to haunt their forums.

    0
    Comment actions Permalink
  • Avatar
    Firewalla

    @Michael Lee Vazquez

    Do you have a good link to this? I don't think NordVPN can mess with IP address assignment unless they really dig into your hosts. (So your comment is very interesting)

    0
    Comment actions Permalink
  • Avatar
    MB

    I'm still having this issue as well.

     

    VM in bridged mode.  Boots up, gets a unique address on the network.  Dropped into quarantine.  I move it to the proper group, and it loses its IP address and I can no longer do much with it.  The device itself however continues to work just fine with the IP address it was given.  If I search for that IP address within Firewalla, it doesn't show that it even exists even thought it is most definitely passing traffic just fine.  I've also triple checked, it is most definitely bridged.

    It's like it acts bridged when it first connects, but then Firewalla starts to see it as NAT or something.  I searched for the hostname "ubuntu" which was the default Firewalla came up with when it first discovered it, deleted it, and it actually deleted the host machine instead.

    It's confused about something with bridged.  I do have NordVPN as well, however, it isn't enabled on my device (meaning not connected), although it is installed.

    0
    Comment actions Permalink
  • Avatar
    MB

    Few more tests...

    I removed NordVPN entirely from the machine and it still happens.   I was able to grab it while in quarantine and statically assign/pin the IP address, but the IP disappeared shortly after again.  I would remove the device (without the IP), it would pop back up in quarantine with the pinned IP, but then it would lose the IP again shortly after.  I also did a speedtest from the VM and it showed no traffic on the device in firewalla.

    I also noticed that a couple of times, it actually would take the name of the VM and apply it to the main host the VM is running on.  Basically, renaming my host device without any prompt.  I also see that on the main screen the "recent" device switches to the host, even though my last device was the VM.

    0
    Comment actions Permalink
  • Avatar
    Matt Peterson

    Hello Firewalla,

    This thread describes a significant problem for people that use VMs on their network.   In my case, I use Hyper-v, but I suspect that anyone that uses a VM host will experience the same problem. 

    In a nutshell, the problem is the inability to create IP (layer 3) routing rules on the Firewalla router for a device that responds to ARPs for multiple IP addresses.   In my case, I would like to turn "internet block" on for VMs, but NOT for the HyperV server itself.

    SSHing to the firewalla router and dumping the ARP cache shows that on a Hyper-V host, the MAC address for the physical NIC on the HyperV server *and* for the IP addresses of the VMs. 

    It's important to note that *both* the Hyper-v host and the VM IP addresses (172.16.2.114 and 172.16.2.163) were assigned by the Firewalla router in response to separate DHCP requests.    The following screen shots are the tcpdump output from the Firewalla router showing DHCP request for the Hyper-v server a VM. 

    What is frustrating is that Firewalla knows about both IP addresses (they're in the ARP cache), but the Firewalla app assume that there is a 1:1 correlation between MAC address and IP address (e.g. the key in the device database is the MAC address?).  

    Please investigate a fix for this issue.  Without it, firewall use will be significantly limited for (technical) work at home people that use VMs.  Despite how much I love all the other features of Firewalla, I can't recommend it to my engineering teams because of this issue.

     

    0
    Comment actions Permalink
  • Avatar
    Firewalla Team

    @Matt. Yes. Firewalla identifies devices based on MAC address.

    I read your post (https://help.firewalla.com/hc/en-us/community/posts/35697990521363-IP-address-unknown-for-Hyper-V-VMs? ) The VM MAC address was detected by Firewalla, but likely all real connections of VMs were still coming from your host MAC address outside the machine.  The VM MAC address is not really used outside the machine.  (As you can see in ARP, it claims both ips are at the Host MAC address.)

    Even if Firewalla blocks the internet on the VM, the rule won't really work on the VMs' real connections since connections are from the host from an outside perspective. As my colleague shared in your post, better to use SET(switch embedded teaming) with Switch Independent Mode on Hyper-V.

    0
    Comment actions Permalink
  • Avatar
    Christer Tysdal

    Hi there!
    I can confirm that configuring a hyper-v host (in a cluster) using SET solves most of these issues.
    However - it would be nice if we where able to configure some sort of static objects. I have experienced issues when migrating an VM from one cluster to another, where all rules where deleted due to the object being merged to a new one.

    0
    Comment actions Permalink
  • Avatar
    Matt Peterson

    Firewalla,

    Thanks for the response.   Not what I was hoping for though, but I discovered some good news today: 

    If I add the VM devices to a group and then apply rules to the group...  Tada!  all the rules work (Internet Block, Safe Search, VPN, etc) for the VM devices.  However, the VM devices still show as having "No IP Address" (the VMs DO have an IP address).  And... no data is shown for "Flows in the last 24hrs" (the VMs clearly are generating network traffic).

    I don't have time to sort through the iptables rules on the router to find out what exactly happens when a group is made v.s. a device is referenced individually, but something about grouping creates a usable workaround for me. 

    Summary from me:  Grouping the VMs (the devices that show as having "No IP Address") and then applying rules to the group is a suitable workaround.  

    0
    Comment actions Permalink
  • Avatar
    Christer Tysdal

    @matt
    Applying rules to groups (or vlans) is the way to go.
    Vlans allow your devices to "auto group", so thats nice.

    Still there are scenarios where you would like to individually add rules to single devices. 

    0
    Comment actions Permalink

Please sign in to leave a comment.