Grafic net

netgraph este un  subsistem de rețea modular bazat pe grafice pentru nucleul FreeBSD . În Netgraph, un grafic este construit din noduri de diferite tipuri, un nod de fiecare tip are un anumit număr de intrări/ieșiri ( hooks , English hooks ). Nodul netgraph vă permite să efectuați anumite acțiuni asupra pachetului care trece prin el. Unele noduri Netgraph oferă suport pentru diferite protocoale, încapsulări, cum ar fi L2TP , PPTP , PPPoE , PPP , ATM , bluetooth , altele sunt folosite pentru conectarea modulelor și sortarea / rutarea între nodurile netgraph, de exemplu bpf, split.  

netgraph a fost portat și pe alte sisteme de operare: NetBSD [1] și Linux kernel 2.4 și 2.6 de la 6WIND [2] .

Istorie

netgraph a fost proiectat și inițiat de Julian Elischer cu contribuții de la Archie Cobbs la Whistle Communications, Inc. pentru un router Whistle InterJet care rulează un FreeBSD 2.2 modificat. Netgraph a fost inclus în arborele principal FreeBSD în versiunea 3.4.

Tipuri de noduri

Tip de Descriere
Interfețe de rețea, dispozitive și prize
eter Reprezintă o interfață Ethernet existentă , creată automat.
gif Reprezintă o interfață gif existentă , generată automat.
tty Reprezintă o conexiune terminală (TTY).
eu înfrunt Reprezintă o interfață de rețea. Pentru fiecare nod nou, este creat un nou dispozitiv ng*. Interfața creată poate fi configurată cu ifconfig ca difuzare sau punct la punct.
eiface Reprezintă o interfață Ethernet . Pentru fiecare nod nou, este creat un nou dispozitiv ngeth*. Interfața generată poate fi configurată folosind ifconfig .
dispozitiv Reprezintă un dispozitiv de sistem. Pentru fiecare nod nou, este creat un nou dispozitiv ngd*, disponibil pentru operațiuni de deschidere , închidere , citire și scriere .
priză Un nod creat automat care reprezintă un socket de tip NG_CONTROL. Permite unei aplicații să interacționeze cu subsistemul netgraph.
priză Creează un nou socket BSD care permite subsistemului netgraph să comunice cu alte gazde sau servicii ( opusul socket -ului ). Suportă un singur cârlig, al cărui nume sub forma familie/tip/protocol determină tipul de soclu care este creat.
Protocoale de rețea
cisco Încapsulează și decapsulează datele utilizând protocolul Cisco HDLC . Cârligul din aval trebuie conectat la o linie sincronă. Cârligele inet , inet6 , atalk și ipx sunt folosite pentru a trimite pachete de protocol cu ​​același nume și sunt de obicei conectate la tipurile adecvate de gazde.
frame_relay Efectuează încapsularea, decapsularea și multiplexarea datelor utilizând protocolul Frame Relay . Cârligul din aval trebuie conectat la o linie sincronă. Cârligele dlci * se pot conecta la canalul DLCI corespunzător .
gif_demux Încapsulează și decapsulează datele gif . Cârligul gif trebuie conectat la un nod de tip gif , cârligele inet , inet6 , atalk , ipx , atm , natm și ns corespund protocoalelor cu același nume.
l2tp Implementează încapsularea protocolului L2TP conform RFC 2661 .
lmi Suport pentru releu cadru LMI .
mppc Suport pentru compresie și criptare MPPC / MPPE .
ppp Multiplexarea datelor PPP .
pppoe Suport PPPoE .
pptpgre Implementarea protocolului GRE over IP prin PPTP conform RFC 2637 .
vlan Multiplexarea cadru VLAN IEEE 802.1Q
Comutare
pod Implementează o punte Ethernet pe una sau mai multe conexiuni. Fiecare conexiune (corespunzătoare cârligului atașat) este utilizată pentru a primi și transmite cadre Ethernet, principiul de funcționare este similar cu un comutator .
hub Oferă cel mai simplu mecanism de distribuire a datelor în mai multe conexiuni. Principiul de funcționare este similar cu cel al hub -ului: datele primite de la orice cârlig sunt trimise la toate celelalte hook.
unu2mulți Oferă un mecanism pentru distribuirea datelor de la o conexiune la mai multe conexiuni. În acest caz, algoritmul de distribuție fie copiază datele de la un cârlig la toate multe* cârlige (ca un hub), fie numai la unul secvenţial (fiecare pachet este trimis la cârlige diferite). Datele care provin de la orice cârlig cu multe* sunt copiate pe un cârlig .
tricou Oferă capacitatea de a „asculta cu urechea” comunicațiile dintre două noduri. Datele primite prin cârligul din dreapta sunt copiate în cârligele stânga și dreapta2stânga , iar datele primite prin cârligul din stânga sunt copiate  în cârligele dreapta și stânga2dreapta .
Despică Împarte un flux de date bidirecțional în două unidirecționale.
etf Filtrează și distribuie datele în funcție de tipul de pachet Ethernet.
Testare și depanare
ecou Returnează orice date și mesaje de control către expeditor.
gaură Renunță la toate datele primite și mesajele de control.
Alte
ATM
asincron
atmllc
Bluetooth
bpf Permite filtrarea/sortarea pachetelor pe baza regulilor BPF
bt3c
btsocket
fec Agregează mai multe interfețe Ethernet folosind tehnologia EtherChannel
h4
hci
ip_input Pachetele transmise către acest nod intră în ip_input al sistemului de operare și sunt procesate în continuare în același mod ca și cele care au venit de la alt nod prin rețea
l2cap
debit net Implementarea protocolului Netflow
rfc1490
sppp Implementarea conexiunilor PPP pentru legăturile seriale în interiorul Netgraph
sscfu
scop
ubt
UI
uni
vjc Implementarea compresiei Jacobson

Note

  1. tech-net: portul NetBSD al mediului netgraph freebsd . Consultat la 8 septembrie 2008. Arhivat din original pe 6 octombrie 2013.
  2. 6WIND Arhivat 24 decembrie 2017 la Wayback Machine , port comercial închis

Link -uri