Biến Fedora Server thành Router “xịn”: Tối ưu NFTables và Kea DHCP

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

Tại sao nên dùng Fedora Server làm Router?

Router từ nhà mạng (ISP) thường chỉ đủ dùng cho nhu cầu cơ bản. Nếu bạn bắt đầu vọc vạch Homelab, chạy Plex Media Server hay dăm ba con server game, thiết bị này sẽ sớm “hụt hơi”. Bạn sẽ gặp cảnh lag mạng, sập router khi tải nặng hoặc ức chế vì tường lửa không thể tùy biến sâu.

Mấu chốt nằm ở quyền kiểm soát. Khi tự dựng router trên Fedora Server, bạn nắm toàn quyền sinh sát dòng dữ liệu. Mình đã dùng Fedora làm hệ điều hành chính hơn 2 năm. Điểm cộng lớn nhất là khả năng cập nhật package cực nhanh. Các công nghệ cốt lõi như NFTables hay Kea DHCP luôn có phiên bản mới nhất, ổn định nhất trên distro này.

Tận dụng một chiếc Mini PC (như Intel N100 hoặc chip J4125) có 2 cổng mạng là lựa chọn tuyệt vời. Nó không chỉ tối ưu hiệu năng mà còn giúp bạn hiểu tường tận cách Linux xử lý từng gói tin đi qua hệ thống.

Bộ đôi sức mạnh: NFTables và Kea DHCP

Chúng ta sẽ tập trung vào hai thành phần chính để xây dựng bộ khung mạng:

  • NFTables: Đây là “người kế nhiệm” hiện đại của iptables. Nó giúp phân loại gói tin và thực hiện NAT để các thiết bị trong nhà ra được Internet. NFTables xử lý nhanh hơn, cú pháp gọn gàng và ít tốn tài nguyên CPU hơn hẳn bản cũ.
  • Kea DHCP: Được phát triển bởi ISC, Kea là tiêu chuẩn mới thay thế cho ISC DHCP server huyền thoại. Nó hỗ trợ cấu trúc JSON, kiến trúc module và có tốc độ cấp phát IP thần tốc, phù hợp cho cả mạng gia đình lẫn doanh nghiệp.

Kịch bản triển khai: Cổng mạng enp1s0 (WAN) nối với Modem đã chuyển sang chế độ Bridge. Cổng enp2s0 (LAN) nối vào Switch để cấp mạng cho các thiết bị nội bộ.

Các bước cấu hình thực tế

Bước 1: Thiết lập giao diện mạng

Dùng lệnh nmcli để xác định chính xác các cổng vật lý. Chúng ta sẽ gán IP tĩnh cho cổng LAN để làm Gateway cho cả mạng.

# Đặt IP tĩnh cho cổng nội bộ (LAN)
nmcli con mod enp2s0 ipv4.addresses 192.168.10.1/24 ipv4.method manual
nmcli con up enp2s0

Thông thường, cổng WAN sẽ nhận IP trực tiếp từ nhà mạng. Bạn có thể cấu hình PPPoE ngay trên cổng này nếu cần thiết.

Bước 2: Mở đường cho dữ liệu (IP Forwarding)

Mặc định, Linux sẽ chặn việc chuyển tiếp gói tin giữa các cổng mạng. Để máy tính đóng vai trò router, bạn phải kích hoạt tính năng Forwarding.

# Cấu hình có hiệu lực ngay cả khi khởi động lại máy
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/90-router.conf
sysctl -p /etc/sysctl.d/90-router.conf

Bước 3: Xây dựng tường lửa với NFTables

Bỏ qua firewalld vì nó quá cồng kềnh cho một router thuần túy. Dùng trực tiếp nftables sẽ giúp hệ thống đạt độ trễ thấp nhất. Hãy tạo file cấu hình /etc/sysconfig/nftables.conf:

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        iifname "lo" accept
        ct state established,related accept
        iifname "enp2s0" accept  # Tin tưởng mạng nội bộ
        tcp dport 22 accept       # Mở cổng SSH quản trị
    }
    chain forward {
        type filter hook forward priority 0; policy drop;
        iifname "enp2s0" oifname "enp1s0" accept
        iifname "enp1s0" oifname "enp2s0" ct state established,related accept
    }
}
table ip nat {
    chain postrouting {
        type nat hook postrouting priority 100; policy accept;
        oifname "enp1s0" masquerade
    }
}

Chạy lệnh sau để kích hoạt tường lửa:

systemctl enable --now nftables

Bước 4: Cấp IP tự động bằng Kea DHCP

Cài đặt Kea DHCP để quản lý dải IP nội bộ một cách chuyên nghiệp:

dnf install kea -y

Chỉnh sửa file /etc/kea/kea-dhcp4.conf. Dưới đây là cấu hình mẫu để cấp IP từ .100 đến .200:

{
"Dhcp4": {
    "interfaces-config": { "interfaces": [ "enp2s0" ] },
    "lease-database": {
        "type": "memfile",
        "persist": true,
        "name": "/var/lib/kea/kea-leases4.csv"
    },
    "subnet4": [
        {
            "subnet": "192.168.10.0/24",
            "pools": [ { "pool": "192.168.10.100 - 192.168.10.200" } ],
            "option-data": [
                { "name": "routers", "data": "192.168.10.1" },
                { "name": "domain-name-servers", "data": "1.1.1.1, 8.8.8.8" }
            ]
        }
    ]
}
}

Kích hoạt dịch vụ để bắt đầu cấp IP:

systemctl enable --now kea-dhcp4

Kiểm tra thành quả

Hãy cắm một chiếc laptop vào cổng LAN. Nếu laptop nhận ngay IP trong dải 192.168.10.x và lướt web vù vù, bạn đã thành công. Một chiếc Mini PC chạy Fedora có thể dễ dàng xử lý băng thông 1Gbps mà không hề nóng máy.

Bạn có thể theo dõi lưu lượng thực tế bằng lệnh nft list ruleset. Nếu có thiết bị không truy cập được mạng, hãy kiểm tra kỹ phần masquerade trong bảng NAT. Đó thường là nơi gây ra lỗi cấu hình phổ biến nhất.

Lời kết

Tự build router không chỉ là sở thích, đó là cách để tối ưu hóa hạ tầng mạng cá nhân. Với nền tảng Fedora vững chắc, bạn có thể cài thêm chặn quảng cáo DNS (Pi-hole) hoặc VPN server ngay trên router này. Chúc các bạn vọc vạch thành công và có một hệ thống mạng thật ổn định!

Share: