Netgraph w systemie FreeBSD. Wojciech A. Koszek MeetBSD 2005 Kraków

Podobne dokumenty
CONFidence 13/05/2006. Jarosław Sajko, PCSS

Projekt TrustedBSD jako klucz do bezpieczeństwa systemu FreeBSD

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Netdisco. Maciej Łabędzki, grudzień 2006

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

5. Model komunikujących się procesów, komunikaty

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

Organizacja i struktura projektu FreeBSD. Wojciech A. Koszek wkoszek@freebsd.org Częstochowa,

Tworzenie sterowników dla FreeBSD. Michał Hajduk

Wzzard Intelligent Node

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Inżynieria oprogramowania

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

TCP - receive buffer (queue), send buffer (queue)

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Czujniki obiektowe Sterowniki przemysłowe

ViewIt 2.0. System Monitoringu i Zarządzania Sygnalizacjami Świetlnymi. Funkcje

Systemy operacyjne System sieciowy UNIX-a

Metodyka wdrożenia. Bartosz Szczęch. Starszy Konsultant MS Dynamics NAV

Forum Client - Spring in Swing

GEOM. In Infrastructure We Trust. meetbsd 27.XI Paweł Jakub Dawidek FreeBSD committer. The Pow er To Serve...

Działanie systemu operacyjnego

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

ZiMSK. Routing statyczny, ICMP 1

Systemy Sterowania i Wspomagania Decyzji Wykład 2

Gniazda surowe. Bartłomiej Świercz. Łódź,9maja2006. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda surowe

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

FreeBSD: użytkowanie, administracja, rozwój. Wojciech A. Koszek Politechnika Częstochowska

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Konwersja maszyny fizycznej na wirtualną.

Virtual Grid Resource Management System with Virtualization Technology

Zadanie 1: rozproszona wiedza SKJ (2016)

Załącznik nr 8. do Studium Wykonalności projektu Sieć Szerokopasmowa Polski Wschodniej województwo podkarpackie

Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr piąty

Programowanie MorphX Ax

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

Programowanie obiektowe

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

GATE HTTP ( :31) RELEASE NOTES

Programowanie obiektowe

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Ethernet. Ethernet odnosi się nie do jednej, lecz do wielu technologii sieci lokalnych LAN, z których wyróżnić należy cztery podstawowe kategorie:

Modelowanie i Programowanie Obiektowe

System zarządzania i monitoringu

nr sprawy: BZP ML Wrocław, dn. 20 lutego 2014 r. SPROSTOWANIE DO INFORMACJI DLA WYKONAWCÓW NR 13

Programowanie Zespołowe

Działanie systemu operacyjnego

Zaawansowane metody pomiarów i diagnostyki w rozległych sieciach teleinformatycznych Pomiary w sieciach pakietowych. Tomasz Szewczyk PCSS

Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak

GEO-SYSTEM Sp. z o.o. ul. Kubickiego 9 lok. 5, Warszawa, tel./fax , geo-system@geo-system.com.

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. Klastry serwerów

dr inż. Tomasz Krzeszowski

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć

SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

OPIS i SPECYFIKACJA TECHNICZNA

SNMP, wersje 1, 2c i 3

Instalacja i konfiguracja pakietu iptables

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

HermesEX. Dokumentacja serwisowa v

27/13 ZAŁĄCZNIK NR 4 DO SIWZ. 1 Serwery przetwarzania danych. 1.1 Serwery. dostawa, rozmieszczenie i zainstalowanie 2. serwerów przetwarzania danych.

Jądro systemu operacyjnego

Przesyłania danych przez protokół TCP/IP

Zarządzanie Zapasami System informatyczny do monitorowania i planowania zapasów. Dawid Doliński

Internet. Bramka 1 Bramka 2. Tunel VPN IPSec

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Magistrala LIN

Elektroniczna Legitymacja Studencka jako narzędzie wielofunkcyjne Oberthur Technologies

CENTRALNA BATERIA CB24V

Uniwersalny VLAN. Procedura konfiguracji została oparta na poniższym przykładzie.

Komunikacja sieciowa w rozwiązaniu OpenSSI

Dokumentacja Techniczno ruchowa: Moduł PSI (ver. PSI 1.0)

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Konferencja I3 internet infrastruktury - innowacje. SMOA Devices. Infrastruktura do monitorowania i kontroli zuŝycia energii

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 13 Topologie sieci i urządzenia

Działanie systemu operacyjnego

Wypożyczalnia VIDEO. Technologie obiektowe

Diagramy klas. dr Jarosław Skaruz

Zenoss. Monitorowanie nowoczesnej serwerowni

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Transkrypt:

Netgraph w systemie FreeBSD Wojciech A. Koszek dunstan@freebsd.czest.pl MeetBSD 2005 Kraków 17-19.06.2005

Czym jest Netgraph? Podsystemem jądra FreeBSD Rozszerzeniem możliwości i funkcjonalności kodu obsługi sieci

Dlaczego Netgraph? Ponieważ we FreeBSD już od wersji 3.4- RELEASE stos sieciowy można przedstawić w postaci grafu!

Netgraph jest: Modularny Rozszerzalny Nie narzuca ograniczeń związanych z konfiguracją.

Możliwości: Dostęp do najniższych warstw podsystemu obsługi sieci Implementacja całych rodzin protokołów w podsystemie Netgraph

Bluetooth we FreeBSD Przykład protokołu zaimplementowanego w Netgraph Przykład sterownika zaimplementowanego w Netgraph

Netgraph: używane terminy węzeł (ang. node) uchwyt (ang. hook) krawędź (ang. edge)

Node: instancja węzła w Netgraph Pełni ściśle określoną funkcję: odbiera/wysyła dane odpowiednio je przekształcając odbiera i wysyła dodatkowe dane może posiadać swoją nazwę (użyteczne w konfiguracji)

Hook: uchwyt w Netgraph Służy do łączenia struktury węzłów Jest pośrednikiem między węzłami, po którym poruszają się dane

Nazwy uchwytów: Nazwy funkcjonalne (,,left2right'' w ng_tee(4),,,lower'' i,,downstream'' w ng_ether(4)) Możliwość wyboru nazw dla uchwytów (ng_echo(4))

Egde: "krawędź grafu przepływu": Połączenie poprzez którym dane poruszają się w obu kierunkach Krawędź powstaje poprzez połączenie dwóch instancji węzła, w którym uchwyt odgrywa rolę pośrednika

Netgraph: przepływ danych Dane mogą poruszać się w obu kierunkach po krawędziach grafu Wykorzystuje istniejący kod sieciowy znany z *BSD (bufory mbuf_*/clusters)

Funkcjonalność jako moduły jądra Podsystem ładowany jako KLD: Każdy węzeł ładowany jako KLD Narzędzia wchodzą w skład base-system'u

Krótki przegląd funkcjonalności: ng_ui.ko ng_bridge.ko ng_async.ko ng_cisco.ko ng_atmllc.ko ng_device.ko ng_base.ko ng_echo.ko ng_bpf.ko ng_eiface.ko

..krótki przegląd funkcjonalności.. ng_etf.ko ng_gif_demux.ko ng_ether.ko ng_hole.ko ng_fec.ko ng_hub.ko ng_frame_relay.ko ng_iface.ko ng_gif.ko ng_ip_input.ko

..krótki przegląd funkcjonalności.. ng_ipfw.ko ng_one2many.ko ng_ksocket.ko ng_parse.ko ng_l2tp.ko ng_ppp.ko ng_lmi.ko ng_pppoe.ko ng_mppc.ko ng_pptpgre.ko

..krótki przegląd funkcjonalności.. ng_rfc1490.ko ng_sppp.ko ng_sample.ko ng_tee.ko ng_socket.ko ng_tty.ko ng_source.ko ng_vjc.ko ng_split.ko ng_vlan.ko

Komunikacja z węzłami: Komunikaty wysyłane z przestrzeni użytkownika Komunikaty nie przechodzą przez graf przepływu - są dostarczane osobno, bezpośrednio do instancji węzła Wykorzystywane przez narzędzia z przestrzeni użytkownika

Komunikacja z węzłami (2) Instancje węzła wykorzystują: standardowe komunikaty Netgraph Komunikaty dodatkowe zależne od rodzaju węzła

ngctl(8): adresacja węzłów Węzły posiadają swój model adresowania:. -- węzeł obecny ngeth0: -- dostęp do węzła ng0: ngeth0:ether -- dostęp do uchwytu "ether" węzła "ng0"

Narzędzia: ngctl(8) Główne narzędzie konfiguracyjne nghook(8) Umożliwia podłączenie się do określonego uchwytu węzła. libnetgraph(3) Komunikacja z przestrzeni użytkownika

ngctl(1) + list There are 3 total nodes: Name: ngctl2979 Type: socket ID: 00000013 Num hooks: 0 Name: rl0 Type: ether ID: 00000003 Num hooks: 0 Name: sk0 Type: ether ID: 00000002 Num hooks: 0 +

Konfiguracja również przy pomocy Netgraph? ngctl(4) komunikuje się z jądrem poprzez socket (AF_NETGRAPH) socket od strony jądra udostępniany przez ng_socket(4)

Przykłady ng_echo(4) użyteczne w testowaniu Odbiera dane i komunikaty, którymi następnie odpowiada Dobry jako przykład - wszystkie operacje na innych węzłach wykonuje się analogicznie

Tworzenie nowej instancji węzła: mkpeer <adres> <typ> <uchwyt_adres> <uchwyt_typ> + mkpeer. echo input ehook + list There are 4 total nodes: Name: <unnamed> Type: echo ID: 0000000a Num hooks: 1 Name: ngctl2658 Type: socket ID: 00000009 Num hooks: 1 Name: rl0 Type: ether ID: 00000003 Num hooks: 0 Name: sk0 Type: ether ID: 00000002 Num hooks: 0 + name.:input echo + list There are 4 total nodes: Name: echo Type: echo ID: 0000000a Num hooks: 1 [..] +

Tworzenie nowej instancji węzła (2) Instancja istnieje gdy: Reprezentuje pewien permanentny obiekt w jądrze Interfejs Urządzenie Istnieje przynajmniej jedna aktywna krawędź

Co udało się uzyskać? # nghook -a echo: myhook MeetBSD 2005 0000: 4d 65 65 74 42 53 44 20 32 30 30 35 0a MeetBSD 2005.

ng_tee (4): użyteczne w śledzeniu ruchu Uchwyty: left oraz right, między którymi przechodzi ruch sieciowy left2right & right2left, na których pojawiają się dane przechodzące w odpowiednim kierunku

ng_tee (4): konfiguracja + mkpeer. tee input left + name.:input tee + mkpeer tee: ksocket right inet/stream/tcp + name tee:right sock

Graficzna reprezentacja grafu, Graphviz w /usr/{ports pkgsrc}: + ngctl dot graph netgraph { [..] edge [ weight = 1.0 ]; node [ shape = record, fontsize = 12 ] { [..] } [..] } ;

Obecny stan prac nad Netgraph'em: Pełne wsparcie dla SMP: Netgraph wykorzystuje mechanizmy synchronizacji. Jednak nadal pod kontrolą Giant'a Potrzebne wykorzystanie dobrego mechanizmu sygnalizacji zdarzeń - migracja do EVENTHANDLER(9)?

Koniec Bardzo dziękuję za uwagę. Zapraszam do zadawania pytań