Open vSwitch (OVS) đang quản lý các giao diện mạng eth1 và eth2, gây cản trở việc cấu hình chúng với địa chỉ IP tĩnh và gateway riêng biệt giống như eth0. Bạn muốn đơn giản hóa cấu hình bằng cách:
- Loại bỏ eth1 và eth2 khỏi Open vSwitch.
- Cấu hình các giao diện mạng với địa chỉ IP tĩnh và gateway riêng biệt.
- Sử dụng một script (add_route.sh) để thiết lập các định tuyến cần thiết.
Dưới đây là hướng dẫn đơn giản để bạn có thể thực hiện các bước trên một cách hiệu quả.
1. Loại Bỏ eth1
và eth2
khỏi Open vSwitch
Đầu tiên, bạn cần đảm bảo rằng các giao diện eth1
và eth2
không còn thuộc về bridge br0
của Open vSwitch. Điều này sẽ cho phép Netplan quản lý trực tiếp các giao diện này.
1.1. Kiểm Tra Các Bridge và Port Hiện Tại của Open vSwitch
Chạy lệnh sau để xem cấu hình hiện tại của Open vSwitch:
sudo ovs-vsctl show
Ví dụ Kết Quả:
842bd4dc-d326-47de-ad4f-d0c1484e241f
Manager "tcp:127.0.0.1"
Bridge br0
Controller "tcp:127.0.0.1"
fail_mode: secure
Port br0
Interface br0
type: internal
Port vxlan1
Interface vxlan1
type: vxlan
options: {ether_addr="02:01:00:1d:7e:e6", key="100", remote_ip="100.80.2.1"}
Port eth2
Interface eth2
Port eth1
Interface eth1
ovs_version: "2.17.9"
1.2. Loại Bỏ eth1
và eth2
khỏi Bridge br0
Sử dụng các lệnh sau để loại bỏ eth1
và eth2
khỏi bridge br0
:
sudo ovs-vsctl del-port br0 eth1
sudo ovs-vsctl del-port br0 eth2
1.3. Kiểm Tra Lại Cấu Hình Open vSwitch
Sau khi loại bỏ, kiểm tra lại cấu hình để đảm bảo rằng eth1
và eth2
đã bị loại bỏ khỏi bridge:
sudo ovs-vsctl show
Kết Quả Mong Đợi:
842bd4dc-d326-47de-ad4f-d0c1484e241f
Manager "tcp:127.0.0.1"
Bridge br0
Controller "tcp:127.0.0.1"
fail_mode: secure
Port br0
Interface br0
type: internal
Port vxlan1
Interface vxlan1
type: vxlan
options: {ether_addr="02:01:00:1d:7e:e6", key="100", remote_ip="100.80.2.1"}
Nếu eth1
và eth2
không còn xuất hiện dưới bridge br0
, bạn đã thành công trong việc loại bỏ chúng khỏi Open vSwitch.
2. Cấu Hình Netplan cho eth0
, eth1
, và eth2
với Địa Chỉ IP Tĩnh và Gateway Riêng Biệt
Sau khi loại bỏ eth1
và eth2
khỏi Open vSwitch, bạn cần cấu hình Netplan để quản lý chúng với địa chỉ IP tĩnh và gateway riêng biệt.
2.1. Sao Lưu Tệp Cấu Hình Netplan Hiện Tại
Trước khi chỉnh sửa, hãy sao lưu tệp cấu hình hiện tại:
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
2.2. Chỉnh Sửa Tệp Cấu Hình Netplan
Mở tệp cấu hình Netplan:
sudo nano /etc/netplan/50-cloud-init.yaml
Ví Dụ Cấu Hình:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses:
- 103.12.76.67/24
gateway4: 103.12.76.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
mtu: 1500
eth1:
dhcp4: no
addresses:
- 103.81.84.209/24
gateway4: 103.81.84.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
mtu: 1500
eth2:
dhcp4: no
addresses:
- 103.173.255.24/24
gateway4: 103.173.255.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
mtu: 1500
eth3:
dhcp6: yes
match:
macaddress: fa:16:3e:fd:30:d4
mtu: 1500
eth4:
dhcp6: yes
match:
macaddress: fa:16:3e:7a:1a:ec
mtu: 1500
Lưu và Đóng Tệp Cấu Hình:
- Nhấn
Ctrl + O
, sau đóEnter
để lưu. - Nhấn
Ctrl + X
để thoát.
2.3. Áp Dụng Cấu Hình Netplan
Trước khi áp dụng, hãy kiểm tra cấu hình:
sudo netplan try
- Lệnh này sẽ thử áp dụng cấu hình và hỏi bạn có muốn giữ lại thay đổi không. Chọn Yes nếu không có lỗi.
Sau đó, áp dụng cấu hình:
sudo netplan apply
3. Tạo Script add_route.sh
để Thiết Lập Định Tuyến
Vì bạn muốn sử dụng script để quản lý định tuyến thay vì cấu hình trong Netplan, chúng ta sẽ tạo một script add_route.sh
để thiết lập các route cần thiết.
3.1. Tạo và Mở Tệp add_route.sh
Tạo và mở tệp script:
sudo nano /usr/local/bin/add_route.sh
3.2. Thêm Nội Dung Vào Tệp
Thêm các dòng sau vào tệp:
#!/bin/bash
# Thiết lập định tuyến cho eth0
ip route add default via 103.12.76.1 dev eth0
# Thiết lập định tuyến cho eth1
ip route add default via 103.81.84.1 dev eth1
# Thiết lập định tuyến cho eth2
ip route add default via 103.173.255.1 dev eth2
Lưu và Đóng Tệp:
- Nhấn
Ctrl + O
, sau đóEnter
để lưu. - Nhấn
Ctrl + X
để thoát.
3.3. Cấp Quyền Thực Thi Cho Script
Chạy lệnh sau để cấp quyền thực thi cho script:
sudo chmod +x /usr/local/bin/add_route.sh
3.4. Thêm Script Vào Startup để Tự Động Chạy Sau Khởi Động
Bạn có thể sử dụng cron
với @reboot
để tự động chạy script sau mỗi lần khởi động.
- Mở Crontab của Root:
sudo crontab -e
- Thêm Dòng Sau Vào Cuối Tệp:
@reboot /usr/local/bin/add_route.sh
- Lưu và Đóng Tệp:
- Nhấn
Ctrl + O
, sau đóEnter
để lưu. - Nhấn
Ctrl + X
để thoát.
- Nhấn
Hy vọng rằng hướng dẫn này sẽ giúp bạn khắc phục lỗi do Open vSwitch gây ra và cấu hình lại các giao diện mạng eth1
và eth2
với địa chỉ IP tĩnh và gateway riêng biệt một cách hiệu quả! Nếu bạn vẫn gặp vấn đề hoặc cần thêm hỗ trợ, vui lòng cung cấp thêm thông tin chi tiết về cấu hình Netplan hiện tại, bảng định tuyến (ip route
), và các quy tắc định tuyến (ip rule
) để tôi có thể hỗ trợ bạn tốt hơn.
Chúc bạn thành công!