BGP đã học được tiền tố, nhưng lưu lượng vẫn vòng qua đường hầm
Tiền tố trong bảng BGP là tin của mặt phẳng điều khiển, không phải quyết định chuyển tiếp. Hãy lần lượt kiểm tra nhận, chọn, cài đặt và khớp trước khi đổ lỗi cho đường hầm.
Cổng chi nhánh hiển thị tiền tố đám mây trong bảng BGP của nó, phiên với nhà cung cấp đã thiết lập, vậy mà yêu cầu của người dùng tới tiền tố đó vẫn đi ra qua giao diện sai. Không có gì hỏng theo cách mà giám sát gợi ý, bởi “BGP đã học được” là một phát biểu về mặt phẳng điều khiển. Giữa bảng đó và gói tin có bốn chuyển tiếp riêng biệt, và luồng dừng đúng ở một trong số đó. Hãy đi qua các cổng theo thứ tự và dừng ở cổng đầu tiên thất bại.
Cổng thứ nhất: láng giềng thực sự đã gửi gì
Bắt đầu từ tiền tố như khi nhận được, không phải như khi đã tổng hợp. Tra đúng mạng và mặt nạ trong bảng BGP rồi ghi lại bước nhảy tiếp theo, đường AS và bất kỳ cộng đồng nào mà chính sách nhập có thể khớp. Một tuyến tổng hợp trên bảng điều khiển có thể che giấu sự thật rằng tiền tố cụ thể đó chưa bao giờ được chấp nhận.
Chính sách nhập là nơi thường gặp khiến một tuyến biến mất mà không có lỗi. Danh sách tiền tố, bộ lọc cộng đồng hoặc bản đồ tuyến vào có thể bỏ cập nhật trong khi phiên vẫn ở trạng thái lên và khỏe mạnh, đó là lý do đèn láng giềng xanh chứng minh được rất ít. Không có dòng log không có nghĩa là không có quyết định. Thường thì nó có nghĩa quyết định được đưa ra âm thầm, đúng như cấu hình.
show ip bgp 10.60.20.0/24 show ip bgp neighbors 203.0.113.5 advertised-routes show ip route 10.60.20.0 show ip cef 10.60.20.0
Đọc đầu ra theo thứ tự đó. Hai lệnh đầu cho biết thông tin có đến hay không và ngang hàng khai đã gửi gì; hai lệnh sau cho biết có gì đến được bảng định tuyến và chuyển tiếp hay không. Một tiền tố có trong lệnh đầu và không có trong lệnh thứ ba là vấn đề chọn hoặc cài đặt, không phải vấn đề kết nối.
Cổng thứ hai: chọn, rồi cài đặt
BGP chọn đường tốt nhất, và đường được chọn không tự động được cài đặt. Bước nhảy tiếp theo phải phân giải được, và một nguồn tuyến khác có thể đã sở hữu tiền tố đó với khoảng cách quản trị tốt hơn. Một tuyến tĩnh còn lại từ đợt di trú sẽ dễ dàng thắng đường BGP hợp lệ và gửi lưu lượng đi nơi khác.
RFC 4271 giữ ba ý tưởng tách biệt: ngang hàng đã gửi gì, diễn giả này chọn gì là tốt nhất, và sẽ quảng bá gì tiếp theo. Đó là các vai trò khái niệm, không phải ba cơ sở dữ liệu vật lý mà nhà cung cấp phải phơi bày, nhưng chính sự tách biệt đó khiến “nó nằm trong BGP” là câu trả lời chưa đầy đủ.
Cũng kiểm tra xem bạn đang đọc ngữ cảnh định tuyến nào. Một tuyến được cài trong VRF mà giao diện của người dùng không thuộc về thì vô hình với gói tin của người dùng đó, và bảng trông vẫn đúng suốt thời gian.
Cổng thứ ba: tra cứu áp dụng cho luồng này
Giờ hãy ngừng hỏi về tuyến và bắt đầu hỏi về gói tin. Ghi lại địa chỉ nguồn của người dùng, đích, giao thức, cổng và giao diện vào, vì mỗi thứ đó có thể chọn một chính sách khác. Sau đó xem tra cứu áp dụng cho tổ hợp đó thay vì bảng định tuyến chung.
ip route get 10.60.20.25 from 10.60.10.40 ip rule show sudo tcpdump -ni tun0 'host 10.60.20.25'
Tiền tố cụ thể hơn là bất ngờ phổ biến nhất ở đây, và tuyến chính sách là thứ hai. Cả hai đều lấn át tuyến tổng hợp bạn đang xem, và không cái nào hiện ra trong bản tóm tắt bảng BGP.
Ping phát từ chính cổng không phải bằng chứng về phiên của người dùng. Địa chỉ nguồn khác, đường chính sách khác và thường cho kết quả khác. Hãy thử với đúng nguồn mà ứng dụng dùng, hoặc chấp nhận rằng bài kiểm tra trả lời một câu hỏi khác.
Cổng thứ tư: nửa xa của đường đi
Nếu tra cứu cục bộ thực sự chọn đường hầm, gói tin vẫn phải được chính sách bảo vệ chấp nhận, được quy tắc chuyển tiếp cho phép và được một thứ gì đó phía bên kia trả lời. Một ACL mã hóa không bao gồm cặp địa chỉ sẽ bỏ lưu lượng trong khi đường hầm báo mình đang lên, tạo ra thời gian chờ không thể phân biệt với lỗi định tuyến.
Đường về quan trọng ngang đường đi. Phía đám mây phải biết cách đến nguồn của chi nhánh, hoặc qua một tuyến, hoặc qua một phép dịch mà bạn cố ý cấu hình. Đường về không đối xứng thường gặp trong các thiết kế chỉ được kiểm thử từ một hướng.
Tương quan một kết nối đã được cấp phép mới với ba quan sát: chính sách cục bộ đã khớp, bộ đếm đường hầm đã nhích và việc nhận được ở phía xa nơi có thể thấy. Nếu bộ đếm không nhích, gói tin chưa bao giờ vào đường hầm, bảng tuyến nói gì cũng vậy. Nếu chúng nhích mà không có gì đến, phía xa đang bỏ hoặc định tuyến sai. Hai kết quả đó dẫn đến những nhóm hoàn toàn khác nhau.
Gọi tên chuyển tiếp đã thất bại
Viết kết quả như một trong năm trạng thái: không nhận được, không được chính sách chấp nhận, không được chọn, không được cài đặt hoặc không khớp với luồng này. Thêm trạng thái thứ sáu cho trường hợp đường cục bộ đúng mà đầu xa không trả lời được. Câu đó chính là sản phẩm bàn giao, và nó hữu ích hơn nhiều so với ảnh chụp màn hình một láng giềng đã thiết lập.
Cũng giữ một bài kiểm thử phủ định trong kế hoạch nghiệm thu: một đích không được đi qua đường hầm, được xác minh sau thay đổi. Một danh sách kiểm tra chỉ chứng minh đường thuận lợi sẽ không bắt được quy tắc chính sách rộng mà ai đó thêm vào ở cửa sổ bảo trì tiếp theo.