aturan iproute2 dan iptables NAT ... apa bedanya?

8

Kami memiliki 2 koneksi ISP yang berbeda. "IT guy" kami sebelumnya mengatur firewall kami seperti ini:

Ketika /etc/rc.localdieksekusi pada startup, ia melakukan banyak ip rule adddan ip route addperintah untuk merutekan host internal tertentu untuk menggunakan koneksi ISP tertentu.

Kemudian di akhir /etc/rc.local, ia menjalankan iptablesaturan firewall kami yang dibuat oleh Firewall Builder. iptablesAturan - aturan ini memiliki kedua pengaturan Kebijakan dan aturan NAT di dalamnya.

Apa yang saya tidak mengerti, mengapa dia menggunakan iproute2untuk menentukan aturan dan rute tetapi juga menentukan aturan NAT untuk iptables? Kenapa dia tidak melakukan semuanya dalam satu atau yang lain alih-alih menggunakan keduanya? Mungkinkah dia telah menyingkirkan iproute2aturan dan rute dan hanya memasukkan semua aturan yang sama ke iptablespengaturan NAT?

Jake Wilson
sumber

Jawaban:

13

Meskipun ada beberapa tumpang tindih dalam fungsi antara dua alat, ada banyak hal yang hanya dapat Anda lakukan dari salah satu alat saja. iproute2tidak dapat melakukan apa pun dengan aturan firewall netfilter. iptablestidak dapat melakukan hal-hal seperti menetapkan alamat ip.

Bahkan di tempat-tempat di mana fungsi tampaknya tumpang tindih, itu tidak benar-benar tumpang tindih. Misalnya Anda dapat melakukan terjemahan alamat dengan keduanya iproute2dan iptables. Tetapi terjemahan alamat yang dapat Anda lakukan dengan iproute tidak mempertimbangkan kondisi apa pun dan sama sekali tidak menulis ulang paket. Ada beberapa protokol jaringan seperti FTP, SIP, H.323, dll di mana alamat IP termasuk dalam paket, dan bukan hanya di header. Jika Anda menggunakan metode iproute untuk terjemahan alamat, tipe-tipe protokol tersebut akan rusak. Netfilter melakukan pekerjaan yang jauh lebih baik di terjemahan alamat.

Dalam kebanyakan kasus di mana fungsi tumpang tindih itu ditangani dengan cara yang berbeda. Mungkin dengan modul untuk melakukan routing iptables, tetapi terakhir kali saya memeriksa bahwa modul tidak pada kebanyakan distribusi untuk tidak memiliki netfilter / iptablesditambal dengan target ROUTE . Jika target itu tidak tersedia, Anda tidak dapat menggunakan netfilter untuk routing kecuali Anda sedang ingin mengkompilasi kernel Anda sendiri. Keputusan Anda tentang alat mana yang akan digunakan akan dibuat hanya karena fitur tidak tersedia dalam versi alat yang Anda jalankan. Bahkan jika Anda memiliki target ROUTE, dari apa yang saya mengerti, itu tidak efisien untuk menggunakan netfilter untuk keputusan routing seperti halnya melakukan routing dengan tabel routing standar dengan iproute2memanipulasi.

Banyak juga yang menggunakan alat yang tepat untuk pekerjaan yang tepat. iproute2terutama dirancang untuk mengelola perutean dan alamat di komputer Anda. iptables/ Netfilter dibangun untuk firewall.

Saya pikir di tempat-tempat di mana seseorang bisa menggunakan alat apa pun, mereka biasanya akan menggunakan alat yang paling mereka kenal. Saya tahu saya menggunakan target MARK iptablesuntuk menandai beberapa paket untuk satu rute atau yang lain meskipun saya bisa menulis aturan yang sama dengannya iproute2.

Sakit kepala
sumber