Little bit Background (Why I want to do this)
My Local Cable Operator (LCO) provides last mile infrastructure for 2 different ISPs. Let's say, ISP-1 and ISP-2. Customers can pay for any preferred ISP and use that ISP (physical fiber line is the same from the LCO switch to customer home for both ISPs. Users don't need to change physical connection if they change ISP). I have paid for both ISP and got connection details from both of the ISPs. I can specify any ISP IP/subnet on my Ethernet interface and my data will go through that ISP. Now, I don't have the LCO's original topology but here is a possible simplified one:
Now, My computer (OS-Windows) has only one ethernet NIC but I want to use both of the ISPs and I want to implement automatic failover in case one ISP is down. The basic procedure I thought is:
I could assign both IP/subnet to my single ethernet interface and I could specify static routes. This works but it is not an elegant solution for detecting which ISP is up/down.
If I had two different network interfaces (one physical and one virtual), I could use
ping -S <interfaceIP> 126.96.36.199for both ISPs and detect UP/DOWN status.
This is why I need to create a virtual interface on the physical NIC.
What I have done so far
I tried to use TAP virtual adapter as suggested here but it is showing 'Network Cable Unplugged'. I tried to bridge it to the physical interface but it didn't work. I could specify only one IP to the bridge and both IPs of the interfaces (physical and virtual) disappeared.
I followed this answer and tried to use Hyper-V external virtual switch. I entered the 2nd ISP IP/subnet on the virtual switch->Properties->IPV4. And entered the 1st ISP IP/subnet on the physical main ethernet interface (I had to enable IPV4 on this interface though because the virtual switch disabled them. Don't know why). Now, it works like a charm.
What I need help with
I am a little bit confused because I have never used Hyper-V virtual switch before.
Why does a switch have an IP address? The switch is an L2 device and it is called the virtual switch.
Why does the virtual switch disable the IPV4, client for Microsoft networks etc. on the original physical interface after creating it? I manually re-enabled them again from properties and this setup worked too without creating a 2nd virtual interface.
On the above mentioned answer (from where I got the solution), the person commented: "you can create two virtual interface under that same virtual switch". How can I do that?
Is there any way to make the virtual TAP adapter use the same physical ethernet NIC?
Is there any easier way to achieve what I am trying to do?
Currently, the accepted answer explains the question 1 and 3. Any help with my other queries is welcome.