# Pfsense as a NAT Gateway

Sử dụng hướng dẫn bên dưới dể làm việc với Private Node group thông qua Pfsense

## Điều kiện cần

Để có thể sử dụng Pfsense làm NAT Gateway cho Cluster trên hệ thống VKS, bạn cần có:

* Một **server (VM) Pfsense** được khởi tạo trên hệ thống **vMarketPlace** theo hướng dẫn bên dưới với cấu hình như sau:

| Item                | Cấu hình    |
| ------------------- | ----------- |
| Flavor              | 2x4         |
| Volume              | 80 GB       |
| VPC                 | 10.3.0.0/16 |
| Network Interface 1 | 10.3.0.3    |

***

## Khởi tạo Pfsense

**Bước 1:** Truy cập vào <https://marketplace.console.vngcloud.vn/>

**Bước 2:** Tại màn hình chính, thực hiện tìm kiếm **Pfsense**, tại dịch vụ **Pfsense**, chọn **Launch**.

**Bước 3:** Lúc này, bạn cần thiết lập cấu hình cho **Pfsense.** Cụ thể, bạn có thể chọn **Volume, IOPS, Network, Security Group** mong muốn. **Bạn cần lựa chọn VPC và Subnet giống với VPC và Subnet mà bạn lựa chọn sử dụng cho Cluster của bạn.** Ngoài ra bạn cũng cần chọn Một Server Group đã tồn tại hoặc chọn **Dedicated SOFT ANTI AFFINITY group** để chúng tôi tự động tạo một server group mới.

**Bước 4:** Tiến hành thanh toán như các tài nguyên bình thường trên GreenNode.

***

## Cấu hình thông số cho Pfsense <a href="#toc165621058" id="toc165621058"></a>

**Bước 1:** Sau khi khởi tạo Pfsense từ vMarketPlace theo hướng dẫn bên trên, bạn có thể truy cập vào giao diện vServer tại [đây](https://hcm-3.console.vngcloud.vn/vserver/v-server/cloud-server) để kiểm tra server chạy Pfsense đã được khởi tạo xong chưa. <mark style="color:red;">**Tiếp theo, bạn mở rule Any trên Security Group cho server Pfsense vừa tạo. Việc mở rule Any trên Security Group sẽ cho phép tất cả lưu lượng truy cập đến server Pfsense.**</mark>

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-aba8c994ad1d47708e85cf7b9d883c068660c5a1%2Fpfsense_1.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 2: Sau khi server chạy Pfsense được khởi tạo thành công**. Để vào GUI của Pfsense, bạn cần sử dụng địa chỉ IP của External Interface đăng nhập với Tên đăng nhập và mật khẩu mặc định là **admin/pfsense.**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FcMMpwM0cBBYYc0CmL9bW%2Fpfsense_2.png?alt=media&#x26;token=464dcfe0-a146-48a0-b1ea-aaeb5db1ca8e" alt=""><figcaption></figcaption></figure>

* Để lấy thông tin IP này, bạn vào phần **Network Interface** của **Pfsense** để xem thông tin

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-29da2d3106656e3bc2cbe21bca05696379cb309c%2Fpfsense_3.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 3**: Mở **rule** trên **firewall**

* Tiến hành **Add rule**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-1c4bb2f050c45904dc4e24d8e72c2eda4c4c9295%2Fpfsense_4.png?alt=media" alt=""><figcaption></figcaption></figure>

* Bạn có thể mở rule như bên dưới để truy cập vào GUI bằng **External Interface**.

**Chú ý:**

* Bạn nên giới hạn lại Range IP được phép kết nối tới GUI Pfsense để hạn chế user được phép truy cập vào GUI Pfsense

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-968dd383c10ed5723b1e0c3f57be4e11ba8f4354%2Fpfsense_5.png?alt=media" alt=""><figcaption></figcaption></figure>

* Chọn **Save**
* Sau đó chọn **Apply change**

**Bước 4**: Tiến hành **General Setup**, bạn vui lòng thực hiện như bên dưới

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FObVEechfODBlhpbsPAMI%2Fpfsense_6.png?alt=media&#x26;token=31ea0aa4-77ef-4fbb-bb4b-51392eff5fe2" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-d678f47c3c75a99f562786b2237ddd2dd5f0a73c%2Fpfsense_7.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fc9d44q59MHql0aMnZwuC%2Fpfsense_8.png?alt=media&#x26;token=156e6536-71ee-4a9c-9e6a-351fc3d8be57" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-b094e72b1f3b9d0b47c8139ba925669706dcc937%2Fpfsense_9.png?alt=media" alt=""><figcaption></figcaption></figure>

* Cấu hình cho **WAN Interface**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FGIydZ5KUjMCLC8bhgzWe%2Fpfsense_10.png?alt=media&#x26;token=9359eae5-5413-434e-bb55-5be611d755a6" alt=""><figcaption></figcaption></figure>

* Thay đổi **password** vào **GUI**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fs1hNsy1cqHew6ihoHOSu%2Fpfsense_11.png?alt=media&#x26;token=1aa834c8-7031-4bfc-ad56-d1eec94508da" alt=""><figcaption></figcaption></figure>

* Tiến hành **reload**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FBJ7WmLKRD1pmCdW1VIBt%2Fpfsense_12.png?alt=media&#x26;token=f9f8b6ad-a5c6-4824-97af-a8a522277c60" alt=""><figcaption></figcaption></figure>

* Đã hoàn thành **General Setup**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FcBbpBxTftoIgKRfT5jsx%2Fpfsense_13.png?alt=media&#x26;token=833b113a-7e73-498d-9162-51f040e04d66" alt=""><figcaption></figcaption></figure>

**Bước 5:** Cấu hình **Interface LAN**

* Vào phần **Interfaces** -> **Assignments** để gắn thêm **Interface LAN**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2F9Ak8p1QsLeHaZfP2rja2%2Fpfsense_14.png?alt=media&#x26;token=b96f57f0-e8e8-4b05-9016-48c2775b9121" alt=""><figcaption></figcaption></figure>

* Nhấn vào **Add**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-12f7637538fa4a8535dd89cc080c9f866dce9147%2Fpfsense_15.png?alt=media" alt=""><figcaption></figcaption></figure>

* Sau đó nhấn vào **Save**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-330f786543b637eb865dc9c416be570033ce3eae%2Fpfsense_16.png?alt=media" alt=""><figcaption></figcaption></figure>

* Vào phần **Interfaces** -> **Assignments** để tiến hành **enable LAN Interface**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-bb54f52531789c7ebde4cd35cc8efc8498740bdd%2Fpfsense_17.png?alt=media" alt=""><figcaption></figcaption></figure>

* Bạn thực hiện cấu hình như bên dưới

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-56e4c42fb67eaa77371c9bdb7e1cbc0cace3c18e%2Fpfsense_18.png?alt=media" alt=""><figcaption></figcaption></figure>

* Cấu hình **IP** cho **LAN**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2F7yCgVRJCxikyipoClObu%2Fpfsense_19.png?alt=media&#x26;token=93d7ce9c-c1c9-4547-a384-71b88402829c" alt=""><figcaption></figcaption></figure>

* Sau đó tiến hành **Add a new gateway:** tiến hành nhập **Gateway cho LAN Interface**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fttao5nW3KPnEkjkx70GX%2Fpfsense_20.png?alt=media&#x26;token=2baf13fe-b6b0-4ed6-9c18-5ed6bc9a3995" alt=""><figcaption></figcaption></figure>

* Để lấy thông tin IP này, bạn vào mục **Network Interface** của server Pfsense để xem thông tin:

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FuiY36vwPtyemynKbKPBy%2Fpfsense_22.png?alt=media&#x26;token=9649a0ac-a7a4-41a0-9768-9e0f2f09d767" alt=""><figcaption></figcaption></figure>

* Tiến hành **Save** lại

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fw0RhLrvuyRekmZlf3ouz%2Fpfsense_23.png?alt=media&#x26;token=822c0a46-4588-47cc-98ef-4eea59e2de49" alt=""><figcaption></figcaption></figure>

**Bước 6**: Xem lại thông tin cấu hình

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-4277c1efb0a6a99803f9c61958e64f4e026e6020%2Fpaloalto_24.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 7**: Mở rule đi ra **Internet** cho **interface LAN**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-61af0d80a6d427378bd20f4a47deed08ffee8c01%2Fpaloalto_26.png?alt=media" alt=""><figcaption></figcaption></figure>

* Tại source bạn chọn dải **IP** được phép đi ra **Internet**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FyKY3KRvbchGkkhJfhhyl%2Fpaloalto_27.png?alt=media&#x26;token=8bfaf933-5f2e-4cec-a10b-722c0ed71882" alt=""><figcaption></figcaption></figure>

**Bước 8:** Cấu hình **NAT** để các **vServer** có thể đi ra được **Internet**

* Vào mục **Firewall** -> **NAT**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FqLKvuDRQpMJnGClmz61G%2Fpfsense_28.png?alt=media&#x26;token=f6ce3d14-40ff-498a-8d83-96948179e7a9" alt=""><figcaption></figcaption></figure>

* Chọn mode **NAT** sau đó tiến hành cấu hình **NAT**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-6a8c22399f25c71304c410936b9c540f0229e8b4%2Fpfsense_29.png?alt=media" alt=""><figcaption></figcaption></figure>

* Nhấn vào **Add** để thêm **rule**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-124e13530d47be72afc53879895befeb032dd57e%2Fpfsense_30.png?alt=media" alt=""><figcaption></figcaption></figure>

* Chọn **source**, **destination NAT**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-63a024d5a90836fd480e3178b1fa49fb0ce81f75%2Fpfsense_31.png?alt=media" alt=""><figcaption></figcaption></figure>

***

## Khởi tạo Route Table <a href="#khoitaomotpublicclustervoiprivatenodegroup-khoitaoroutetable" id="khoitaomotpublicclustervoiprivatenodegroup-khoitaoroutetable"></a>

Sau khi Pfsense được khởi tạo và cấu hình thành công, bạn cần tạo một Route table để kết nối tới các mạng khác nhau. Cụ thể thực hiện theo các bước sau để tạo Route table:

**Bước 1:** Truy cập vào <https://hcm-3.console.vngcloud.vn/vserver/network/route-table>

**Bước 2:** Tại thanh menu điều hướng, chọn **Tab Network/ Route table.**

**Bước 3:** Chọn **Create Route table.**

**Bước 4:** Nhập tên mô tả cho Route table. Tên Route table có thể bao gồm các chữ cái (a-z, A-Z, 0-9, '\_', '-'). Độ dài dữ liệu đầu vào nằm trong khoảng từ 5 đến 50. Nó không được bao gồm khoảng trắng ở đầu hoặc ở cuối.

**Bước 5:** Chọn **VPC** cho Route table của bạn, nếu chưa có VPC cần tạo mới một VPC theo hướng dẫn tại [Trang VPC](https://docs.vngcloud.vn/pages/viewpage.action?pageId=49648039). **VPC sử dụng để thiết lập Route table phải là VPC được chọn sử dụng cho Pfsense và Cluster của bạn.**

**Bước 6**: Chọn **Create** để tạo mới Route table.

**Bước 7:** Chọn <img src="https://docs-admin.vngcloud.vn/download/thumbnails/73762068/image2024-4-16_15-40-3.png?version=1&#x26;modificationDate=1713256805000&#x26;api=v2" alt="" data-size="line">tại Route table vừa tạo sau đó chọn **Edit Routes.**

**Bước 8:** Tại phần thêm mới **Route** hãy nhập vào các thông tin:

* Đối với Destination, hãy nhập **Destination CIDR là 0.0.0.0/0**
* Đối với Target, hãy nhập **Target CIDR là địa chỉ IP Network Interface 2 của Pfsense.**

Ví dụ:

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FJBGYvotilZabWOs7eZEu%2Fpfsense_route_1.png?alt=media&#x26;token=738b1b77-74a4-441f-ba1a-170ec3874225" alt=""><figcaption></figcaption></figure>

***

## **Kiểm tra kết nối**

Tiến hành ping google.com hoặc 8.8.8.8 để kiểm tra

* Trước khi **Enable NAT** server không ra được internet

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FnCzcZgjrHXyE9YwidxoT%2Fpfsense_ping_failed.png?alt=media&#x26;token=6a016fcf-1cf9-4559-95e3-d4fac5a2c564" alt=""><figcaption></figcaption></figure>

* Sau khi **cấu hình NAT** tiến hành ping 8.8.8.8 để kiểm tra

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FLW1N6qf89iDma43TYnsR%2Fpfsense_ping_successful.png?alt=media&#x26;token=e682298e-51b5-4884-8f1e-e27445cf8691" alt=""><figcaption></figcaption></figure>
