Cisco ASA đến Azure VPN: các cặp tiền tố của bộ chọn lưu lượng
Viết kết nối ASA đến Azure VPN như một hợp đồng: mô hình kết nối, các cặp tiền tố chính xác, kiểm tra bộ chọn, rồi khôi phục. Một runbook khớp với bản phát hành.
Đường hầm dựng lên, IKE trông khỏe mạnh, mà không có gì đi qua. Đó là dạng thường gặp của sự cố bộ chọn ASA đến Azure, và đó là lý do tôi viết hợp đồng trước khi chạm vào bất kỳ bảng điều khiển nào. Hợp đồng gồm bốn thứ: các đối tượng nhận diện từng peer, mô hình kết nối, các cặp tiền tố chính xác và việc kiểm tra chứng minh từng cặp. Làm sai ở đây thì mọi lệnh sau đó sẽ gỡ lỗi một cấu hình mà bạn lẽ ra không nên dựng. Runbook này là thứ tự tôi dùng, cùng các lệnh cho thấy đối tượng nào thực sự sai.
Ghi bốn đối tượng trước khi cấu hình
Bắt đầu với bản phát hành và nền tảng ASA, điểm cuối công khai, loại và SKU của cổng Azure VPN, và cổng mạng cục bộ đại diện cho phía bạn. Bốn cái tên đó là từ vựng cho mọi thứ tiếp theo, và mỗi cái có chủ sở hữu khác nhau khi có sự cố.
Nếu hai trong số đó vẫn là phỏng đoán, hãy dừng. Danh sách tiền tố sai trên cổng mạng cục bộ không phải vấn đề tinh chỉnh.
Chọn một mô hình kết nối và ngừng trộn mẫu
Thiết kế crypto map và thiết kế tunnel interface là các cấu hình khác nhau, và mẫu của cái này không trở nên hợp lệ cho cái kia bằng cách sửa địa chỉ peer. Ghi lại bạn đang dựng cái nào trước khi dán bất cứ thứ gì, vì sự không khớp sau đó hiện ra như một sự cố bộ chọn chứ không phải lỗi cấu hình. Hướng dẫn tương tác ASA của Microsoft bao gồm cả hai mẫu và nêu rõ mỗi mẫu giả định mô hình cổng Azure nào. Nếu ghi chú của bạn không nêu tên mô hình, bạn chưa có thiết kế.
Cổng Azure dựa trên tuyến với bộ chọn lưu lượng dựa trên chính sách là một tùy chọn cụ thể đã được ghi tài liệu, không phải mặc định. Nếu thiết kế của bạn phụ thuộc vào nó, thiết kế phải nói rõ, vì mô hình bộ chọn dựa trên tuyến mặc định hành xử khác ở phía Azure.
Giới hạn phiên bản cũng thuộc hợp đồng. Một báo cáo hiện trường cũ về giới hạn miền mã hóa là dữ liệu về các bản phát hành cụ thể, không phải thuộc tính vĩnh viễn của mọi ASA.
Liệt kê các cặp tiền tố, không phải tập hợp
Viết ma trận. Từ A và B tại chỗ đến X và Y của Azure là bốn cặp, và mỗi cặp cần vùng phủ hoặc loại trừ rõ ràng. Gộp A và B thành một tập hợp cũng bao gồm mọi thứ ở giữa chúng, và đó là cách thiết kế âm thầm mọc ra một lỗ hổng.
Kiểm tra điều các peer đã thương lượng, không phải điều bạn đã lưu. Danh sách mạng cục bộ và từ xa trên ASA là ý định; các CHILD SA là kết quả.
Khi thiếu một cặp, cách sửa thường là một dòng access-list hoặc một mục bộ chọn, không phải đường hầm mới.
Kiểm tra bằng các lệnh nêu tên đối tượng
Trên ASA xác nhận phiên IKE, rồi các SA IPsec, rồi các cặp bộ chọn. Mỗi lệnh trả lời một câu hỏi khác, và chỉ chạy lệnh đầu là cách «đường hầm đã lên» trở thành kết luận sai. Đọc đầu ra cho peer bạn thực sự đã cấu hình, không phải cho SA tình cờ đứng đầu danh sách. Phía Azure trả lời cùng ba câu hỏi từ góc nhìn của nó.
show crypto ikev2 sa detailed
show crypto ipsec sa peer 203.0.113.10
show run access-list AZURE-SELECTORS
packet-tracer input inside icmp 10.1.10.10 8 0 10.2.20.20 detailed
Sau đó hỏi Azure về trạng thái kết nối bằng az network vpn-connection show --name <connection> --query connectionStatus. Đã kết nối với không byte trên đường dữ liệu là sự cố bộ chọn, không phải định tuyến.
Thử một luồng được phép cho mỗi cặp, xem địa chỉ nguồn thấy ở phía bên kia, và thử một tài nguyên lẽ ra phải bị từ chối. Chỉ bài kiểm tra cuối đó chứng minh ranh giới vẫn còn.
Giữ phạm vi mã hóa tách khỏi quyền truy cập
Bộ chọn rộng không phải là quyền. Nếu bố cục được hỗ trợ rộng hơn chính sách ứng dụng, hãy giữ các dịch vụ hẹp trong quy tắc firewall và để phạm vi mã hóa ở nơi nó phải ở.
Các tuyến khối lượng công việc Azure và tuyến quay về tại chỗ được xem xét riêng. Quảng cáo BGP, phạm vi mạng tĩnh và tuyến do người dùng định nghĩa đều phải mô tả cùng một đường đi, và không cái nào được bắt vận chuyển của peer một cách đệ quy.
Khôi phục và bằng chứng nó đã hiệu quả
Lưu cấu hình đang chạy trước đó trước khi đổi bộ chọn, và biết lệnh duy nhất đưa nó trở lại. Trên ASA điều đó nghĩa là một bản sao đã lưu và đường khôi phục tương ứng, không phải ký ức về những gì bạn đã sửa. Viết lệnh khôi phục vào phiếu thay đổi khi thay đổi còn là giả định. Sau đó chạy lại ba kiểm tra như cũ: trạng thái IKE, các cặp SA IPsec, một luồng được phép cho mỗi cặp.
Nếu một cặp vẫn hỏng sau khi khôi phục, thay đổi không phải nguyên nhân, và bạn vừa tự cứu mình khỏi sự cố thứ hai.