Site Tools


software:freebsd:igmpproxy_on_netgraph

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
software:freebsd:igmpproxy_on_netgraph [2015/05/15 15:19]
root
software:freebsd:igmpproxy_on_netgraph [2015/07/18 23:14]
– [История] root
Line 21: Line 21:
 ===== Принцип работы ===== ===== Принцип работы =====
 ==== netgraph ==== ==== netgraph ====
-Его можно сравнить с LUA: он даёт широкие возможности по манипуляции с сетевыми пакетами, относительно прост в использовании и максимально быстр тк всё происходит в ядре. +Его можно сравнить с LUA: он даёт широкие возможности по манипуляции с сетевыми пакетами, относительно прост в использовании и максимально быстр тк всё происходит в ядре.\\ 
-У меня было много разных вариантов но в конце мне удалось свести количество нод к двум: **ng_ether** и **ng_bpf**. +У меня было много разных вариантов но в конце мне удалось свести количество нод к двум: **ng_ether** и **ng_bpf**.\\ 
-**ng_ether** — имеет несколько хуков: __lower__ — это вход/выход сетевого адаптера, __upper__ — ввод/выход в сетевой стёк OS. +**ng_ether** — имеет несколько хуков: __lower__ — это вход/выход сетевого адаптера, __upper__ — ввод/выход в сетевой стёк OS.\\ 
-**ng_bpf** — программируемая нода, общий смысл программ: один вход и два выхода: пакет соответствует заданному условии и для пакетов которые не соответствуют. В ноде есть собственный ассемблер для матчинга пакетов. Но можно написать условия для tcpdump и получить код для **ng_bpf**. +**ng_bpf** — программируемая нода, общий смысл программ: один вход и два выхода: пакет соответствует заданному условии и для пакетов которые не соответствуют. В ноде есть собственный ассемблер для матчинга пакетов. Но можно написать условия для tcpdump и получить код для **ng_bpf**.\\ 
-Не большая хитрость ноды в том, что программа устанавливается на входную ноду. Но ноды которые указаны как выходные тоже могут принимать пакеты и обрабатывать они их будут по тем программам которые ассоциированы с ними.+Не большая хитрость ноды в том, что программа устанавливается на входную ноду. Но ноды которые указаны как выходные тоже могут принимать пакеты и обрабатывать они их будут по тем программам которые ассоциированы с ними.\\
  
 ==== Передача пакетов ==== ==== Передача пакетов ====
Line 89: Line 89:
  
 ===== История ===== ===== История =====
-igmpproxy и mrouted у меня работать отказались: PF по умолчанию убивает все пакеты с IP опциями в заголовке (IGMP они нужны для работы) и поэтому добавлять специально правило:+igmpproxy и mrouted у меня работать отказались: PF по умолчанию убивает все пакеты с IP опциями в заголовке (IGMP они нужны для работы) и поэтому нужно добавлять правило:
 <code>pass quick proto igmp from any to 224.0.0.0/4 allow-opts</code> <code>pass quick proto igmp from any to 224.0.0.0/4 allow-opts</code>
 а я этого не сделал.\\ а я этого не сделал.\\
software/freebsd/igmpproxy_on_netgraph.txt · Last modified: 2022/02/05 05:30 by root