2011-11-15 27 views
8

Değiştirilmiş paketleri netfilter çengeliyle aldıklarından gönderebilecek bir çekirdek modülü oluşturmaya çalışıyorum. here numaralı kod iskeletini kullanıyorum. geçti içinde dev net_device olmak benim yarattığım ham soket olmanın socketptrBir çekirdek modülü aracılığıyla bir paket gönderme

len = sendpacket(sockptr, dev, IPPROTO_TCP, duplicate, ntohs(dupiph->tot_len)); 

: sendpacket fonksiyonu bu tarafından çağrılan

: Ben sadece bu kodu kullanarak çekirdek içinde bir ham soket oluşturma kancalama işleviyle bana ve orijinal paketin değiştirilmiş bir kopyası olmaktan iki kopya.

Çağrının dev_queue_xmit değerine dönüşü, paketin başarıyla aktarıldığını gösterir, ancak kablodaki paketi göremiyorum. İki sorum var: Birincisi, neler olduğunu daha iyi ayıklamak istiyorum ki, bu konuyla ilgili herhangi bir tavsiye çok takdir ediliyor. Ayrıca, ben soket oluşturma düzgün işliyor mu, yoksa eksik bir yapılandırma türü varsa merak ediyorum. Bu benim için her şey çok yeni, bu yüzden çok aptalca bir şey eksik olabilir.

+0

"Tel üzerindeki paketi göremiyorum" derken ne yaptığınızı açıklayabilir misiniz? Wireshark veya başka bir sniffer programı yüklemenizi öneririm. – Michel

+0

Üzgünüm, açıklığa kavuşmuş olmalıyım. Kullanılan arayüz, openvz kaplarının kullandığı arayüz olan "venet0" dir. Wireshark kullanarak bu arayüzde trafik gözlemliyordum ve paketleri görmedim. – bschulte3

+0

İptables'lerin bu paketleri geçmek için doğru şekilde yapılandırıldığından emin misiniz? – Dan

cevap

İlgili konular