Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

6.2. Cấu hình backend 2 khi đang live trên 1 cổng LAN, 1 cổng LAN trống nối với proxy

ICT

Tình hình thực tế:

Máy chủ AI có 2 cổng LAN:

+ Cổng 1 eno1: Đang nối với modem/router đang phục vụ web 192.168.1.3 với gateway là 192.168.1.1

+ Cổng 2 eno2: Đã nối với cổng thứ 3 của reverse proxy, cổng của proxy là 10.10.20.0/24 chưa làm gì. Đây là cái chúng ta cần cấu hình để bắt đầu chuyển toàn bộ truy cập qua proxy thay vì tới trực tiếp máy chủ AI.

Máy chủ AI Ubuntu 24.04 đang sử dụng netplan để quản lý mạng.

Vì máy chủ AI đang phục vụ web nên hạn chế downtime, khưng không cần hạn chế quá khắt khe.

1. Nguyên tắc khi chuyển từ netplan → ifupdown (rất quan trọng)

Trên Ubuntu Server 24.04:

  • Mặc định dùng netplan + systemd-networkd

  • ifupdown không chạy song song với networkd

  • Chuyển đổi phải theo trình tự:

    1. Cài ifupdown

    2. Khai báo /etc/network/interfaces

    3. Disable networkd

    4. Enable networking (ifupdown)

  • Thực hiện trong tmux/screen

  • Chuẩn bị rollback (chỉ cần reboot là quay về netplan nếu chưa disable triệt để)

👉 Ưu điểm:

  • Đồng nhất với QMS

  • Dễ đọc, dễ debug

  • Phù hợp mô hình server nhiều NIC, route rõ ràng


2. BƯỚC 1 – Cài ifupdown (KHÔNG ảnh hưởng mạng)

 
apt update
apt install -y ifupdown

👉 Bước này chưa thay đổi gì, chỉ cài gói.


3. BƯỚC 2 – Viết cấu hình ifupdown (GIAI ĐOẠN SONG SONG)

3.1. Backup cấu hình hiện tại (bắt buộc)

 
cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak.$(date +%F-%H%M)

3.2. Tạo file /etc/network/interfaces

 
nano /etc/network/interfaces

Cấu hình CHUẨN theo đúng trạng thái bạn đang cần

 
# Loopback
auto lo
iface lo inet loopback
# =========================
# NIC eno1 - Modem (hiện tại)
# =========================
auto eno1
iface eno1 inet static
   address 192.168.1.3
   netmask 255.255.255.0
   gateway 192.168.1.1
   dns-nameservers 123.23.23.23 123.26.26.26
   metric 100
# =========================
# NIC eno2 - Reverse Proxy
# =========================
auto eno2
iface eno2 inet static
   address 10.10.20.88
   netmask 255.255.255.0
   metric 200
 

🔒 Giải thích:

  • eno1: giữ nguyên vai trò modem (default route)

  • eno2: KHÔNG gateway → không cướp route

  • metric để sẵn cho giai đoạn sau


3.3. Ngăn netplan/networkd tự động can thiệp

Disable systemd-networkd

systemctl disable systemd-networkd --now
systemctl mask systemd-networkd
 
Lưu ý bước này có thể gây mất kết nối nếu đang ssh từ xa!
Do đó cần sẵn sàng ở tại máy chủ để làm tiếp. Hoặc viết script toàn bộ để chạy để kích hoạt ifupdown --> sẽ truy cập được lại máy chủ.

Disable netplan renderer

touch /etc/cloud/cloud-init.disabled

Điều này ngăn cloud-init ghi đè lại network sau reboot
(cách này đã dùng trên QMS)


4. BƯỚC 3 – KÍCH HOẠT ifupdown (downtime rất ngắn)

⚠️ Khuyến nghị làm trong tmux

tmux new -s net

4.1. Restart networking

systemctl enable networking
systemctl restart networking

Downtime thường < 5 giây.


4.2. Kiểm tra ngay lập tức

ip -br addr
ip route

Kết quả mong đợi

eno1  UP  192.168.1.3/24
eno2  UP  10.10.20.88/24
 
default via 192.168.1.1 dev eno1

👉 Web vẫn chạy, SSH không rớt.


5. BƯỚC 4 – KIỂM TRA PROXY (như trước, không đổi)

Từ proxy:

ping 10.10.20.3
curl -I http://10.10.20.88

6. GIAI ĐOẠN SAU – KHI BỎ MODEM (để sẵn, chưa làm ngay)

Khi bạn sẵn sàng bỏ modem, chỉ cần sửa /etc/network/interfaces:

Thay đổi gateway qua proxy

# eno1 - bỏ gateway
iface eno1 inet static
   address 192.168.1.3
   netmask 255.255.255.0
   metric 200
# eno2 - proxy làm gateway
iface eno2 inet static
   address 10.10.20.3
   netmask 255.255.255.0
   gateway 10.10.20.1
   dns-nameservers 1.1.1.1 8.8.8.8
   metric 100

Restart:

systemctl restart networking

7. ROLLBACK NHANH (trong 30 giây nếu có sự cố)

Nếu SSH mất:

  1. Reboot server

  2. Tại console:

systemctl unmask systemd-networkd
systemctl enable systemd-networkd --now
rm /etc/cloud/cloud-init.disabled
  1. Netplan hoạt động lại như cũ


KẾT LUẬN

  • Cách này 100% tương thích với mô hình QMS

  • Không phụ thuộc netplan/cloud-init

  • Dễ kiểm soát route khi có proxy / firewall / NAT

  • Phù hợp server chạy AI + Docker + Web

  • Đã thành công khi làm thực tế

 

Để có thể ssh jump qua proxy, tham khảo:  8.2. Truy cập bằng ssh đến máy chủ đứng sau proxy - xem chi tiết tại mục "6.2. Cấu hình sẵn trong ~/.ssh/config (cách chuyên nghiệp)"