Ethernet Interconnections along with Private Interconnection

The alternatives for Ethernet interface configuration are either Repeater or Link Aggregation Control Protocol

A pictorial representation of the interface hierarchy for both methodologies


Create the bonding interface and a bridge interface for each enslaved physical Ethernet interface:
sudo nmcli connection add type bond con-name bond0 ifname bond0 mode broadcast ipv6.addr-gen-mode eui64 ipv6.ip6-privacy 0 ipv6.may-fail false autoconnect yes
sudo nmcli connection add type bridge con-name bridge0 ifname bridge0 bridge.multicast-querier yes bridge.stp yes stp yes multicast-snooping yes master bond0 autoconnect yes
sudo nmcli connection add type bridge con-name bridge1 ifname bridge1 bridge.multicast-querier yes bridge.stp yes stp yes multicast-snooping yes master bond0 autoconnect yes
sudo nmcli connection add type ethernet con-name eth0 ifname eth0 master bridge0 autoconnect yes
sudo nmcli connection add type ethernet con-name eth1 ifname eth1 master bridge1 autoconnect yes

Optional VLAN creation: — A work in progress
sudo nmcli connection add type bridge con-name bond0.0 ifname bond0.0 bridge.multicast-querier yes bridge.stp yes stp yes multicast-snooping yes ipv6.addr-gen-mode eui64 ipv6.ip6-privacy 0 ipv6.may-fail false bridge.vlan-protocol 802.1ad bridge.vlan-stats-enabled true master bond0 slave-type bridge autoconnect yes
sudo nmcli connection add type bridge con-name bond0.0.0 ifname bond0.0.0 bridge.multicast-querier yes bridge.stp yes stp yes multicast-snooping yes ipv6.addr-gen-mode eui64 ipv6.ip6-privacy 0 ipv6.may-fail false bridge.vlan-protocol 802.1Q bridge.vlan-stats-enabled true master bond0.0 slave-type bridge autoconnect yes
sudo nano /etc/systemd/network/bond0.0.netdev
sudo nano /etc/systemd/network/
sudo nano /etc/systemd/network/bond0.0.0.netdev
sudo nano /etc/systemd/network/

Link Aggregation Control Protocol

Create the bridging and bonding interfaces and enslave the physical Ethernet interfaces:
sudo nmcli connection add type bridge con-name bridge0 ifname bridge0 bridge.multicast-querier yes bridge.stp yes stp yes multicast-snooping yes ipv6.addr-gen-mode eui64 ipv6.ip6-privacy 0 ipv6.may-fail false autoconnect yes
sudo nmcli connection add type bond con-name bond0 ifname bond0 mode 802.3ad master bridge0 autoconnect yes
sudo nmcli connection add type ethernet con-name eth0 ifname eth0 master bond0 autoconnect yes
sudo nmcli connection add type ethernet con-name eth1 ifname eth1 master bond0 autoconnect yes

Optional VLAN creation: — A work in progress
sudo nmcli connection add type bridge con-name bridge0.0 ifname bridge0.0 bridge.multicast-querier yes bridge.stp yes stp yes multicast-snooping yes ipv6.addr-gen-mode eui64 ipv6.ip6-privacy 0 ipv6.may-fail false bridge.vlan-protocol 802.1ad bridge.vlan-stats-enabled true master bridge0 autoconnect yes
sudo nmcli connection add type bridge con-name bridge0.0.0 ifname bridge0.0.0 bridge.multicast-querier yes bridge.stp yes stp yes multicast-snooping yes ipv6.addr-gen-mode eui64 ipv6.ip6-privacy 0 ipv6.may-fail false bridge.vlan-protocol 802.1Q bridge.vlan-stats-enabled true master bridge0.0 autoconnect yes
sudo nano /etc/systemd/network/bridge0.0.netdev
sudo nano /etc/systemd/network/
sudo nano /etc/systemd/network/bridge0.0.0.netdev
sudo nano /etc/systemd/network/

Private Interconnection

Pseudo Wire Emulation Edge-to-Edge configuration: — A work in progress
sudo /sbin/modprobe -av nf_defrag_ipv4 nf_defrag_ipv6
sudo ip l2tp add tunnel encap udp name l2tpeth2 tunnel_id 1 local <This eth2 IP address> udp_sport 1701 peer_tunnel_id 1 remote <That eth2 IP address> udp_dport 1701
sudo ip l2tp add session name l2tpeth2 tunnel_id 1 session_id 1 peer_session_id 1
sudo /sbin/tc qdisc replace dev l2tpeth2 root pfifo
sudo ip link set l2tpeth2 master <bond0 || bridge0>
sudo ip link set l2tpeth2 up
sudo nmcli connection reload
lsmod | grep nf_defrag
lsmod | grep l2tp
sudo ip l2tp show tunnel
sudo ip l2tp show session
/sbin/bridge fdb show dev l2tpeth2
If you wish to bring down the Ethernet tunnel:
sudo ip l2tp del session tunnel_id 1 session_id 1
sudo ip l2tp del tunnel tunnel_id 1
sudo ip l2tp show session
sudo ip l2tp show tunnel

Neither the VLANs nor the PWE3 portions of this topology are reasonable propositions, unless your network and the Internet's interconnections are Fat Trees and until the availability of TRansparent Interconnection of Lots of Links.

Jonathan Ferguson, Ubuntu Wiki, Ethernet Interconnections,

JonathanFerguson/EthernetInterconnections (last edited 2021-01-05 14:31:40 by jonathan-ferguson)