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] .
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.
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 |