Mengapa Linux memerlukan pemindahan IP dari antarmuka eth ke antarmuka bridge

27

Ketika antarmuka jaringan (misalnya, eth0) ditambahkan ke jembatan Linux (misalnya, br0), alamat IP harus dihapus dari eth0 dan ditambahkan ke br0 agar jaringan berfungsi dengan baik.

Saya ingat pernah membaca di beberapa file readme Open vSwitch (yang saya tidak dapat temukan sekarang) yang memindahkan alamat IP diperlukan karena cara kernel Linux diimplementasikan. Ada apa dengan implementasi Linux yang mengharuskan alamat IP dipindahkan dari NIC ke bridge?

Lorin Hochstein
sumber

Jawaban:

10

NIC mewakili kabel uplink. Kabel adalah layer 1, bukan layer 3.

Sekarang Bridge berfungsi sebagai perangkat yang ditujukan untuk lalu lintas jaringan (masuk) di server - baik pada lapisan 2 (Ethernet / MAC) dan / atau lapisan 3 (IP).

Jadi perangkat yang merespons permintaan ARP adalah bridge - yang bagus, karena perlu mendistribusikan lalu lintas ke antarmuka lain di bridge itu.

Jika perangkat yang merespons adalah NIC, lalu lintas tidak akan diteruskan lebih jauh ke jembatan.

Oleh karena itu pada beberapa panduan bahkan disarankan untuk menghapus MAC dari (uplink) NIC.

Nils
sumber
Jadi, berbicara tentang mekanisme linux yang sebenarnya (bukan tentang praktik yang baik), itu berarti bahwa jika saya meletakkan antarmuka di bawah jembatan, itu tidak lagi dianggap oleh kernel sebagai antarmuka Ad2 L2 / L3? benar kan Karena tidak ada yang mencegah menetapkannya MAC / IP, itu membingungkan.
Jocelyn delalande
1
@Jocelyn sebaliknya. Jika masih dialamatkan sebagai L2 / 3 itu akan memblokir lalu lintas lainnya. Jadi itu tidak harus diatasi secara langsung jika di jembatan.
Nils
ok, tetapi secara default port tetap adressable pada L2 (membuat MACaddr jika saya tidak menghapusnya), kan? mengapa itu membiarkan arus lalu lintas L2 ke jembatan?
Jocelyn delalande
2
@Jocelyn Selama itu tidak menanggapi arp-permintaan semuanya akan baik pada l2 / 3. Jika tidak menangkap paket, ia akan membiarkan paket melewati bagian jaringan kernel.
Nils
Baik. Saya bertanya karena saya perhatikan bahwa beberapa trafik dijatuhkan ketika memberikan alamat ke port; tapi itu disebabkan oleh rp_filter.
Jocelyn delalande
1

Bridge mendistribusikan lalu lintas ke tempat yang harus dilalui ketika beberapa antarmuka berada dalam sebuah bridge. Kurang lebih, antarmuka individu di jembatan bekerja pada lapisan 2 sekarang sesuai dengan apa yang ditentukan jembatan, tidak secara mandiri pada lapisan 3. Jadi, Anda ingin mengatasi jembatan secara keseluruhan, bukan antarmuka individu di dalamnya.

LawrenceC
sumber