Giới thiệu
GRE là viết tắt của Generic Routing Encapsulation, cho phép hai máy chủ giao tiếp riêng với nhau thông qua GRE Tunnel. Nó tương đối dễ dàng để thiết lập và an toàn để truyền dữ liệu (Hãy tưởng tượng giống như bạn đang thiết lập một đường ống kết nối trực tiếp giữa hai máy chủ với nhau).
Trong bài viết này, chúng tôi sẽ hướng dẫn cho bạn cách để cấu hình GRE Tunnel trên CentOS 7
Lưu ý: GRE Tunnels phải được setup tối thiểu trên hai endpoints
Huớng dẫn cấu hình GRE Tunnel trên CentOS 7
Bước 1: Chuẩn bị máy chủ CentOS 7 và module cần thiết
Server CentOS 7 (Server A)
- Local / Internal IP Address: 192.168.0.1
- Public / WAN IP Address: 103.232.123.162
Server CentOS 7 (Server B)
- Local / Internal IP Address: 192.168.0.2
- Public / WAN IP Address: 103.232.123.163
Để cấu hình GRE Tunnel, bạn cần allow một số module trên hệ điều hành Linux. Trong trường hợp này bạn cần load module ip_gre theo câu lệnh sau:
modprobe ip_gre
Để kiểm tra module đã được kích hoạt hay chưa, bạn dùng lệnh lsmod | grep ip_gre để kiểm tra

Lưu ý: Để module này tự động kích hoạt khi máy chủ restart, bạn hãy chạy câu lệnh bên dưới
echo ip_gre >> /etc/modules-load.d/tun.conf
Bước 2: Cấu hình GRE Tunnel
Để cài đặt Tunnel, bạn cần thiết lập interface cho mỗi server.
Thiết lập trên server A:
Tạo một file quản lý cấu hình cho interface tun0 trên server A
vim /etc/sysconfig/network-scripts/ifcfg-tun0
Sau đó chèn đoạn cấu hình sau vào file vừa tạo trên server A
DEVICE=tun0
BOOTPROTO=none
ONBOOT=yes
DEVICETYPE=tunnel
TYPE=GRE
PEER_INNER_IPADDR=192.168.0.2
PEER_OUTER_IPADDR=103.232.123.163
MY_INNER_IPADDR=192.168.0.1
Thiết lập trên server B
Tạo một file quản lý cấu hình cho interface tun0 trên server B
vim /etc/sysconfig/network-scripts/ifcfg-tun0
Sau đó chèn đoạn cấu hình sau vào file vừa tạo trên server B
DEVICE=tun0
BOOTPROTO=none
ONBOOT=yes
TYPE=GRE
PEER_INNER_IPADDR=192.168.0.1
PEER_OUTER_IPADDR=103.232.123.162
MY_INNER_IPADDR=192.168.0.2
Sau đó bạn hãy enable card mạng tun0 lên để kích hoạt GRE Tunnel trên CentOS 7
ifup tun0

Bước 3: Cấu hình Firewall trên 2 máy chủ CentOS 7
Trong trường hợp bạn sử dụng CSF, bạn cần whitelist địa chỉ IP LAN / Internal vào csf
echo 192.168.0.1 >> /etc/csf/csf.allow # Trên server B
echo 192.168.0.2 >> /etc/csf/csf.allow # Trên server A
Cấu hình cho phép lưu lượng GRE đi qua CSF
vim /etc/csf/csfpre.sh
Sau đó đặt cấu hình sau:
#!/bin/bash
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
Reload lại cấu hình của CSF để áp dụng các rules vừa tạo
csf -r
Trong trường hợp bạn sử dụng Firewalld, hãy sử dụng câu lệnh bên dưới trên cả 2 servers
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --reload
Bước 4 (Optional): Trong bất cứ lúc nào, nếu bạn quyết định xóa GRE Tunnel trên CentOS 7, chỉ cần ngắt Interface tun0 đã tạo và xóa tệp cấu hình network.
ifdown tun0
rm -rf /etc/sysconfig/network-scripts/ifcfg-tun0
systemctl restart network
Tổng kết
Ở bài viết trên, chúng tôi đã hướng dẫn cho bạn cấu hình GRE Tunnel trên CentOS 7 server. Bạn có thể tham khảo thêm thông tin hoặc một số hướng dẫn về cấu hình Tunnel, VPN, Anycast network,… tại đây.
Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, hãy để lại bình luận bên dưới.
Leave A Comment?