cara membuat host di Lan untuk meneruskan traffic antara host lain di LAN yang sama di Linux

0

Saya menetapkan topologi tes di Mininet sebagai berikut:

sudo mn --mac --topo linear,3  --switch ovsk --controller=remote,ip=10.0.2.15,port=6653

seperti ini:
simple topology
Saya ingin lalu lintas dari H1 ke H3 mengunjungi H2 sebelum diteruskan ke H3. Saya telah menetapkan aturan aliran pada switch saya (OpenvSwitch) untuk melakukan itu. Namun, ketika lalu lintas pergi ke H2, itu akan turun di sana.

Konfigurasi apa yang harus saya tambahkan ke H2 (Ubuntu 14.04) untuk memungkinkan H2 meneruskan lalu lintas yang tidak ditakdirkan untuknya, atau berasal dari sana?

Archaj
sumber
Apa yang Anda gunakan untuk membuat LAN? Mininet? Pisahkan VM sama sekali dengan sakelar? Tolong katakan. Itu membantu.
ytpillai
Saya menggunakan mininet dengan pengontrol SDN lampu sorot sebagai berikut: sudo mn --mac --topo linear, 3 - switch ovsk --controller = remote, ip = 10.0.2.15, port = 6653
Archaj
Saya menggunakan mininet dan pengontrol lampu sorot, inilah topologi saya: sudo mn --mac --topo linear, 3 - switch ovsk --controller = remote, ip = 10.0.2.15, port = 6653
Archaj

Jawaban:

0

Fitur yang saya pikir perlu Anda aktifkan adalah Penerusan IP .

Ini dapat diakses dengan sysctl utilitas:

sysctl -a | grep forwarding menghasilkan (di Mac saya):

net.inet.ip.forwarding: 0
net.inet6.ip6.forwarding: 0

Ini mungkin terlihat sedikit berbeda di Ubuntu. Itu 0 nilai berarti Penerusan IP dinonaktifkan.

Bagi saya untuk mengaktifkan IP Forwarding (v4), saya akan, sebagai root:

[nevin-mac-mini:~] root# sysctl net.inet.ip.forwarding=1
net.inet.ip.forwarding: 0 -> 1

Ini akan segera berlaku, namun tidak akan bertahan setelah reboot Untuk membuatnya begitu, saya akan menempatkan

net.inet.ip.forwarding=1 di /etc/sysctl.conf.

Nevin Williams
sumber
Terima kasih Nevin atas jawaban Anda, saya telah mengaktifkan penerusan menggunakan perintah ini di ubuntu 14.04: sysctl -w net.ipv4.ip_forward = 1 Namun lalu lintas masih dijatuhkan di host 2, saya menggunakan Tcpdump untuk melihat lalu lintas masuk, tetapi ada tidak ada lalu lintas keluar dari antarmuka host 2.
Archaj
Apakah semua host di jaringan IP yang sama? Jika demikian, H2 akan mengharapkan bahwa H1 dan H3 berbicara langsung satu sama lain, dan dengan demikian tidak akan berpartisipasi dalam routing: Jika itu dilakukan, itu akan menempatkan data duplikat ke jaringan. Harap sertakan tabel perutean dari setiap host, dengan netstat -rn atau perintah serupa.
Nevin Williams
Terima kasih Williams, akhirnya saya bisa melakukannya dengan menulis ulang alamat tujuan Mac di sakelar. masalahnya adalah, host 2 menjatuhkan paket yang tidak ditakdirkan untuk itu (alamat tujuan Mac berbeda). dengan demikian dengan menulis ulang alamat Mac tujuan ke alamat Mac host2 di saklar 2, dan dengan mengaktifkan penerusan IP di host 2, lalu lintas berhasil diarahkan.
Archaj
Mungkin mengaktifkan mode "Promiscuous" NIC mungkin menjaga paket cukup lama untuk meneruskannya ...
Nevin Williams
Proxy-ARP mungkin merupakan jalan lain juga.
Nevin Williams
0

Terima kasih atas jawaban Anda, saya akhirnya bisa melakukannya dengan menulis ulang alamat Mac tujuan dari paket-paket di saklar. masalahnya adalah, host 2 menjatuhkan paket yang tidak ditakdirkan untuk itu (alamat tujuan Mac berbeda). dengan demikian dengan menulis ulang alamat Mac tujuan ke alamat Mac host2 di saklar 2, dan dengan mengaktifkan penerusan IP di host 2, lalu lintas berhasil dialihkan. jadi langkah pertama, adalah memberitahu S2 untuk mengirim lalu lintas ke Host 2 dengan tujuan Mac dari host 2. dan langkah 2, adalah memberi tahu S2 untuk menulis ulang alamat Mac lalu lintas yang kembali dari host 2 ke host 3 alamat Mac (untuk mengembalikan alamat mac asli).

Archaj
sumber