1. Bài toán và yêu cầu
Bài toán: Hệ thống Công ty AT (viết tắt là AT) chạy trên hạ tầng AWS cần kết nối với hệ thống phía On-premise (không chạy trên AWS) để call API và lấy các thông tin cần thiết.
Yêu cầu từ phía On-Premise: Phía AT phải dùng các IP 172.0.0.128/28 để gọi sang On-Premise. Phía On-Premise sẽ dùng các IP 10.4.198.0/24 và 10.4.97.0/24 để kết nối VPN thông qua một IP public là 123.123.123.123. Thiết bị phía On-Premise sử dụng để setup và đấu nối VPN sẽ là Cissco với Platform ISR. Ở bài viết này mình sẽ tiến hành triển khai hệ thống VPN site to site trên AWS sử dụng AWS VPN để kết nối với hệ thống phía dưới On-Premise.
2. Phân tích bài toán
Với yêu cầu bài toán như trên, phương án kết nối sử dụng VPN site to site là một phương án phù hợp nhất. Vừa đảm bảo được phần kết nối vừa đảm bảo được phần bảo mật hệ thống của cả 2 bên. Thông thường, để khởi tạo kết nối VPN site to site giữa AWS và On-Premise cần có các thông tin như sau: Địa chỉ IP public mà phía On-Premise cần để kết nối VPN. Dải IP nội bộ mà môi trường On-Premise sử dụng để kết nối thông qua VPN. Dải IP nội bộ mà môi trường trên AWS sử dụng để kết nối VPN (Thông thường dải IP này sẽ không bị bắt buộc phải sử dụng 1 dải IP cụ thể. Tuy nhiên trong bài toán này phía On-Premise bắt buộc môi trường AWS muốn kết nối phải dùng dải IP họ cung cấp). IP Tunel sử dụng bắt buộc phải là một block CIDR /30 thuộc dải 254.0.0/16. Tuy nhiên với yêu cầu như trên và các thông tin đã có ở mục 1, khi nhìn lại yêu cầu phía On-Premise cần lưu ý một số điểm như sau: Cần tránh tạo dải VPC trên AWS sử dụng dải IP bao gồm cả 2 dải IP của AT và On-Premise vì sẽ gặp trường hợp lỗi xảy ra khi khởi tạo subnet cũng như khai báo route tables trên AWS. IP Public để kết nối VPN phía On-Premise là 123.123.123. Đây sẽ là địa chỉ IP để khởi tạo Customer Gateway trên AWS.
3. Mô hình và triển khai
3.1. Mô hình triển khai
Dưới đây là mô hình triển khai:
3.2. Triển khai hệ thống (Phía AT trên AWS)
3.2.1. Khởi tạo VPC và Subnet
Do yêu cầu phía On-Premise bắt buộc phải dùng dải IP 172.0.0.128/28 để call sang phía On-Premise, nên sẽ cần khởi tạo dải VPC và subnet bao gồm các IP thuộc phạm vi On-Premise yêu cầu.
=> Khởi tạo VPC 172.0.0.0/24 và subnet tương ứng là 172.0.0.128/28
Note: Trên AWS mặc định CIDR block cho VPC và subnet tối thiểu phải /28. Ngoài ra dải IP này sẽ phải tách biệt so với dải IP của On-Premise để tránh bị chồng chéo.
3.2.2. Khởi tạo Customer Gateway
Mục VPC -> Customer gateway, tiến hành khởi tạo Customer Gateway và nhập địa chỉ IP tương ứng với địa chỉ IP public của On-Premise -> Chọn Create customer gateway.
3.2.3. Khởi tạo Virtual Private Gateways
Mục VPC -> Virtual Private Gateway, tiến hành khởi tạo Virtual Private Gateway -> Chọn Create Virtual Private Gateway.
3.2.4. Khởi tạo Site-to-Site VPN connections
Name: VPN-AT Target gateway type: Virtual private gateway -> chọn virtual private gateway đã khởi tạo ở mục 3.2.3 (VPG-On-PremiseCommunity)
Customer gateway: Existing -> chọn Customer gateway ID được khởi tạo ở 3.2.2 (CGW-AT-On-Premise-250).
Routing options: Static -> 10.4.198.0/24 và 10.4.97.0/24 Local IPv4 network CIDR: 10.4.198.0/24 và 10.4.97.0/24 Remote IPv4 network CIDR: 172.0.0.128/28
3.3. Triển khai hệ thống (Phía On-Premise)
Sau khi setup xong VPN, trên AWS phần VPN -> Site to Site VPN connection -> chọn VPN name “vpn-0cead44252cd7c41f” -> chọn Download Configuration
Sau khi file config được tải về, tiến hành gửi lại file cho phía On-Premise để phía On-Premise thực hiện cấu hình theo file đã được download ở trên.
4. Kiểm tra kết quả
Sau khi phía On-Premise tiến hành cấu hình xong VPN theo file cấu hình ở mục 3.3, tiến hành kiểm tra kết nối bằng cách:
Phía AT khởi tạo các EC2 có các địa chỉ IP 0.0.130, 172.0.0.131 nằm trong VPC và subnet đã được khởi tạo tiến hành ping tới các địa chỉ IP của On-Premise được nêu ở mục 1. Nếu kết quả trả về như ảnh thì kết nối từ AT tới On-Premise đã thông kết nối. Phía On-Premise tiến hành kiểm tra bằng cách ping tới các địa chỉ IP tunel, địa chỉ IP thuộc CIDR block 0.0.128/28 để kết nối đến AWS tương tự như trên.Khi kết nối cả 2 chiều đã thông. Như vậy VPN đã được thiết lập thành công.
Tham khảo thêm tại: https://tuanvd.com