ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

10 примеров команды brctl в Linux для сетевого Ethernet моста

10 примеров команды brctl в Linux для сетевого Ethernet моста

brctl означает Bridge Control.

В Linux эта команда используется для создания и управления мостом Ethernet.

Обычно это используется, когда на ваших серверах имеется несколько сетей ethernet, и вы хотите их объединить и представить как одну логическую сеть.

Например, если у вас есть eth0 и eth1, вы можете объединить их и представить их как просто br0, которые будут использовать как eth0, так и eth1 для сетевого трафика.

В этой статье мы рассмотрим следующее:

  1. Создание нового моста Ethernet с помощью addbr
  2. Показать доступный мост Ethernet с использованием show
  3. Удалить существующий мост Ethernet с помощью delbr
  4. Добавить интерфейс к существующему мосту
  5. Добавление нескольких интерфейсов к существующему мосту
  6. Отслеживание MAC-адреса моста
  7. Установите время старения для Mac-адреса на мосту
  8. Настройка связующего дерева на мосту Ethernet
  9. Отображение значений параметра STP для моста
  10. Изменить значения параметров моста

1. Создайте новый мост Ethernet с помощью addbr

Используя brctl addbr, мы можем создать новый мост Ethernet.

В следующем примере мы создали три сетевых моста на этом сервере: dev, stage и prod.

brctl addbr dev

brctl addbr stage

brctl addbr prod

 

Обратите внимание, что на данном этапе это всего лишь пустой мост Ethernet, на котором нет другой сети Ethernet.

2. Показать доступный мост Ethernet с использованием show

Используя brctl show, мы можем просмотреть все доступные сетевые мосты на вашем сервере.

В следующем примере будут отображаться все текущие экземпляры трех мостов, которые мы только что создали.

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.000000000000       no
prod            8000.000000000000       no
stage           8000.000000000000       no

 

Если вы заметите, что последний столбец «interfaces» не имеет значений. Это означает, что ни один из этих мостов в настоящее время не имеет связанного с ним Ethernet-устройства.

3. Удалите существующий мост Ethernet с помощью delbr

Используя brctl delbr, мы можем удалить существующий мост ethernet.

В следующем примере удаляется экземпляр «stage» моста ethernet.

brctl delbr stage

 

Как вы видите из команды show, мы больше не видим «stage» моста ethernet.

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.000000000000       no
prod            8000.000000000000       no

 

Обратите внимание, что когда мост активен (т.е. поднят), его можно удалить. Сначала нужно снести мост, а затем удалить его.

Также обратите внимание, что ранее команда brctl называлась brcfg.

4. Добавьте интерфейс к существующему мосту

Используя brctl addif, мы можем добавить интерфейс к существующему мосту Ethernet.

Следующий пример добавит сеть ethernet eth0 к мосту «dev», который мы только что создали.

Предупреждение. Не пытайтесь использовать это на каких-либо критичных машинах, так как вы можете потерять сетевое соединение с этой машиной, когда что-то пойдет не так. Попробуйте это только в тестовом экземпляре, где у вас есть доступ к консоли.

brctl addif dev eth0

 

В приведенном выше:

После добавления моста eth0 к «dev» команда brctl show отобразит следующее.

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.0050568954bc       no              eth0
prod            8000.000000000000       no

 

Как видно из приведенного выше вывода, последний столбец «interfaces» имеет значение eth0 для моста «dev».

Примечание. Если что-то пойдет не так, добавив eth0 на мост «dev», выполните следующую команду с консоли, чтобы удалить мост dev.

# brctl delbr dev

 

Обратите внимание, что если вы попытаетесь добавить интерфейс loopback к мосту, вы получите следующую команду недопустимого аргумента.

# brctl addif dev lo
can’t add lo to bridge dev: Invalid argument

 

Как вы можете себе представить, вы не можете добавить интерфейс, который не существует в системе для моста.

# brctl addif dev eth2
interface eth2 does not exist!

 

5. Добавьте несколько интерфейсов в существующий мост.

В приведенном выше примере мы добавили к мосту только одно Ethernet-устройство (eth0).

Но вся идея использования моста заключается в добавлении дополнительных интерфейсов к мосту.

В следующем примере мы добавляем как eth0, так и eth1 к мосту «dev».

# brctl addif dev eth0 eth1

 

Как видно из следующего вывода, для dev-моста мы видим две строки. В последнем столбце «interfaces» мы видим как eth0, так и eth1 для «dev» ethernet-моста.

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.0050568954bc       no              eth0
                                                        eth1
prod            8000.000000000000       no

 

В принципе, одна сеть может быть частью только одного моста. Если нет, мы получим следующее сообщение об ошибке при попытке добавить его на другой мост.

# brctl addif prod eth1
device eth1 is already a member of a bridge; can't enslave it to bridge prod

 

6. Отслеживание MAC-адреса моста

Используя brctl showmacs, мы можем видеть все MAC-адреса моста.

В следующем примере, на данный момент, следующие два адреса mac, которые подключены к мосту ethernet «prod». Эти данные будут меняться в зависимости от текущего состояния того, что связано с мостом.

# brctl showmacs prod
port no mac addr                is local?       ageing timer
1       00:50:56:89:54:bc       yes                0.00
2       00:60:50:46:bc:40       no                 0.00

 

7. Установите время старения для Mac-адреса на мосту

В следующем примере мы устанавливаем время старения адреса mac на 120 секунд на модеме «dev».

brctl setaging dev 120

 

В приведенном выше:

8. Установка связующего дерева на мосте Ethernet

Используя brctl stp, мы можем установить связующее дерево на мосте Ethernet.

Но по умолчанию, spanning tree не включен, когда мы создаем мост.

Spanning tree полезно, когда у вас несколько мостов в вашей сети, и все они могут сотрудничать, чтобы найти кратчайший путь между двумя ethernets.

В следующем примере мы включаем связующее дерево на ethernet-мосте «dev».

Мы можем использовать on или yes для включения spanning tree. Таким образом, обе следующие команды будут делать то же самое.

brctl stp dev on

brctl stp dev yes

 

Как видно из следующего вывода на экране, значения в столбце «STP enabled» для моста «dev» теперь «yes».

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.000000000000       yes
prod            8000.000000000000       no

 

Чтобы отключить связующее дерево  на мосту Ethernet, выполните следующие действия:

# brctl stp dev off

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.000000000000       no
prod            8000.000000000000       no

 

9. Отображение значений параметра STP для моста

STP обозначает протокол Spanning Tree.

После того, как вы включили stp на вашем мосту, вы можете использовать showstp, как показано ниже, для просмотра всех значений параметра stp вашего моста.

Ниже будет показан параметр stp и его текущее значение для моста «dev».

# brctl showstp dev
dev
 bridge id              000a.000000000000
 designated root        000a.000000000000
 root port                 0       path cost                  0
 max age                  19.99    bridge max age            19.99
 hello time                1.99    bridge hello time          1.99
 forward delay            14.99    bridge forward delay      14.99
 ageing time             299.95
 hello timer               0.00    tcn timer                  0.00
 topology change timer     0.00    gc timer                   0.00
 hash elasticity           4       hash max                 512
 mc last member count      2       mc init query count        2
 mc router                 1       mc snooping                1
 mc last member timer      0.99    mc membership timer      259.96
 mc querier timer        254.96    mc query interval        124.98
 mc response interval      9.99    mc init query interval    31.24
 flags

 

10. Изменение значения параметров моста

Значения по умолчанию для параметра spanning tree для конкретного моста могут быть изменены. Вы также можете изменить другие значения параметров созданного моста.

Все следующие команды набора, упомянутые в таблице ниже, начинаются с brctl. Например:

brctl setageing dev 100

 

В следующей таблице показаны доступные команды набора для brctl. Значение времени находится в секундах.

команда brctl Описание
setageing bridge time Установите время старения
setbridgeprio bridge prio Установите приоритет моста (от 0 до 65535)
setfd bridge time Установить задержку перемычки моста
sethello bridge time Установить время приветствия
setmaxage bridge time Установить максимальный возраст сообщения
setgcint bridge time Установите интервал сбора мусора в секундах
sethashel bridge int Установить эластичность hash
sethashmax bridge int Установить максимальный hash
setmclmc bridge int Устанавливать счетчик последнего члена многоадресной рассылки
setmcrouter bridge int Установка многоадресного маршрутизатора
setmcsnoop bridge int Настройка многоадресного отслеживания
setmcsqc bridge int Задайте количество запросов на запуск многоадресной рассылки
setmclmi bridge time Устанавливать интервал последнего члена многоадресной рассылки
setmcmi bridge time Установите интервал членства в многоадресном
setmcqpi bridge time Установите интервал многоадресного запроса
setmcqi bridge time Установка интервала межсетевого запроса
setmcqri bridge time Задать интервал ответа многоадресного запроса
setmcqri bridge time Задать интервал запроса многоадресной загрузки
setpathcost bridge port cost Установить стоимость пути
setportprio bridge port prio Установите приоритет порта (от 0 до 255)
setportmcrouter bridge port int Установить многоадресный маршрутизатор портов
sethashel bridge int Установить значение эластичности хэша

 

Exit mobile version