· 6 dk okuma

IRR Route Objesi ve AS-SET Nedir? bgpq4 ile Prefix Filtresi

IRR route objesi, bir IP prefix'ini hangi ASN'in anons etmeye yetkili olduğunu söyleyen veritabanı kaydıdır. AS-SET ise bir ağın kendisini ve müşterilerinin ASN'lerini tek isim altında toplayan listedir. Upstream sağlayıcılar bu iki kaydı bgpq4 gibi araçlarla okuyup BGP oturumunuza prefix filtresi uygular. Kayıtlarınız eksik veya hatalıysa rotalarınız filtrelenir, yani anonsunuz internete çıkmaz.

IRR nedir, neden hâlâ kullanılır?

IRR (Internet Routing Registry), yönlendirme politikalarının tutulduğu dağıtık veritabanları bütünüdür. RIPE, RADB, ARIN, APNIC gibi kayıtlar bu ağın parçasıdır. Her kayıt "source:" alanıyla hangi veritabanına ait olduğunu belirtir.

RPKI ROA kriptografik doğrulama sağlar. IRR ise operasyonel filtre üretiminin temelidir. Çoğu transit sağlayıcı ve IX, müşteri prefix listesini hâlâ IRR'dan üretir. İkisi birbirinin alternatifi değil, tamamlayıcısıdır. ROA tarafını ayrıca öğrenmek isterseniz RPKI/ROA konusunu ayrı bir yazıda ele almıştık. Burada IRR ve AS-SET'e odaklanıyoruz.

Route objesi: route ve route6

IPv4 için route, IPv6 için route6 objesi kullanılır. Bir prefix ile onu originate edecek ASN'i eşler.

route:      192.0.2.0/24
origin:     AS64496
descr:      Example Network
mnt-by:     EXAMPLE-MNT
source:     RIPE
route6:     2001:db8::/32
origin:     AS64496
mnt-by:     EXAMPLE-MNT
source:     RIPE

Önemli noktalar:

Kayıtlarınızı sorgulayın

# Origin ASN'e ait tüm route objeleri (RIPE)
whois -h whois.ripe.net -- '-i origin AS64496'

# RADB üzerinden aynı sorgu
whois -h whois.radb.net -- '-i origin AS64496'

# IRRd "!g" sorgusu: ASN'in IPv4 prefix'leri
whois -h whois.radb.net '!gAS64496'

Aynı prefix farklı IRR veritabanlarında çelişkili origin ile duruyorsa eski kayıtları temizleyin. Bu, filtre üretiminde en sık karşılaşılan sorunlardan biridir.

AS-SET nedir?

AS-SET, bir veya daha fazla ASN ile başka AS-SET'leri üyeleri olarak tutan bir nesnedir. Amaç: "Benim arkamdan hangi ASN'ler geliyor?" sorusuna tek bir isimle cevap vermek.

as-set:     AS64496:AS-EXAMPLE
descr:      Example Network and customers
members:    AS64496, AS64497, AS64498
members:    AS64500:AS-CUSTOMERS
mnt-by:     EXAMPLE-MNT
source:     RIPE

Hiyerarşik isim (AS64496:AS-EXAMPLE) tercih edin. Sahipliği ASN'e bağlar ve başkasının aynı ismi kaydetmesini önler. Düz isimler (AS-EXAMPLE) özellikle ortak veritabanlarında çakışma ve sahiplenme riskini artırır.

AS-SET'in içinde başka AS-SET'ler olabilir. bgpq4 bunları özyinelemeli olarak açar ve sonunda her ASN'in route objelerini toplar.

AS-SET'i açıp inceleyin

# Üyeleri özyinelemeli listele (IRRd !i sorgusu, ",1" = recursive)
whois -h whois.radb.net '!iAS64496:AS-EXAMPLE,1'

Beklemediğiniz bir ASN görürseniz, set'inizin içinde sahipliğini bilmediğiniz bir alt set vardır. Bu, upstream tarafında istenmeyen prefix'lerin izinli listeye girmesine yol açabilir.

bgpq4 ile prefix filtresi üretme

bgpq4, IRR'dan veri çekip cihazınızın anlayacağı formatta prefix-list veya set üretir. Debian/Ubuntu'da paket deposundan kurulabilir:

sudo apt install bgpq4
bgpq4 -h

Temel kullanım (IPv4, Cisco tarzı çıktı):

bgpq4 -4 -l CUST-EXAMPLE-IN AS64496:AS-EXAMPLE

Sık kullanılan seçenekler:

Seçenek Anlamı
-4 / -6 IPv4 / IPv6 prefix'leri
-l ISIM Liste adı
-A Prefix'leri mümkün olduğunca özetle (aggregate)
-m N Kabul edilecek en uzun prefix uzunluğu
-S KAYNAKLAR Sadece belirtilen IRR kaynaklarını kullan (ör. RIPE,RADB)
-b BIRD formatında çıktı
-J Junos formatında çıktı
-j JSON çıktı (otomasyon için)

Uygulamada kaynak ve uzunluk sınırı vermek önemlidir:

# IPv4: sadece RIPE ve RADB, en fazla /24
bgpq4 -4 -A -m 24 -S RIPE,RADB -l CUST-EXAMPLE-V4 AS64496:AS-EXAMPLE

# IPv6: en fazla /48
bgpq4 -6 -A -m 48 -S RIPE,RADB -l CUST-EXAMPLE-V6 AS64496:AS-EXAMPLE

Kaynak belirtmezseniz tüm IRR'lar sorgulanır ve güvenilmeyen, eski kayıtlar listeye sızabilir.

BIRD için kullanım

bgpq4 -4 -b -A -m 24 -S RIPE,RADB -l CUST_EXAMPLE_V4 AS64496:AS-EXAMPLE > /etc/bird/cust_example_v4.conf
bgpq4 -6 -b -A -m 48 -S RIPE,RADB -l CUST_EXAMPLE_V6 AS64496:AS-EXAMPLE > /etc/bird/cust_example_v6.conf

Çıktının başlığı BIRD sürümüne göre farklı olabilir. Dosyayı include etmeden önce içeriğine bakın, gerekirse define satırını uyarlayın. Ardından import filtresinde kullanın:

filter CUST_EXAMPLE_IN {
    if net ~ CUST_EXAMPLE_V4 then accept;
    reject;
}

protocol bgp cust_example {
    local as 64511;
    neighbor 198.51.100.2 as 64496;
    ipv4 {
        import filter CUST_EXAMPLE_IN;
        export none;
    };
}

Üretilen dosyayı yükledikten sonra yapılandırmayı doğrulayıp yeniden yükleyin:

bird -p -c /etc/bird/bird.conf
birdc configure
birdc show route protocol cust_example

Prefix filtresine ek olarak AS-path filtresi de iyi bir pratiktir. bgpq4 -f seçeneği, verilen komşu ASN ile AS-SET'teki ASN'leri eşleyen bir as-path erişim listesi üretir. Prefix ve AS-path birlikte kullanıldığında yanlış origin'den gelen rotalar da elenir.

Otomatik yenileme

IRR kayıtları değişir. Filtreleri bir kez üretip unutmak, müşteri yeni prefix eklediğinde anonsun reddedilmesine yol açar. Basit bir cron ile günlük yenileme yapın:

#!/bin/sh
# /usr/local/bin/refresh-filters.sh
set -e
TMP=$(mktemp)
bgpq4 -4 -b -A -m 24 -S RIPE,RADB -l CUST_EXAMPLE_V4 AS64496:AS-EXAMPLE > "$TMP"
# Boş/hatalı çıktıyı yüklemeyin
[ -s "$TMP" ] && mv "$TMP" /etc/bird/cust_example_v4.conf
bird -p -c /etc/bird/bird.conf && birdc configure

Boş çıktı kontrolü kritiktir. IRR sunucusuna erişilemediğinde boş liste ile yapılandırma yüklenirse tüm müşteri rotaları düşer.

Müşteri AS-SET'i neden önemli?

Sağlayıcı açısından AS-SET, "bu müşteri hangi ASN'leri ve prefix'leri getirebilir" sorusunun otomatik cevabıdır. Müşteri ASN'i sağlayıcının AS-SET'ine eklendiğinde:

Müşteri tarafında kritik kural: kendi AS-SET'inizi güncel tutun. Yeni bir downstream ASN eklediğinizde set'e eklemezseniz, onun prefix'leri bir sonraki filtre yenilemesinde bile gelmez. Üyelik kaldırmayı da unutmayın; ayrılan müşterinin ASN'i set'te kalırsa gereksiz yetki bırakmış olursunuz.

Nixcon'da (AS40368) BGP VDS ile kendi ASN ve IP bloğunu anons eden müşterilerde ASN ve prefix sahipliği RPKI ROA ve resmi RIR/IRR kayıtlarıyla otomatik doğrulanır; müşteri ASN'i AS-NIXCON AS-SET'ine eklenir. Bu yüzden anons öncesi route objesi ve ROA kayıtlarınızın hazır olması kurulumu hızlandırır. Ayrıntılar için BGP destekli VDS sayfasına bakabilirsiniz.

Sık yapılan hatalar ve çözümleri

  1. Route objesi yok, anons reddediliyor. Prefix için route/route6 objesi oluşturun. Sorgu ile (-i origin) görünür olduğunu doğrulayın.
  2. Yanlış origin. AS-path sonundaki ASN ile objedeki origin aynı olmalı. Transit veya tünel kullanıyorsanız anonsu yapan ASN'i kontrol edin.
  3. Farklı IRR'larda çelişkili kayıtlar. Eski kaydı silin veya -S ile güvenilir kaynaklara sınırlayın.
  4. ROA ile IRR uyumsuz. ROA'da max-length /24 iken IRR'da yalnızca /22 kayıtlıysa bazı ağlarda doğrulama farklı sonuç verir. İkisini birlikte güncelleyin.
  5. AS-SET'te sahibi bilinmeyen üyeler. Özyinelemeli listeyi periyodik olarak kontrol edin.
  6. Prefix uzunluğu sınırı. IPv4'te /24'ten, IPv6'da /48'den uzun prefix'ler genelde kabul edilmez. Bunu -m ile filtreye yansıtın.
  7. Filtre güncellenmiyor. Cron ve boş çıktı kontrolü ekleyin, değişiklikten sonra BGP oturumuna soft reset veya route refresh isteyin.

Yayılımı nasıl doğrularsınız?

Kayıtları girdikten ve anonsu başlattıktan sonra rotanın farklı noktalardan görünüp görünmediğine bakın. Nixcon'un herkese açık looking glass aracı İzmir, Frankfurt ve ABD'den BGP rota, ping ve traceroute sorgusu sunar. Prefix'inizin üç lokasyondan da göründüğünü doğrulamak, filtre sorunlarını erken yakalamanın pratik bir yoludur.

Kontrol listesi

IRR ve AS-SET yönetimi bir kez yapılıp bırakılan bir iş değildir. Ancak düzenli tutulduğunda BGP oturumlarının sorunsuz kalmasının ve rota güvenliğinin en ucuz yoludur.

Sık sorulan sorular

IRR route objesi ile RPKI ROA aynı şey mi?

Hayır. Route objesi IRR veritabanında tutulan ve filtre üretiminde kullanılan bir kayıttır. ROA ise RIR tarafından kriptografik olarak imzalanan ve origin doğrulaması (ROV) için kullanılan bir yetkilendirmedir. İkisini birlikte ve tutarlı şekilde tutmak en doğrusudur.

bgpq4 ne işe yarar?

bgpq4, IRR veritabanlarından bir ASN veya AS-SET'in route objelerini çekip Cisco, Junos, BIRD gibi formatlarda prefix-list veya set üretir. Böylece BGP oturumlarında import filtresi otomatik oluşturulabilir.

AS-SET adı hiyerarşik olmak zorunda mı?

Zorunlu olmayabilir ama önerilir. AS64496:AS-EXAMPLE gibi bir isim set'i ASN'inize bağlar, isim çakışmasını ve başkasının aynı adı sahiplenmesini önler.

Route objesi ekledim ama anons hâlâ filtreleniyor, neden?

Upstream filtreleri periyodik yenilenir, yani değişiklik anında yansımayabilir. Ayrıca origin ASN'in yanlış olması, farklı IRR'larda çelişkili kayıt bulunması veya AS-SET'inizin upstream'e doğru iletilmemesi de sık nedenlerdir. whois ile kaydı doğrulayıp upstream'e bildirin.

Kendi ASN'inle BGP VDS'ten anons yapmak için Nixcon'u incele.İncele