||<#ee82ee>The following is solely authored by Jonathan Ferguson, and is henceforth referred to as Congruent Networksâ„ ||
<
>'''~+Ethernet Interconnections along with Private Interconnection+~'''
<
>
<
>'''The alternatives for Ethernet interface configuration are either __Repeater__ or __Link Aggregation Control Protocol__'''
<
>
<
>{{attachment:Ethernets.svg}}
<
>A pictorial representation of the interface hierarchy for both methodologies
<
>
<
>
<
>__~+Repeater+~__
<
>
<
>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 `''eth__0__''` ifname `''eth__0__''` master bridge`__0__` autoconnect yes`
<
>`sudo nmcli connection add type ethernet con-name `''eth__1__''` ifname `''eth__1__''` master bridge`__1__` autoconnect yes`
<
>
<
>Optional VLAN creation:
<
>`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 `[[attachment:bond0.0.netdev|/etc/systemd/network/bond0.0.netdev]]
<
>`sudo nano `[[attachment:bond0.0.network|/etc/systemd/network/bond0.0.network]]
<
>`sudo nano `[[attachment:bond0.0.0.netdev|/etc/systemd/network/bond0.0.0.netdev]]
<
>`sudo nano `[[attachment:bond0.0.0.network|/etc/systemd/network/bond0.0.0.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:
<
>`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 `[[attachment:bridge0.0.netdev|/etc/systemd/network/bridge0.0.netdev]]
<
>`sudo nano `[[attachment:bridge0.0.network|/etc/systemd/network/bridge0.0.network]]
<
>`sudo nano `[[attachment:bridge0.0.0.netdev|/etc/systemd/network/bridge0.0.0.netdev]]
<
>`sudo nano `[[attachment:bridge0.0.0.network|/etc/systemd/network/bridge0.0.0.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 `''l2tp__eth2__''` tunnel_id `__1__` local `` udp_sport 1701 peer_tunnel_id `__1__` remote `` udp_dport 1701`
<
>`sudo ip l2tp add session name `''l2tp__eth2__''` tunnel_id `__1__` session_id `__1__` peer_session_id `__1__
<
>`sudo /sbin/tc qdisc replace dev `''l2tp__eth2__''` root pfifo`
<
>`sudo ip link set `''l2tp__eth2__''` master `` up`
<
>`sudo nmcli connection reload`
<
>Verify:
<
>`lsmod | grep nf_defrag`
<
>`lsmod | grep l2tp`
<
>`sudo ip l2tp show tunnel`
<
>`sudo ip l2tp show session`
<
>`/sbin/bridge fdb show dev `''l2tp__eth2__''
<
>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__
<
>Verify:
<
>`sudo ip l2tp show session`
<
>`sudo ip l2tp show tunnel`
<
>
<
>{{attachment:L2TPv3.svg}}
<
>Neither the VLANs nor the PWE^3^ 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.
<
>
<
>
----
''[[http://Jonathan-Ferguson.tk/|Jonathan Ferguson]], [[https://wiki.edubuntu.org/JonathanFerguson|Ubuntu Wiki]], [[https://wiki.edubuntu.org/JonathanFerguson/EthernetInterconnections|Ethernet Interconnections]], [[https://wiki.edubuntu.org/JonathanFerguson/EthernetInterconnections]]''
----