This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
software:freebsd:igmpproxy_on_netgraph [2015/05/15 15:19] – root | software:freebsd:igmpproxy_on_netgraph [2022/02/05 05:30] (current) – root | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== igmpproxy |
Скрипт собирающий netgraph мост для мультикаст трафика (IGMP, UDP) между двумя сетевыми интерфейсами предназначен для замены igmpproxy/ | Скрипт собирающий netgraph мост для мультикаст трафика (IGMP, UDP) между двумя сетевыми интерфейсами предназначен для замены igmpproxy/ | ||
Line 21: | Line 21: | ||
===== Принцип работы ===== | ===== Принцип работы ===== | ||
==== netgraph ==== | ==== netgraph ==== | ||
- | Его можно сравнить с LUA: он даёт широкие возможности по манипуляции с сетевыми пакетами, | + | Его можно сравнить с LUA: он даёт широкие возможности по манипуляции с сетевыми пакетами, |
- | У меня было много разных вариантов но в конце мне удалось свести количество нод к двум: **ng_ether** и **ng_bpf**. | + | У меня было много разных вариантов но в конце мне удалось свести количество нод к двум: **ng_ether** и **ng_bpf**.\\ |
- | **ng_ether** — имеет несколько хуков: __lower__ — это вход/ | + | **ng_ether** — имеет несколько хуков: __lower__ — это вход/ |
- | **ng_bpf** — программируемая нода, общий смысл программ: | + | **ng_bpf** — программируемая нода, общий смысл программ: |
- | Не большая хитрость ноды в том, что программа устанавливается на входную ноду. Но ноды которые указаны как выходные тоже могут принимать пакеты и обрабатывать они их будут по тем программам которые ассоциированы с ними. | + | Не большая хитрость ноды в том, что программа устанавливается на входную ноду. Но ноды которые указаны как выходные тоже могут принимать пакеты и обрабатывать они их будут по тем программам которые ассоциированы с ними.\\ |
==== Передача пакетов ==== | ==== Передача пакетов ==== | ||
- | {{:ru:software: | + | {{software: |
**BPF** настроен таким образом чтобы пропускать все без исключения пакеты с __upper__ хуков **ng_ether** нод на __lower__ хуки (пакеты от системы в сеть). Приходящие из сети пакеты с __lower__ хуков нод проверяются в **BPF**, и\\ | **BPF** настроен таким образом чтобы пропускать все без исключения пакеты с __upper__ хуков **ng_ether** нод на __lower__ хуки (пакеты от системы в сеть). Приходящие из сети пакеты с __lower__ хуков нод проверяются в **BPF**, и\\ | ||
- если это мультикаст; | - если это мультикаст; | ||
Line 89: | Line 89: | ||
===== История ===== | ===== История ===== | ||
- | igmpproxy и mrouted у меня работать отказались: | + | igmpproxy и mrouted у меня работать отказались: |
< | < | ||
а я этого не сделал.\\ | а я этого не сделал.\\ | ||
Line 114: | Line 114: | ||
[[http:// | [[http:// | ||
[[http:// | [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | {{tag> |