Mengarahkan paket yang ditandai ke perangkat Tun


1

Saya memiliki program kecil yang perlu melakukan berbagai hal dengan pemilihan paket, berdasarkan berbagai aturan iptable. Paketnya adalah MARK edit dengan cara ini:

iptables -t mangle -d 10.10.0.0/16 -j MARK --set-mark 4
iptables -t mangle -d 10.11.0.0/24 -j MARK --set-mark 5
iptables -t mangle -d 10.0.0.1     -j MARK --set-mark 1

Saya juga memiliki perangkat Tun bernama maintun bahwa proses userspace melakukan beberapa I / O aktif.

Bagaimana cara saya memastikan bahwa paket yang terpengaruh dikirim ke / melalui Internet? maintun?

Jawaban:


3

Kau gunakan perutean kebijakan .

Pertama, Anda menandai beberapa paket,

 iptables -A PREROUTING -t mangle -d 10.0.0.1 -j MARK --set-mark 1

kemudian Anda membuat tabel routing baru, sebut saja TunRoutTable :

 echo 201 TunRoutTable >> /etc/iproute2/rt_tables

maka Anda memberitahu pc Anda untuk menggunakan tabel TunRoutTable untuk paket yang ditandai 1 :

 ip rule add fwmark 1 table TunRoutTable

dan sekarang Anda memberikan gateway default untuk tabel perutean baru:

 ip route add default via XXX.YYY.WWW.ZZZ dev tun0 table TunRoutTable

di mana XXX.YY.WWW.ZZZ adalah alamat ip (dalam notasi quad bertitik biasa) dari gateway Anda pada antarmuka Tun0.


Terima kasih! Aku s ip rule dan ip route dijamin bekerja di distro "semua" yang mendukung iptables? Lebih baik bagi saya untuk mencoba menyimpannya di iptables jika tidak. Kemungkinan saya perlu menjalankan ini pada berbagai distro, mulai dari Arch ke Centos.
Jarmund

1
perintah ip adalah bagian dari paket iproute2 yang diinstal secara default, atau dapat diunduh melalui manajer paket distro Anda. Perlu diingat bahwa iproute2 adalah baru utilitas jaringan standar, dan telah menggantikan semua utilitas sebelumnya seperti ifconfig, netstat, dan sebagainya.
MariusMatutiae

Baiklah, asalkan itu adalah rilis terbaru, kemungkinan besar termasuk di bawah iproute2. Sepertinya aku harus mengikuti perkembangan zaman, heh.
Jarmund
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.