Ysurac / openmptcprouter

OpenMPTCProuter is an open source solution to aggregate multiple internet connections using Multipath TCP (MPTCP) on OpenWrt
https://www.openmptcprouter.com/
GNU General Public License v3.0
1.85k stars 268 forks source link

dhcp in openmptcprouter as guest in virtualbox not working as expected #1168

Closed moham96 closed 4 years ago

moham96 commented 4 years ago

Expected Behavior

having openmptcprouter as a virtualbox guest and another windows guest on the same internal network should allow the windows machine to get an ip from the openmptcprouter and can ping the main gateway

Current Behavior

The windows machine doesn't get an ip most of the times, sometimes it gets an ip but i can't ping the gateway ip(openmptcprouter ip)

Steps to Reproduce the Problem

1.create two virtual machines (openmptcprouter using the efi vdi image and a windows 7 machine) 2.set the first network interface of openmptcprouter in vbox settings to Internal network (intnet, intel pro 1000 mt server, promiscuous mode=Allow all)

  1. for the windows 7 machine add a second interface with the same settings as the above
  2. start the two machines and see if the interface in the windows machine gets an ip from the openmptcprouter dhcp server it should get an ip in the 192.168.100.0/24 network but it doesn't, some times it gets an ip but you can't ping the gateway from the windows machine

Context (Environment)

My main system is manjaro linux, i tried to setup openmptcprouter environment for testing inside virtualbox, created two VMs (OMR and windows 7 machines) and put them on the same internal network expecting the windows machine to get an ip from the OMR instance but it doesn't or if it does sometimes it can't ping the main OMR ip

Specifications

Ysurac commented 4 years ago

With the same configuration, but only Linux machines I can get an IP without any issues. You can try to get an ip using ipconfig /renew under a windows console and monitor with tcpdump -i 1 -pvn port 67 and port 68 using tcpdump for windows.

Adorfer commented 4 years ago

sounds for me like just another case of "forgot to allow promisc mode/mac change in the hypervisor" But since this is allowed, i suspect Intelpro100MT emulation: Not stable at all, as far as i remember with kernel 4/5. Please switch to "paravirt"

moham96 commented 4 years ago

@Ysurac hmm I used another linux machine and indeed i get an ip and can connect back to the router, so seems the problem is only with windows it tried to renew the ip and watch traffic using wireshark and nothing surprising, the windows machine is sending dhcp discover request and not getting any offers from the router. note that using another os as a router (mikrotik) instead of openmptcprouter the windows machine gets an ip without a problem

moham96 commented 4 years ago

sounds for me like just another case of "forgot to allow promisc mode/mac change in the hypervisor" But since this is allowed, i suspect Intelpro100MT emulation: Not stable at all, as far as i remember with kernel 4/5. Please switch to "paravirt"

tried it didn't work

Adorfer commented 4 years ago

what is the result of the suggested "tcpdump -i 1 -pvn port 67 and port 68" 1) on the OMR 2) on the windows machne. 3) if possible on the Virtualbox-Bridge inside your Linux host.

in other words: Please find out

moham96 commented 4 years ago

Ok the problem is gone, the solution/workaround is : 1- had to reinstall the windows machine for some reason the old one had problems it seems. 2-it seems that if i add only one interface to OMR VM as an internal network it works fine and it is attached as eth0, but if i add more interfaces(bridges) leaving the first interface as internal network then the naming order is changed and the second interface become eth0 instead of eth1 so i have to set the second interface to internal network so the OMR detect it as eth0 and runs the dhcp server on it, and use the first adapter as a bridge interface like the rest. this is very strange why it changes the naming scheme?!

Regards