2011-05-25 39 views
7

İki geçerli ağ arabirimine sahip iki makineye, eth0 Ethernet arabirimine ve gr0 bağlantı/bağlantı arabirimine sahibim. Amaç, gr0 numaralı arabirimi kullanarak A makinesinde bir TCP bağlantısı başlatmak, ancak B makinesinden gelen yanıtları (ACK'ler vb.) Ethernet arabiriminden geri dönecek, . Böylece makine A, gr0 üzerinde bir SYN gönderir ve makine B, SYN'yi kendi gr0'dan alır ancak SYN/ACK'yi eth0 aracılığıyla geri gönderir. Tun/musluk cihazı bir GNU Radyo kablosuz bağlantıdır ve sadece yanıtların Ethernet üzerinden gelmesini istiyoruz.TCP/IP yanıtlarını farklı bir arabirim üzerinden nasıl yönlendirilir?

Bunu gerçekleştirmenin en kolay yolu nedir? TCP/IP hakkında daha fazla araştırma yapmam gerekiyor, ancak başlangıçta kaynak-sahte giden paketlerin alıcıya sahte adrese (eth0'a yönlendirilmesi gereken) yanıt vereceğini söylüyordum. Bu, IP'leri gr0 aracılığıyla tun/musluk arayüzlerinden yönlendirmeyi ve diğer trafiği 'a bırakmayı içerir.

Linux kullanıyoruz ve bir Python çözümü tercih edilir.

Baktığınız için teşekkürler!

+0

Ayrıca, çekirdeğin alınan paketle ne yaptığını tanımlamak için iyi bir yöntem nedir? Bunu atıyor mu? Onu '/ dev/null' olarak gönder? Evet, bu ayrı bir soru olarak muhtemelen daha iyi. –

+0

'netstat -s' çıktısı, yalnızca çekirdek düzeyinde olsa da, çekirdeğin paketlerle ne yaptığını (bırakılan/iletilen/bağlantı sayıları) size verebilir. Telde neler olduğuna bakmak için 'tcpdump' veya' wireshark' kullanın. –

+1

Ehliyetle yaklaştığımda, alınan paketleri görüyorum, ancak yanıt oluşturulmuyor. Çekirdek, bir sebepten dolayı paketleri sessizce atıyor gibi görünüyor. –

cevap

5

Her sistemde lo arabirimine ek bir adres ekleyebilir ve bu yeni adresleri TCP bağlantı uç noktaları olarak kullanabilirsiniz. Daha sonra, her makinenin diğer makinenin lo adresine yönlendirmek için hangi yolu aldığını yönlendirmek için statik yollar kullanabilirsiniz. Örneğin

:

Machine A: 
    ip addr add 1.1.1.1/32 dev lo 
    ip route add 2.2.2.2/32 dev eth0 via <eth0 default gateway> 

Machine B: 
    ip addr add 2.2.2.2/32 dev lo 
    ip route add 1.1.1.1/32 dev gr0 

sonra makine A 1.1.1.1 bağlanan ve 2.2.2.2 bağlanabilir.

2

Mars paketlerinin net.ipv4.conf.all.log_martians günlüğünü etkinleştirmeyi ve etkilenen arabirimlerde net.ipv4.conf.<interface>.rp_filter ters yol filtrelemeyi devre dışı bırakmayı düşünebilirsiniz.

Bu sysctl vars, sysctl yardımcı programı ve/veya /proc dosya sistemi aracılığıyla erişilebilir.

İlgili konular