LinuxForum.Fans
Тема

ethernet bridge

Автор: jacuba 30 сообщений 10455 просмотров
#158911

Добрый день.
Имеется машина с 2-мя интерфейсами eht0 и eth1, оба исправно функционируют, то есть я могу обращаться к сети по обоим интерфейсам.

Сделал между ними мост и в /etc/network/interfaces прописал строки:

text
# Configure Bridge           
auto br0                     
iface br0 inet manual        
        pre-up ifconfig eth0 down
        pre-up ifconfig eth1 down
        pre-up brctl addbr br0   
        pre-up brctl addif br0 eth0
        pre-up brctl addif br0 eth1 
        pre-up ifconfig eth0 10.10.10.250
        pre-up ifconfig eth1 10.10.10.251
        pre-up ifconfig br0 10.10.10.252 
        post-down ifconfig eth0 down    
        post-down ifconfig eth1 down    
        post-down ifconfig br0 down     
        post-down brctl delif br0 eth0 
        post-down brctl delif br0 eth1
        post-down brctl delbr br0

Мост

text

# brctrl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0004251c670b       yes             eth0
                                                        eth1

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

text
# ifconfig
br0       Link encap:Ethernet  HWaddr 00:04:25:1C:67:0B  
          inet addr:10.10.10.252  Bcast:10.255.255.255  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:233 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:24510 (23.9 KiB)  TX bytes:210 (210.0 B)

eth0 Link encap:Ethernet HWaddr 9E:C9:C1:3E:60:23 inet addr:10.10.10.250 Bcast:10.10.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:238 errors:510 dropped:0 overruns:0 frame:0 TX packets:792 errors:510 dropped:0 overruns:0 carrier:510 collisions:0 txqueuelen:1000 RX bytes:28128 (27.4 KiB) TX bytes:40860 (39.9 KiB) Interrupt:25 Base address:0x1800

eth1 Link encap:Ethernet HWaddr 00:04:25:1C:67:0B inet addr:10.10.10.251 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:510 dropped:0 overruns:0 frame:0 TX packets:975 errors:510 dropped:0 overruns:0 carrier:510 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:65520 (63.9 KiB) Interrupt:26 Base address:0x1c00

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:24 errors:0 dropped:0 overruns:0 frame:0 TX packets:24 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2632 (2.5 KiB) TX bytes:2632 (2.5 KiB)

Прошу вас помочь разобраться.

Спасибо и с уважением.
Дмитрий.

#158912

как пример

text

    auto eth1
    iface eth1 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    up ip link set $IFACE promisc on
    down ip link set $IFACE promisc off
    down ifconfig $IFACE down

auto eth0 iface eth0 inet manual up ifconfig $IFACE 0.0.0.0 up up ip link set $IFACE promisc on down ip link set $IFACE promisc off down ifconfig $IFACE down

#Bridge interface auto br0 iface br0 inet static address 10.10.10.250 netmask 255.255.255.0 bridge_ports eth1 eth0 #какие сетевые входят в мост

#158913

Уточните, пожалуйста, что значит переменная $IFACE

#158916

сетевая карта

грубо говоря как пример
auto eth0
iface eth0 inet manual
#поднимаем карту с ип 0.0.0.0 нулевой адрес
up ifconfig $IFACE 0.0.0.0 up
#поднимаем link в режиме promisc (неразборчивый)
up ip link set $IFACE promisc
#тушим link в режиме promisc (неразборчивый)
down ip link set $IFACE promisc off
#тушим сетевую
down ifconfig $IFACE down

#158928

я не очень понял.

text

up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ip link set $IFACE promisc off
down ifconfig $IFACE down

Эта последовательность выполняется когда поднимается интерфейс или up во время подъема, а down, соответственно, во время падения?

Должен ли я поднимать интерфейс с 0-вым адресом, или это лишь частный случай?

Должен ли мост иметь свой адрес?

#158948

jacuba, man interfaces нам как бы говорит:


ОПЦИИ IFACE

Следующие «командные» опции доступны для любойго семейства и метода. Каждая из этих опций может быть задана несколько раз в одной строфе, в этом случае команды исполняются в том порядке, в котором они появляются в строфе. (Вы можете убедиться, что команда никогда не завершается с ошибкой, добавив суффикс «|| true». )

pre-up команда
Запустить команду до поднятия интерфейса. Если команда завершается с ошибкой, тогда ifup не отмечает интерфейс как настроенный, выводит сообщение об ошибке и завершается со статусом 0. В будущем это поведение может измениться.

up команда
post-up команда
Запустить команду после поднятия интерфейса. Если команда завершается с ошибкой, тогда ifup не отмечает интерфейс как настроенный (даже если он в действительности настроен), выводит сообщение об ошибке и завершается со статусом 0. В будущем это поведение может измениться.

down команда
pre-down команда
Запустить команду перед отключением интерфейса. Если команда завершается с ошибкой, тогда ifdown помечает интерфейс как не настроенный (даже если на самом деле его настройки не были сброшены) и завершается со статусом 0. В будущем это поведение может измениться.

post-down команда
Запустить команду после отключения интерфейса. Если команда завершается с ошибкой, ifdown помечает интерфейс как не настроенный и завершается со статусом 0. В будущем это поведение может измениться.

Для каждой из вышеперечисленных опций существует каталог /etc/network/if-<опция>.d/, сценарии в котором запускаются (без аргументов) с помощью run-parts(8) после обработки самих опций.

Все эти команды имеют доступ к следующим переменным окружения.

IFACE – Физическое имя обрабатываемого интерфейса.
LOGICAL – Логическое имя обрабатываемого интерфейса.
ADDRFAM – Семейство адресов интерфейса.
METHOD – Метод интерфейса (например, static).
MODE – start – если команда запущена из ifup, stop – если команда запущена из ifdown.
PHASE – Как и MODE, но с большей точностью, при которой различаются фазы pre-up, post-up, pre-down и post-down.
VERBOSITY – Указывает, что используется опция –verbose; установлена в 1 если это так, или 0 – если нет.
PATH – Путь поиска команды: usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Дополнительно, все опции, заданные в строфе определения интерфейса, экспортируются в переменные окружения. Имя переменной состоит из символов в верхнем регистре, дополненное символами «IF_» слева, с дефисами, преобразованными в знаки подчеркивания и с отброшенными не алфавитно-цифровыми символами.
#158964

а это нормально, что у меня физические адреса eth1 и br0 совпадают?

#158965

Ещё раз

auto eth1
iface eth1 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ip link set $IFACE promisc off
down ifconfig $IFACE down

auto eth0
iface eth0 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ip link set $IFACE promisc off
down ifconfig $IFACE down

#Bridge interface
auto br0
iface br0 inet static
address 10.10.10.250
netmask 255.255.255.0

bridge_ports eth1 eth0 #какие сетевые входят в мост

#158970

Видимо я что-то делаю не так. Прошу проконтролируйте.

1.

text
# ping 10.10.10.201
PING 10.10.10.201 (10.10.10.201): 56 data bytes
64 bytes from 10.10.10.201: seq=0 ttl=64 time=1.779 ms
64 bytes from 10.10.10.201: seq=1 ttl=64 time=1.079 ms

# brctrl addbr br0 # ifconfig eht0 down # ifconfig eth1 down # brctrl addif br0 eth1 # brctrl addif br0 eth0 # cd /etc/network # vi interface

И вставляю туда:

text
auto eth1
        iface eth1 inet manual
        up ifconfig $IFACE 0.0.0.0 up
        up ip link set $IFACE promisc on
        down ip link set $IFACE promisc off
        down ifconfig $IFACE down

auto eth0 iface eth0 inet manual up ifconfig $IFACE 0.0.0.0 up up ip link set $IFACE promisc on down ip link set $IFACE promisc off down ifconfig $IFACE down

#Bridge interface auto br0 iface br0 inet static address 10.10.10.76 netmask 255.255.255.0 bridge_ports eth1 eth0

Далее:

text
# /etc/init.d/S20network restart

Network interfaces: ifup: interface eth1 already configured ifup: interface eth0 already configured ifup: interface br0 already configured done # ping 10.10.10.201

PING 10.10.10.201 (10.10.10.201): 56 data bytes ^C --- 10.10.10.201 ping statistics --- 4 packets transmitted, 0 packets received, 100% packet loss

#158971

ifconfig приложите после рестарта сетевых интерфейсов

Зачем делаете

# brctrl addbr br0
# ifconfig eht0 down
# ifconfig eth1 down
# brctrl addif br0 eth1
# brctrl addif br0 eth0

?

#158972

а ifconfig что говорит?

#158974

.

#158975

ifconfig после рестарта интерфейсов

text
~ # ifconfig 
eth0      Link encap:Ethernet  HWaddr F2:2C:F1:98:53:43  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:120 (120.0 B)  TX bytes:0 (0.0 B)
          Interrupt:25 Base address:0x1800 

eth1 Link encap:Ethernet HWaddr 00:04:25:1C:67:0B UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:26 Base address:0x1c00

#158976

.

#158979

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

#158980
jacuba написал:
вазелиновые пальцы.
не нашел как удалить пост, заметил уже после того, как добавил следующий.

под постом есть кнопка "изменить" =)

#158982

оставьте как есть щас в interfaces перезагрузите и после сюда вывод ifconfig

#158984

Я перезагрузил компьютер.

text
~ # ifconfig 
eth0      Link encap:Ethernet  HWaddr BE:15:1A:57:11:CF  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:180 (180.0 B)  TX bytes:0 (0.0 B)
          Interrupt:25 Base address:0x1800 

eth1 Link encap:Ethernet HWaddr 00:04:25:1C:67:0B UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:26 Base address:0x1c00

text
~ # vi /etc/network/interfaces 

auto eth1 iface eth1 inet manual up ifconfig $IFACE 0.0.0.0 up up ip link set $IFACE promisc on down ip link set $IFACE promisc off down ifconfig $IFACE down

auto eth0 iface eth0 inet manual up ifconfig $IFACE 0.0.0.0 up up ip link set $IFACE promisc on down ip link set $IFACE promisc off down ifconfig $IFACE down

#Bridge interface auto br0 iface br0 inet static address 10.10.10.76 netmask 255.255.255.0 bridge_ports eth1 eth0

#158987

уменьши вот так

text

iface eth1 inet manual
     

iface eth0 inet manual

auto br0 iface br0 inet static address 10.10.10.76 netmask 255.255.255.0 bridge_ports eth1 eth0

После рестарт networking и покаж ifconfig

#158988

мне кажется, что проблема в этом:
я попытался вручную проделать все что написано в interfaces

text
~ # ip link set $IFACE promisc on
-/bin/sh: ip: not found
~ # echo $PATH
/sbin:/usr/sbin:/bin:/usr/bin
Войдите или зарегистрируйтесь, чтобы ответить.