Làm thế nào để cấu hình GRE Tunnel trên CentOS 7

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

gre-tunnel-tren-centos-7-01

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
gre-tunnel-tren-centos-7-02

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.

Was this article helpful?

Leave A Comment?