Quản lý Ethernet Network Bridge trên Linux Image Quản lý Ethernet Network Bridge trên Linux

Bài viết này giới thiệu với các bạn về cách quản lý Ethernet Network Bridge trên hệ điều hành Linux qua các cách sử dụng lệnh brctl dưới đây giúp cho các bạn có thể cấu hình bridge trên Linux và tự học Linux cơ bản dễ dàng hơn.

1. Giới thiệu về lệnh brctl

Giới thiệu về lệnh brctl

Lệnh brctl (Bridge Control) được sử dụng để tạo và thao tác với ethernet brctl. Được sử dụng khi bạn có nhiều mạng ethernet trên máy chủ và bạn muốn kết hợp chúng lại với nhau.

Như hình bên trên chúng ta có hai ethernet là ens256 và ens161, chúng ta có thể kết hợp chúng và trình bày dưới dạng bridge0, lưu lượng mạng sẽ sử dụng cả ens256 và ens161.

2. Các cách sử dụng lệnh brctl

2.1. Tạo ethernet bridge mới

Để có thể tạo ethernet bridge mới chúng ta sử dụng tùy chọn addbr cùng với lệnh brctl cú pháp như sau:

brctl addbr [Ten ethernet bridge]

Trong ví dụ này, chúng ta sẽ tạo ra ba ethernet bridge: test_1, test_2, test_3 trên máy chủ thực hiện như sau:

[root@localhost ~]# brctl addbr test_1
[root@localhost ~]# brctl addbr test_2
[root@localhost ~]# brctl addbr test_3

Lưu ý: Nó chỉ là một ethernet bridge trống không có mạng ethernet nào trên đó.

2.2. Hiển thị ethernet bridge có sẵn

Chúng ta sử dụng tùy chọn show để có thể hiện thị ethernet bridge có sẵn trên máy chủ của chúng ta thực hiện như bên dưới:

[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
test_1		8000.000000000000	no
test_2		8000.000000000000	no
test_3		8000.000000000000	no

Qua ví dụ trên chúng ta thấy cột giao diện mạng (interfaces) không có gì trên đó có nghĩa là ethernet bridge trống không có mạng ethernet nào được liên kết với nó.

2.3. Xóa ethernet bridge hiện có

Khi chúng ta muốn xóa một cầu ethernet hiện có trên máy chủ của chúng ta thì chúng ta sử dụng tùy chọn delbr để xoá.

Trong ví dụ bên dưới chúng ta sẽ thực hiện xóa ethernet bridge có tên test_3 như sau:

[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
test_1		8000.000000000000	no
test_2		8000.000000000000	no
test_3		8000.000000000000	no
[root@localhost ~]# brctl delbr test_3

Thực hiện kiểm tra chúng ta không thấy ethernet bridge tên test_3 nữa:

[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
test_1		8000.000000000000	no
test_2		8000.000000000000	no

2.4. Thêm interface vào ethernet bridge hiện có

Chúng ta có thể thêm interface vào ethernet bridge hiện có bằng cách sử dụng tùy chọn addif.

Ví dụ: Chúng ta sẽ thêm mạng ethernet ens256 vào ethernet bridge có tên test_1 chúng ta vừa tạo lúc nảy.

[root@localhost ~]# brctl addif test_1 ens256

Lệnh trên sẽ làm cho ens256 trở thành một cổng của ethernet bride test_1. Sau khi thêm ens256 vào ethernet bridge test_1, lệnh brctl show sẽ hiển thị như sau.

[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
test_1		8000.000c29a2b4fb	no		ens256
test_2		8000.000000000000	no

Qua lệnh show trên chúng ta thấy cột interfaces đã được thêm ens256 như vậy là chúng ta thêm interface vào ethernet bridge hiện có thành công.

Lưu ý: Nếu có lỗi xảy ra trong khi thêm ens256 vào ethernet bridge test_1 chúng ta sẽ thực hiện lệnh sau để xóa ethernet bridge test_1.

[root@localhost ~]# brctl delbr test_1

Nếu bạn thêm một interface loopback vào ethernet bridge chúng ta sẽ nhận được lỗi như sau:

[root@localhost ~]# brctl addif test_1 lo
can’t add lo to bridge test_1: Invalid argument

Bạn cũng không thể thêm interface không tồn tại trên máy chủ vào ethernet bridge.

[root@localhost ~]# brctl addif test_1 ens152
interface ens152 does not exist

2.5. Thêm nhiều interface vào ethernet bridge hiện có

Chúng ta có thể thêm nhiều interface vào ethernet bridge hiện có. Trong ví dụ sau, chúng ta sẽ thêm cả ens256 và ens161 vào ethernet bridge test_1 như sau.

[root@localhost ~]# brctl addif test_1 ens256 ens161

Chúng ta sử dụng lệnh show để kiểm tra:

[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
test_1		8000.000c29a2b405	no		ens161
							ens256
test_2		8000.000000000000	no

Qua kết quả trên chúng ta thấy cột interfaces đã được thêm ens256 và ens161 vào ethernet bridge hiện có.

Lưu ý: Nếu một interface đã tham gia vào một ethernet bridge, thì bạn không thể thêm nó vào một ethernet bridge khác.

2.6 Hiển thị địa chỉ MAC của ethernet bridge

Chúng ta sử dụng tùy chọn showmacs để có thể xem tất cả các địa chỉ MAC của một ethernet bridge.

Ví dụ: Tính đến thời điểm hiện tại thì 3 địa chỉ MAC được kết nối với ethernet bridge. Dữ liệu này sẽ tiếp tục thay đổi tùy thuộc vào trạng thái hiện tại của những gì được kết nối với ethernet bridge.

[root@localhost ~]# brctl showmacs test_1
port no	mac addr		is local?	ageing timer
  2	00:0c:29:a2:b4:05	yes		   0.00
  1	00:0c:29:a2:b4:fb	yes		   0.00
  1	00:0c:29:a2:b4:fb	yes		   0.00

2.7. Đặt thời gian ageing cho địa chỉ mac trên ethernet bridge

Chúng ta sẽ thực hiện đặt thời gian ageting cho địa chỉ mac trên ethernet bridge test_1 thành 120 giây như sau:

[root@localhost ~]# brctl setageing test_1 120

Trong đó:

  • test_1: là tên của ethernet bridge chúng ta cần đặt thời gian.
  • 120: là số giây chúng ta đặt.
  • setageing: là thiết lập thời gian ageing.

Vì vậy, nếu như không thấy frame cho ethernet bridge test_1 trong khoảng thời gian 120 giây, thì ethernet bridge test_1 sẽ xóa địa chỉ mac khỏi cơ sở dữ liệu chuyển tiếp.

2.8. Thiết lập spanning tree trên ethernet bridge

Sử dụng tùy chọn brctl để có thể thiết lập spanning tree trên ethernet bridge. Theo mặc định thì spanning tree không được kích hoạt khi chúng ta tạo một ethernet bridge.

Ví dụ: Chúng ta sẽ bật spanning tree trên ethernet bridge test_1. Chúng ta có thể sử dụng on hoặc yes để bật vì cả hai lệnh này tương dương như nhau.

[root@localhost ~]# brctl stp test_1 on
[root@localhost ~]# brctl stp test_1 yes

Dùng lệnh show để kiểm tra:

[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
test_1		8000.000c29a2b405	yes		ens161
							ens256
test_2		8000.000000000000	no

Qua kết quả trên chúng ta thấy các giá trị trong cột STP enable đã được bật cho ethernet bridge test_1.

Để có thể tắt spanning tree trên ethernet bridge chúng ta làm như sau:

[root@localhost ~]# brctl stp test_1 off
[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
test_1		8000.000c29a2b405	no		ens161
							ens256
test_2		8000.000000000000	no

2.9. Hiển thị giá trị tham số STP của bridge

Khi bạn đã bật STP (Spanning Tree Protocol) trên bridge, bạn có thể sử dụng tùy chọn showstp để xem tất cả các giá trị tham số stp thực hiện như sau:

[root@localhost ~]# brctl showstp test_1
test_1
 bridge id		8000.000c29a2b405
 designated root	8000.000c29a2b405
 root port		   0			path cost		   0
 max age		  20.00			bridge max age		  20.00
 hello time		   2.00			bridge hello time	   2.00
 forward delay		  15.00			bridge forward delay	  15.00
 ageing time		 120.00
 hello timer		   0.00			tcn timer		   0.00
 topology change timer	   0.00			gc timer		   0.00
 flags


ens161 (2)
 port id		8002			state		       disabled
 designated root	8000.000c29a2b405	path cost		   2
 designated bridge	8000.000c29a2b405	message age timer	   0.00
 designated port	8002			forward delay timer	   0.00
 designated cost	   0			hold timer		   0.00
 flags

ens256 (1)
 port id		8001			state		       disabled
 designated root	8000.000c29a2b405	path cost		   2
 designated bridge	8000.000c29a2b405	message age timer	   0.00
 designated port	8001			forward delay timer	   0.00
 designated cost	   0			hold timer		   0.00
 flags

3. Lời kết

Qua bài trên, giúp cho chúng ta biết cách sử dụng các tính năng của lệnh brctl cũng như cách cấu hình bridge trên hệ điều hành Linux. Từ các ví dụ trên giúp cho chúng ta có thể kết hợp nhiều mạng ethernet trên máy chủ của chúng ta cách dễ dàng hơn.