Add to del.icio.us: Step #05: BridgeAdd to MyWeb: Step #05: BridgeAdd to Furl: Step #05: BridgeAdd to BlogMarks: Step #05: Bridge

Step #05: Bridgeby Icon_malebreeze

Итак спустя неделю, я возвращаюсь к настройке своего сервера :)

Вначале третьего шага я упоминал о возможности объединения нескольких сетевых карт в мост для реализации софтварного управляемого хаба.

Но для рализации этой идеи на ядре 6.2, пришлось в корне поменять концепцию :( поскольку, как я не пытался, мне так ине удалось заставить работать мост на интерфейсе if_bridge, хотя скажем на ядре 5.5 никаких проблем не возникало и всё заработало с первого раза.
При более детальном рассмотрении проблемы (огромное спасибо моему другу Pilot'у) оказалось, что версия 6.2 (хоть и сообщается RELEASE) всё-таки находится в состоянии постоянного дописывания :( и сорцах было обнаружено что вместо некоторых методов if_bridge – просто стоят заглушки :(

Не знаю хорошо это или плохо, но Pilot мне напомнил, что ранее при работе с vmware на freebsd мы использовали систему netgraph. Которая замечательно себя зарекомендовала, и мы её реализуем.

Для начала скопируем и отредактируем один скриптик из примеров:

cp /usr/share/examples/netgraph/ether.bridge /etc/ether.bridge

открываем на редактирование:

ee /etc/ether.bridge

  • находим строку BRIDGE_NAME здесь задаётся имя моста, в принципе их может быть несколько. У меня остался дефолтовое имя BRIDGE_NAME="bnet0"

  • чуть ниже видим строки BRIDGE_IFACES и LOCAL_IFACES. В BRIDGE_IFACES перечисляем сетевые интерфейсы которые хотим объединить в мост, в LOCAL_IFACES указываем один из интерфейсов. BRIDGE_IFACES="vr0 vr1 rl0 vx0" LOCAL_IFACES="vr0"

сохраняем (ESC + A + A). Теперь создадим небольшой скриптик в /etc/rc.d/ (имя в принципе может быть произвольным)

touch /etc/rc.d/br.sh ee /etc/rc.d/br.sh

внутри напишем одну строчку:

/bin/sh /etc/ether.bridge start

сохраняем (ESC + A + A). Конечно, можно было не страдать таким извратом и сразу разместить в /etc/rc.d/ether.bridge однако этого делать не стоит, так как обязательным параметром для старта ether.bridge – должен быть ключ start, а для запуска в /etc/rc.d/ передаётся параметр faststart и поэтому система просто зависнет :( на этапе исполнения нашего ether.bridge, поэтому лучше ничего не перепутать ;) а то придётся грузить систему в single mode и убирать скрипт.

теперь пропишем в rc.conf ip-адрес для первого интерфейса:

ee /etc/rc.conf

ifconfig_vr0="inet 192.168.16.1 netmask 255.255.255.0"

сохраняем (ESC A A) и перегружаемся…

shutdown -r now

всё можно пинговать компьютеры:

сервер:
C:\>ping 192.168.16.1
PING 192.168.16.1 (192.168.16.1): 56 data bytes
64 bytes from 192.168.16.1: icmp_seq=0 ttl=64 time=1 ms
64 bytes from 192.168.16.1: icmp_seq=1 ttl=64 time=0 ms
64 bytes from 192.168.16.1: icmp_seq=2 ttl=64 time=0 ms

----192.168.16.1 PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip (ms) min/avg/max/med = 0/0/1/0

и второй компьютер в сети:

C:>ping 192.168.16.10
PING 192.168.16.10 (192.168.16.10): 56 data bytes
64 bytes from 192.168.16.10: icmp_seq=0 ttl=128 time=1 ms
64 bytes from 192.168.16.10: icmp_seq=1 ttl=128 time=0 ms
64 bytes from 192.168.16.10: icmp_seq=2 ttl=128 time=0 ms

----192.168.16.10 PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip (ms) min/avg/max/med = 0/0/1/0

на этом этапе систему настройки бриджа ака хаба можно считать законченной :) в будущем можно в принципе включить модуль netgraph сразу в ядро, для повышения производительности.

— Posted by breeze 1064 дня ago

Комментарии

 Minimize
Loading...