Step #05: Bridgeby
breeze
Итак спустя неделю, я возвращаюсь к настройке своего сервера :)
Вначале третьего шага я упоминал о возможности объединения нескольких сетевых карт в мост для реализации софтварного управляемого хаба.
Но для рализации этой идеи на ядре 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
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
и второй компьютер в сети:
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
на этом этапе систему настройки бриджа ака хаба можно считать законченной :) в будущем можно в принципе включить модуль netgraph сразу в ядро, для повышения производительности.
— Posted by breeze 1064 дня agoКомментарии
Minimize


