> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/learn-the-platform/vi/mo-dun-1-kien-thuc-co-ban-ve-kien-truc/04-core-fabric.md).

# Core Fabric & Mạng

## Fabric lõi là gì?

Tính năng **core fabric** là một mạng mesh riêng tư, tốc độ cao, kết nối tất cả các node trong hệ thống VergeOS. Nó là xương sống của mọi triển khai VergeOS — toàn bộ giao tiếp nội bộ của cụm đều đi qua fabric này. Core fabric không bao giờ được lộ ra lưu lượng bên ngoài.

Các loại lưu lượng được core fabric truyền tải bao gồm:

* **Nhân bản vSAN** — Ghi các khối dữ liệu chính và dự phòng giữa các node tham gia lưu trữ
* **Phối hợp cụm** — Kiểm tra tình trạng node, bầu chọn lãnh đạo và đồng bộ trạng thái hệ thống
* **Di chuyển nóng VM** — Chuyển trạng thái bộ nhớ và CPU khi di chuyển các VM đang chạy giữa các node
* **Mặt phẳng điều khiển** — Các lệnh gọi API, cập nhật cấu hình và giao tiếp quản trị giữa các dịch vụ VergeOS

Core fabric được thiết kế cho **độ trễ thấp và thông lượng cao**. Vì hiệu năng vSAN phụ thuộc trực tiếp vào tốc độ và độ tin cậy của giao tiếp giữa các node, core fabric là mạng có tính quyết định hiệu năng nhất trong một hệ thống VergeOS.

{% hint style="info" %}
**Cầu nối VMware**

Trong VMware, vMotion, sao chép vSAN, quản trị và các lưu lượng giữa các node khác mỗi loại đều có nhóm cổng VMkernel riêng trên vDS, với VLAN và chính sách failover uplink cho từng loại lưu lượng. Core fabric của VergeOS mang tất cả lưu lượng giữa các node qua một mesh riêng dự phòng duy nhất — không cần lập kế hoạch nhóm cổng theo từng loại.
{% endhint %}

{% hint style="info" %}
**Cầu nối Nutanix**

Mạng backplane CVM-to-CVM của Nutanix cần cấu hình VLAN/IP rõ ràng cho backplane, CVM và quản trị hypervisor. Core fabric của VergeOS là một mesh Layer 2 riêng tư không có IP hay VLAN nào — các node tự động phát hiện lẫn nhau.
{% endhint %}

## Dự phòng hai switch

Để chịu lỗi, core fabric chạy trên **hai mạng vật lý độc lập** — được gọi là **Fabric lõi 1** và **Fabric lõi 2** (hoặc Core 1 / Core 2). Mỗi mạng fabric là một miền quảng bá Layer 2 biệt lập riêng.

Mỗi node kết nối vào **cả hai** các mạng fabric. Nếu một switch hoặc đường cáp bị lỗi, mạng fabric còn lại vẫn duy trì kết nối đầy đủ giữa các node mà không làm gián đoạn sao chép vSAN, di chuyển nóng hoặc phối hợp cụm.

{% hint style="info" %}
**Switch Layer 2, Layer 3 do VergeOS xử lý**

Bạn cấu hình các switch core fabric vật lý ở chế độ **chỉ Layer 2** — các miền quảng bá biệt lập không có định tuyến. VergeOS xử lý toàn bộ địa chỉ hóa và định tuyến Layer 3 (lớp phủ mạng lõi được mô tả bên dưới) trên các mạng Layer 2 đó. Không có cấu hình Layer 3 nào cần làm trên chính các switch.
{% endhint %}

```mermaid
graph TB
    đồ thị con "Hạ tầng switch vật lý"
        SW1["Switch A<br/>Fabric lõi 1<br/>VLAN 900"]
        SW2["Switch B<br/>Fabric lõi 2<br/>VLAN 901"]
    end

    đồ thị con "Nút 1 (Bộ điều khiển)"
        N1_CF1["NIC 1 → Fabric lõi 1"]
        N1_CF2["NIC 2 → Fabric lõi 2"]
    end

    đồ thị con "Nút 2 (Bộ điều khiển)"
        N2_CF1["NIC 1 → Fabric lõi 1"]
        N2_CF2["NIC 2 → Fabric lõi 2"]
    end

    đồ thị con "Nút 3 (mở rộng ngang)"
        N3_CF1["NIC 1 → Fabric lõi 1"]
        N3_CF2["NIC 2 → Fabric lõi 2"]
    end

    N1_CF1 --- SW1
    N2_CF1 --- SW1
    N3_CF1 --- SW1

    N1_CF2 --- SW2
    N2_CF2 --- SW2
    N3_CF2 --- SW2

    style SW1 fill:#e3f2fd,stroke:#1565c0
    style SW2 fill:#e8f5e9,stroke:#2e7d32
```

### Các quy tắc thiết kế chính

| Yêu cầu                           | Chi tiết                                                                                                                                                                |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cô lập**                        | Fabric lõi 1 và Fabric lõi 2 phải nằm trên các mạng Layer 2 chuyên dụng riêng của chúng, hoàn toàn tách biệt với nhau và với lưu lượng bên ngoài                        |
| **Jumbo frames**                  | MTU 9216 hoặc cao hơn trên tất cả các cổng switch core fabric (9216 đủ cho payload 9000 byte cộng với thẻ VLAN, header và phần overhead của tenant)                     |
| **Không có bước nhảy qua switch** | Tất cả các node phải nằm trên cùng một switching fabric, không có hop giữa các switch trên đường core fabric — các hop bổ sung sẽ tạo ra độ trễ làm giảm hiệu năng vSAN |
| **Chế độ cổng**                   | Cổng access (không gắn thẻ, mỗi mạng core fabric một VLAN duy nhất)                                                                                                     |
| **Spanning tree**                 | Tắt trên các cổng core fabric (tắt BPDU guard, tắt PortFast) — không nên dùng STP cho các liên kết core fabric. Tốt nhất là lưu lượng này không rời switch.             |
| **Tốc độ**                        | Khuyến nghị 10 Gbps trở lên                                                                                                                                             |

> **Ghi chú về playground:** Terraform playground sử dụng MTU 9142 cho các mạng core fabric ảo của nó. Các triển khai sản xuất nên dùng MTU 9216 hoặc cao hơn theo tài liệu chính thức của VergeOS.

## Lớp phủ mạng lõi

Trên hai mạng fabric vật lý, VergeOS tạo ra một **mạng lõi ảo** — một lớp phủ logic với dải địa chỉ `100.96.0.0/24`. Mạng lõi này cung cấp cho mỗi node một địa chỉ IP nội bộ ổn định được các dịch vụ VergeOS sử dụng.

Mối quan hệ là:

* **Fabric lõi 1 và Fabric lõi 2** là các phương tiện truyền tải ở tầng vật lý (mạng Layer 2)
* **Mạng lõi (`100.96.0.0/24`)** là lớp phủ logic chạy trên cả hai switch fabric

Mạng lõi trừu tượng hóa cơ chế dự phòng hai đường dẫn bên dưới, để các dịch vụ VergeOS giao tiếp bằng một địa chỉ duy nhất trên mỗi node, bất kể fabric vật lý nào đang hoạt động.

### Phân bổ địa chỉ IP

| Mạng               | Nút 1              | Nút 2              | Nút 3+         |
| ------------------ | ------------------ | ------------------ | -------------- |
| **Mạng lõi**       | 100.96.0.2         | 100.96.0.3         | 100.96.0.(N+1) |
| **Fabric lõi 1**   | 172.16.1.1         | 172.16.1.2         | 172.16.1.N     |
| **Fabric lõi 2**   | 172.16.2.1         | 172.16.2.2         | 172.16.2.N     |
| **mạng bên ngoài** | Tĩnh (đã cấu hình) | Tĩnh (đã cấu hình) | DHCP hoặc tĩnh |

> Đối với **Mạng lõi**, `100.96.0.1` được dành riêng làm cổng cụm; các địa chỉ theo node bắt đầu từ `.2` cho Nút 1 và tăng dần từ đó.

> Tính năng `172.16.1.0/24` và `172.16.2.0/24` các mạng con core fabric là mặc định được gán khi các mạng lõi được cấu hình **trước khi** mạng ngoài trong quá trình cài đặt. Nếu mạng ngoài được gán trước, VergeOS sẽ cấp các mạng con khác cho các core fabric.

```mermaid
graph TB
    đồ thị con "Lớp phủ logic"
        CORE["Mạng lõi<br/>100.96.0.0/24<br/>MTU 9000"]
    end

    đồ thị con "Vận chuyển vật lý"
        CF1["Fabric lõi 1<br/>172.16.1.0/24<br/>MTU 9216"]
        CF2["Fabric lõi 2<br/>172.16.2.0/24<br/>MTU 9216"]
    end

    CORE -->|"chạy trên"| CF1
    CORE -->|"chạy trên"| CF2

    style CORE fill:#fff3e0,stroke:#e65100
    style CF1 fill:#e3f2fd,stroke:#1565c0
    style CF2 fill:#e8f5e9,stroke:#2e7d32
```

## Kết nối mạng của node

Một node VergeOS điển hình có **bốn giao diện mạng** — hai cho core fabric và hai cho mạng ngoài:

| NIC       | Kết nối        | Mục đích                                                         |
| --------- | -------------- | ---------------------------------------------------------------- |
| NIC 1     | Fabric lõi 1   | Đường chính cho toàn bộ lưu lượng giữa các node                  |
| NIC 2     | Fabric lõi 2   | Đường dự phòng cho toàn bộ lưu lượng giữa các node               |
| NIC 3 + 4 | mạng bên ngoài | Truy cập UI/API quản trị, lưu lượng người dùng, kết nối Internet |

Tên thiết bị NIC thực tế thay đổi theo phần cứng (ví dụ, `eno1`, `enp3s0f0`, `eth0`). Trong quá trình cài đặt, bạn chọn NIC vật lý nào ánh xạ cho từng vai trò.

Các NIC ngoài thường **được bond** (LACP hoặc active-backup) để dự phòng. VergeOS hỗ trợ cả bonding dựa trên switch (LACP) và cả **bonding dựa trên phần mềm** — không cần cấu hình switch. Hai NIC core fabric **không được** được bond — LAG vật lý hoặc bonding cổng sẽ can thiệp vào cơ chế dự phòng sẵn có của fabric, vốn phát hiện được nhiều loại sự cố hơn (gói bị rơi, lệch MTU, NIC bị treo, firmware lỗi) ở tầng ứng dụng so với LAG. Mỗi NIC core fabric kết nối đến một switch độc lập riêng.

```mermaid
graph LR
    đồ thị con "Nút"
        NIC1["NIC 1<br/>Fabric lõi 1"]
        NIC2["NIC 2<br/>Fabric lõi 2"]
        NIC3["NIC 3<br/>Mạng ngoài"]
        NIC4["NIC 4<br/>Mạng ngoài"]
    end

    NIC1 --- CF1["Fabric lõi 1<br/>MTU 9216+"]
    NIC2 --- CF2["Fabric lõi 2<br/>MTU 9216+"]
    NIC3 --- BOND["Bond (LACP / Active-Backup)"]
    NIC4 --- BOND
    BOND --- EXT["Mạng ngoài<br/>MTU 1500"]
    CF1 -.- CORE["Lớp phủ mạng lõi"]
    CF2 -.- CORE

    style EXT fill:#fce4ec,stroke:#c62828
    style BOND fill:#fce4ec,stroke:#c62828
    style CF1 fill:#e3f2fd,stroke:#1565c0
    style CF2 fill:#e8f5e9,stroke:#2e7d32
    style CORE fill:#fff3e0,stroke:#e65100
```

## Sự tách biệt giữa mạng ngoài và core fabric

VergeOS áp dụng sự tách biệt nghiêm ngặt giữa lưu lượng hướng ra ngoài và lưu lượng cụm nội bộ. Đây là hai miền mạng hoàn toàn khác nhau về bản chất:

### Mạng bên ngoài

* Kết nối VergeOS với hạ tầng LAN/WAN hiện có
* Truyền lưu lượng hướng người dùng: truy cập UI quản trị, kết nối workload của VM, truy cập Internet
* Dùng MTU tiêu chuẩn (1500) trừ khi workload yêu cầu jumbo frames
* Được cấu hình làm trunk VLAN (gắn thẻ 802.1Q) để hỗ trợ nhiều VLAN cho việc tách biệt tenant và workload
* Thường được bond (LACP hoặc active-backup) để dự phòng
* Có thể có nhiều mạng ngoài cho mỗi hệ thống (ví dụ: VLAN quản trị, VLAN sản xuất, VLAN DMZ)

### Mạng fabric lõi

* Hoàn toàn riêng tư — không bao giờ lộ ra lưu lượng bên ngoài hoặc người dùng
* Truyền toàn bộ lưu lượng hệ thống giữa các node (vSAN, di chuyển, phối hợp)
* Yêu cầu jumbo frames (MTU 9216+) để tối ưu hiệu quả lưu trữ
* Được cấu hình làm access port (không gắn thẻ, mỗi fabric một VLAN duy nhất)
* Luôn có hai fabric độc lập để dự phòng
* Phải không có số hop switch nào giữa các node để đạt độ trễ thấp

### Mạng DMZ

VergeOS tự động tạo một **DMZ** trong quá trình cài đặt. DMZ đóng vai trò là điểm kết nối trung tâm cho tất cả các mạng ảo trong hệ thống. Mỗi đám mây VergeOS (dù là hệ thống host hay tenant) đều có đúng một mạng DMZ.

DMZ cung cấp **định tuyến Layer 3** giữa các mạng. Mỗi loại mạng (ngoài, nội bộ, lõi) có bộ định tuyến ảo riêng với một giao diện trên mạng của chính nó và một giao diện trên DMZ. Khi một mạng nội bộ cần truy cập một mạng ngoài, lưu lượng sẽ đi qua DMZ, nơi các quy tắc mạng và chính sách tường lửa được áp dụng tại ranh giới định tuyến.

DMZ sử dụng `100.64.0.0/16` dải địa chỉ. Bộ định tuyến của mỗi mạng ảo — mạng ngoài, mạng nội bộ, mạng lõi và bất kỳ đám mây tenant lồng nhau nào — đều có một giao diện DMZ được gán địa chỉ từ subnet này:

```mermaid
graph TB
    ISP["ISP / Bộ định tuyến upstream"]
    EXT["Bộ định tuyến mạng ngoài<br/>Eth0: IP ngoài<br/>Eth1/DMZ: 100.64.0.3"]
    DMZ["Mạng DMZ<br/>100.64.0.0/16<br/>(trung tâm định tuyến Layer 3)"]
    CORE["Bộ định tuyến mạng lõi<br/>Eth0: 100.96.0.1/24<br/>Eth1/DMZ: 100.64.0.2"]
    INT1["Bộ định tuyến mạng nội bộ<br/>Eth0: 192.168.0.1/24<br/>Eth1/DMZ: 100.64.0.4"]
    TENANT["Mạng tenant<br/>(từ góc nhìn của host)<br/>Eth0: 100.96.0.1/24<br/>Eth1/DMZ: 100.64.0.5"]
    VM1["Các VM"]

    đồ thị con tenant_inside["Bên trong tenant (VDC riêng của nó)"]
        T_EXT["Bộ định tuyến ngoài của tenant<br/>Eth0: 100.96.0.2/24<br/>Eth1/DMZ: 100.64.0.3"]
        T_DMZ["DMZ của tenant<br/>100.64.0.0/16"]
        T_INT["Bộ định tuyến nội bộ của tenant<br/>Eth0: 192.168.0.1/24<br/>Eth1/DMZ: 100.64.0.4"]
        T_VM["VM của tenant"]

        T_EXT <--> T_DMZ
        T_INT <--> T_DMZ
        T_INT <--> T_VM
    end

    ISP <--> EXT
    EXT <--> DMZ
    CORE <--> DMZ
    INT1 <--> DMZ
    TENANT <--> DMZ
    INT1 <--> VM1
    TENANT <--> T_EXT

    style ISP fill:#fce4ec,stroke:#c62828
    style EXT fill:#fce4ec,stroke:#c62828
    style DMZ fill:#fff3e0,stroke:#e65100
    style CORE fill:#e3f2fd,stroke:#1565c0
    style INT1 fill:#e8f5e9,stroke:#2e7d32
    style VM1 fill:#e8f5e9,stroke:#2e7d32
    style TENANT fill:#e8eaf6,stroke:#283593
    style tenant_inside fill:#e8eaf6,stroke:#283593
    style T_EXT fill:#fce4ec,stroke:#c62828
    style T_DMZ fill:#fff3e0,stroke:#e65100
    style T_INT fill:#e8f5e9,stroke:#2e7d32
    style T_VM fill:#e8f5e9,stroke:#2e7d32
```

Từ góc nhìn của host, một tenant xuất hiện như một mạng khác được kết nối với DMZ. Bên trong, tenant có ngăn xếp mạng hoàn chỉnh của riêng mình — DMZ riêng, bộ định tuyến ngoài, các mạng nội bộ và VM — một Trung tâm Dữ liệu Ảo hoàn toàn lồng nhau.

{% hint style="info" %}
**Cầu nối VMware**

VergeFabric gộp những gì VMware tách ra thành các vDS port group, NSX-T segment và tường lửa vật lý: core fabric thay thế các nhóm VMkernel cho vSAN/vMotion/quản trị, các mạng ngoài thay thế uplink vDS cho lưu lượng VM, mạng DMZ thay thế các chức năng bộ định tuyến/tường lửa NSX Edge, và các mạng nội bộ thay thế các segment NSX-T với DHCP/DNS/định tuyến/tường lửa tích hợp.
{% endhint %}

{% hint style="info" %}
**Cầu nối Nutanix**

Nutanix dựa vào các VLAN tiêu chuẩn, tiện ích bổ sung Flow cho micro-segmentation và các thiết bị bên ngoài cho định tuyến/tường lửa. VergeOS cung cấp tương đương này một cách nguyên bản: core fabric thay thế backplane của CVM (không cần cấu hình VLAN), các mạng ngoài thay thế các uplink dựa trên VLAN, mạng DMZ xử lý định tuyến/tường lửa, và các mạng nội bộ gói DHCP/DNS/định tuyến/tường lửa.
{% endhint %}

## Các mô hình thiết kế mạng sản xuất

Trong môi trường sản xuất, VergeOS hỗ trợ một số mô hình thiết kế mạng tùy theo số NIC trên mỗi node và yêu cầu mạng ngoài. Tất cả các mô hình đều duy trì dual core fabric để dự phòng.

### Mô hình 4 NIC (Khuyến nghị)

Cấu hình sản xuất tiêu chuẩn sử dụng 4 NIC trên mỗi node:

| NIC   | Gán                       | Cấu hình                                |
| ----- | ------------------------- | --------------------------------------- |
| NIC 1 | Fabric lõi 1              | Cổng access, VLAN chuyên dụng, MTU 9216 |
| NIC 2 | Fabric lõi 2              | Cổng access, VLAN chuyên dụng, MTU 9216 |
| NIC 3 | Mạng ngoài 1 (bond chính) | Cổng trunk, LACP, MTU 1500              |
| NIC 4 | Mạng ngoài 2 (bond phụ)   | Cổng trunk, LACP, MTU 1500              |

Điều này mang lại dự phòng đầy đủ cho cả core fabric (hai đường đi độc lập) và mạng ngoài (một cặp bond).

### Mô hình 2 NIC

Mô hình 2 NIC kết hợp lưu lượng core fabric và lưu lượng ngoài trên cùng các cổng vật lý bằng cách dùng gắn thẻ VLAN:

| NIC   | Gán                       | Cấu hình                                          |
| ----- | ------------------------- | ------------------------------------------------- |
| NIC 1 | Fabric lõi 1 + VLAN ngoài | VLAN native cho core, VLAN gắn thẻ cho mạng ngoài |
| NIC 2 | Fabric lõi 2 + VLAN ngoài | VLAN native cho core, VLAN gắn thẻ cho mạng ngoài |

Mô hình này hoạt động tốt cho **cổng mạng 100 GbE** nơi hai giao diện băng thông cao cung cấp thông lượng dư sức cho cả core fabric và lưu lượng ngoài. Nó cũng phù hợp cho các điểm biên và các triển khai proof-of-concept. Có thể dùng bonding phần mềm của VergeOS trong mô hình này để cung cấp dự phòng mạng ngoài trên cả hai NIC, trong khi vẫn duy trì dự phòng dual core fabric.

## Terraform Playground mô hình hóa điều này như thế nào

Trong Terraform playground, core fabric được mô hình hóa thành hai `vergeio_network` tài nguyên trên hệ thống VergeOS host:

* `core_fabric_1` — Mạng Layer 2, MTU 9142, không DHCP
* `core_fabric_2` — Mạng Layer 2, MTU 9142, không DHCP

Mỗi VM node có ba NIC:

1. **NIC 1** → Mạng ngoài (quản trị và truy cập người dùng)
2. **NIC 2** → Fabric lõi 1
3. **NIC 3** → Fabric lõi 2

Playground sử dụng MTU 9142 (thay vì 9216 được khuyến nghị cho sản xuất) vì hạ tầng mạng ảo của hệ thống host tạo thêm overhead. Lớp phủ mạng lõi (`100.96.0.0/24`) chạy trên cả hai mạng fabric, giống như trong môi trường sản xuất.

## Điểm chính

| Khái niệm                         | Tóm tắt                                                                                               |
| --------------------------------- | ----------------------------------------------------------------------------------------------------- |
| **Core fabric**                   | Lưới mesh riêng giữa các node — truyền vSAN, di chuyển, phối hợp và lưu lượng mặt phẳng điều khiển    |
| **Dự phòng kép**                  | Hai mạng fabric độc lập (Core 1 + Core 2) trên các miền Layer 2 tách biệt                             |
| **Yêu cầu MTU**                   | 9216+ trong sản xuất (9142 trong playground) — jumbo frames là bắt buộc                               |
| **Lớp phủ mạng lõi**              | Mạng `100.96.0.0/24` logic chạy trên cả hai switch fabric, cung cấp IP nội bộ ổn định                 |
| **3 NIC trên mỗi node**           | Tối thiểu: 1 ngoài + 2 core fabric. Trong sản xuất thường dùng 4+ NIC với mạng ngoài được bond        |
| **Không có bước nhảy qua switch** | Các cổng core fabric phải nằm trên cùng một switching fabric — không được phép có hop giữa các switch |
| **Cô lập lưu lượng**              | Core fabric không bao giờ lộ ra lưu lượng bên ngoài; các mạng ngoài hoàn toàn tách biệt               |
| **DMZ**                           | Trung tâm định tuyến Layer 3 được tự động tạo, kết nối tất cả các mạng ảo trong hệ thống              |

## Các bước tiếp theo

Bây giờ bạn đã hiểu cách các node VergeOS được liên kết với nhau, chủ đề tiếp theo sẽ trình bày cách những node đó được tổ chức thành các cụm: [**Cụm & Loại node →**](/learn-the-platform/vi/mo-dun-1-kien-thuc-co-ban-ve-kien-truc/05-clusters-nodes.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/learn-the-platform/vi/mo-dun-1-kien-thuc-co-ban-ve-kien-truc/04-core-fabric.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
