Страница 1 из 3
Разделение сети
Добавлено: 2009-03-25 13:20:57
Nick_mad
Здравствуйте.
Вообщем есть сеть одна на две конторы. Ходят в нет через один сервак. Начальство напрягает что одна контора может заходить в сетевые папки другой конторы. Хотят разделить сеть на 2 чтобы одни другому не мешали. А как мне их разделить хз. Они ходят через один шлюз и у всех прописан один и тот же шлюз и ДНС. В серваке у меня 3 сетевухи оду сеть в одну сетевуху, другую сеть в другую сетевуху, а третяя внешняя.
И тут у меня возникаю вопросы.
1. Уживутся ли на одном серваке 2 сетевухи с ИП из одной сети или мне одну контору переводить в другую сеть?
2. Мне что каждому компу переписывать шлюз и ДНС или можно сетевухе присвоить алиас???
3. Опять таки сервак один сети 2 как правильно написать firewall для 2 сетей и squid настроить???
Может подскажите как это все правильнее организовать и может есть более правильное решение???
Re: Разделение сети
Добавлено: 2009-03-25 13:51:28
terminus
Простое и быстрое решение вашей проблемы это создайть из двух "клиентских" интерфейсов мост используя if_bridge:
http://www.freebsd.org/doc/en_US.ISO885 ... dging.html
http://www.freebsd.org/cgi/man.cgi?quer ... ormat=html
И задействать функционал "Sticky Interfaces" и "Private Interfaces"
Re: Разделение сети
Добавлено: 2009-03-25 14:09:49
Nick_mad
та епт я и посидею пока все прочитаю и переведу
пошол курить маны, вернусь как разберу мать часть
Re: Разделение сети
Добавлено: 2009-03-25 14:25:06
Nick_mad
не совсем понятна технология.
Тоесть я ИП на внутреней карте не меняю а другой внутреней не назначаю и в rc.conf ее не прописываю. А просто создаю мост и получится как сказано в хендбуке
По многим параметрам мост работает также, как коммутатор Ethernet с малым количеством портов.
И просто другую сеть втыкаю в другою сетевуху и должно заработать. Я правильно понял???
Re: Разделение сети
Добавлено: 2009-03-25 14:27:16
terminus
Чё там переводить - там все понятно. Даже примеры есть.

После создания моста в выводе ifconfig появится новый интерфейс bridge0 - у него должен быть назначен IP котороый сейчас используеься людьми как Gateway. Соответсвенно на "клиентских" интерфейсах никаких IP быть уже не должно. Функционал "Sticky Interfaces" не даст клиентам "прыгать" из сети в сеть, а "Private Interfaces" не даст трафику ходить между двумя частными, "клиентскими" интерфейсами (при этом между bridge0 и этими интерфейсами трафик ходить будет на ура). На самом сервере может понадобится поменять какие-нибудь настройки для сервисов котроый там работают (Squid, что еще?) если там где-нить жестро были прописаны сетевые интерфесы...
К стати я надеюсь не надо объяснять, что сети клиентов должны быть физически разделены между собой чтобы это работало? Если все клиенты воткнуты в один свитч то тут уже сложнее будет - в зависимости от того поддерживает ли этот свитч vlan можно будет разделить клиентов, а если нет и нет возможности их физически разделить, то все вышенаписаное не имеет смысла.
Какая версия FreeBSD у вас? Для if_bridge надо кажется как минимум 6.0
Re: Разделение сети
Добавлено: 2009-03-25 14:38:46
terminus
Nick_mad писал(а):не совсем понятна технология.
Тоесть я ИП на внутреней карте не меняю а другой внутреней не назначаю и в rc.conf ее не прописываю. А просто создаю мост и получится как сказано в хендбуке
По многим параметрам мост работает также, как коммутатор Ethernet с малым количеством портов.
И просто другую сеть втыкаю в другою сетевуху и должно заработать. Я правильно понял???
На внутренней карте IP убираем, создаем мост, даем IP мосту, ключаем в карты Ethernet сегменты клиентов.
редактируем /etc/rc.conf
Код: Выделить всё
###ifconfig_fxp0="inet 192.168.0.1 netmask 255.255.255.0"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 sticky privat addm fxp1 sticky privat up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"
ifconfig_bridge0="inet 192.168.0.1 netmask 255.255.255.0"
defaultrouter="10.10.10.1"
выполняем из-под root
Код: Выделить всё
/etc/rc.d/netif restart && /etc/rc.d/routing restart
проверяем что все работает (или не работает).

Re: Разделение сети
Добавлено: 2009-03-25 14:44:30
Nick_mad
Nick_mad писал(а): стати я надеюсь не надо объяснять, что сети клиентов должны быть физически разделены между собой чтобы это работало?
да сети физически разделены.
terminus писал(а):Какая версия FreeBSD у вас?
у меня 6.3 все не обновлюсь до 6.4
И нада ядро пересобрать у меня не включена опция
options BRIDGE
Re: Разделение сети
Добавлено: 2009-03-25 14:46:11
terminus
Alternatively, to load the driver as a module at boot time, place the
following lines in loader.conf(5):
if_bridge_load="YES"
Re: Разделение сети
Добавлено: 2009-03-25 14:51:09
Nick_mad
пока все ясно спс пробую
Re: Разделение сети
Добавлено: 2009-03-25 14:51:46
terminus
Хотя тут может возникнуть проблема - "Private Interfaces" может не быть в 6.х ветке

Ограничивать доступ из сегмента в сегмент придется на фаерволе...
Re: Разделение сети
Добавлено: 2009-03-25 15:27:01
Nick_mad
Сделал все как было описано в режиме теста. Но при этом сеть не делил а просто как была задействована одня сетевуха так и оставил.
Мост создался все ок. Но когда начал пинговать внутрение хосты получил host is down.
Код: Выделить всё
eagle# /etc/rc.d/netif restart && /etc/rc.d/routing restart
Stopping network: lo0 rl0 rl1 rl2 vr0 plip0.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet ххх.ххх.ххх.ххх netmask 0xfffffffc broadcast ххх.ххх.ххх.ххх
ether 00:e0:4c:10:c1:76
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
ether 00:e0:4c:10:c1:71
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
ether 00:e0:4c:10:05:98
media: Ethernet autoselect (none)
status: no carrier
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.10.10.250 netmask 0xffffff00 broadcast 10.10.10.255
ether 6e:f7:ac:e0:3b:26
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto stp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
add net default: gateway ххх.ххх.ххх.ххх
Additional routing options: IP gateway=YES.
eagle# ping 10.10.10.5
PING 10.10.10.5 (10.10.10.5): 56 data bytes
ping: sendto: Host is down
ping: sendto: Host is down
ping: sendto: Host is down
ping: sendto: Host is down
Re: Разделение сети
Добавлено: 2009-03-25 15:41:17
terminus
У bridge0 MAC адрес не такой как был у старого rl1 - может у клиента которого вы пинговали старый мак остался в арп таблице поэтому нет ответа? Еще после создания моста проверьте вывод netstat -rn (таблица маршрутизации) - все ли там правильно.
И фаервол не может там где-нить мешать?
Re: Разделение сети
Добавлено: 2009-03-25 15:53:29
Nick_mad
Вывод до изменений
Код: Выделить всё
eagle# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 212.90.176.133 UGS 0 17290 rl0
10.10.10/24 link#2 UC 0 0 rl1
10.10.10.2 00:13:d4:fc:4e:72 UHLW 1 705 rl1 1090
10.10.10.5 00:50:fc:ce:fc:70 UHLW 1 121 rl1 1125
10.10.10.7 00:13:d4:fc:4e:44 UHLW 1 122 rl1 1045
10.10.10.15 00:1c:bf:5a:db:bc UHLW 1 514 rl1 1196
10.10.10.40 00:18:f3:c5:1b:01 UHLW 1 165 rl1 1040
10.10.10.43 00:18:f3:bd:21:4f UHLW 1 102 rl1 1102
10.10.10.54 00:15:f2:b9:6f:b4 UHLW 1 1762 rl1 1049
10.10.10.55 00:1e:8c:83:d1:95 UHLW 1 1367 rl1 1107
10.10.10.56 00:80:48:20:0f:f2 UHLW 1 181 rl1 1106
10.10.10.58 00:11:2f:6b:18:78 UHLW 1 435 rl1 1040
10.10.10.59 00:1e:8c:83:d1:9d UHLW 1 403 rl1 1045
10.10.10.60 00:18:f3:f4:4c:ea UHLW 1 1320 rl1 1036
10.10.10.62 00:13:8f:61:06:3e UHLW 1 440 rl1 622
10.10.10.67 00:18:f3:80:40:70 UHLW 1 448 rl1 1166
10.10.10.68 00:13:8f:04:c0:2c UHLW 1 49 rl1 1045
10.10.10.74 00:02:44:26:d7:08 UHLW 1 100 rl1 1024
10.10.10.75 00:30:1b:15:96:0b UHLW 1 676 rl1 1106
10.10.10.77 00:18:f3:81:69:50 UHLW 1 44 rl1 1021
10.10.10.88 00:11:2f:ce:42:81 UHLW 1 481 rl1 617
10.10.10.90 00:0b:6a:aa:f3:31 UHLW 1 48 rl1 1088
10.10.10.150 00:1e:8c:ab:c1:24 UHLW 1 1193 rl1 662
127.0.0.1 127.0.0.1 UH 0 431 lo0
212.90.176.132/30 link#1 UC 0 0 rl0
212.90.176.133 00:30:80:48:51:01 UHLW 2 0 rl0 1017
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 U lo0
fe80::1%lo0 link#6 UHL lo0
ff01:6::/32 fe80::1%lo0 UC lo0
ff02::%lo0/32 fe80::1%lo0 UC lo0
и после ни создания моста. Фаервол перевел в режим все всем можна
Код: Выделить всё
eagle# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 212.90.176.133 UGS 1 1310 rl0
10.10.10/24 link#7 UC 0 0 bridge
10.10.10.2 link#7 UHLW 1 59 bridge
10.10.10.5 link#7 UHLW 1 7 bridge
10.10.10.7 link#7 UHLW 1 95 bridge
10.10.10.15 link#7 UHLW 1 7 bridge
10.10.10.40 link#7 UHLW 1 30 bridge
10.10.10.43 link#7 UHLW 1 29 bridge
10.10.10.54 link#7 UHLW 1 44 bridge
10.10.10.55 link#7 UHLW 1 8 bridge
10.10.10.56 link#7 UHLW 1 49 bridge
10.10.10.58 link#7 UHLW 1 52 bridge
10.10.10.59 link#7 UHLW 1 69 bridge
10.10.10.60 link#7 UHLW 1 37 bridge
10.10.10.62 link#7 UHLW 1 56 bridge
10.10.10.67 link#7 UHLW 1 13 bridge
10.10.10.68 link#7 UHLW 1 10 bridge
10.10.10.74 link#7 UHLW 1 33 bridge
10.10.10.77 link#7 UHLW 1 9 bridge
10.10.10.88 link#7 UHLW 1 59 bridge
10.10.10.150 link#7 UHLW 1 49 bridge
127.0.0.1 127.0.0.1 UH 0 74 lo0
212.90.176.132/30 link#1 UC 0 0 rl0
212.90.176.133 00:30:80:48:51:01 UHLW 2 0 rl0 1017
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 U lo0
fe80::1%lo0 link#6 UHL lo0
ff01:6::/32 fe80::1%lo0 UC lo0
ff02::%lo0/32 fe80::1%lo0 UC lo0
eagle#
видать шото с мас адресами
Re: Разделение сети
Добавлено: 2009-03-25 16:20:28
terminus
Блин - непонятно

А есть возможность после создания моста выполнить на клиенте которого пингуете (10.10.10.5) arp -d * т.е. почистить на нем весь арп?
Re: Разделение сети
Добавлено: 2009-03-25 16:46:39
Nick_mad
ну сервак понятно дело удаленный написал пользователю мол сделай так, сотворил мост соеденение пропало и уже звонят "где нет?". Так что пока никак не поексперементировать
Re: Разделение сети
Добавлено: 2009-03-25 16:59:05
terminus
К стате вот еще деталь - в вашем ваводе:
Код: Выделить всё
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.10.10.250 netmask 0xffffff00 broadcast 10.10.10.255
ether 6e:f7:ac:e0:3b:26
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto stp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
А в примере хендбука:
Код: Выделить всё
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role designated state forwarding
Не хватает "member:" записей...
Вы бридж делали руками или через мой rc.conf пример? Если через rc.conf то уберите "sticky privat" - может поэтому он не обрабатывает добавление мемберов в мост (в 6.х такой директивы нет).
Re: Разделение сети
Добавлено: 2009-03-25 17:14:02
Nick_mad
При таких параметрах все тоже самое. Может обе сетевухи должны быть
ну и еще я в load.conf записал
а Вы указали только первую
Re: Разделение сети
Добавлено: 2009-03-26 10:34:04
Nick_mad
К такому виду
Код: Выделить всё
# ifconfig bridge0 stp fxp0 stp fxp1
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role designated state forwarding
Удалось привести только выполнив
Код: Выделить всё
ifconfig bridge0 create
ifconfig bridge0 \
addm fxp1 stp fxp1 \
addm fxp2 stp fxp2 \
up
добавление в rc.conf
Код: Выделить всё
ifconfig_bridge0="addm fxp1 stp fxp1 addm fxp2 stp fxp2 up"
ни к чему не привело
Re: Разделение сети
Добавлено: 2009-03-26 10:40:48
terminus
Ну вот, значит что-то где-то у бсдшников поломано в rc.d системе... К стати, наверно использование параметра stp не обязательно (это включает spanning tree). Чтобы это все отрабатовало при запуске машины, придется сделать простенький sh скрипт с этими командами и закинуть его в /usr/local/etc/rc.d/
То есть теперь все получилось - клиенты подключенные к двум сетевухам как и раньше могут ходить в интернет через сервер, и осталось только сделать правила на фаерволе чтобы они друг к другу, между сетевыми карточками не могли попасть?
Re: Разделение сети
Добавлено: 2009-03-26 10:58:33
Nick_mad
terminus писал(а):То есть теперь все получилось - клиенты подключенные к двум сетевухам как и раньше могут ходить в интернет через сервер, и осталось только сделать правила на фаерволе чтобы они друг к другу, между сетевыми карточками не могли попасть?
Ну так как эксперементировать могу только вечером и ставил на вчерашний вечер небольшие задачи. То пока просто создается мост и все клиенты бегают как нада. А вот вопрос с тем чтобы сети не видели друг друга остается не выясненым. по фаерволу то я просто в переменных поменял название внутреннего интерфейса с rl1 на bridge0 так как все остальные параметры остались не измененными.
Re: Разделение сети
Добавлено: 2009-03-26 11:06:38
zingel
нужно, и вообще, нафига Вам stp я не могу понять, у Вас есть там коммутаторы которые будут понимать Ваши стоимости маршрутов?
чтобы сети не видели друг друга
В разные вланы тупо засуньте, для начала.
Re: Разделение сети
Добавлено: 2009-03-26 11:13:12
terminus
В разные вланы тупо засуньте, для начала.
У него два физических сегмента в одной IP подсети и задача сохранить настройки TCP/IP на клиентах.
Re: Разделение сети
Добавлено: 2009-03-26 11:14:12
zingel
разбить на подсети и в разные вланы
Re: Разделение сети
Добавлено: 2009-03-26 11:50:09
terminus
А вот вопрос с тем чтобы сети не видели друг друга остается не выясненым.
/etc/sysctl.conf
Код: Выделить всё
# ipfw add 10 deny all from any to any out recv rl1 xmit rl2 layer2
# ipfw add 11 deny all from any to any out recv rl2 xmit rl1 layer2
Это надо будет протестировать. Не до конца уверен, что правильно составленны.
---
Скрипта для старта if_bridge /usr/local/etc/rc.d/1bridgestart.sh
Код: Выделить всё
#!/bin/sh
ifconfig bridge0 create
ifconfig bridge0 addm rl1 addm rl2 up
ifconfig bridge0 inet 10.10.10.250 netmask 255.255.255.0
route add default xxx.xxx.xxx.xxx
Re: Разделение сети
Добавлено: 2009-03-27 0:47:20
Nick_mad
После очередных эксперементов удалось выяснить что в rc.conf не отрабатывается строка
если после загрузки ОС вручную выполнить ее то все ок а в rc.conf почему то не хочет. Странно хотя я прогуглил этот вопрос так везде пишут именно так. Ну шо ж раз не хочет тогда через скрипт.
скрипт запуска моста выглядит так:
Код: Выделить всё
#!/bin/sh
ifconfig bridge0 create
ifconfig bridge0 addm rl1 addm rl2 up
ifconfig bridge0 inet 10.10.10.250 netmask 255.255.255.0
ifconfig rl1 up
ifconfig rl2 up
теперь вплотную подошли до разделения сетей, тоесть фирм нежелающих видеть друг друга

Мне чесно говоря интересно узнать о параметре sticky privat. Он что только в 7 используется? Может мне обновится до семерки и не мучать фаервол???
тутчеловек тоже не смог запустить через rc.conf
неделю бился головой об этот бридж, оказалось что при прописывание в rc.conf сточек
cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 addm fxp2 up"
добавление сетевух в бридж не пахало, пришлось скриптом добавлять, фря 6.0 с обновлениями
вот такие вот пироги млин
и
тут тоже не без проблем