|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Goncharov 2:5020/400 03 Mar 2008 14:46:58 To : Eugene Grosbein Subject : Re: netgraph: one-hook self-destroying nodes -------------------------------------------------------------------------------- Hi Eugene Grosbein! On Sat, 01 Mar 2008 22:47:44 +0300; Eugene Grosbein wrote about 'netgraph: one-hook self-destroying nodes': e> Hужно выстроить тестовую схемку, для учебных целей: e> # USER-LEVEL | KERNEL-LEVEL e> # | e> # div4 *.4000 ------> | ----> ks_div - (inet/raw/divert) ---> (e) - echo e> # | e> То есть, всего две ноды, ng_ksocket с именем ks_div получает IP-пакеты e> из divert-сокета и отдаёт их в хук второй ноде ng_echo с именем echo, e> которая эти данные вертает взад, ks_div их принимает из хука и посылает e> обратно в divert-сокет. e> Может кто-нибудь привести команды для ngctl, которые строят такую схемку? e> У меня не получается замкнуть их друг на друга: e> # ngctl e> + mkpeer echo dummy e e> + name .:dummy echo e> + mkpeer ksocket dummy2 inet/raw/divert e> + name .:dummy2 ks_div e> + connect echo: ks_div: e inet/raw/divert e> ngctl: send msg: File exists Для нод, которые умеют ровно один хук или обладают каким-то еще специфическим свойством для хуков - только ng_tee (нет ничего зазорного в том, чтобы иметь в ядре модули базового обеспечения построения графа - ng_split, к примеру, и далее). Для твоего конкретного случая можно обойтись без ng_tee, зная, что ng_echo умеет произвольное число хуков: # kldload все_что_надо # ngctl + mkpeer echo dummy_s e_s + list There are 2 total nodes: Name: <unnamed> Type: echo ID: 00000002 Num hooks: 1 Name: ngctl22623 Type: socket ID: 00000001 Num hooks: 1 + name .:dummy_s echo + list There are 2 total nodes: Name: echo Type: echo ID: 00000002 Num hooks: 1 Name: ngctl22623 Type: socket ID: 00000001 Num hooks: 1 + mkpeer echo: ksocket e inet/raw/divert + ^D # ngctl + list There are 3 total nodes: Name: ngctl22671 Type: socket ID: 00000005 Num hooks: 0 Name: <unnamed> Type: ksocket ID: 00000004 Num hooks: 1 Name: echo Type: echo ID: 00000002 Num hooks: 1 + show echo: Name: echo Type: echo ID: 00000002 Num hooks: 1 Local hook Peer name Peer type Peer ID Peer hook ---------- --------- --------- ------- --------- e <unnamed> ksocket 00000004 inet/raw/divert + name echo:e ks_div + show ks_div: Name: ks_div Type: ksocket ID: 00000004 Num hooks: 1 Local hook Peer name Peer type Peer ID Peer hook ---------- --------- --------- ------- --------- inet/raw/divert echo echo 00000002 e Цель достигнута. Хотя udp.tunnel посоветовали совершенно верно. -- WBR, Vadim Goncharov. ICQ#166852181 mailto:vadim_nuclight@mail.ru [Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight] --- slrn/0.9.8.1 on FreeBSD 6.2/i386 * Origin: Nuclear Lightning @ Tomsk, TPU AVTF Hostel (2:5020/400@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/33696d89c517c.html, оценка из 5, голосов 10
|