Доброе время суток.Решил наконец объеденить разрозненые участи локалки в одну общую сеть через публичный internet.
Сделал на базе CentoS 5.2 + openvpn + bridge
На данный момент есть 3 разроненных сети ( центральный офис + 2 удаленных офиса)
В процессе объединения напоролся на грабли1) В центральном офисе пришлось в комп добавить сетевую карту, т.к. на одну и ту же карту вроде как нельзя вешать более 1 моста, как это можно обойти? Мне предстоит еще 3 сегмента добавить - столько сетевых карт в комп не воткнуть. Поможет ли тут vlan ?
Объединение 2-х локалок прошло на ура, но как только стал добавлять еще одну - столкнулся с непонятными проблемами.
Сам бридж поднялся, удаленные сегменты прекрасно видят центральный офис, НО при этом перестал работать internet в сегменте 3Схема сети
Центральный офисbr0 192.168.0.250/255.255.255.0 (бридж на 1-й удаленный офис, + этот интерфейс является шлюзом для серых ip для доступа в инет)
br1 0.0.0.0 ( бридж на второй уждаленный офис)
eth0 0.0.0.0 ( реальный интерфес смотрящий в локалку)
eth1 real_ip ( интерфейс смотрящий в инет)
eth2 ( второй реальный интерфес смотрящий в локалку, для поднятия втрого бриджа)
tap0 ( Openvpn до первого удаленного офиса)
tap1 ( Openvpn до второго удаленного офиса)
Удаленный офис N1
br0 Link encap:Ethernet HWaddr 00:30:4F:5D:14:14
inet addr:192.168.0.170 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::230:4fff:fe5d:1414/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:398307 errors:0 dropped:0 overruns:0 frame:0
TX packets:1406987 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:55475727 (52.9 MiB) TX bytes:955581315 (911.3 MiB)eth0 Link encap:Ethernet HWaddr 00:1E:58:9C:49:CE
inet addr:xx.220.56.yyy Bcast:xx.220.56.yyy Mask:255.255.255.252
inet6 addr: fe80::21e:58ff:fe9c:49ce/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3390467 errors:0 dropped:0 overruns:0 frame:0
TX packets:2975075 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2003895191 (1.8 GiB) TX bytes:868662895 (828.4 MiB)
Interrupt:11 Base address:0xe000eth1 Link encap:Ethernet HWaddr 00:30:4F:5D:14:14
inet6 addr: fe80::230:4fff:fe5d:1414/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:2733018 errors:1 dropped:0 overruns:0 frame:0
TX packets:3289234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:762758862 (727.4 MiB) TX bytes:1944224911 (1.8 GiB)
Interrupt:10 Base address:0xc000lo 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:45 errors:0 dropped:0 overruns:0 frame:0
TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2560 (2.5 KiB) TX bytes:2560 (2.5 KiB)tap0 Link encap:Ethernet HWaddr 2A:6B:61:8F:93:FB
inet6 addr: fe80::286b:61ff:fe8f:93fb/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:1130725 errors:0 dropped:0 overruns:0 frame:0
TX packets:2176063 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:207005539 (197.4 MiB) TX bytes:574647973 (548.0 MiB)удаленный офис N2
br0 Link encap:Ethernet HWaddr 00:1E:8C:9C:C2:12
inet addr:192.168.0.190 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21e:8cff:fe9c:c212/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:66092 errors:0 dropped:0 overruns:0 frame:0
TX packets:8451 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8391122 (8.0 MiB) TX bytes:578326 (564.7 KiB)eth0 Link encap:Ethernet HWaddr 00:E0:4C:A5:0D:6D
inet addr:xxx.220.57.asd Bcast:xxx.220.57.asd Mask:255.255.255.252
inet6 addr: fe80::2e0:4cff:fea5:d6d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1052463 errors:0 dropped:0 overruns:0 frame:0
TX packets:1015635 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:367278824 (350.2 MiB) TX bytes:175912993 (167.7 MiB)
Interrupt:11 Base address:0xec00eth1 Link encap:Ethernet HWaddr 00:1E:8C:9C:C2:12
inet6 addr: fe80::21e:8cff:fe9c:c212/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:927372 errors:0 dropped:0 overruns:0 frame:0
TX packets:966856 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:131371574 (125.2 MiB) TX bytes:325619037 (310.5 MiB)
Interrupt:201 Base address:0xc000lo 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:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:800 (800.0 b) TX bytes:800 (800.0 b)tap0 Link encap:Ethernet HWaddr 4A:4D:D0:30:A3:04
inet6 addr: fe80::484d:d0ff:fe30:a304/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:964226 errors:0 dropped:0 overruns:0 frame:0
TX packets:927594 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:320253677 (305.4 MiB) TX bytes:130447926 (124.4 MiB)
Странно то что юзеры из второго офиса пингуют шлюз в центральном офисе, но при этом инет им не доступен. В том числе и через прокси и без прокси.
Такое ощущение что я что то упустил, но не пойму где. Ведь в первом уделанном офисе все работает нормально!
Конфигурации практически одинаковые. а ведудт себя по разному ...
>1) В центральном офисе пришлось в комп добавить сетевую карту, т.к. на
>одну и ту же карту вроде как нельзя вешать более 1
>моста, как это можно обойти?Это как?? Не путаете с добавлением в один мост более 1 (более 2?) интерфейсов?
>Центральный офис
>
>br0 192.168.0.250/255.255.255.0 (бридж на 1-й удаленный офис, + этот интерфейс является шлюзом
>для серых ip для доступа в инет)
>br1 0.0.0.0 ( бридж на второй уждаленный офис)
>eth0 0.0.0.0 ( реальный интерфес смотрящий в локалку)
>eth2 ( второй реальный интерфес смотрящий в локалку, для поднятия втрого бриджа)
>tap0 ( Openvpn до первого удаленного офиса)
>tap1 ( Openvpn до второго удаленного офиса)То есть, когда в br0 были eth0+tap0, tap1 в него же, br0, не добавлялся?
>>1) В центральном офисе пришлось в комп добавить сетевую карту, т.к. на
>>одну и ту же карту вроде как нельзя вешать более 1
>>моста, как это можно обойти?
>
>Это как?? Не путаете с добавлением в один мост более 1 (более
>2?) интерфейсов?
>Вот тут читал
http://xgu.ru/wiki/Linux_Bridge
" Нельзя добавить устройство в несколько бриджей одновременно"
Я понял что на одно и то же eth нельзя добавлять в разные бриджи.
>[оверквотинг удален]
>>br0 192.168.0.250/255.255.255.0 (бридж на 1-й удаленный офис, + этот интерфейс является шлюзом
>>для серых ip для доступа в инет)
>>br1 0.0.0.0 ( бридж на второй уждаленный офис)
>>eth0 0.0.0.0 ( реальный интерфес смотрящий в локалку)
>>eth2 ( второй реальный интерфес смотрящий в локалку, для поднятия втрого бриджа)
>>tap0 ( Openvpn до первого удаленного офиса)
>>tap1 ( Openvpn до второго удаленного офиса)
>
>То есть, когда в br0 были eth0+tap0, tap1 в него же, br0,
>не добавлялся?НА этапе когда были br0 = eth0+tap0 добавляю tap1 и хочу сделать tap1 + eth0 ---- система говорит что eth0 уже участвует в bridge и так делать низзя...
если попробовать tap1 + br0 ---- система говорит что так тоже низзя. В итоге пришлось вставить сетевую карту :-(
>НА этапе когда были br0 = eth0+tap0 добавляю tap1 и хочу сделать
>tap1 + eth0 ---- система говорит что eth0 уже участвует в
>bridge и так делать низзя...{
_Интерфейсы_ добавляются в _мост_, не наоборот!Если у тебя br0 = eth0+tap0, добавляй _в_ него ещё tap1.
eth0, как тебе и написали, в брижже уже есть.} ПОВТОРЯТЬ ПОКА ( !прозрение_наступило() );
>[оверквотинг удален]
>>tap1 + eth0 ---- система говорит что eth0 уже участвует в
>>bridge и так делать низзя...
>
>{
>_Интерфейсы_ добавляются в _мост_, не наоборот!
>
>Если у тебя br0 = eth0+tap0, добавляй _в_ него ещё tap1.
>eth0, как тебе и написали, в брижже уже есть.
>
>} ПОВТОРЯТЬ ПОКА ( !прозрение_наступило() );Щас попробую прозреть
br0 поднимаю так
LOCAL_IF="eth0"
REMOTE_IF="tap0"
BRIDGE_IF="br0"
BRIDGE_IP="192.168.0.250"
BRIDGE_MASK="255.255.255.0"
BRIDGE_BROADCAST="192.168.0.255"
CONFIG="/etc/openvpn/openvpn.config"# Запускаем OpenVPN в режиме демона
openvpn --config $CONFIG --daemon# Выключаем мост (если он включен)
ifconfig $BRIDGE_IF down
# Удаляем мост (убираем мусор за предыдущим запуском скрипта)
brctl delbr $BRIDGE_IF
# Добавляем новый мост
brctl addbr $BRIDGE_IF
# Включаем в мост интерфейсы
brctl addif $BRIDGE_IF $LOCAL_IF
brctl addif $BRIDGE_IF $REMOTE_IF# Убираем адреса с интерфейсов, входящих в мост и поднимаем их
ifconfig $LOCAL_IF 0.0.0.0 promisc up
ifconfig $REMOTE_IF 0.0.0.0 promisc up# Назначаем мосту адрес, если это необходимо - например вместо адреса на интерфейсе локалки.
ifconfig $BRIDGE_IF $BRIDGE_IP netmask $BRIDGE_MASK broadcast $BRIDGE_BROADCAST
# Включаем мост
ifconfig $BRIDGE_IF upifconfig $LOCAL_IF 0.0.0.0 promisc up
Как в него теперь добавить еще и tap1 ?
Кто теперь будет выступать за LOCAL_IF ?
>[оверквотинг удален]
>$BRIDGE_MASK broadcast $BRIDGE_BROADCAST
> # Включаем мост
> ifconfig $BRIDGE_IF up
>
> ifconfig $LOCAL_IF 0.0.0.0 promisc
>up
>
>
>Как в него теперь добавить еще и tap1 ?
>Кто теперь будет выступать за LOCAL_IF ?Вроде понял
К bro нужно сделать такbrctl addif br0 eth0
brctl addif br0 tap0
brctl addif br0 tap1
при этом
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.001485de7a93 no tap1
tap0
eth0
Я правильно Вас понял?
>[оверквотинг удален]
>
>
>tap0
>
>
>
>
>
>eth0
>Заработало !!!
Все оказалось проще чем думал.
Спасибо что наставили на путь истинный :-)
>Спасибо что наставили на путь истинный :-)Наш брат прозрел! Ну, и аллилуюшки. d|-)
>Как в него теперь добавить еще и tap1 ?brctl addif br0 tap1
>Кто теперь будет выступать за LOCAL_IF ?
?
Не надо удалять/опускать/поднимать бридж. При каждом установлении соединения, видимо??
При загрузке системы - поднять мост.
При поднятии eth0, добавить его eth0 в мост.
Для $tap_if == tap0, tap1, ... {
При поднятии $tap_if, делать(*) brctl addif br0 $tap_if
При опускании $tap_if, делать(*) brctl delif br0 $tap_if
}(*) Да, _одну_ команду, а не заумный скрипт.
Просветление не наступило? Нет - перечитывать выше про то, кто на ком стоит....