İçeriğe geç
RinLayer
Routing

RPKI ve ROA: Rota Kaçırmaya Karşı İlk Savunma Hattı

Kendi IP bloğunu duyuran her kurum, o bloğun başkası tarafından duyurulmasına karşı savunmasızdır. RPKI bunu değiştirir — üstelik kurulumu sanıldığından basittir.

2 dk
2 dk okumaRouting

BGP, internetin yönlendirme protokolüdür ve tasarımı gereği güvenden beslenir: bir otonom sistem bir prefix duyurduğunda, komşuları bu duyuruyu doğrulamak yerine kural olarak kabul eder. Bu, yıllardır bilinen ve düzenli aralıklarla sonuçlarını gördüğümüz bir zafiyettir. Bir operatörün yanlışlıkla ya da kasten sizin bloğunuzu duyurması, trafiğinizin size hiç ulaşmadan başka bir yere akması anlamına gelir.

RPKI (Resource Public Key Infrastructure), bu boşluğu kriptografik olarak kapatmayı hedefler. Mantığı sade: hangi otonom sistemin hangi prefix'i duyurmaya yetkili olduğunu, IP bloğunun gerçek sahibi imzalı bir kayıtla ilan eder.

ROA nedir?

ROA (Route Origin Authorization), RPKI'nin temel yapı taşıdır. Üç bilgiden oluşur: duyurulacak prefix, duyurmaya yetkili AS numarası ve izin verilen azami prefix uzunluğu. RIPE NCC üyesiyseniz bu kaydı LIR portalinden birkaç dakikada oluşturabilirsiniz.

Örnek bir ROA şu üç alanı taşır:

text
Prefix      : 203.0.113.0/24
Origin AS   : AS64500
Max length  : /24

Bu kayıt yayınlandığında, AS64500 dışındaki bir otonom sistemin aynı prefix'i duyurması, doğrulama yapan operatörlerde "invalid" olarak işaretlenir ve büyük ihtimalle reddedilir.

Max length tuzağı

En sık yapılan hata max length alanını gereğinden geniş bırakmaktır. /22'lik bir bloğunuz varsa ve max length'i /24 yaparsanız, saldırgan sizin bloğunuzun içinden daha spesifik bir /24 duyurduğunda bu duyuru "valid" görünür — çünkü izin verdiğiniz aralığa düşer. Daha spesifik prefix her zaman kazandığı için trafik yine kaçırılır.

ROV: doğrulamayı kendi tarafınızda açmak

ROA yayınlamak sizi başkalarının kaçırmasına karşı korur. Ama kendi ağınızı hatalı duyurulara karşı korumak için Route Origin Validation'ı (ROV) kendi yönlendiricilerinizde açmanız gerekir. Bunun için bir RPKI validator (Routinator, rpki-client, FORT gibi) çalıştırıp yönlendiricilerinizi RTR protokolüyle bu validator'a bağlarsınız.

Doğrulama sonucunda her rota üç durumdan birini alır:

  • Valid — geçerli bir ROA ile eşleşiyor, kabul edilir.
  • Invalid — prefix için ROA var ama duyuran AS veya uzunluk uyuşmuyor. Reddedilmelidir.
  • NotFound — prefix için hiç ROA yayınlanmamış. Kabul edilir; internetin bir kısmı hâlâ bu durumda.

Devreye alırken izlenecek sıra

  1. 1Duyurduğunuz tüm prefix'lerin envanterini çıkarın; hangi AS'ten, hangi uzunlukta duyurulduğunu doğrulayın.
  2. 2Her prefix için doğru max length ile ROA oluşturun.
  3. 3Birkaç gün bekleyip kendi duyurularınızın dışarıdan "valid" göründüğünü doğrulayın.
  4. 4Validator'ı kurun ve yönlendiricileri RTR ile bağlayın; ilk aşamada sadece işaretleme yapın, reddetmeyin.
  5. 5İnvalid rotaların hacmini ve etkisini ölçün; beklenmeyen bir kayıp yoksa reddetmeye geçin.

Bu sıra önemlidir. ROV'u ölçüm yapmadan doğrudan reddetme moduna almak, kendi müşterilerinizin hatalı yapılandırılmış prefix'lerini de keseceği için beklenmedik kesintiler doğurabilir.

IRR kayıtlarını unutmayın

RPKI, IRR (Internet Routing Registry) kayıtlarının yerini almaz. Birçok transit sağlayıcı hâlâ prefix filtrelerini IRR'den üretir. Güncel olmayan bir route/route6 nesnesi, RPKI tarafınız kusursuz olsa bile yeni bir prefix duyurduğunuzda filtrelenmenize yol açar. İkisini birlikte güncel tutun.

BGPRPKIRIPEGüvenlik
Tüm yazılar

Projenizi Konuşalım

Ağ altyapınızı güçlendirmek için uzman ekibimizle iletişime geçin; ilk değerlendirme ücretsizdir.