CATATAN: Jika perangkat klien (
computer B
dalam contoh ini) ingin mendapatkan internet melalui komputer gateway, mungkin mereka masih perlu mengonfigurasi resolusi server nama. Ini tidak dijelaskan di sini (gateway tidak harus melayani internet).
Saya mencoba memahami dasar-dasar perutean jaringan.
Jadi saya bereksperimen dengan LAN saya (saya tidak perlu internet untuk saat ini, hanya komunikasi LAN).
Saya tahu masalah konfigurasi jaringan adalah hal yang agak rumit, tetapi saya hanya mencoba membuat komputer (katakanlah A) untuk bertindak sebagai gateway untuk yang lain (katakanlah B) (keduanya menjalankan Ubuntu Linux).
Saya hanya perlu B untuk dapat mencapai router, yang hanya dapat dijangkau untuk A.
Inilah masalahnya:
Router for computer A --> 192.168.0.1
Computer A - eth0 --> 192.168.0.2
Computer A - eth1 --> 192.168.1.1
Computer B - eth0 --> 192.168.1.2
Komputer A menghubungkan denda ke router .
Komputer A dan B terhubung dengan baik (ping, SSH ... dll) di antara mereka .
Komputer B tidak dapat mencapai router untuk komputer A.
Saya berpikir bahwa menambahkan B Computer A sebagai gateway default dan mengaktifkan IP Forwarding pada A akan membuat B dapat mencapai router untuk A:
luis@ComputerB:~$ sudo route add default gw 192.168.1.1
luis@ComputerB:~$ sudo routel
target gateway source proto scope dev tbl
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
192.168.1.0 broadcast 192.168.1.2 kernel link eth0 local
192.168.1.2 local 192.168.1.2 kernel host eth0 local
192.168.1.255 broadcast 192.168.1.2 kernel link eth0 local
default 192.168.1.1 eth0
169.254.0.0 16 link eth0
192.168.1.0 24 192.168.1.2 kernel link eth0
Dan di Komputer A (gerbang perantara):
root@ComputerA:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
Komputer B masih dapat melakukan ping ke komputer A, tetapi router untuk A tidak menjawab:
luis@ComputerB:~$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
^C
(Tidak ada respons ping)
Apakah ini prosedur yang benar untuk membuat komputer yang menjalankan Linux bertindak sebagai gateway untuk komputer lain secara sederhana?
sumber
Agar perutean berfungsi dengan benar antara dua komputer Linux yang bertindak sebagai gateway, ada beberapa hal yang perlu dilakukan:
Rute harus ditambahkan ke kedua antarmuka pada router.
Gateway lokal harus ditentukan untuk jaringan jarak jauh di kedua gateway. Ini memungkinkan komputer di jaringan lokal untuk mengetahui ke mana harus mengirim paket untuk jaringan jarak jauh. Gateway harus menjadi alamat IP komputer yang akan mengirim paket ke jaringan jarak jauh.
IP Masquerading harus diaktifkan untuk memungkinkan NAT berfungsi di antara gateway.
Anda mungkin perlu menentukan sumber dan tujuan karena Anda menggunakan antarmuka yang sama untuk menyamar:
dan gateway lainnya:
Untuk setiap gateway, lalu lintas jaringan lokal harus diterima pada antarmuka yang sesuai seperti ini:
atau
Ada banyak tautan dan sejenisnya pertanyaan dapat dijadikan rujukan untuk menyelesaikan masalah yang Anda hadapi.
Apa yang tampaknya salah dalam kasus khusus ini adalah bahwa pengaturan rute dan gateway tidak selesai pada kedua komputer dan Terjemahan Alamat Jaringan (NAT) belum diaktifkan menggunakan iptables, memungkinkan gateway untuk membawa permintaan dari komputer di subnet lain atas nama mereka.
Melakukan hal ini juga penting ketika mengatur koneksi internet karena Anda bertanggung jawab untuk salah satu ujung koneksi (mis. Menggunakan komputer Linux sebagai gateway untuk koneksi PPPoE).
sumber