Bộ lọc lỗ đen kích hoạt từ xa (RTBH) của BGP cho Juniper


9

Tôi đang cố gắng tìm cách thanh lịch nhất để triển khai bộ lọc RTBH cho các tuyến nhận được từ khách hàng.

Bộ lọc nên:

  1. Chỉ chấp nhận tiền tố của khách hàng từ danh sách tiền tố
  2. Chỉ chấp nhận / 32 tiền tố
  3. Chỉ các tiền tố với cộng đồng hố đen
  4. Đặt hop kế tiếp thành RTBH next-hop (192.0.2.1)

Để bắt đầu, tôi đã xem tài liệu " Định cấu hình điều kiện đối sánh trong Điều khoản chính sách định tuyến " từ Juniper.

Đầu tiên tôi nghĩ đến việc kết hợp một prefix-list-filtertuyến chỉ khớp với danh sách tiền tố của khách hàng và route-filterđể giới hạn các tiền tố được chấp nhận thành / 32, như vậy:

from {
    as-path customer;
    community blackhole;
    prefix-list-filter customer-prefixes orlonger;
    route-filter 0.0.0.0/0 prefix-length-range /32-/32;
}

Nhưng sau đó tôi vấp phải thông tin này trong tài liệu:

Nếu bạn định cấu hình chính sách bao gồm một số kết hợp bộ lọc tuyến đường, danh sách tiền tố và bộ lọc địa chỉ nguồn, chúng được đánh giá theo thao tác HOẶC logic hoặc tra cứu kết hợp tuyến đường dài nhất.

Như tôi đã hiểu được điều này (và tôi tìm thấy nó một chút không rõ ràng), nếu tôi sử dụng prefix-list-filter, route-filtervà / hoặc source-address-filtertrong cùng hạn nó sẽ được đánh giá với một lâu nhất trận đấu OR giữa tất cả trong số họ, mà làm cho phương pháp này không sử dụng được .

Những gì tôi đã đưa ra là đây là bộ lọc sau đây. Các hostroutes-onlyhạn chuyển hướng tất cả tiền tố ngắn hơn / 32 với chính sách tiếp theo. Sau đó, prefixesthuật ngữ này phù hợp nếu / 32 nằm trong phạm vi của khách hàng, khớp với đường dẫn của anh ta và có cộng đồng lỗ đen được đặt:

term hostroutes-only {
    from {
        route-filter 0.0.0.0/0 prefix-length-range /0-/31;
    }
    then next policy;
}
term prefixes {
    from {
        as-path customer;
        community blackhole;
        prefix-list-filter customer-prefixes orlonger;
    }
    then {
        next-hop 192.0.2.1;
        accept;
    }
}

Vì vậy, đây có phải là cách thanh lịch nhất để xử lý này? Bất kỳ giải pháp nào khác?

Câu trả lời:


8

Không có lý do gì để giới hạn khách hàng chỉ lỗ đen / 32, cho phép họ lỗ đen bất cứ thứ gì từ họ.

Một cái gì đó như thế này:

policy-statement AS42-IN {
    term blackhole {
        from {
            community BLACKHOLE;
            prefix-list-filter AS42 orlonger;
        }
        then {
            community add NO-EXPORT;
            next-hop 192.0.2.1;
            accept;
        }
    }
    term advertise {
        from {
            prefix-list AS42;
        }
        then {
            community add ADVERTISE;
            next-hop peer-address;
            accept;
        }
    }
    term reject {
        then reject;
    }
}

Hãy nhớ đặt 'accept-remote-nexthop' trong cài đặt BGP, để hop kế tiếp có thể được thay đổi thành một thứ khác ngoài địa chỉ liên kết.

Tôi cũng ủng hộ mạnh mẽ rằng các nhà cung cấp bắt đầu hỗ trợ các cộng đồng lỗ đen khác nhau chứ không chỉ là 'lỗ đen đầy đủ'. Đặc biệt, nếu bạn hoạt động ở nhiều quốc gia, thường tấn công là do quá cảnh và thường khách hàng thực sự muốn truy cập các đồng nghiệp trong nước, do đó, rất hữu ích khi thực hiện một số cấp độ của lỗ đen:

  1. Đầy
  2. Bên ngoài quốc gia (IXP địa phương, toàn bộ khách hàng AS + đã thấy)
  3. Bên ngoài khu vực địa phương (nếu có thể, như đối với tôi, đó có thể là 'Nordics')
  4. Bao gồm / Loại trừ bộ định tuyến tiên phong cụ thể trong lỗ đen

Tôi rất vui khi đưa ra ví dụ về cách triển khai một cái gì đó như thế này với JNPR DCU / SCU, với điều kiện các bộ định tuyến tiên phong của bạn là JNPR, nhưng chỉ với cộng đồng, có thể khó xử hơn một chút.


Nếu bạn hoàn toàn muốn giới hạn các tùy chọn của khách hàng, bạn có thể thêm điều này:

policy-statement /32 {
    term /32 {
        from {
            route-filter 0.0.0.0/0 prefix-length-range /32-/32;
        }
        then accept;
    }
    term reject {
        then reject;
    }
}

policy-statement AS42-IN {
    term blackhole {
        from {
            community BLACKHOLE;
            policy /32;
            prefix-list-filter AS42 orlonger;
        }
..
}

Cách này phải hợp lý VÀ. Nhưng tôi thực sự không thấy giá trị trong việc tạo ra sự phức tạp để giảm tính biểu cảm của cấu hình.


Cảm ơn bạn vì câu trả lời. Tôi không muốn khách hàng khai thác những phần lớn hơn trong không gian của họ bởi vì họ chủ yếu tự bắn vào chân mình. Về 'accept-remote-nexthop', tôi thay đổi bước nhảy tiếp theo về phía chúng tôi trong bộ lọc chính sách vì vậy tôi không cần bật nó trong phiên.
Sebastian Wiesinger

Chúng tôi không "trừng phạt" bất cứ ai. Nếu họ muốn đưa vào danh sách đen các tiền tố lớn hơn, chắc chắn họ có thể yêu cầu nó. Trong vài năm qua không ai yêu cầu nó.
Sebastian Wiesinger

Bạn đang thấy thêm rắc rối, thêm phức tạp, để giảm tính biểu cảm. Nếu bạn chưa bao giờ cung cấp dịch vụ này, làm sao bạn biết khách hàng của mình sẽ vô tình thêm cộng đồng lỗ đen vào mạng lớn hơn / 32? Thật trùng hợp, khi chúng tôi hỏi tính năng từ các nhà cung cấp, họ trả lời 'không ai từng hỏi về nó' và khi bạn nói chuyện với cộng đồng, bạn sẽ thấy nhiều người muốn có tính năng đó. Dù sao tôi đã thêm đề xuất về cách thực hiện giới hạn này.
ytti

Tôi nhận ra rằng trong ví dụ của bạn, bạn hoàn toàn không chấp nhận các tiền tố mà không cần bôi đen. Vì vậy, bạn có thể có hai giao dịch ngang hàng, một cho lưu lượng truy cập bình thường và một cho giao dịch đen và khả năng bọc đen là multihop trong trường hợp của bạn, trong multihop, kiểm tra hop tiếp theo đã bị tắt, vì vậy bạn không cần 'chấp nhận từ xa -nexthop '. Ví dụ của tôi bao gồm cả các đồng đẳng BGP trong cùng một cấu hình và vì nó là PE trực tiếp <-> CE mà không cần multihop, nên nó cần 'accept-remote-nexthop'.
ytti

Vâng, đó là sự thật, bạn cần nó trong các phiên trực tiếp. Bộ lọc sẽ hoạt động trong cả hai tình huống, bạn sẽ xâu chuỗi nó với các chính sách lọc khác đằng sau nó trong kịch bản PE <-> CE.
Sebastian Wiesinger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.