Skip to content

Another question about routing #41

@victorcionca

Description

@victorcionca

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions