1. Khái niệm.
SDN (Software-Defined Networking) là một kiến trúc mạng trong đó quản lý và điều khiển mạng được tách biệt với phần cứng mạng thông qua việc sử dụng phần mềm và giao thức điều khiển trung tâm. SDN cung cấp khả năng linh hoạt và tự động hóa trong việc quản lý và cấu hình mạng, giúp tối ưu hóa hiệu suất mạng và cung cấp dịch vụ mạng linh hoạt hơn.
Proxmox VE cung cấp hỗ trợ cho SDN thông qua tính năng Proxmox Virtual Environment SDN Controller. SDN trong Proxmox VE cho phép bạn quản lý mạng ảo và cấu hình mạng linh hoạt trên môi trường ảo hóa. Với SDN, bạn có thể tạo và quản lý các switch ảo, kết nối mạng ảo, và áp dụng các chính sách mạng linh hoạt trong Proxmox VE.
2. Tác dụng của SDN.
- Quản lý mạng ảo linh hoạt: SDN cho phép bạn tạo và quản lý các mạng ảo, mạng con ảo, và các kết nối mạng ảo giữa các máy ảo trong môi trường Proxmox VE.
- Tích hợp với công nghệ ảo hóa: SDN được tích hợp sâu vào Proxmox VE, cho phép quản lý mạng ảo cùng với các tính năng ảo hóa khác như quản lý máy ảo, ổ đĩa ảo, và tài nguyên ảo.
- Tự động hóa và tự động cấu hình: SDN trong Proxmox VE cung cấp khả năng tự động hóa trong việc cấu hình và quản lý mạng, giúp tiết kiệm thời gian và công sức của quản trị viên.
- Tích hợp với công nghệ mạng hiện có: SDN trong Proxmox VE có thể tích hợp với các công nghệ mạng hiện có như VLAN, bonding, và trình điều khiển mạng vật lý để tạo ra một môi trường mạng linh hoạt và tối ưu.
3. Triển khai SDN trong Proxmox như thế nào?
Proxmox VE không cung cấp tính năng SDN tích hợp sẵn. Tuy nhiên, bạn có thể triển khai SDN trên Proxmox VE bằng cách sử dụng phần mềm SDN như Open vSwitch (OVS) hoặc Linux Bridge.
- Open vSwitch (OVS): OVS là một phần mềm SDN phổ biến và mạnh mẽ. Bạn có thể cài đặt và cấu hình OVS trên Proxmox VE để tạo và quản lý các virtual switch, bridge, và các chức năng mạng như VLAN, tunneling, và load balancing.
- Linux Bridge: Linux Bridge là một phần của kernel Linux và cung cấp chức năng bridge cho mạng ảo. Bạn có thể sử dụng Linux Bridge để tạo và quản lý các bridge ảo trên Proxmox VE, cho phép kết nối và chuyển tiếp dữ liệu giữa các interface mạng ảo.
Cả OVS và Linux Bridge đều hỗ trợ các tính năng SDN như VLAN, tunneling (VXLAN, GRE), QoS, và ACL. Tuy nhiên, OVS thường được sử dụng nhiều hơn trong môi trường SDN phức tạp, trong khi Linux Bridge thích hợp cho các mạng đơn giản hơn.
Qua việc triển khai SDN trên Proxmox VE, bạn có thể tận dụng các tính năng mạng linh hoạt và quản lý trực quan hơn để xây dựng và quản lý mạng ảo của mình trong môi trường ảo hóa.
4. Lựa chọn Linux Bridge hay Open vSwitch (OVS).
Việc sử dụng Open vSwitch (OVS) hay Linux Bridge trong Proxmox VE phụ thuộc vào yêu cầu và tình huống cụ thể của mạng của bạn. Dưới đây là một số thông tin để bạn có thể lựa chọn phù hợp:
- Open vSwitch (OVS):
- OVS là một phần mềm SDN phổ biến và mạnh mẽ.
- Hỗ trợ nhiều tính năng mạng như VLAN, tunneling (VXLAN, GRE), QoS, load balancing và ACL.
- Có khả năng tích hợp với các hệ thống SDN khác như OpenFlow Controller.
- Thích hợp cho các mạng phức tạp và yêu cầu quản lý mạng linh hoạt.
- Yêu cầu kiến thức về cấu hình và quản lý OVS.
- Linux Bridge:
- Linux Bridge là một phần của kernel Linux.
- Đơn giản và dễ sử dụng.
- Cung cấp chức năng bridge cho mạng ảo trong Proxmox VE.
- Hỗ trợ các tính năng cơ bản như VLAN và tunneling (VXLAN, GRE).
- Thích hợp cho các mạng đơn giản và không yêu cầu tính năng SDN phức tạp.
- Không yêu cầu kiến thức cao về mạng và cấu hình.
Khi lựa chọn giữa OVS và Linux Bridge, bạn cần xem xét yêu cầu của mạng và kiến thức của bạn về mạng và SDN. Nếu bạn có nhu cầu sử dụng nhiều tính năng mạng phức tạp và muốn tận dụng các khả năng SDN cao hơn, OVS có thể là lựa chọn tốt. Ngược lại, nếu bạn muốn một giải pháp đơn giản và dễ sử dụng cho mạng đơn giản, Linux Bridge là một sự lựa chọn hợp lý.
Tuy nhiên, cần lưu ý rằng OVS thường đòi hỏi kiến thức cao hơn về mạng và cấu hình, trong khi Linux Bridge phù hợp cho người dùng mới bắt đầu hoặc không có kiến thức mạng sâu.
5. Ví dụ triển khai.
Tôi có sơ đồ đấu nối physical như dưới.
Và sơ đồ đấu nối logical.
Tôi sẽ config phần network cho storage trên bản thân Proxmox và không đụng chạm gì tới config trên switch. Tôi sử dụng Linux Bridge và cách làm của tôi như sau:
Đầu tiên hãy chọn Node (1) của bạn và vào System -> Network (2). Bạn sẽ thấy danh sách các interface có sẵn trong hệ thống, hãy xác định card mạng bạn sẽ join vào SDN, ví dụ của mình thì mình sẽ sử dụng 2 link 10G (3) để demo.
Sau đó hãy lần lượt thực hiện thay đổi MTU cho card mạng của bạn (phần này tuỳ chọn) bằng cách chọn link cần thay đổi MTU (1) và bấm Edit (2).
Tích vào Advanced (1), điều chỉnh thông số MTU (2) của bạn và bấm OK (3).
Hãy làm tương tự cho các link còn lại và sau khi thay đổi xong thông số MTU bạn hãy bấm Apply Configuration.
Xác nhận thay đổi.
Tiếp theo tạo vSwitch chúng ta có 2 lựa chọn Linux Bridge và Open vSwitch (OVS).Bạn hãy lựa chọn 1 trong 2 phương pháp nhé.
Nếu lựa chọn Linux Bridge, bạn hãy bấm vào Create (1) và chọn Linux Bridge.
Hãy điền các thông tin mà bạn mong muốn, tại Bridge ports bạn khai báo 2 link 10G mà bạn sẽ join vào SDN (phân biệt các link bởi khoảng trắng). Nếu 2 link 10G của bạn thay đổi MTU ở bước trên thì tại đây bạn hãy cài đặt luôn tham số MTU vào nhé.
Nếu lựa chọn Open vSwitch (OVS) thì bạn hãy bấm vào Create (1), OVS Bridge (2).
Tương tự như phần Linux Bridge, hãy điền các thông tin mà bạn mong muốn vào.
Sau khi bấm Create, bạn sẽ có 1 vSwitch có tên vmbr1 như dưới.
Nếu bạn đọc file /etc/network/interfaces bạn cũng sẽ thấy các tham số khi tạo trên GUI sẽ được sinh ra trong file này.
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!
auto lo
iface lo inet loopback
iface enp3s0f0 inet manual
iface enp3s0f1 inet manual
auto ens3f0
iface ens3f0 inet manual
mtu 9000
auto ens3f1
iface ens3f1 inet manual
mtu 9000
auto vmbr0
iface vmbr0 inet static
address 192.168.13.225/23
gateway 192.168.12.5
bridge-ports enp3s0f0
bridge-stp off
bridge-fd 0
auto vmbr1
iface vmbr1 inet static
address 10.0.0.225/24
bridge-ports ens3f0 ens3f1
bridge-stp off
bridge-fd 0
mtu 9000
Trong kết quả của lệnh brctl show
, có hai bridge được liệt kê: vmbr0
và vmbr1
. Với vmbr0
là một bridge với một interface enp3s0f0
, trong khi vmbr1
là một bridge với hai interface ens3f0
và ens3f1
. Các bridge này có thể được sử dụng để kết nối các máy ảo hoặc thiết bị mạng ảo trong Proxmox VE.
$ brctl show
bridge name bridge id STP enabled interfaces
vmbr0 8000.0cc47a2b9dce no enp3s0f0
vmbr1 8000.ac1f6b2d8f4a no ens3f0
ens3f1
Kết quả khi bạn dùng lệnh ip add show.
root@pve-node1:~# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
link/ether 0c:c4:7a:2b:9d:ce brd ff:ff:ff:ff:ff:ff
3: enp3s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0c:c4:7a:2b:9d:cf brd ff:ff:ff:ff:ff:ff
4: ens3f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq master vmbr1 state UP group default qlen 1000
link/ether ac:1f:6b:2d:8f:4a brd ff:ff:ff:ff:ff:ff
altname enp2s0f0
5: ens3f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq master vmbr1 state UP group default qlen 1000
link/ether ac:1f:6b:2d:8f:4b brd ff:ff:ff:ff:ff:ff
altname enp2s0f1
19: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 0c:c4:7a:2b:9d:ce brd ff:ff:ff:ff:ff:ff
inet 192.168.13.225/23 scope global vmbr0
valid_lft forever preferred_lft forever
inet6 fe80::ec4:7aff:fe2b:9dce/64 scope link
valid_lft forever preferred_lft forever
22: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default qlen 1000
link/ether ac:1f:6b:2d:8f:4a brd ff:ff:ff:ff:ff:ff
inet 10.0.0.225/24 scope global vmbr1
valid_lft forever preferred_lft forever
inet6 fe80::ae1f:6bff:fe2d:8f4a/64 scope link
valid_lft forever preferred_lft forever
Bạn hãy áp dụng cho cả 3 Node, và đây là kết quả khi triển khai xong cả 3 Node.
Kết quả khi đứng ở ở tất cả các Node check ICMP.
Như vậy tới đây bạn đã đấu nối thông mạng 3 Node mà không cần phải cấu hình trên Switch rồi đó.