mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
255 lines
8.3 KiB
ReStructuredText
255 lines
8.3 KiB
ReStructuredText
.. _bridge-interface:
|
|
|
|
######
|
|
Bridge
|
|
######
|
|
|
|
A Bridge is a way to connect two Ethernet segments together in a protocol
|
|
independent way. Packets are forwarded based on Ethernet address, rather than
|
|
IP address (like a router). Since forwarding is done at Layer 2, all protocols
|
|
can go transparently through a bridge. The Linux bridge code implements a
|
|
subset of the ANSI/IEEE 802.1d standard.
|
|
|
|
Configuration
|
|
#############
|
|
|
|
Address
|
|
-------
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> address <address | dhcp | dhcpv6>
|
|
|
|
Configure interface `<interface>` with one or more interface addresses.
|
|
|
|
* **address** can be specified multiple times as IPv4 and/or IPv6 address,
|
|
e.g. 192.0.2.1/24 and/or 2001:db8::1/64
|
|
* **dhcp** interface address is received by DHCP from a DHCP server on this
|
|
segment.
|
|
* **dhcpv6** interface address is received by DHCPv6 from a DHCPv6 server on
|
|
this segment.
|
|
|
|
Example:
|
|
|
|
.. code-block:: none
|
|
|
|
set interfaces bridge br0 address 192.0.2.1/24
|
|
set interfaces bridge br0 address 192.0.2.2/24
|
|
set interfaces bridge br0 address 2001:db8::ffff/64
|
|
set interfaces bridge br0 address 2001:db8:100::ffff/64
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> ipv6 address autoconf
|
|
|
|
.. include:: common-ipv6-addr-autoconf.txt
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> ipv6 address eui64 <prefix>
|
|
|
|
:abbr:`EUI-64 (64-Bit Extended Unique Identifier)` as specified in
|
|
:rfc:`4291` allows a host to assign iteslf a unique 64-Bit IPv6 address.
|
|
|
|
.. code-block:: none
|
|
|
|
set interfaces bridge br0 ipv6 address eui64 2001:db8:beef::/64
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> aging <time>
|
|
|
|
MAC address aging `<time`> in seconds (default: 300).
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> max-age <time>
|
|
|
|
Bridge maximum aging `<time>` in seconds (default: 20).
|
|
|
|
If a another bridge in the spanning tree does not send out a hello packet
|
|
for a long period of time, it is assumed to be dead.
|
|
|
|
|
|
Link Administration
|
|
-------------------
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> description <description>
|
|
|
|
Assign given `<description>` to interface. Description will also be passed
|
|
to SNMP monitoring systems.
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> disable
|
|
|
|
Disable given `<interface>`. It will be placed in administratively down
|
|
(``A/D``) state.
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> disable-flow-control
|
|
|
|
Disable Ethernet flow control (pause frames).
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> mac <mac-address>
|
|
|
|
Configure user defined :abbr:`MAC (Media Access Control)` address on given
|
|
`<interface>`.
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> igmp querier
|
|
|
|
Enable IGMP querier
|
|
|
|
|
|
Member Interfaces
|
|
-----------------
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> member interface <member>
|
|
|
|
Assign `<member>` interface to bridge `<interface>`. A completion helper
|
|
will help you with all allowed interfaces which can be bridged. This includes
|
|
:ref:`ethernet-interface`, :ref:`bond-interface`, :ref:`l2tpv3-interface`,
|
|
:ref:`openvpn`, :ref:`vxlan-interface`, :ref:`wireless-interface`,
|
|
:ref:`tunnel-interface` and :ref:`geneve-interface`.
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> member interface <member> priority <priority>
|
|
|
|
Configure individual bridge port `<priority>`.
|
|
|
|
Each bridge has a relative priority and cost. Each interface is associated
|
|
with a port (number) in the STP code. Each has a priority and a cost, that
|
|
is used to decide which is the shortest path to forward a packet. The lowest
|
|
cost path is always used unless the other path is down. If you have multiple
|
|
bridges and interfaces then you may need to adjust the priorities to achieve
|
|
optimium performance.
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> member interface <member> cost <cost>
|
|
|
|
Path `<cost>` value for Spanning Tree Protocol. Each interface in a bridge
|
|
could have a different speed and this value is used when deciding which
|
|
link to use. Faster interfaces should have lower costs.
|
|
|
|
|
|
STP Parameter
|
|
-------------
|
|
|
|
:abbr:`STP (Spanning Tree Protocol)` is a network protocol that builds a
|
|
loop-free logical topology for Ethernet networks. The basic function of STP is
|
|
to prevent bridge loops and the broadcast radiation that results from them.
|
|
Spanning tree also allows a network design to include backup links providing
|
|
fault tolerance if an active link fails.
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> stp
|
|
|
|
Enable spanning tree protocol. STP is disabled by default.
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> forwarding-delay <delay>
|
|
|
|
Spanning Tree Protocol forwarding `<delay>` in seconds (default: 15).
|
|
|
|
Forwarding delay time is the time spent in each of the Listening and
|
|
Learning states before the Forwarding state is entered. This delay is so
|
|
that when a new bridge comes onto a busy network it looks at some traffic
|
|
before participating.
|
|
|
|
|
|
.. cfgcmd:: set interfaces bridge <interface> hello-time <interval>
|
|
|
|
Spanning Tree Protocol hello advertisement `<interval>` in seconds
|
|
(default: 2).
|
|
|
|
Periodically, a hello packet is sent out by the Root Bridge and the
|
|
Designated Bridges. Hello packets are used to communicate information about
|
|
the topology throughout the entire Bridged Local Area Network.
|
|
|
|
|
|
Exammple
|
|
--------
|
|
|
|
Creating a bridge interface is very simple. In this example we will have:
|
|
|
|
* A bridge named `br100`
|
|
* Member interfaces `eth1` and VLAN 10 on interface `eth2`
|
|
* Enable STP
|
|
* Bridge answers on IP address 192.0.2.1/24 and 2001:db8::ffff/64
|
|
|
|
.. code-block:: none
|
|
|
|
set interfaces bridge br100 address 192.0.2.1/24
|
|
set interfaces bridge br100 address 2001:db8::ffff/64
|
|
set interfaces bridge br100 member interface eth1
|
|
set interfaces bridge br100 member interface eth2.10
|
|
set interfaces bridge br100 stp
|
|
|
|
This results in the active configuration:
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# show interfaces bridge br100
|
|
address 192.0.2.1/24
|
|
address 2001:db8::ffff/64
|
|
member {
|
|
interface eth1 {
|
|
}
|
|
interface eth2.10 {
|
|
}
|
|
}
|
|
stp
|
|
|
|
|
|
Operation
|
|
=========
|
|
|
|
.. opcmd:: show bridge
|
|
|
|
The `show bridge` operational command can be used to display configured
|
|
bridges:
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos:~$ show bridge
|
|
bridge name bridge id STP enabled interfaces
|
|
br100 8000.0050569d11df yes eth1
|
|
eth2.10
|
|
|
|
.. opcmd:: show bridge <name> spanning-tree
|
|
|
|
Show bridge `<name>` STP configuration.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos:~$ show bridge br100 spanning-tree
|
|
br100
|
|
bridge id 8000.0050569d11df
|
|
designated root 8000.0050569d11df
|
|
root port 0 path cost 0
|
|
max age 20.00 bridge max age 20.00
|
|
hello time 2.00 bridge hello time 2.00
|
|
forward delay 14.00 bridge forward delay 14.00
|
|
ageing time 300.00
|
|
hello timer 0.06 tcn timer 0.00
|
|
topology change timer 0.00 gc timer 242.02
|
|
flags
|
|
|
|
eth1 (1)
|
|
port id 8001 state disabled
|
|
designated root 8000.0050569d11df path cost 100
|
|
designated bridge 8000.0050569d11df message age timer 0.00
|
|
designated port 8001 forward delay timer 0.00
|
|
designated cost 0 hold timer 0.00
|
|
flags
|
|
|
|
eth2.10 (2)
|
|
port id 8002 state disabled
|
|
designated root 8000.0050569d11df path cost 100
|
|
designated bridge 8000.0050569d11df message age timer 0.00
|
|
designated port 8002 forward delay timer 0.00
|
|
designated cost 0 hold timer 0.00
|
|
|
|
.. opcmd: show bridge <name> macs
|
|
|
|
Show bridge Media Access Control (MAC) address table
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos:~$ show bridge br100 macs
|
|
port no mac addr is local? ageing timer
|
|
1 00:53:29:44:3b:19 yes 0.00
|