Saya memiliki klien vpn ini yang menyentuh tabel perutean dan kemudian terus mengawasinya untuk keluar jika disentuh.
Ini adalah jenis penyiapan yang diperlukan untuk titik akhir, seperti laptop.
Saya ingin menggunakan pc kecil sebagai titik akhir vpn dan merutekannya untuk mesin lain di LAN saya (192.168.0.0/24).
Karena saya tidak dapat menyentuh tabel perutean dan semua paket dipaksa melalui vpns perangkat tun0, saya berpikir iptables dapat membantu saya MEMPOSTING paket ke jaringan 192.168.0.0 kembali ke perangkat eth1.
Saya tidak yakin, bagaimana cara kerjanya, karena setelah keluar dari eth1 ia harus menyelesaikan IPtoMAC karena itu sudah berada di jaringan tujuan, dan saya tidak tahu apakah paket tersebut telah diselesaikan atau tidak akan terjadi sampai mencapai iface.
Ada petunjuk?
Jawaban yang Diterima:
Karena Anda belum memberikan informasi lebih lanjut, saya tidak yakin bagaimana memberikan jawaban terbaik.
Jadi, inilah upaya saya untuk memberi Anda beberapa petunjuk, dengan sengaja mengabaikan bahwa Anda tidak dapat mengubah tabel perutean Anda (Anda akan mengerti mengapa membaca saran saya):
Tergantung pada klien VPN dan di mana itu terhubung ke FIB (basis informasi maju) kernel, Anda mungkin beruntung karena pemantauan FIB, atau, menggunakan tabel perutean ekspresi Anda, oleh VPN hanya terjadi untuk local
dan main
tabel aturan. Anda dapat memeriksa aturan perutean menggunakan
ip rule show
Untuk setiap string di belakang tag “lookup” (yang merupakan entri tabel aturan), Anda dapat menanyakan informasi perutean yang sesuai dari FIB, menggunakan
ip route show table <name>
Dengan sedikit keberuntungan, Anda dapat mencoba membuat aturan yang sesuai dengan kebutuhan Anda dan memberikannya preferensi di tabel pencarian aturan. Misalnya (saya membuat sesuatu untuk memberi Anda permulaan), mari tambahkan aturan baru dengan preferensi yang lebih tinggi daripada main
untuk aliran tertentu:
ip rule add from 192.168.1.0/24 to 10.10.212.1/30 iif eth0 oif eth2 lookup 888 pref 12000
ip rule show
0: from all lookup local
12000: from 192.168.1.0/24 to 10.10.212.1/30 iif eth0 oif eth2 lookup 888
32766: from all lookup main
32767: from all lookup default
Pada sistem Linux standar (Ubuntu dalam kasus posting ini), Anda akan melihat tiga tabel aturan default local
, main
dan default
, di mana Anda biasanya hanya melihat main
tabel saat menjalankan netstat -rn
misalnya.
Sekarang kita ingin mengisi entri FIB di tabel pencarian 888 dengan entri perutean baru:
ip route add default via 10.37.129.4 dev eth2 table 888
Mari kita lihat bagaimana entri perutean kita di tabel 888 terlihat seperti:
ip route show table 888
default via 10.37.129.4 dev eth2
Saya pikir Anda mendapatkan ide. Sekarang, sehubungan dengan kebutuhan perutean spesifik Anda, tidak jelas apa sebenarnya yang ingin Anda capai. Pastikan Anda membersihkan cache perutean saat bermain-main dengan tabel aturan:
ip route flush cache
Perhatikan, bahwa menggunakan arsitektur iproute2 pada dasarnya Anda dapat memfilter dan memodifikasi hampir semua entri FIB; entri aturan bahkan dapat dibuat berdasarkan fwmarks dan/atau pengklasifikasi u32, seperti berikut (contoh diambil dari buku perutean kebijakan):
tc filter add dev eth1 parent ffff: protocol ip prio 1 u32
match ip src 10.1.1.0/24 classid :1
ip rule add fwmark 1 table 1 prio 15000 realms 3/4
ip route add default via 192.168.1.1 table 1 src 192.168.1.254
ip route flush cache
Untuk hal-hal yang rusak dalam entri tabel aturan, bertahun-tahun yang lalu saya telah menyiapkan cuplikan bash kecil untuk mengembalikan sistem saya ke status aturan perutean asli:
: ${KEEP:="local main default"}
while read prio rule; do
continue=0
for keep in ${KEEP}; do
if [ "${rule//lookup ${keep}/}" != "${rule}" ]; then
continue=1
fi
done
if [ ${continue} -eq 0 ]; then
ip rule del prio ${prio%%:*} ${rule//all/0/0}
fi
done < <(ip rule show)
Anehnya, tampaknya setelah lebih dari 10 tahun iproute2
keberadaannya, tampaknya masih sedikit orang yang tahu bahwa ada alam semesta di luar "hancur" klasik alat seperti ifconfig
atau netstat
.