Статья "Виртуальный свитч"

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение LMik » 2011-09-13 20:18:27

На первой машине arp 192.168.0.2 сделайте во время пинга.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

FreonX
рядовой
Сообщения: 18
Зарегистрирован: 2008-01-21 22:27:41

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение FreonX » 2011-09-13 21:40:46

Код: Выделить всё

balancer# uname -a
FreeBSD balancer.xxx.biz 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Sat Sep 10 04:22:28 MSD 2011     freonx@balancer.xxx.biz:/usr/obj/usr/src/sys/BALANCER  i386
balancer# arp 192.168.0.2
? (192.168.0.2) at 00:13:d5:67:22:a0 on em1 expires in 349 seconds [ethernet]

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение LMik » 2011-09-13 21:56:45

А теперь включив тисипидамп попробуйте пинговать какую-нибудь живую машину в удаленной сети. Мож чего увидим :/.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

FreonX
рядовой
Сообщения: 18
Зарегистрирован: 2008-01-21 22:27:41

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение FreonX » 2011-09-14 5:13:11

В общем ситуация такая:
Пингуем 1:
машина в 1 сети -> "свой" шлюз (tcpdump видит только запрос) -> "чужой" шлюз (tcpdump видит только запрос) -> конечная машина 2й сети (tcpdump видит запрос и ответ)
При этом конечная машина не отвечает на пинг машины из 1й сети, но успешно пингуется с "своего" шлюза.

Пингуем 2:
машина в 1 сети -> "чужой" шлюз = пинг проходит

Пингуем 3:
машина в 2 сети -> "чужой" шлюз = пинг не проходит

Пингуем 4:
машина в 2 сети -> "свой" шлюз = пинг проходит

Пингуем 5:
Шлюз 2 сети -> комп "чужой", 1й сети = пинг проходит

Код: Выделить всё

#!/bin/sh

#тут указываем наш белый адрес
self=80.246.xx.xx
peer=46.4.xx.xx
#тут порт по которому будет бегать трафик
port=1234
#интерфейс который включаем в свитч
if=vr0
case "$1" in
        start)
            echo "Starting netgraph switch."
                ngctl mkpeer ${if}: bridge lower link0
                ngctl name ${if}:lower switch
                ngctl mkpeer switch: ksocket link1 inet/dgram/udp
                ngctl msg switch:link1 bind inet/${self}:${port}
                ngctl msg switch:link1 connect inet/${peer}:${port}
                ngctl connect switch: ${if}: link2 upper
                ngctl msg ${if}: setpromisc 1
                ngctl msg ${if}: setautosrc 0
            echo "Ok."
            exit 0
            ;;
        stop)
            echo "Stopping netgraph switch."
            /usr/sbin/ngctl shutdown ${if}:
            /usr/sbin/ngctl shutdown switch:
            echo "Ok."

            exit 0
            ;;
        restart)
            sh $0 stop
            sh $0 start
            ;;
        *)
            echo "Usage: `basename $0` { start | stop | restart }"
            exit 64
            ;;
esac
второй конфиг

Код: Выделить всё

#!/bin/sh

#тут указываем наш белый адрес
self=46.4.xx.xx
peer=80.246.xx.xx
#тут порт по которому будет бегать трафик
port=1234
#интерфейс который включаем в свитч
if=em1
case "$1" in
        start)
            echo "Starting netgraph switch."
                ngctl mkpeer ${if}: bridge lower link0
                ngctl name ${if}:lower switch
                ngctl mkpeer switch: ksocket link1 inet/dgram/udp
                ngctl msg switch:link1 bind inet/${self}:${port}
                ngctl msg switch:link1 connect inet/${peer}:${port}
                ngctl connect switch: ${if}: link2 upper
                ngctl msg ${if}: setpromisc 1
                ngctl msg ${if}: setautosrc 0
            echo "Ok."
            exit 0
            ;;
        stop)
            echo "Stopping netgraph switch."
            /usr/sbin/ngctl shutdown ${if}:
            /usr/sbin/ngctl shutdown switch:
            echo "Ok."

            exit 0
            ;;
        restart)
            sh $0 stop
            sh $0 start
            ;;
        *)
            echo "Usage: `basename $0` { start | stop | restart }"
            exit 64
            ;;
esac

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение LMik » 2011-09-14 8:33:33

Ерунда какая-то у вас. Если вы винду пингуете, убедитесь что там разрешены пинги. У вас похоже все работает на самом деле. И отрубите ipfw совсем на обоих шлюзах для верности.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

FreonX
рядовой
Сообщения: 18
Зарегистрирован: 2008-01-21 22:27:41

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение FreonX » 2011-09-14 10:31:56

Да я сам уже нихрена не понимаю =) Все 4 машины - FreeBSD с вырубленными ipfw. 2 из них виртуальны в VmWare ESXi, 2 другие - "железная", 2я часть сетки.
Также есть IP телефон от Линксиса, он пингуется ровно также, как и FreeBSD. Есть и виндовые машины, там аналогично.

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение LMik » 2011-09-14 16:35:04

FreonX писал(а):Да я сам уже нихрена не понимаю =) Все 4 машины - FreeBSD с вырубленными ipfw. 2 из них виртуальны в VmWare ESXi, 2 другие - "железная", 2я часть сетки.
Также есть IP телефон от Линксиса, он пингуется ровно также, как и FreeBSD. Есть и виндовые машины, там аналогично.
Ну так значит все же работает чтоль?
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

FreonX
рядовой
Сообщения: 18
Зарегистрирован: 2008-01-21 22:27:41

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение FreonX » 2011-09-15 23:28:26

Раньше в качестве 1й сети выступала виртализированная среда внутри VmWare ESXi (шлюз + 2 виртуалки) = не работало.
Заменил ее на "реальные" машины - завелось без проблем. (конфиги один в один с виртуальными)

Начал копать, наткнулся на статью на Хабре - http://habrahabr.ru/blogs/virtualization/124317/
В отличие от физических коммутаторов, vSS не нужно заучивать MAC адреса всех устройств находящихся в том же broadcast домене. Поскольку всем виртуальным машинам MAC адреса назначаются самим ESXi, то vSS уже знает все адреса по умолчанию. Другой отличительной особенностью является то, что vSS совершенно четко делит порты на два типа — внутренние порты и аплинки, и применяет к ним разные правила коммутации.
Итак, решение:
vShare Client - Configuration - Networking - выбираем виртуальный свитч - properties - там в настройках (как vSwitch, так и интерфейсов) Security - Promiscuous Mode - Accept
И все работает =)

vvu73
проходил мимо
Сообщения: 1
Зарегистрирован: 2013-01-01 23:56:09

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение vvu73 » 2013-01-02 0:05:43

Попробовал поднять соединение, завелось, разве только в стартовом скрипте пришлось дописать секцию "faststart" для автозапуска из rc.d. Теперь вопрос к с специалистам: Как пробросить на удаленную машину несколько vlan из основной сети посредством netgraph свича? т.е. собрать ну допустим 3 vlan завернуть в свич и развернуть на удаленной машине.

dvh
проходил мимо
Сообщения: 1
Зарегистрирован: 2013-01-15 21:56:05
Откуда: Тула

Re: Статья "Виртуальный свитч"

Непрочитанное сообщение dvh » 2013-01-15 21:59:49

День добрый всем. Подскажите, пожалуйста что написать в скрипте, чтобы можно было с 2-х мест к одному серверу подключаться. Подключение с одного места прокатывает на ура, а вот на 2 не получается.

icb
лейтенант
Сообщения: 723
Зарегистрирован: 2008-07-15 16:11:11

Статья "Виртуальный свитч"

Непрочитанное сообщение icb » 2016-05-13 19:26:43

Делаю виртуальный свич.

Код: Выделить всё

ngctl mkpeer igb0: bridge lower link0
ngctl name igb0:lower switch
ngctl connect switch: igb0: link1 upper
ngctl connect switch: igb1: link2 lower
ngctl connect switch: igb1: link3 upper
Т.е. я сделал коммутатор, и подключил к нему 2 интерфейса.
Но после этого линк на втором интерфейсе не поднялся.
Я что-то сделал не так или линк поднимается иначе?

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1297
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Статья "Виртуальный свитч"

Непрочитанное сообщение dekloper » 2016-05-14 12:05:31

vvu73 писал(а): собрать ну допустим 3 vlan завернуть в свич и развернуть на удаленной машине.
вам надо qinq мастерить..
FreonX писал(а): выступала виртализированная среда внутри VmWare ESXi
гумно эта ваша среда.. хен рулит)
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!