CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH

Số 23E4 KĐT Cầu Diễn, Tổ 7, Phú Diễn, Bắc Từ Liêm, Hà Nội


Hướng dẫn xử lý sự cố với IPSEC VPN Site to Site Tunnel Fortigate

Hướng dẫn xử lý sự cố với IPSEC VPN Site to Site Tunnel Fortigate

Có rất nhiều nguyên nhân dẫn tới việc khi các bạn cấu hình VPN giữa các site nhưng Tunnel không UP. Trong bài viết này, mình sẽ hướng dẫn các kỹ thuật xác định, debug, xử lý sự cố với IPSEC VPN Site to Site Tunnel trên firewall Fortigate trong trường hợp các bạn cấu hình Tunnel nhưng không UP, hoặc các bạn không ping được tới các remote site.

Xác định Tunnel đang gặp sự cố

Đầu tiên, chúng ta cần xác định xem Tunnel nào đang có vấn đề (trong trường hợp trên firewall các bạn có nhiều Tunnel khác nhau). Các bạn có thể xem trạng thái của Tunnel trong menu VPN > IPSec Tunnels. Các bạn kiểm tra cột Status, VPN đang Inactive là Tunnel đang down.

Hoặc xác định Tunnel Status bằng lệnh get vpn ipsec tunnel summary.

FW-HQ # get vpn ipsec tunnel summary'to-FW-BR1' 10.189.0.182:0 selectors(total,up): 1/1 rx(pkt,err): 1921/0 tx(pkt,err): 69/2
'to-FW-BR' 27.16.100.23:0 selectors(total,up): 1/0 rx(pkt,err): 0/0 tx(pkt,err): 0/0

Các bạn có thể thấy Firewall đang có 2 Tunnel là to-FW-BR1 và to-FW-BR, trong đó tunnel to-FW-BR đang không DOWN, do vậy chúng ta cần phải xử lý tunnel to-FW-BR.

Kiểm tra Phase 1

Sau khi xác định được Tunnel cần xử lý, các bạn kiểm tra trạng thái của Phase 1 bằng lệnh: diagnose vpn ike gateway list name to-FW-BR.

FW-HQ # diagnose vpn ike gateway list name to-FW-BRvd: root/0
name: to-FW-BR
version: 1
interface: port9 10
addr: 27.16.100.23:500 -> 220.252.51.23:500
created: 15s ago
IKE SA: created 1/1
IPsec SA: created 0/0 id/spi: 3 8949403d4d77ad73/0000000000000000 direction: responder status: connecting, state 3, started 15s ago
FW-HQ #

Trong output, các bạn chỉ cần để ý đến dòng Status, sẽ có 2 trạng thái của status là connecting và established.

  • Established nghĩa là Phase 1 đã IP và đang hoạt động, các bạn kiểm có thể bỏ quan mục này và tiếp tục check Phase 2. Trong trường hợp Status đang là Established nhưng Tunnel vẫn báo Inactive thì nghĩa là chưa có traffic đi qua Tunnel. Các bạn chỉ cần ping giữa 2 Site là Tunnel sẽ tự động chuyển sang UP.
  • Connecting là Phase 1 đang down.

Nếu trạng thái là Connecting, các bạn sẽ cần kiểm tra kết nối 2 chiều giữa 2 Firewall. Các bạn có thể sử dụng traceroute hoặc ping tới IP WAN của Firewall đầu xa.

FW-HQ # execute traceroute-options source 27.16.100.23

FW-HQ # execute traceroute 220.252.51.23

Sau khi chắc chắn có thể ping IP giữa 2 Firewall, các bạn cần đảm bảo không có firewall nào chặn port 500 hoặc 4500, do IPSec VPN sử dụng 2 port này để thiết lập Phase1. Các bạn có thể sử dụng packet sniffer trên firewall để lọc các gói tin trao đổi giữa 2 Firewall. Nếu Firewall các bạn đặt sau NAT và Nattraversal được enable thì Port sẽ được đổi thành 4500.

FW-HQ # diagnose sniffer packet any 'host 220.252.51.23 and port 500' 4 0 l interfaces=[any] filters=[host 10.189.0.182 and port 500]

Nếu như cả 2 bước trên đều thành công, các bạn sẽ cần debug IKE để xem thông số 2 đầu có match với nhau hay không. Các thông số Phase 1 cần phải giống nhau trên 2 VPN Peer, bao gồm DH Group, Encryption, Authentication.

FW-HQ # diagnose vpn ike log-filter dst-addr4 220.252.51.23

FW-HQ # diagnose debug application ike -1

FW-HQ # diagnose debug enable

Khi các bạn bật Debug, nếu thông số 2 đầu không giống nhau, các bạn sẽ nhận được thông báo mismatches, chúng ta chỉ cần sửa lại cho đúng là được. Các bạn cũng có thể so sánh thông số Phase 1 của 2 firewall trên giao diện web, nếu không quen với giao diện dòng lệnh. Edit VPN Tunnel và tìm phần Phase 1 Proposal

Kiểm tra Phase 2

Nếu Phase 1 trong trạng thái established, các bạn sẽ tiếp tục kiểm tra Phase 2. Để kiểm tra Phase 2, các bạn sử dụng lệnh: diagnose vpn tunnel list name to-FW-BR.

FW-HQ # diagnose vpn tunnel list name to-FW-BRlist ipsec tunnel by names in vd 0
------------------------------------------------------
name=to-FW-BR ver=1 serial=1 27.16.100.23:0->220.252.51.23:0 dst_mtu=0
bound_if=10 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/520 options[0208]=npu frag-rfc run_state=0 role=primary accept_traffic=1 overlay_id=0
proxyid_num=1 child_num=0 refcnt=10 ilast=42956428 olast=42956428 ad=/0
stat: rxp=0 txp=0 rxb=0 txb=0
dpd: mode=on-demand on=0 idle=20000ms retry=3 count=0 seqno=0
natt: mode=none draft=0 interval=0 remote_port=0
proxyid=to-FW-BR proto=0 sa=0 ref=1 serial=1 src: 0:192.168.10.0/255.255.255.0:0 0:172.16.0.0/255.255.255.0:0 dst: 0:10.0.0.0/255.255.255.0:0
run_tally=1
FW-HQ #

Trong output của câu lệnh, các bạn chỉ cần chú ý đến thông số "sa" được bôi đỏ ở trên, nó sẽ có 3 giá trị:

  • sa=0 cho biết có mismatch giữa các thông số phase 2, hoặc chưa có traffic nào đi qua Tunnel. Các bạn có thể ping giữa 2 dải LAN VPN, nếu không ping được thì do thông số đang mismatch. Trong trường hợp mismatch thì các bạn cần edit lại thông số Phase 2 để đảm bảo giống nhau giữa 2 đầu. Các bạn Edit VPN Tunnel và chỉnh sửa Phase 2 Proposal.
  • sa=1 cho biết các thông số giống nhau, và VPN đang hoạt động bình thường.
  • sa=2 các bạn sẽ ít khi thấy, nó chỉ xuất hiện các firewall hoặc router trao đổi lại khóa.

Trong trường hợp thông số Phase2 hai đầu không giống nhau, các bạn có thể bật debug ike như ở phase 1 để kiểm tra. Hoặc đơn giản nhất là các bạn mở Phase 1 và Phase 2 Setting của cả 2 Firewall để so sánh. Chỉ cần thông số giống nhau, không có Firewall chặn port 500 và 4500, IP WAN 2 đầu Firewall có thể ping thông là VPN Tunnel sẽ UP.

Như vậy là mình đã hướng dẫn các bạn kiểm tra trong trường hợp chúng ta cấu hình VPN nhưng vẫn không thông. Nếu các bạn có thắc mắc hay góp ý gì, hãy để lại comment để mọi người cùng trao đổi. Hi vọng bài viết này sẽ giúp ích cho các bạn trong công việc. Nếu bạn có vấn đề gì thắc mắc đừng ngần ngại liên hệ với chúng tôi theo thông tin dưới đây để được hỗ trợ thêm.

Hẹn gặp lại các bạn trong các bài viết tiếp theo !

 

CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH

• Địa chỉ: Số 23E4 KĐT Cầu Diễn, Tổ 7, Phú Diễn, Bắc Từ Liêm, Hà Nội

• Điện thoại: 02432012368

• Hotline: 098 115 6699

• Email: info@datech.vn

• Website: https://datech.vn