Junos OS’de BGP Path Selection (Yol Seçimi) Nasıl Çalışır?
Junos OS’de BGP yol seçimi algoritmasını adım adım inceleyin ve en iyi yolu nasıl belirlenir öğrenin.
Tanıtım
Genel Bakış
BGP (Border Gateway Protocol), internetin omurgasını oluşturan ve farklı AS’ler (Autonomous Systems) arasında rotalama yapan bir dış yönlendirme protokolüdür. Junos OS’de çalışan bir BGP süreci, her bir hedef için en iyi yolu seçmek zorundadır. Bu seçim, yalnızca BGP’nin kendi kriterlerine göre değil, aynı zamanda diğer yönlendirme protokollerinden gelen yollarla da karşılaştırılarak yapılır.
Bu makalede, Junos OS’de BGP yol seçimi algoritmasını detaylı olarak inceleyecek, her bir adımın nasıl çalıştığını ve CLI komutlarıyla nasıl gözlemlenebileceğini öğreneceksiniz. Ayrıca, administrative distance, local preference, AS path, MED (Multi-Exit Discriminator) gibi kritik parametrelerin yol seçimindeki rolünü de açıklayacağız.
Bu bilgiler, BGP’nin karmaşık yapısını anlamanıza ve Junos OS’de daha verimli bir ağ yönetimi gerçekleştirmenize yardımcı olacaktır.
Teknik Özellikler
BGP Yol Seçimi Parametreleri ve Konfigürasyon Seçenekleri
Aşağıdaki tablo, Junos OS’de BGP yol seçimini etkileyen parametreleri ve bu parametrelerin nasıl yapılandırılabileceğini göstermektedir:
| Parametre | Açıklama | Varsayılan Değer | CLI Komutu |
|---|---|---|---|
| Local Preference | AS içerisinde hangi yolun tercih edileceğini belirler. | 100 | set protocols bgp group <group-name> local-preference <değer> |
| AS Path Ignore | AS path uzunluğunun dikkate alınmamasını sağlar. | Yok | set protocols bgp group <group-name> as-path-ignore |
| Always Compare MED | Tüm yolların MED değerlerini karşılaştırır. | Yok | set protocols bgp path-selection always-compare-med |
| Cisco Nondeterministic | Farklı AS’lere ait yolların MED değerlerini karşılaştırır. | Yok | set protocols bgp path-selection cisco-nondeterministic |
| AIGP | IGP metriğinin birikimini dikkate alır. | Yok | set protocols bgp path-selection aigp |
| Path Selection Preference | BGP yol seçimi tercihini ayarlar. | Yok | set protocols bgp group <group-name> preference <değer> |
| Administrative Distance | Farklı protokollerden gelen yollarla karşılaştırma yapar. | BGP: 170 | set routing-options static route <prefix> preference <değer> |
BGP Grupları ve Komşularının Yapılandırılması
BGP yol seçimini etkileyen parametreler, genellikle BGP grupları içerisinde yapılandırılır. Aşağıdaki örnek, bir BGP grubunun nasıl yapılandırılabileceğini göstermektedir:
user@router# show protocols bgp
group external-peers {
type external;
local-address 192.168.1.1;
neighbor 192.168.1.2 {
peer-as 65001;
local-preference 200;
metric 100;
}
neighbor 192.168.2.2 {
peer-as 65002;
local-preference 150;
metric 50;
}
} Teknik Detaylar
Teknik Detaylar
Junos OS’de BGP yol seçimi, aşağıdaki adımlar izlenerek gerçekleştirilir. Her adımda, en iyi yol belirlenirken kullanılan kriterler açıklanmıştır. Bu adımlar, BGP Table Path Selection sürecinin temelini oluşturur.
1. Next Hop’un Çözümlenebilirliği Kontrolü
BGP yolunun kullanılabilmesi için, next hop adresinin router tarafından erişilebilir olması gerekir. Next hop, genellikle BGP komşusunun IP adresidir. Eğer next hop’a ulaşım mümkün değilse, bu yol forwarding için uygun değildir ve tercih edilmez.
CLI Örneği:
user@router> show route <prefix>
<prefix> ... [BGP/170] 00:10:22
> to 192.168.1.2 via ge-0/0/1.0
Yukarıdaki çıktıda, 192.168.1.2 next hop adresi olup, bu adresin router tarafından erişilebilir olması gerekir. Next hop’un erişilebilirliğini kontrol etmek için:
user@router> ping 192.168.1.2
2. Yerel Tercih (Local Preference) Değerine Göre Seçim
BGP yol seçiminde, local preference değeri en yüksek olan yol tercih edilir. Local preference, yalnızca iç BGP (iBGP) bağlantılarında kullanılır ve AS içerisinde hangi yolun tercih edileceğini belirler. Varsayılan olarak, local preference değeri 100’dür.
CLI Örneği:
Local preference değerini görmek için:
user@router> show route <prefix> detail | match "Local Preference"
Local preference değerini değiştirmek için BGP grubuna aşağıdaki komut eklenir:
user@router# set protocols bgp group <group-name> local-preference <değer>
3. AS Path Uzunluğuna Göre Seçim
AS path, bir BGP yolunun geçtiği AS’lerin listesidir. Junos OS, en kısa AS path’e sahip yolu tercih eder. AS path uzunluğu ne kadar kısa olursa, yol o kadar tercih edilir.
CLI Örneği:
AS path uzunluğunu görmek için:
user@router> show route <prefix> detail | match "AS path"
AS path uzunluğunun dikkate alınmamasını sağlamak için:
user@router# set protocols bgp group <group-name> as-path-ignore
4. Köken Kodu (Origin Code) Seçimine Göre Yönlendirme
BGP yollarının kökeni üç farklı şekilde olabilir:
- IGP (Interior Gateway Protocol): Yollar OSPF, IS-IS gibi iç protokollerle öğrenilir.
- EGP (Exterior Gateway Protocol): Yollar EGP gibi dış protokollerle öğrenilir.
- Incomplete: Kökeni bilinmeyen yollar (örneğin, elle manuel olarak eklenmiş yollar).
JunOS OS, IGP > EGP > Incomplete sırasına göre yol seçer. Yani, IGP’den öğrenilen yollar her zaman tercih edilir.
CLI Örneği:
Köken kodunu görmek için:
user@router> show route <prefix> detail | match "Origin"
5. MED (Multi-Exit Discriminator) Değerine Göre Seçim
MED, bir BGP komşusunun, bir AS içerisinde hangi giriş noktasını kullanmasını tercih ettiğini belirten bir metriktir. Junos OS, en düşük MED değerine sahip yolu tercih eder. MED değeri, varsayılan olarak 0’dır.
CLI Örneği:
MED değerini görmek için:
user@router> show route <prefix> detail | match "Metric"
MED değerini manuel olarak ayarlamak için:
user@router# set protocols bgp group <group-name> neighbor <neighbor-ip> metric <değer>
Not: MED karşılaştırması, varsayılan olarak yalnızca aynı komşu AS’ye ait yollar için yapılır. Farklı AS’lere ait yolların MED değerleri karşılaştırılmaz. Bütün MED değerlerini karşılaştırmak için:
user@router# set protocols bgp path-selection always-compare-med
6. Yönlendirme Tablosuna Kurulum ve Aktif Yolun Belirlenmesi
En iyi yol seçildikten sonra, bu yol routing table’a kurulur. Eğer aynı hedef için başka bir protokolden (örneğin, OSPF) daha düşük bir administrative distance değeriyle bir yol öğrenilmişse, BGP yolu aktif olmayabilir.
CLI Örneği:
Routing tablosunu görmek için:
user@router> show route <prefix>
<prefix> ... [BGP/170] 00:10:22
> to 192.168.1.2 via ge-0/0/1.0
[OSPF/150] 00:15:33
> to 10.0.0.1 via ge-0/0/2.0
Yukarıdaki örnekte, BGP’nin administrative distance değeri 170, OSPF’nin değeri 150’dir. OSPF’nin administrative distance değeri daha düşük olduğu için, bu yol aktif olarak kullanılacaktır.
7. AIGP (Accumulated IGP Metric) Kullanımı
AIGP, BGP yolunun geçtiği AS’ler içerisinde biriken IGP metriğini temsil eder. Junos OS, en düşük AIGP değerine sahip yolu tercih eder. AIGP’nin aktif edilmesi için:
user@router# set protocols bgp path-selection aigp
AIGP değerini görmek için:
user@router> show route <prefix> detail | match "AIGP"
8. Nondeterministik Yol Seçimi Davranışı
Varsayılan olarak, Junos OS, aynı komşu AS’ye ait yolların MED değerlerini karşılaştırır. Farklı AS’lere ait yolların MED değerlerini karşılaştırmaz. Bu davranışı değiştirmek için:
user@router# set protocols bgp path-selection cisco-nondeterministic
Bu komut eklendiğinde, tüm yolların MED değerleri karşılaştırılır ve en düşük MED değerine sahip yol tercih edilir.
BGP Yol Seçimi Algoritmasının Özeti
Aşağıdaki tablo, Junos OS’de BGP yol seçimi algoritmasının adımlarını özetlemektedir:
| Adım | Kriter | Açıklama |
|---|---|---|
| 1 | Next Hop Çözümlenebilirliği | Next hop’a erişilebilir olmalıdır. |
| 2 | Yerel Tercih (Local Preference) | En yüksek local preference değerine sahip yol tercih edilir. |
| 3 | AS Path Uzunluğu | En kısa AS path’e sahip yol tercih edilir. |
| 4 | Köken Kodu (Origin Code) | IGP > EGP > Incomplete sırası takip edilir. |
| 5 | MED (Multi-Exit Discriminator) | En düşük MED değerine sahip yol tercih edilir. |
| 6 | AIGP | En düşük AIGP değerine sahip yol tercih edilir. |
| 7 | Administrative Distance | Diğer protokollerden gelen yollarla karşılaştırma yapılır. |
Örnek Senaryo: BGP Yol Seçimi
Aşağıdaki senaryoda, bir router iki farklı BGP yolu almaktadır:
- Yol 1: Local Preference = 200, AS Path = 65001 65002, MED = 100, Origin = IGP
- Yol 2: Local Preference = 150, AS Path = 65001, MED = 50, Origin = IGP
Adım Adım Seçim:
- Local Preference: Yol 1’in değeri (200) daha yüksek olduğu için Yol 1 tercih edilir.
- AS Path ve MED gibi diğer kriterler artık değerlendirilmez.
CLI Çıktısı:
user@router> show route 192.168.1.0/24 detail
192.168.1.0/24 (2 entries, 1 announced)
*BGP Preference: 170/-101
Next hop type: Router, Next hop: 192.168.1.2
AS path: 65001 65002 I
Local preference: 200
Metric: 100
Origin IGP
Communities: target:65001:100
Accepted
Announcement bits (2): 0-Resv 1-BGP_RT_Background
BGP Preference: 170/-201
Next hop type: Router, Next hop: 192.168.2.2
AS path: 65001 I
Local preference: 150
Metric: 50
Origin IGP
Communities: target:65001:50
Accepted