Ardıç için BGP uzaktan tetiklenen kara delik (RTBH) filtresi


9

Bir müşteriden alınan rotalar için bir RTBH filtresi uygulamak için en zarif yolu bulmaya çalışıyorum .

Filtre:

  1. Müşterilerin yalnızca önek listesinden kendi öneklerini kabul et
  2. Yalnızca kabul et / 32 önek
  3. Yalnızca kara delik topluluğuna sahip önekler
  4. Sonraki sekmeyi RTBH sonraki sekmesine ayarla (192.0.2.1)

Başlamak için Juniper'ın " Yönlendirme Politikası Şartlarında Eşleşme Koşullarını Yapılandırma " belgesine baktım .

İlk olarak prefix-list-filter, yalnızca önek listesinden gelen yolları eşleştirmek route-filteriçin ve kabul edilen önekleri / 32 ile sınırlamak için birleştirmeyi düşündüm :

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

Ama sonra belgede bu bilgiler hakkında tökezledim:

Rota filtrelerinin, önek listelerinin ve kaynak adres filtrelerinin bazı birleşimlerini içeren bir ilke yapılandırırsanız, bunlar mantıksal bir OR işlemine veya en uzun yol eşlemesi aramasına göre değerlendirilir.

Ben bunu anlamak (ve belirsiz biraz bulmak) Ben kullanırsanız olarak prefix-list-filter, route-filterve / veya source-address-filteraynı dönemde bir en uzun maçı ile VEYA bu yaklaşım yapar hepsi arasında değerlendirilecektir kullanılamaz .

Ne geldi bu şu filtre. Bu hostroutes-onlyterim, / 32'den kısa olan tüm önekleri bir sonraki politikaya yönlendirir. Bundan sonra prefixes, / 32 müşteri aralığındaysa , terim kendi yoluyla eşleşir ve kara delik topluluğuna sahipse terim eşleşir:

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;
    }
}

Peki, bununla başa çıkmanın en zarif yolu mu? Başka çözüm var mı?

Yanıtlar:


8

Müşteriyi sadece kara deliğe sınırlamak için hiçbir neden yoktur / 32, onlardan herhangi bir şey kara delik yapmasına izin verin.

Bunun gibi bir şey:

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;
    }
}

BGP ayarları altında 'accept-remote-nexthop'u' ayarlamayı unutmayın, böylece bir sonraki atlama bağlantı adresinden başka bir şeye değiştirilebilir.

Ayrıca, sağlayıcıların 'tam karadelikten' farklı kara delik topluluklarını desteklemeye başladığını da kesinlikle destekliyorum. Özellikle birden fazla ülkede faaliyet gösteriyorsanız, saldırı genellikle transittir ve genellikle müşteri çoğunlukla yerel emsallere erişmek istiyorsa, bu nedenle birkaç düzeyde kara deliğin uygulanması yararlı olur:

  1. Tam
  2. Yerel ülke dışında (yerel IXP, tüm kendi AS + müşterileri görüldü)
  3. Yerel alanın dışında (varsa, benim için 'İskandinavlar' olabilir)
  4. Kara delikte belirli eşleme yönlendiricisini dahil et / hariç tut

Eşleme yönlendiricilerinizin JNPR olması koşuluyla JNPR DCU / SCU ile böyle bir şeyi nasıl uygulayacağımı örnek vermekten memnuniyet duyuyorum, ancak sadece topluluklarla mümkün, biraz daha garip.


Müşterinizin seçeneklerini kesinlikle sınırlamak istiyorsanız, bunu ekleyebilirsiniz:

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;
        }
..
}

Bu şekilde mantıklı olmalı VE. Ancak, yapılandırmanın anlamlılığını azaltmak için karmaşıklık yaratmanın değerini gerçekten görmüyorum.


Cevabınız için teşekkür ederim. Müşterilerin alanlarının daha büyük bölümlerini karartmalarını istemiyorum çünkü çoğunlukla kendileriyle birlikte ayağa vuruyorlar. 'Accept-remote-nexthop' ile ilgili olarak, politika filtresindeki tarafımızdaki sonraki sekmeyi değiştiriyorum, böylece oturumda etkinleştirmem gerekmiyor.
Sebastian Wiesinger

Kimseyi "cezalandırmıyoruz". Daha büyük önekleri kara listeye almak istiyorlarsa kesinlikle isteyebilirler. Son birkaç yılda kimse bunu istemedi.
Sebastian Wiesinger

İfadeyi azaltmak için ek sorun, karmaşıklık ekleyerek görüyorsunuz. Bunu hiç teklif etmediyseniz, müşterilerinizin yanlışlıkla / 32'den daha büyük ağlara kara delik topluluğu ekleyeceğini nasıl anlarsınız? Tesadüfen, satıcılardan özellik istediğimizde, 'hiç kimse bunu istemedi' yanıtını veriyorlar ve toplulukla konuştuğunuzda, böyle bir özellik isteyen birçok insan bulacaksınız. Her neyse, bu sınırın nasıl uygulanacağı konusunda öneri ekledim.
ytti

Örneğinizde, ön ekleri karartma olmadan kabul etmediğinizi fark ettim. Muhtemelen iki eşiniz var, biri normal trafik ve diğeri karartma için ve karadelik muhtemelen sizin durumunda çoklu atölye, çoklu atölyede sonraki atlama kontrolü zaten kapalı, bu yüzden 'kabul et-uzaktan kumandasına ihtiyacınız yok '-nexthop. Örneğim, aynı konfigürasyondaki her iki BGP eşlemesini de kapsar ve çoklu atölye olmadan doğrudan PE <-> CE olduğundan, 'accept-remote-nexthop' gerekir.
ytti

Evet bu doğru, doğrudan oturumlarda ihtiyacınız var. Filtre her iki durumda da çalışmalıdır, PE <-> CE senaryosunda arkasındaki diğer filtreleme politikalarıyla zincirleyebilirsiniz.
Sebastian Wiesinger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.