wie mit sk_buff.h arbeiten?

19/10/2007 - 11:00 von Dirk Bossenz | Report spam
hallo,

ich brauche von allen TCP-Paketen welche über eine Schnittstelle von
einem Router empfangen werden, einige Informationen (Sequenznummer,
Statusbits, Ziel-IP) aus dem IP- und TCP-Header sowie die Ankunftszeit.

sk_buff.h liefert wir die notwendigen Funktionen, letztlich ist es
jeweils ein Zeiger auf die Adressbereiche im Speicher wo die Pakete
liegen und liefern die benötigten Informationen zurück.

Wie arbeite ich mit dieser Header-Datei?

Mittels netif_rx(struct sk_buff *skb) wird erfahre ich die Ankunft eines
neuen Paketes und dann kann ich einfach mittels:
struct sk_buff {

struct timeval stamp;
union {
struct tcphdr *th;
} h;

struct dst_entry *dst;

Mir die entsprechenden Felder des gerade eingegangen Paketes raussuchen?


Geht dies noch einfacher - für jemanden der nicht so richtig C kann -
mit anderen Bibliotheken die z.B. für Python erreichbar sind.

Libcap geht wohl nicht, da diese die Netzwerk-Schnittstelle im
promisco-Mode benötigt, der Router soll jedoch die ganze Zeit im
produktiven Einsatz sein.


danke
Dirk
 

Lesen sie die antworten

#1 Enrik Berkhan
19/10/2007 - 12:28 | Warnen spam
Hi,

Dirk Bossenz wrote:
Libcap geht wohl nicht, da diese die Netzwerk-Schnittstelle im
promisco-Mode benötigt, der Router soll jedoch die ganze Zeit im
produktiven Einsatz sein.



Zwar keine fertige Lösung, aber sieh dir doch mal das ULOG target von
iptables und ulogd an.

Gruß,
Enrik

Ähnliche fragen