- 🐧 Как настроить сетевой мост на Ubuntu
- Установка утилит сетевого моста в Ubuntu
- Создание сетевого моста с использованием NetPlan на Ubuntu
- H Как настроить сетевой мост (br0) на Ubuntu Linux 14.04 и 16.04 LTS в черновиках
- Установка bridge-utils
- Создаем сетевой мост на сервере с Ubuntu
- Как настроить сетевой мост (br0) на Ubuntu Linux 14.04 и 16.04 LTS
- Установка bridge-utils
- Создаем сетевой мост на сервере с Ubuntu
- Ubuntu Documentation
- Bridging Ethernet Connections (as of Ubuntu 16.04)
- Why bridge?
- How to bridge? (short version)
- Bridging Ethernet Connections from the GUI
- Bridging Ethernet Connections (Step by step)
- Installing bridge-utils
- Automatically Create the Bridge at Start-up
- Manually Setting up the Bridge
- Manually creating the routing
- Contributors
- Websites
- Users
- Additions
- Объединение двух и более сетевых карт в bridge
- 2 комментария
🐧 Как настроить сетевой мост на Ubuntu
Linux поддерживает реализацию программного сетевого моста для воспроизведения функции соединения типа мост, сетевого устройства, которое соединяет две или более сетей или сегментов сети, предоставляя им возможность работать как одна сеть.
Мост действует почти как сетевой коммутатор и в программном смысле используется для реализации концепции «виртуального сетевого коммутатора».
Типичный пример использования программных сетевых мостов – в среде виртуализации для непосредственного подключения виртуальных машин (ВМ) к сети хост-сервера.
Таким образом, виртуальные машины развертываются в той же подсети, что и хост, и могут получать доступ к таким службам, как DHCP и многое другое.
В этой статье вы узнаете, как настроить сетевой мост в Ubuntu и использовать его в среде виртуализации для создания виртуальных сетей в мостовом режиме в VirtualBox и KVM, чтобы подключить виртуальные машины к той же сети, что и хост.
Установка утилит сетевого моста в Ubuntu
Начните с установки пакета bridge-utils, который содержит утилиты для настройки моста Ubuntu Ethernet с помощью менеджера пакетов apt, как показано ниже:
Создание сетевого моста с использованием NetPlan на Ubuntu
Netplan – это простая и простая в использовании утилита для настройки сети на Linux с использованием формата YAML.
Внастоящее время он поддерживает NetworkManager и systemd-netword в качестве внутренних инструментов.
Чтобы настроить сеть для интерфейса, такого как мост, отредактируйте файл конфигурации netplan, находящийся в каталоге /etc/netplan/.
Ниже приведен пример файла конфигурации, где по умолчанию используется средство визуализации systemd-netword (замените enp1s0 на имя вашего интерфейса Ethernet).
Сохраните файл конфигурации и примените ее, чтобы включить сеть типа мост, выполнив следующую команду.
Источник
H Как настроить сетевой мост (br0) на Ubuntu Linux 14.04 и 16.04 LTS в черновиках
В данном посте пойдет речь о том, как настроить сетевой мост на сервере с ОС Ubuntu 14.04 LTS или 16.04 LTS.
Сетевой мост — это ничто иное, как простой технический способ соединения с внешней сетью через физический интерфейс. Это полезно при использовании виртуализации LXC/KVM/Xen/Containers и других виртуальных интерфейсов. В этом туториале будет рассказано как можно настроить мост Linux используя bridge-utils (brctl) на сервер с Ubuntu.
Пример сетевого моста:
В этом примере eth0 и eth1 — это физический сетевой интерфейс. eth0 соединяется с LAN и eth1 соединен непосредственно с оборудованием провайдера.
Установка bridge-utils
Введите команду apt-get для установки bridge-utils:
Создаем сетевой мост на сервере с Ubuntu
Редактируем /etc/network/interfaces используя текстовый редактор такой как nano, vi или любой другой любимый Вами редактор, и вводим:
Далее установим eth1 и метим его как br1, вводим:
Устанавливаем eth0 и метим его как br0, вводим:
Заметка про br0 и DHCP
Сохраните и закройте файл.
Перезапускаем сервер или сетевой сервис
Теперь нужно перезагрузить сервер или ввести команду для перезапуска сетевого сервиса:
Если используется Ubuntu 14.04 LTS или более старая версия дистрибутива, введите:
Команда проверки связности
Используем команду ping/ip для того, чтобы убедиться в доступности интерфейсов LAN и WAN:
Теперь можно сконфигурировать XEN/KVM/LXC контейнеры, чтобы использовать br0 и br1 и получить доступ непосредственно к Интернету или внутренней LAN. Таким образом отпадает потребность в установке специальной таблицы маршрутизации или создания iptables, SNAT правил.
Источник
Как настроить сетевой мост (br0) на Ubuntu Linux 14.04 и 16.04 LTS
В данном посте пойдет речь о том, как настроить сетевой мост на сервере с ОС Ubuntu 14.04 LTS или 16.04 LTS.
Сетевой мост — это ничто иное, как простой технический способ соединения с внешней сетью через физический интерфейс. Это полезно при использовании виртуализации LXC/KVM/Xen/Containers и других виртуальных интерфейсов. В этом туториале будет рассказано как можно настроить мост Linux используя bridge-utils (brctl) на сервер с Ubuntu.
Пример сетевого моста:
В этом примере eth0 и eth1 — это физический сетевой интерфейс. eth0 соединяется с LAN и eth1 соединен непосредственно с оборудованием провайдера.
Установка bridge-utils
Введите команду apt-get для установки bridge-utils:
Создаем сетевой мост на сервере с Ubuntu
Редактируем /etc/network/interfaces используя текстовый редактор такой как nano, vi или любой другой любимый Вами редактор, и вводим:
Далее установим eth1 и метим его как br1, вводим:
Устанавливаем eth0 и метим его как br0, вводим:
Заметка про br0 и DHCP
Сохраните и закройте файл.
Перезапускаем сервер или сетевой сервис
Теперь нужно перезагрузить сервер или ввести команду для перезапуска сетевого сервиса:
Если используется Ubuntu 14.04 LTS или более старая версия дистрибутива, введите:
Команда проверки связности
Используем команду ping/ip для того, чтобы убедиться в доступности интерфейсов LAN и WAN:
Теперь можно сконфигурировать XEN/KVM/LXC контейнеры, чтобы использовать br0 и br1 и получить доступ непосредственно к Интернету или внутренней LAN. Таким образом отпадает потребность в установке специальной таблицы маршрутизации или создания iptables, SNAT правил.
Источник
Ubuntu Documentation
Bridging Ethernet Connections (as of Ubuntu 16.04)
These instructions work for current Ubuntu versions as of this writing.
NOTE: Bridging is popular, and so it has reference material in several places that may not all be updated at once. These are the links I know of;
KVM Networking — Network configuration for the KVM virtual machines server.
Installing bridge utilities — A similar page from a Bridge-Utils point of view.
This covers how to bridge connections using the package bridge-utils. It is assumed that the bridging computer is not directly connected to the Internet. This article contains information from several sources, including;
Please visit these sites if you need a more in-depth discussion of network bridges and the commands used here.
Why bridge?
It is possible to «bridge» two Ethernet adapters together (for example, eth0 and eth1). When you bridge two Ethernet networks, the two networks become one single (larger) Ethernet network.
One reason you would bridge Ethernet connections is to monitor traffic flowing across an Ethernet cable. For example, an inline sniffer to monitor the traffic flowing between these two devices, such as a router and the switch. (Using tools like ntop, Wireshark, and tcpdump.)
How to bridge? (short version)
The Debian wiki provides a good overview of how to use brctl and the /etc/network/interfaces file to create and set up bridges. Typing man bridge-utils-interfaces at a command prompt provides additional detail.
You can set up a simple Ethernet bridge by installing bridge-utils placing this text into /etc/network/interfaces file:
Using auto br0 ensures that the bridge starts when the computer reboots, and using iface br0 inet dhcp provides the computer with its own IP address on the single (larger) Ethernet network.
You will note that auto eth0 and iface eth0 inet manual are not in the file. This is because br0 will bring up the components assigned to it.
Once you have edited the /etc/network/interfaces file, it may be easiest to reboot your computer to turn on the bridging. (It is possible to start the bridge without rebooting or logging out, but you may have some problems with the Network Connection Manager interfering with your settings.)
Bridging Ethernet Connections from the GUI
As of Ubuntu 15.04 you can bridge from the desktop using network manager. This is covered in a website at ask.xmodulo.com/configure-linux-bridge-network-manager-ubuntu.html.
Bridging Ethernet Connections (Step by step)
You will need to know the following information;
Your interface name. This used to be eth0 or eth1, but now we have Predictable Network Interface Names which means they could be eth0, p3p1, p2p1, enp9s0, wlp9s0, or eno16777728. (Yes, those are all real examples. Do an ifconfig from the cli to find out what Ubuntu is actually calling your nics.
Installing bridge-utils
If you use sudo -i and enter your password, then you will not have to use sudo before each command. It may also save you some typing in the future.
Automatically Create the Bridge at Start-up
The above setup demonstrated how to create a bridge using the command line, however when you restart your computer you will lose it. To prevent this from happening, we need to edit the /etc/network/interfaces file. This file shows an example of a bridge configure via dhcp.
Sample /etc/network/interfaces file
bridge_stp off is a setting for spanning tree. If you have a possibility for network looks, you may want to turn this on.
bridge_fd 0 turns off all forwarding delay. If you do not know what this is, you probably do not need it.
bridge_maxwait 0 is how long the system will wait for the Ethernet ports to come up. Zero is no wait.
Manually Setting up the Bridge
If you do not want to use your bridge all the time (or if you do not want to break Network Manager for the times when you are not bridging) you can build a bridge by hand. Or you can script it to bring up your bridge on demand.
Ensure that both (or all) of your interfaces are installed and enabled. If they are then you may proceed at this point. For a few moments, if your computer is connected to the Internet then it will be disconnected temporarily.
Open a terminal and use the following commands. Note that when interfaces are referenced, they refer to device names assigned by Linux such as «eth0» and «eth1». A bridge can be anything, but a simple name like bridge0 or br0 is suggested.
In lines 1-2 we simply prepared the devices to be bridged. In line 3, we added a new bridge named myBridge (whatever you named your bridge). In lines 4-5, we added interface1 and interface2 to myBridge. In line 6, we made the bridge operational. For more information on commands: use the Konsole command brctl
Manually creating the routing
If you manually created the bridge above, you will also need to manually give it IP address information. If you are using DHCP, running sudo dhclient br0 will get your interface up and running. If not, it is all manual.
At this point you may also want to see http://linux-net.osdl.org/index.php/Bridge at this point for a more in depth explanation of bridges and other commands within brctl.
Contributors
Websites
Editors can add any website they find that are related to this article or that they used to add to this article.
Users
Editors post their name/username and some form of contact.
Jonte Craighead, JonTec on #(K)ubuntu IRC Channel
[JonTec’s reference]: sethk on #ubuntu IRC Channel
Additions
13.Aug.06: JonTec: There was an error inside my bridge setup commands that would prevent you from adding interfaces to the bridge. I have fixed this error.
2.Nov.06 JackWasey: Is this possible between ethernet and Firewire connections? If not, what is the appropriate method?
4.Sep.12 griffin2: Added section on Ubuntu 12.04.
14.Apr.16 Lee Sharp: A lot of cleanup and realignment with other pages.
NetworkConnectionBridge (последним исправлял пользователь leesharp 2016-04-15 03:40:47)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details
Источник
Объединение двух и более сетевых карт в bridge
Когда-то впервые увидев, что в одной конторе вместо аппаратных сетевых устройств использовалось все на програмном исполнении, а именно обычный комп, сервера, а уже на него взгромоздили Ubuntu систему которая выступает, как шлюз, почтовый сервер, сервер телефонии и таких систем великое множество, а для объединения их друг с другом использовалось объединение двух и более сетевых карт (канальный уровень) в bridge, при этом пакеты передаются на основе Ethernet-адресов, а не IP (как в маршрутизации), что в последствии давало управление безопасностью на более низком уровне чем ранее. Также к этому применялось использование канального протокола связующего дерева (STP – Spanning Tree Protocol) посредством которого устранялось образованием петель в сети. Задачу STP выполнял полностью – автоматическое блокирование соединений, которые в текущий момент являются излишними. Если каким-либо образом в сети появится “петля” — то сеть оказывается парализованной повторяющимися пакетами, хотя и может работать на отдельных участках, но вот полезная нагрузка очень мала, и выглядит это как полный отказ, к примеру был у меня случай, некоторые отделы подключенные к аппаратный switchaм не видели другие отделы.
Вывод: использование протокола STP – это использование для нахождения кратчайшего пути между двумя ethernet-сетями и для удаления колец из топологий сетей ethernet
Данная заметка покажет, как использовать bridge в системе Ubuntu 12.04.5 Server:
$ sudo apt-get update && sudo apt-get upgrade -y
Выводим какие сетевые карты сейчас определены системой и их MAC-адреса:
$ ifconfig -a | grep -r ‘eth1’
eth0 Link encap:Ethernet HWaddr 08:00:27:7a:16:e5
eth1 Link encap:Ethernet HWaddr 08:00:27:ce:63:2c
Далее устанавливаем в систему пакет ответственный за использование bridge:
$ sudo apt-get install bridge-utils -y
После создаем bridge воспользовавшись командой brctl с аргументом addbr:
$ sudo brctl addbr br0
С целью предотвращения появления в сети “петель” включаю протокол связующего дерева STP:
$ sudo brctl stp br0 on
Чтобы определить мост для текущий сетевых интерфейсов в системе их нужно освободить от выданных адресов и выключить на время добавления в мост (данные действия нужно проводить подключившись к системе локально либо с использование средств удаленного администрирования (iLo,ipmi,KVM), либо в системе имеется еще одна сетевая карта)
$ sudo ifconfig eth0 0.0.0.0 down
$ sudo ifconfig eth1 0.0.0.0 down
Теперь создаем мост для выключенных сетевых интерейсов , после чего он заработает полностью через совсем малый промежуток времени, в течение которого будет происходит изучение трафика проходящего через него)
$ sudo brctl addif br0 eth0
$ sudo brctl addif br0 eth1
Вот теперь уже можно включить сетевые интерфейсы (eth0 & eth1) и конечно же наш мост (br0)
$ sudo ifconfig eth0 up
$ sudo ifconfig eth1 up
$ sudo ifconfig br0 up
В моем случаем после включения моста ему не присвоился сетевой адрес от DHCP сервера автоматически, потребовалось вручную запросить:
$ sudo dhclient br0
br0 Link encap:Ethernet HWaddr 08:00:27:7a:16:e5
inet addr:10.7.8.154 Bcast:10.7.8.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1266 errors:0 dropped:6 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:89888 (89.8 KB) TX bytes:4910 (4.9 KB)
Дальнейшие действия настройки к примеру статики и динамики также сводятся к правке конфигурационного файла : ekzorchik@srv-mon:
$ sudo nano /etc/network/interfaces
#для ручного указания IP адреса
iface eth0 inet static
iface eth1 inet static
iface br0 inet static
bridge_ports eth0 eth1
#для автоматического получения IP адреса от DHCP сервера
iface eth0 inet dhcp
iface eth1 inet dhcp
iface br0 inet dhcp
bridge_ports eth0 eth1
После изменения настроек перезапускаем сетевую часть:
$ sudo /etc/init.d/networking restart
если в процессе Вы видите сообщение:
Waiting for br0 to get ready (MAXWAIT is 32 seconds)
то это значит что очень долго поднимается мост, чтобы этого избежать можно в файл /etc/network/interfaces добавить следующую строку:
$ sudo nano /etc/network/interfaces
iface br0 inet static
bridge_ports eth0 eth1
Следом после сохранения снова перезапустить сетевую подсистему и проблема будет решена.
Получить информацию о bridge можно так:
$ sudo brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0800277a16e5 yes eth0
Получить информацию о STP:
$ sudo brctl showstp br0
bridge id 8000.0800277a16e5
designated root 8000.0800277a16e5
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 15.00 bridge forward delay 15.00
ageing time 300.00
hello timer 1.74 tcn timer 0.00
topology change timer 0.00 gc timer 67.99
port id 8001 state forwarding
designated root 8000.0800277a16e5 path cost 4
designated bridge 8000.0800277a16e5 message age timer 0.00
designated port 8001 forward delay timer 0.00
designated cost 0 hold timer 0.74
port id 8002 state blocking
designated root 8000.0800277a16e5 path cost 4
designated bridge 8000.0800277a16e5 message age timer 19.80
designated port 8001 forward delay timer 0.00
designated cost 0 hold timer 0.00
В процессе Вам также может понадобиться расширенная справка по использование утилиты brctl
Программа brctl предназначена для создания, сопровождения и просмотра конфигурации модуля Ethernet-моста bridge в ядре Linux.
Ethernet-мост это устройство используемое для соединения разных Ethernet-сетей между собой так, что эта сеть видится как единая для членов сети.
Каждая сеть, участвующая в соединении, соответствует одном интерфейсу, подключённому к мосту. Эти отдельные сети ethernet связываются в большую логическую сеть. Этой сети соответствует сетевой интерфейс моста.
Команда brctl addbr создаёт новый экземпляр ethernet-моста. Сетевой интерфейс, соответствующий этому мосту, будет называться name.
Команда brctl delbr удаляет экземпляр моста, который называется name. Сетевой интерфейс, соответствующий мосту, нужно сначала выключить, прежде чем удалять этот мост.
Команда brctl show показывает все экземпляры ethernet-мостов.
У каждого моста есть подключённые к нему порты. Трафик, который приходит через любой из этих портов, прозрачно отправляется на другие; мост остаётся невидимым для остальной сети (в частности, его не видно через traceroute).
Команда brctl addif
делает сетевой интерфейс портом моста
. Это означает, что все кадры, полученные через интерфейс будут обрабатываться, как если они пришли на этот мост. И наоборот, когда кадр приходит на мост
, интерфейс рассматривается как потенциальный порт для отправки трафика.
Команда brctl delif
отключает интерфейс от бриджа
.
Команда brctl show
показывает информацию про мост подключённые к нему порты.
Мост отслеживает какие адреса были на каждом порту. Когда нужно передать кадр, адрес получателя (заданный в кадре) которого был замечен на каком-то порту, он передаётся только на этот порт. В результате не создаётся множество лишних кадров.
Местоположение ethernet это не статические данные. Машины могут переходить на другие порты, сетевые карты могут меняться (и соответственно, будут меняться MAC-адреса) и т.д.
brctl showmacs
показывает список изученных (learned) MAC-адресов для этого моста.
brctl setageingtime
задаёт время жизни (ageing time) MAC-адреса, в секундах. Если в течение времени секунд мост не видит кадров с определённого адреса, этот адрес удаляется из базы данных Forwarding DataBase (fdb).
brctl setgcint
задаёт период сбора мусора (garbage collection interval) для моста
равным секунд. Это значит, что bridge будет проверять forwarding database на наличие устаревших записей каждые секунд.
Spanning Tree Protocol (Протокол основного дерева)
Несколько ethernet-мостов могут быть соединены друг с другом ethernet-сетями и образовывать ещё большую сеть. В таких сетях обычно работает протокол 802.1d (или аналогичный). Это протокол используется для нахождения кратчайшего пути между двумя ethernet-сетями и для удаления колец из топологий сетей ethernet. Поскольку это стандарт, мосты Linux будут нормально взаимодействовать с мостами третьих производителей. Мосты взаимодействуют друг с другом при помощи отправки BPDU (Bridge Protocol Data Units). Эти BPDU можно узнать по Ethernet-адресу получателя 01:80:c2:00:00:00.
Протокол spanning tree можно выключить совсем (в тех случаях, когда в его использовании нет никакого смысла, например, когда Linux-машина это единственный мост в сети или если если вы уверены, что петель в топологии не будет наверняка).
Программа brctl может настраивать некоторые параметры протокола spanning tree. Объяснение, что обозначают эти параметры можно найти в спецификации IEEE 802.1d. Настройки по умолчанию должны хорошо работать в большинстве случаев. Если вы не знаете, что означают эти параметры, скорее всего вы и не захотите их менять.
- brctl stp
управляет тем, будет ли мост принимать участие в работе протокола spanning tree (STP). Если состояние это «on» или «yes», STP будет включён; во всех остальных случаях он будет выключен. При выключенной опции мост не будет отправлять или принимать BPDU и не будет никак участвовать в работе протокола spanning tree. Если этот мост не единственный в сети, или если возможны циклы в сетевой топологии, эту опцию выключать не стоит. Опцию нужно отключать, только если точно представляешь, что делаешь. - brctl setbridgeprio
устанавливает приоритет моста равным
. Параметр priority это 16-битное беззнаковое целое без размерности (число между 0 и 65535). Чем ниже приоритет, тем «лучше». Мост с наименьшим приоритетом будет выбран как корневой.
задаёт параметр ‘bridge forward delay’ равным секунд.
задаёт параметр ‘bridge hello time’ равным секунд.
задаёт параметр ‘maximum message age’ равным секунд.
задаёт стоимость порта
равным . Это метрика без единиц измерений.
brctl setportprio
устанавливает приоритет порта
. Значение priority это беззнаковое 8-битное целое (число между 0 и 255) и без единиц измерения. Эта метрика используется при выборе корневого моста (root bridge) и корневого порта (root port).
Из дополнительной информации по использованию bridge подчерпнул для своего развития, что мосты использующиеся в Ubuntu системе более продвинутей по сравнению с простыми аппаратными мостами и коммутаторами, все дело в том, что они могут отфильтровывать и регулировать трафик. Просто часто в организациях в которых работаешь просто нет финансовой возможности приобретать дорогую железку, если Вы как специалист и объяснили своему руководству, что оно может существенно съекономить для решения поставленной задачи задействовав не аппаратную сторону, а программную. А вы как раз такой специалист который в своей системе (Ubuntu системе) может это сделать, задокумментировать и объяснить коллегам, как он этого добился. На этом заметка завершена, в последствии опираясь на нее я покажу ее использование в дальнейшем, а пока всё, до встречи с уважением автор блога – ekzorchik.
2 комментария
Спасибо за описание, всё по полочкам и доступно для начинающих.
Я хотел бы сделать мост из нотбука подключенного к интернет по WiFi, а сетевой картой подключенного к железному свичу для раздачи через него интернета по проводам.
Бридж по Вашему описанию без проблем создал, добавил в него сетевую карту с обнулённым IP, задал бриджу свободный IP из диаппазона WiFi и перевел в состояние up.
Сразу пропала связь с роутером через WiFi, а в таблице маршрутизации появились две строки:
link-local * 255.255.0.0 U 1000 0 0 br0
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
Попробовал добавить к бриджу WiFi-интерфейс (wlc3), но в ответ получил: «can’t add wls3 to bridge br0: Operation not supported».
Буду признателен, если подскажете, что нужно сделать.
А у Вас не получится сделать br0 и поместить в него eth0 + wlan0. Вроде так не работает. С такой задачей дело не имел.
Comments are closed.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще 🙂
Карта МКБ: 4432-7300-2472-8059
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
Источник