Bridge или как обьединять сетевые интерфейсы: различия между версиями
imported>Vix (Новая страница: «Бридж (англ. bridge, мост) - это способ соединения двух сегментов Ethernet на канальном уровне, т.…») |
imported>Vix Нет описания правки |
||
Строка 170: | Строка 170: | ||
* [https://forum.linux.by/viewtopic.php?p=64844 взято тут] | * [https://forum.linux.by/viewtopic.php?p=64844 взято тут] | ||
* [http://xgu.ru/wiki/Linux_Bridge еще статья] |
Версия от 22:50, 1 сентября 2013
Бридж (англ. bridge, мост) - это способ соединения двух сегментов Ethernet на канальном уровне, т.е. без использования протоколов более высокого уровня, таких как IP. Пакеты передаются на основе Ethernet-адресов, а не IP-адресов (как в маршрутизаторе). Поскольку передача выполняется на канальном уровне (уровень 2 модели OSI), все протоколы более высокого уровня прозрачно проходят через мост.
Термины коммутатор, мост и бридж могут использоваться на данной странице как взаимознаменяемые.
Код bridge в Linux является частичной реализацией стандарта ANSI/IEEE 802.1d. Впервые бриджинг в Linux появился в 2.2, затем код был переписан Леннертом Буйтенхеком (Lennert Buytenhek). Код bridge интегрирован в ядра серий 2.4 и 2.6. Железо - Intel Pentum 133 - RAM 32 mb - hdd 1024 mb - 2 сетевые карты 100 Mbps или 1000 Mbps (можно и больше, но желательно одинаковые).
Установка ПО Ставим Linux Debian с минимумом пакетов, сеть не настраиваем. После установки Debian ставим несколько необходимых пакетов:
Код:
# apt-get mc # apt-get install bridge-utils # apt-get install iproute # apt-get install iftop # apt-get install bmon # apt-get install openssh-server # apt-get install iperf
Настройка моста
Узнаем где наши сетевые карты
Код:
# ifconfig eth1 Link encap:Ethernet HWaddr 00:19:5B:88:B2:85 inet6 addr: fe80::219:5bff:fe88:c287/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3871824 errors:0 dropped:0 overruns:0 frame:0 TX packets:4707022 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1031462268 (983.6 MiB) TX bytes:1375550080 (1.2 GiB) Interrupt:10 Base address:0x6200 eth2 Link encap:Ethernet HWaddr 00:19:5B:88:C7:86 inet6 addr: fe80::219:5bff:fe88:c288/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4707923 errors:0 dropped:0 overruns:0 frame:0 TX packets:3855788 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1377378066 (1.2 GiB) TX bytes:1020322438 (973.0 MiB) Interrupt:9 Base address:0x6300 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:56 errors:0 dropped:0 overruns:0 frame:0 TX packets:56 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4396 (4.2 KiB) TX bytes:4396 (4.2 KiB)
Настройки сети в Linux Debian находятся в файле /etc/network/interfaces У меня на мосте он имеет такой вид: Код:
- The loopback network interface
auto lo iface lo inet loopback
Создаём скрипт /etc/network/if-up.d/bridge
Код:
#!/bin/sh
- Чистим настройки от предыдущего запуска скрипта
ifconfig br0 down # Отключаем интерфейс моста ifconfig eth1 down # Отключаем сетевую карту eth1 ifconfig eth2 down # Отключаем сетевую карту eth2 brctl delbr br0 # Удаляем имя моста
- Запускаем бридж
brctl addbr br0 # Задаём имя бриджу brctl addif br0 eth1 # Указываем какие интерфейсы brctl addif br0 eth2 # работают в режиме моста.
brctl stp br0 off # Отключаем режим STP
# brctl setfd br0 15 # Актуально только при # brctl setageing br0 60 # использовании STP
- Задаём IP моста, для дальнейшего управления им через ssh
ifconfig br0 192.168.110.251 netmask 255.255.0.0 broadcast 192.168.255.255
- Удаляем IP сетевых карт
ifconfig eth1 0.0.0.0 ifconfig eth2 0.0.0.0
- Поднимаем интерфейсы сетевых карт и моста
ifconfig eth1 up ifconfig eth2 up ifconfig br0 up
В принципе мост готов к использованию, надо только перезагрузить компьютер или выполнить скрипт (не забудьте его сделать запускаемым от имени root 774 Код:
# chgrp root /etc/network/if-up.d/bridge # chown root /etc/network/if-up.d/bridge # chmod 774 /etc/network/if-up.d/bridge
Настройка маршрутизации
Может возникнуть необходимость указать с какой стороны находится тот или иной компьютер. Дописываем в наш скрипт следующие команды:
- Сообщаем что ip 192.168.110.200 находится со стороны eth1
Код:
route add -host 192.168.110.200 dev eth1
- Сообщаем что ip 192.168.88.250 находится со стороны eth2
Код:
route add -host 192.168.88.250 dev eth2
- Сообщаем мосту с какой стороны сеть 192.168.55.0/24 (255.255.255.0)
Код:
route add -net 192.168.55.0/24 dev eth1
После таких настроек ваш мост станет немного умнее. Теперь для проверки маршрутизации набираем команду: Код:
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.110.200 * 255.255.255.255 UH 0 0 0 eth1 192.168.88.250 * 255.255.255.255 UH 0 0 0 eth2 192.168.55.0 * 255.255.255.0 U 0 0 0 eth1 localnet * 255.255.0.0 U 0 0 0 br0
Удалённое управление мостом
Входим на мост удалённо как пользователь root (под root лучше не работать): Код:
# ssh root@192.168.110.251
Теперь можно работать с мостом как с настольным компьютером в текстовом режиме.
Мониторинг и управление
- Удобная утилита для просмотра загрузки сети и мостаю
Код:
bmon
- Ещё не менее полезная утилита мониторинга сети
Код:
iftop -i br0
- инф. о сетевых интерфейсах
Код:
ifconfig
- поднять (убить) сетевой интерфейс
Код:
ifconfig eth1 up (down)
- инф. о мосте
Код:
brctl show
- таблица MAC-адресов моста
Код:
brctl showmacs br0
- ARP-таблица
Код:
arp -a
- Снифер
Код:
tcpdump host 192.168.110.100