PDA

Показать полную графическую версию : сетевой мост


Pallot
25-09-2006, 13:46
Необходимо организовать мост между двумя сетями.
Сеть 1: 10.1.x.x маска 255.255.0.0
Сеть 2: 192.168.1.x маска 255.255.255.0

Есть машина FreeBSD 6.1 две карты:
rl0 192.168.1.1 маска 255.255.255.0
xl0 10.1.0.1 маска 255.255.0.0

пересобрал ядро:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREEWALL_VERBOSE_LIMIT=10
options TCP_DROP_SYNFIN

В rc.conf пишем:
Gateway_enable=”YES”
Вариант 1:
kldload if_bridge
ifconfig bridge0 create
ifconfig bridge0 addm xl0 addm frl0 up
ifconfig xl0 up
ifconfig rl0 up
Вариант 2:
kldload bridge
sysctl net.link.ether.bridge.config=xl0, rl0
sysctl net.link.ether.bridge.enable =1

(взято тут -> http://www.opennet.ru/tips/info/1051.shtml )

При загрузке машины выдает:
Если вариант 2:
kldload: can’t load bridge: File exists
sysctl net.link.ether.bridge.config: rl0, xl0 -> rl0, xl0
sysctl net.link.ether.bridge.enable: 1 -> 1
Если вариант 2:
kldload: can’t load if_bridge: File exists
ifconfig: SIOCIFCREATE: File exists
ifconfig: BRDGADD xl0: File exists
ipconfig: not found
ipconfig: not found

Пинги не проходят не в одном ни в другом случае.
(На машинах выставлен шлюз: 192.168.1.1 и 10.1.0.1 в соответствующей сети.)

Какие есть варианты??
Как еще можно организовать мост между сетями?? Желательно что бы можно было резать скорость.

BaguM
25-09-2006, 16:50
можно попробовать пользовать natd для трансляции адресов.
natd -u -a 10.1.0.1
ipfw add divert ip from any to any
ipfw add allow ip from any to any

Вариант кривой, но может всеж поможет

ЗЫ на http://www.linuxcenter.ru/lib/articles/networking/net_bridge.phtml
нашел что нужно в конфиге ядра прописывать device if_bridge, и тогда работает по вашему 1му варианту

или попробуй в rc.conf добавить
cloned_interfaces="bridge0"
ifconfig_bridge0="addm xl0 addm rl0 up"

Barracuda
25-09-2006, 19:03
Pallot
Вам роутер нужен? Тогда зачем вам мост?
В rc.conf:
gateway_enable="YES"
и в таблицах маршрутизации на улиентских машинах прописать статичсекий маршрут на противоположную подсеть чере этот роутер.

Igor_I
25-09-2006, 19:35
и в таблицах маршрутизации на улиентских машинах прописать статичсекий маршрут на противоположную подсеть чере этот роутер.
Надо будет попробовать.
А пока в опциях ядра
device if_bridge
rc.conf
cloned_interfaces="bridge0"
ifconfig_bridge0="addm xl0 addm rl0"
File exists -> Файл существует

Pallot
26-09-2006, 11:26
BaguM
Вам роутер нужен? Тогда зачем вам мост?
мне надо соединить две (а в перспективе и три) физически разделенные локальные сети и в глобальную сеть доступ дать (кому то дать и кому то нет :) ).
Машина под FreeBSD должна раздавать доступ и резать канал.
Задайте правильное направление :)...

gf100
26-09-2006, 13:43
У меня работает так:

<rc.conf>

gateway_enable="YES"
firewall_enable="YES"
firewall_type="open" # для начала, потом можно написать и вписать сюда свою конфигурацию - кого куда пускать и зачем
ifconfig_rl0="inet 192.168.1.1 netmask 255.255.255.0"
ifconfig_xl0="inet 10.1.0.1 netmask 255.255.0.0"

<в конфиге ядра>

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_FORWARD
options IPFIREWALL_FORWARD_EXTENDED
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT # для NAT

Pallot
26-09-2006, 14:03
gf100
а FreeBSD 6.1 ??
а канал режешь?? чем??

gf100
26-09-2006, 15:49
Pallotа FreeBSD 6.1 ??Ага.а канал режешь?? чем??Внутри сети - не режу (нет необходимости), выход в инет - проксей (squid) в транспарент-режиме. Если не ошибаюсь, firewall умеет ограничивать полосу пропускания - пишешь соответствующий конфиг.

Pallot
26-09-2006, 16:08
я немного тут (http://www.opennet.ru/base/net/FilterBridge.txt.html) вот нарыл. но это актуально для 4.
на это
# этот параметр в некоторых случаях
# помогает от D.O.S. атак.
options ICMP_BANDLIM
config ругаеться. я так понимаю нет необходимости.
вот это
# Добавим еще парочку нужных параметров
# ICMP_BANDLIM включает ограничение полосы для
тоже вопрос, Надо ли в 6.1 врубать.??
мост:
options BRIDGE
помоему его заменили на IF_BRIDGE

gf100
ща попробую твой вариант (ядро 1.5 часа собиралось)...

Barracuda
26-09-2006, 17:30
Pallot
AFAIK, для роутинга (в нашем случае - это оно и есть, т.к. сети с неперекрываемыми диапазонами адресов) if_bridge вообще не нужен...
И ещё: рекомендую для данного аппарата (судя по тому, что ядро собиралось 1.5 часа, то это что-то вроде Pentium-133...200) взять хорошие "аппаратные" сетевухи, т.к. при росте траффика через роутер обычные "народные" сетевухи будут захлёбываться. К тому же, оч полезным будет polling(4)

greywind
26-09-2006, 20:37
ipfw pipe bw режет. man ipfw, man dummynet

Pallot
27-09-2006, 13:53
gf100
gateway_enable="YES" firewall_enable="YES" firewall_type="open" # для начала, потом можно написать и вписать сюда свою конфигурацию - кого куда пускать и зачем ifconfig_rl0="inet 192.168.1.1 netmask 255.255.255.0" ifconfig_xl0="inet 10.1.0.1 netmask 255.255.0.0"

<в конфиге ядра>

options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=1000 options IPFIREWALL_FORWARD options IPFIREWALL_FORWARD_EXTENDED options IPFIREWALL_DEFAULT_TO_ACCEPT options IPDIVERT # для NAT
так вроде заработало но как то криво, только в одну сторону.
т.е. из сети 10.... ping проходит на 192.... а вот обратно нет :(
Еще смущеат что при заргузке на карте с IP 10.1.0.1 стоит status: no carrier

gf100
27-09-2006, 15:20
только в одну сторонуМожет случайно NAT включил? Выключи.
Кроме того, проверь на клиентских машинах маршрутизатор "по умолчанию": для подсети 192.168.1.0/24 - 192.168.1.1, для 10.1.0.0/16 - 10.1.0.1.
Попробуй попинговать клиентские машины с Free'шки.

Pallot
27-09-2006, 16:13
Может случайно NAT включил? Выключи.
ну я поддержку NAT вбил в ядро
options IPDIVERT # для NAT
убрать??

natd_interface="xl0"
xl0 смотрит в 192...
при таком раскладе пакеты идут из 192... в 10... обратно нет.

меняем
natd_interface="rl0"
rl0 смотрит в 10...
пакеты идут из 10... в 192... обртно нет.

настраивать IPFW??

gf100
27-09-2006, 17:04
поддержку NAT вбил в ядро, убрать??Не надо.natd_interface="xl0"А вот <natd_interface> - убрать, совсем убрать. Он полностью экранирует (маскирует) сеть за одним адресом.
IPFW - умеет ограничивать скорости, огрганизовывать проброс пакетов, кое-что считать, в общем, рулить.

Pallot
27-09-2006, 17:30
А вот <natd_interface> - убрать, совсем убрать. Он полностью экранирует (маскирует) сеть за одним адресом.
ну и наверно natd_enable="NO"
IPFW - умеет ограничивать скорости, огрганизовывать проброс пакетов, кое-что считать, в общем, рулить.
ага, будем разбираться.

gf100
27-09-2006, 17:39
ну и наверно natd_enable="NO"Просто закомментарить.

Pallot
04-10-2006, 14:22
Barracuda
и в таблицах маршрутизации на улиентских машинах прописать статичсекий маршрут на противоположную подсеть чере этот роутер.
Да почти в этом было дело... с одной стороны на клиенте шлюз небыл прописан. Вернее он просто пропадал.
Шлюз по умолчанию стоит другой. я добовляю маршрут а после перегрузки он пропадает.
с одной стороны
route add 10.1.0.0 MASK 255.255.0.0 10.1.0.1
с другой стороны
route add 192.168.1.0 MASK 255.255.255.0 192.168.1.1
где его можно на клиентах (win) прописать??
как вариант .bat файл который будет испольняться при входе пользователя, но это же только при входе... :( пока он не залогинился машина в другой сети не видна.

gf100
04-10-2006, 16:33
Pallot, шлюз "по умолчанию" (default router) прописывается в свойствах протокола ip (для каждой установленной сетевой карты).

А если хочешь через route add... мог бы догадаться запустить route help (из cmd) и увидеть чудесный ключик -p :)

Pallot
05-10-2006, 10:14
gf100
невнимательность меня погубит... :)
на машине два шлюза, вот и надо было прописать чтобы 10.1.0.0 255.255.0.0 ходили через шлюз 10.1.0.1
route help я читал, но с конца, как добавлять я прочитал а вот как фиксировать недошел.




© OSzone.net 2001-2012