Bagaimana cara merutekan hanya subnet tertentu (sumber ip) ke antarmuka tertentu?

31

Bagaimana cara merutekan hanya subnet tertentu (sumber ip) ke antarmuka tertentu?
OS: Linux

Saya tahu saya bisa melakukannya dengan mudah berdasarkan IP tujuan dengan menggunakan sesuatu seperti

route add 1.2.3.4/24 dev eth4

tapi saya tidak melihat bagaimana bisa rute berdasarkan IP sumber.

Alex
sumber

Jawaban:

30

Anda perlu menggunakan perutean berbasis kebijakan. Semacam seperti

ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>

<name>dapat berupa nama tabel /etc/iproute2/rt_tablesatau Anda dapat menggunakan nomor numerik ...

Ini cukup banyak mengatakan, bahwa semua lalu lintas dari 1.2.3.4/24akan dialihkan menggunakan tabel routing <name>. IIRC tidak menggunakan tabel default setelah melalui ini, jadi jika Anda membutuhkan rute lain (mis. Gateway default), Anda perlu menambahkannya ke tabel juga.

Rubah
sumber
1
satu koreksi (tetapi tidak yakin apakah Anda juga akan bekerja. untuk perintah kedua: ip route add default dev eth4 table <name>( tabledirektif harus pada akhirnya saya pikir, sama seperti pada perintah pertama ... juga defaultdapat diganti dengan subnet, seperti pada contoh Anda) )
Alex