Routing Antar Beberapa Subnet

10

Katakanlah saya ingin membuat jaringan internal dengan 4 subnet. Tidak ada router atau saklar pusat. Saya memiliki "subnet manajemen" yang tersedia untuk menautkan gateway pada keempat subnet (192.168.0.0/24). Diagram umum akan terlihat seperti ini:

10.0.1.0/24 <-> 10.0.2.0/24 <-> 10.0.3.0/24 <-> 10.0.4.0/24

Dengan kata lain, saya mengkonfigurasi satu kotak linux pada setiap subnet dengan 2 antarmuka, 10.0.x.1 dan 192.168.0.x. Ini berfungsi sebagai perangkat gateway untuk setiap subnet. Akan ada beberapa host untuk setiap subnet 10.x / 24. Host lain hanya akan memiliki 1 antarmuka yang tersedia sebagai 10.0.xx

Saya ingin setiap host dapat melakukan ping satu sama lain di subnet lainnya. Pertanyaan saya pertama: apakah ini mungkin. Dan kedua, jika demikian, saya perlu bantuan mengkonfigurasi iptables dan / atau rute. Saya sudah bereksperimen dengan ini, tetapi hanya bisa datang dengan solusi yang memungkinkan ping dalam satu arah (paket icmp hanya contoh, saya akhirnya ingin kemampuan jaringan penuh antara host misalnya ssh, telnet, ftp, dll) .

greyline
sumber

Jawaban:

8

Ok, sehingga Anda memiliki lima jaringan 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24dan 192.168.0.0/24, dan empat kotak routing antara mereka. Katakanlah kotak routing yang memiliki alamat 10.0.1.1/192.168.0.1, 10.0.2.1/192.168.0.2, 10.0.3.1/192.168.0.3, dan 10.0.4.1/192.168.0.4.

Anda perlu menambahkan rute statis ke 10.0.x.0/24jaringan lain di setiap kotak router, dengan perintah seperti ini (DIBERIKAN!):

# on the 10.0.1.1 box
ip route add 10.0.2.0/24 via 192.168.0.2
ip route add 10.0.3.0/24 via 192.168.0.3
ip route add 10.0.4.0/24 via 192.168.0.4

dan rute yang sesuai pada kotak router lainnya. Pada kotak non-perutean dengan hanya satu antarmuka, atur rute default ke titik 10.0.x.1. Tentu saja Anda juga harus menambahkan alamat statis dan netmask pada semua antarmuka.

Perhatikan juga bahwa linux tidak berfungsi sebagai router secara default, Anda harus mengaktifkan penerusan paket dengan:

echo 1 > /proc/sys/net/ipv4/ip_forward

The ipperintah di atas tidak membuat pengaturan gigih, bagaimana melakukan hal itu tergantung pada distribusi.

Seperti yang saya katakan, saya belum menguji ini dan mungkin telah melupakan sesuatu.

Johan Myréen
sumber
Terima kasih atas bantuannya di sini. Apa yang Anda sarankan berfungsi ketika saya melakukan ping ke router (10.0.1.1 hingga 10.0.2.1), tetapi tidak ketika saya melakukan ping ke host yang berbeda. Misalnya, melakukan ping dari 10.0.1.1 ke 10.0.2.2 mengakibatkan tidak ada lalu lintas yang merutekan ke host 10.0.2.2. Apakah Anda menyarankan untuk melakukan manipulasi iptables? Saya telah bereksperimen dengan ini selama beberapa hari tetapi tidak berhasil.
greyline
Teknik routing standar harus memadai. Berikut ini daftar periksa: 1. semua alamat harus diatur pada host (mis. Ip addr add 10.0.2.2/24 dev eth0), 2. rute harus ditetapkan pada empat kotak router seperti di atas, 3. rute default pada kotak non-router harus diatur untuk menunjuk ke kotak routing pada jaringan (misalnya ip rute tambahkan default melalui 10.0.1.1), 4. cat / proc / sys / net / ipv4 / ip_forward pada empat kotak router harus cetak "1".
Johan Myréen
Saya memperbaiki kesalahan dalam perintah rute ip di atas. Saya juga benar-benar menguji pengaturan ini, meskipun hanya dengan empat mesin: dua kotak perutean dan dua host di sisi 10.0.x.0. Berhasil!
Johan Myréen
Johan, terima kasih atas masukan tambahan Anda. Pengaturan ini tidak berfungsi. Ternyata gambar Linux yang saya gunakan memiliki aturan iptables default yang bermasalah. Terima kasih telah membantu saya dalam mempelajari hal ini.
greyline