-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Hi,
I'm trying to get a better understanding of the networking setup between VMs. Looking at the code I can see that:
- all VMs communicate with the host through their TAP interfaces
- the host acts as a router so can forward packets between microVMs.
What is not clear to me is the blocking/unblocking of links. For the netem backend I understand that each VM gets its dedicated iptables chain and if a target IP network is in the blocked set, iptables will drop the packets. Which would allow implementation of Line of Sight only links between satellites.
I don't understand the EBPF backend well - I can guess that blocking a link sets the bandwidth to 0 between the VM and the target network - is that the case?
However, the behaviour at runtime is confusing. In the routing table (ip route) I have one network for each microVM, however most of them are marked as "linkdown". There's a small set (see below) that are active, and those VMs can all communicate with each other. Would this be neighbour links plus the two ground stations?
10.0.0.0/30 dev ct-0-0 proto kernel scope link src 10.0.0.1
10.1.0.12/30 dev ct-1-3 proto kernel scope link src 10.1.0.13
10.1.1.128/30 dev ct-1-96 proto kernel scope link src 10.1.1.129
10.1.1.208/30 dev ct-1-116 proto kernel scope link src 10.1.1.209
10.1.1.212/30 dev ct-1-117 proto kernel scope link src 10.1.1.213
10.1.2.32/30 dev ct-1-136 proto kernel scope link src 10.1.2.33
10.1.2.36/30 dev ct-1-137 proto kernel scope link src 10.1.2.37
Long story short - my interest is in experimenting with routing in the emulated constellation. If I put bird or some other routing daemon on the microVMs would it behave as in the satellite constellation?
Kind regards,
Victor