Kullanıcı programından TUN / TAP tüneli nasıl kullanılır?


9

Son zamanlarda Linux TUN / TAP arayüzlerinin varlığını keşfettim ve hala onları anlamaya çalışıyorum. Ben temel bir kavram olsun düşünüyorum - bir ağ arabirimi taklit ve sahte bir veri aktarmak yerine bir kullanıcı alanı programına geçirilen sözde aygıtlar oluşturulur.

Bu tüneli kullanmak için ilgisiz bir programı nasıl yönlendirirsiniz?

Örneğin, tünel oluşturulmadan önce sistemim yalnızca eth0 ve lo, normal ethernet arabirimi (yerel ağıma kablolu) ve geridöngü arabirimini içerir. Bir program bir tünel oluşturup yapılandırdıktan sonra, yerel ağımda bulunan ancak kullanımda olmayan bir IP adresi verdiğim yeni bir gr0 arabirimim var (bu yüzden hepimiz aynı alt ağdayız). İlgisiz bir programı bu 'tünelden' nasıl yararlanabilirim? TCP bağlantısı kullanan basit bir Python mesajını geçen istemci / sunucu uygulamam olduğunu, tüneli kullanacak şekilde nasıl yapılandırabilirim?

Temel bir şeyi kaçırdığım için özür dilerim, ama her zamanki gibi kendimi bir şeyler şemasında karıştırmayı başardım. Yine, tek istediğim bu tüneli kullanan basit bir TCP programına sahip olmak.

Teşekkürler!

Yanıtlar:


7

Her zaman "tünel" değildir. TUN / TAP sadece belirli NIC sürücüleridir. Ağ yığını açısından diğer ağ arabirimleri gibi davranırlar: IP adresleri olabilir, noktadan noktaya veya yayın arabirimleri olabilir. Yönlendirme kuralları onlar için de geçerlidir. Ancak bu ağ arabirimlerinden birine yazılan tüm trafik, işleme için bazı kullanıcı alanı programına gider ve kullanıcı alanı programı tarafından doğrudan yazılan tüm veriler /dev/tunX, ağ yığını için gelen paketler gibi görünür.

Normal tünel oluşturma kurulum sunucusunda ve istemcisinde adresleri atanmış TUN aygıtları bulunur. Her ikisinde de yapılandırılmış yönlendirme tabloları, gerekli trafiği bu TUN cihazlarına yönlendirir. Paket tun0'a yönlendirildiğinde, çekirdek bu paketi örneğin TCP bağlantısı yoluyla uzak makinedeki (sunucu) başka bir programa gönderen kullanıcı alanı programına (istemci) gönderir. Uzak makinede başka bir program (sunucu) paketi istemciden alır ve kendi paketine yazar /dev/tunX, bu paketi ağ yığınına "enjekte eder". Ve tünellenmiş paketler diğer her şey gibi işlenir.


1
Bu yüzden (benim amacım için) yönlendirme tablosunu trafiği bu arayüzlere yönlendirecek şekilde yapılandırmak. Eksik olduğum nokta buydu, ama şimdi bir çözüm bulabilmeliyim. Ayrıca, bazı şeyleri temizlediği için açıklamayı takdir ediyorum. Teşekkürler!
Bay Shickadance

2
"Rota ekleme <TUN IP ADDR> dev gr0" kullanarak sona erdi. Bu, trafiği yeni arayüz üzerinden yönlendirmemi sağladı. Tekrar teşekkürler!
Bay Shickadance
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.