Настроил Ethernet через UDP туннель между 2-мя FreeBSD машинами
по инструкции http://www.opennet.me/base/net/ng_ksocket.txt.htmlМашина A:
интерфейс em0 - 192.168.0.5/24
интерфейс em1 - без IP-адреса
#!/bin/sh
kldload ng_ether
ngctl mkpeer em1: ksocket lower inet/dgram/udp
ngctl msg em1:lower bind inet/192.168.0.5:2515
ngctl msg em1:lower connect inet/172.16.0.4:2515
ifconfig em1 up
ngctl msg em1: setpromisc 1
ngctl msg em1: setautosrc 0
Машина B:
интерфейс em0 - 172.16.0.4/24
интерфейс em1 - без IP-адреса
#!/bin/sh
kldload ng_ether
ngctl mkpeer em1: ksocket lower inet/dgram/udp
ngctl msg em1:lower bind inet/172.16.0.4:2515
ngctl msg em1:lower connect inet/192.168.0.5:2515
ifconfig em1 up
ngctl msg em1: setpromisc 1
ngctl msg em1: setautosrc 0
Все работает просто отлично, но хочеться усложнить здачу. Добавить машину C:
Которая будет подключаться к машине А:Вопрос: Что нужно добавить скрипт на машину А: ????
Насколько я понял еще один ksocket к ноду em1 не прицепишь. сам сокет сожет держать только одно подключение, значит надо встраивать на машине А: какой то промежуточный узел
который будет соединен с em1 и двумя ksocket. Вопрос: Что встраивать и каким образом...
Cообразил сам, но начались зверские тормоза....
как избавиться от этих тормозов?kldload ng_one2many
ngctl mkpeer em1: one2many lower one
ngctl name em1:lower multi_linkngctl mkpeer multi_link: ksocket many0 inet/dgram/udp
ngctl name multi_link:many0 link0
ngctl msg link0: bind inet/192.168.0.5:2515
ngctl msg link0: connect inet/172.16.0.4:2515ngctl mkpeer multi_link: ksocket many1 inet/dgram/udp
ngctl name multi_link:many1 link1
ngctl msg link1: bind inet/192.168.11.55:2516
ngctl msg link1: connect inet/172.16.0.4:2516ngctl msg multi_link: setconfig { xmitAlg=1 failAlg=1 enabledLinks=[ 1 1 ] }
ifconfig em1 up
ngctl msg em1: setpromisc 1
ngctl msg em1: setautosrc 0
Разобрался сам.
готовое решение кинул в этот форум, чтобы другие не мучались.....
http://www.opennet.me/openforum/vsluhforumID1/65846.html