GNU/Linux >> Belajar Linux >  >> Linux

Linux – Perutean Melalui Iptables?

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 .


Linux
  1. Linux – Tabel Perutean “220” Di Kernel Linux 3.2.0-23-generik?

  2. Linux – Penerusan X11 Melalui Ssh?

  3. Linux IPTables:Contoh Aturan Masuk dan Keluar (SSH dan HTTP)

  1. Linux IPTables:Cara Menambahkan Aturan Firewall (Dengan Contoh Izinkan SSH)

  2. Pengantar Dasar-dasar Perutean IP Linux (Bagian 1)

  3. Layanan OS Linux 'iptables'

  1. Cara Mengatur Alamat IP Statis dan Memodifikasi Tabel Perutean di Linux

  2. Cara Menampilkan Tabel Perutean di Linux

  3. kesalahan perutean linux?