With the implementation of veth virtual adapters allowing containers to function as full participants on the network, it has become possible to include containers in a wide range of network configurations the most common of which are Ethernet networks. The process of connecting veth virtual network adapters to an Ethernet network is carried out using certain physical, respectively, available on the server and involves completing the following tasks:
-
Creating a virtual network that will act as an intermediary between the
vethadapters and the physical adapter. -
Connecting the
vethvirtual adapter you want to include in an Ethernet network to the virtual network. -
Joining the virtual network where the
vethvirtual adapters are included to the corresponding physical adapter.
After completing these tasks, the container virtual network adapters will be able to communicate with any computer on the network where they are included and have no direct access to the computers joined to other networks.
For details on creating new virtual networks and joining physical adapters to them, see Section 5.4.1.1, “Creating Virtual Networks” and Section 5.4.1.5, “Connecting Virtual Networks to Adapters”, respectively. In the example below we assume the following:
-
The
enp0s5physical adapter and thenetwork1virtual network exist on the server. -
The
enp0s5physical adapter is connected to the local Ethernet network and to thenetwork1virtual network. -
You want to connect the container
MyCT1and the containerMyCT2to the local Ethernet network.
To join the containers MyCT1 and MyCT2 to the local Ethernet network behind the enp0s5 adapter, you need connect these containers to the network1 virtual network. To do this:
-
Find out the name of the
vethEthernet interfaces in the containersMyCT1andMyCT2:# prlctl list -a -o ctid,netif,netdev UUID NETIF NETDEV {4e10b61a-c775-4611-a9b0-d4b946e820f2} netif1 veth42ffa4e6 {eb0d3253-7e7a-486a-897f-02bfbd0e4c5b} netif2 veth42a5246fThe command output shows that the
vethEthernet interfaces in the containersMyCT1andMyCT2have the names ofnetif1andnetif2, respectively.Note
Note: To add a
vethadapter to a virtual network, you must use the name of its Ethernet interface in the container. -
Join the
vethadapters to thenetwork1virtual network:# prlctl set MyCT1 --ifname netif1 --network network1 # prlctl set MyCT2 --ifname netif2 --network network1
After completing these tasks, the containers MyCT1 and MyCT2 will be able to access any of the servers in the network where the enp0s5 physical adapter is connected.
At any time, you can disconnect the veth virtual network adapters of the containers MyCT1 and MyCT2 from the network1 virtual network by executing the following commands:
# prlctl set MyCT1 --ifname netif1 --network "" # prlctl set MyCT2 --ifname netif2 --network ""