Bagaimana saya bisa menjembatani dua antarmuka dengan ip / iproute2?

23

Saya tahu cara membuat jembatan menggunakan brctl, tapi saya disarankan untuk tidak menggunakan ini lagi, dan menggunakan iproute2atau ipsebagai gantinya (karena brctlsudah usang mungkin). Dengan asumsi ini adalah saran yang bagus, bagaimana cara membuat jembatan menggunakan ip? Sebagai contoh, katakan saya ingin menjembatani eth0dan eth1.

Totem
sumber

Jawaban:

26

Anda dapat menggunakan bridgeobjek ip ipperintah, atau bridgeperintah yang membuat bagian dari iproute2paket.

Manipulasi tautan dasar

Untuk membuat jembatan bernama br0, yang memiliki eth0dan eth1sebagai anggota:

ip link add name br0 type bridge
ip link set dev br0 up
ip link set dev eth0 master br0
ip link set dev eth1 master br0

Untuk menghapus antarmuka dari jembatan:

ip link set dev eth0 nomaster

Dan akhirnya, untuk menghancurkan jembatan setelah tidak ada antarmuka adalah anggota:

ip link del br0

Manipulasi penerusan

Untuk memanipulasi aspek lain dari jembatan seperti FDB ( Forwarding Database ) saya sarankan Anda untuk melihat bridge(8) perintah . Contoh:

Tampilkan penerusan basis data pada br0

bridge fdb show dev br0

Nonaktifkan port ( eth0) dari pemrosesan BPDU . Ini akan membuat antarmuka menyaring bpdu yang masuk

bridge link set dev eth0 guard on

Mengatur Biaya STP ke port ( eth1misalnya):

bridge link set dev eth1 cost 4

Untuk mengatur root guard di eth1:

bridge link set dev eth1 root_block on

Biaya dihitung menggunakan beberapa faktor, dan kecepatan tautan adalah salah satunya. Menggunakan biaya perbaikan dan menonaktifkan pemrosesan BPDU dan mengaktifkan root_block entah bagaimana mirip dengan guard-rootfitur dari switch.

Fitur lain seperti mode vepa, veb dan hairpin dapat ditemukan pada bridge linkdaftar sub-perintah.

Manipulasi aturan VLAN

The vlanobjek dari perintah jembatan akan memungkinkan Anda untuk membuat masuknya / filter egress pada jembatan.

Untuk menampilkan apakah ada filter jalan masuk / keluar:

bridge vlan show

Untuk menambahkan aturan ke antarmuka yang diberikan:

bridge vlan add dev eth1 <vid, pvid, untagged, self, master>

Untuk menghapus aturan. Gunakan parameter yang sama seperti vlan adddi akhir perintah untuk menghapus aturan tertentu.

bridge vlan delete dev eth1

Hal-hal terkait:

Komunitas
sumber
Ada beberapa parameter bridge yang tidak dapat Anda atur dengan bridgeutil, misalnya ip link set br0 type bridge stp_state 1, dapat melihat lebih banyak denganip link help bridge
Cheetah
2

Setara dengan brctl showis bridge link. Anda dapat menunjukkan status jembatan per perangkat dengan bridge link show dev eth0tetapi jembatan melihat antarmuka jaringan dan memberi tahu Anda jembatan mana yang dimiliki - bukan antarmuka jaringan mana yang dimiliki jembatan tertentu.

Sepertinya tidak ada yang setara dengan brctl show br0.

Dominik Heidler
sumber