Juniper EX Virtual Chassis Üzerinde High Availability Özellikleri

Juniper EX Kampüs Serisi switchlerde Virtual Chassis ile birlikte High Availability (HA) için birçok fonksiyon ve protokol çalışmaktadır.
Bu çalışmada Graceful Routing Engine Switchover (GRES), Non-Stop Routing (NSR) ve Non-Stop Bridging fonksiyonlarına değineceğiz. High Availability noktasında Juniper Networks bunlar haricinde başka özellik ve protokolleri de bulundurmaktadır tabii. Örneğin Non-Stop Software Upgrade,  MC-LAG, VRRP…gibi.
Ancak belirttiğim gibi bu yazıda GRES, NSR ve NSB üçlüsüne değineceğiz.

Juniper EX Virtual Chassis Üzerinde Graceful Routing Engine Switchover:
GRES aktif edildiğinde Kernel state ve PFE tabloları iki routing engine de de SYNC edilir. Bu işlemler için normalde master üzerinde çalışan ksyncd ve chassisd daemonları backup üzerinde de çalıştırılır.

ksynd, iki farklı donanım arasında replikasyon taskları oluşturmada kullanılan bir servistir.
Primary RE üzerindeki “kernel state” bilgilerinin Backup RE üzerinde synch edilmesini sağlar.
GRES enable edilmiş bir VC ortamında failover işlemi gerçekleştiğinde RPD (routing process daemon)
Backup RE üzerinden başlar.

Bu iki servisin backup routing engine üzerinde de çalışması sayesinde kernel ve PFE bilgileri backup üzerinde de tutulduğundan master fail olduğunda backup hemen trafiği göndermeye başlar ve fail-over durumunda trafik kesintisi çok düşük olur.
GRES i enable etmeden önce mastership liği member0 dan member1 e aktarıp paket kesintisi ne kadar oluyor inceleyeceğiz ancak öncesinde virtual chassis ve topolojiye bakacak olursak:

Virtual Chassis yapımız aşağıdaki gibi:
Member 0 : master
Member 1 : backup
Member 2 : linecard

2016-11-09-17_07_56

Topolojimiz ise aşağıdaki gibidir. Virtual Chassis üzerinde 20.20.20.0/24 networküm var. Bu networkte bir bilgisayar çalışmaktadır. Ortamımda bir de router cihaz var ve Master Routing Engine ile bu Router cihaz birbirlerine diretly connected durumdalar. Router ın arkasında ise 1.1.2.0/24 networkü var ve bu networkte de bir kişisel bilgisayar çalışmakta. Router ve Virtual Chassis üzerinde OSPF konfigürasyonu yapılmış durumda. İki cihaz OSPF üzerinden kendi networklerini birbirlerine paylaşmaktadır. virtual-chassis-gres-nsr-nsb
GRES i Enable Etmeden Master Routing Engine Rolünü Member1 e Bırakmak:
Bu işlemi master üzerinde aşağıdaki komut ile gerçekleştiriyoruz.
root> request chassis routing-engine master release

release-to-member1-without-gres

Yukarıda da görüldüğü gibi GRES i enable etmeden master rolünü member1 e bıraktığımızda request time out ve destination unreachable dönmekte ve trafik kesilmektedir.

GRES i Enable Ettikten Sonra Mastership Rolünü Backup Routing Engine e Devretmek:
Öncelikle GRES i enable edelim. Bu işlem için master routing engine üzerinde aşağıdaki komutu çalışmamız gerekiyor.
root# set chassis redundancy graceful-switchover

Yukarıdaki komutu çalıştırıp commit ederek GRES i enable ettik. Şimdi mastershipliği yine member1 e bırakarak ne kadar trafik kesintisi oluyor buna bakalım.

release-to-member1-with-gres

1 tane paket kaybı görülüyor. Paketler 1ms altında transfer ediliyor. Gayet güzel!

GRES sadece ksyncd ve chassisd servislerini backup routing engine üzerinde de çalıştırıyor demiştik. Routing işlemlerinden sorumlu rpd servisi backup routing engine üzerinde çalışmıyor. Yani backup üzerinde show route, show ospf database komutlarını çalıştırdığımızda aşağıdaki çıktıyı alırız. Yukarıdaki 1 adet paket kaybının sebebi aslında budur.
show-route-on-backup-with-gres
Juniper EX Virtual Chassis Üzerinde Non-Stop Routing (NSR):
NSR aslında GRES ile aynı infrastructure üzerinde çalıştırmaktadır ve NSR ı aktif edebilmek için GRES in enable olması gerekmektedir. chassisd ve ksyncd servislerine ek olarak NSR’ da backup routing engine üzerinde bir de rpd servisi çalışmaktadır. Böylece rpd servisinin backup re üzerinde çalışması sayesinde ospf database i, route bilgileri, komşuluk bilgileri vs. herşey backup routing engine üzerinde de tutulmaktadır.
Non-Stop Routing i enable etmek için aşağıdaki komutu çalıştırıyoruz.
root#set chassis redundancy graceful-switchover
root#set routing-options nonstop-routing
root#set system commit synchronize

Yukarıdaki komutları master-re üzerinde çalıştırıp commit ettikten sonra artık backup-re üzerinde de routing bilgisinin tutulduğunu görebiliriz.
show-ospf-database

show-route-on-backup-with-nsr

EX Virtual Chassis de NSR ı Enable Ettikten Sonra Paket Kesintisi:
release-to-member1-with-nsrYukarıda da görüldüğü üzere NSR ile birlikte fail-over durumunda hiç paket kesintisi yaşanmamaktadır.

Juniper EX Virtual Chassis Üzerinde Non-Stop Bridging:
NSB de aslında GRES ile aynı altyapıyı kullanmakta ve tıpkı NSR da olduğu gibi NSB nin de enable edilmesi için GRES in enable edilmiş olması gerekmektedir. NSB, layer2 de çalışan IGMP,LLDP,LLDP-MED gibi protokollerin master-re fail-over olması halinde kentisiz çalışmasını sağlamaktadır. Örneğin virtual chassis in linezerine bağlı aynı lokalde çalışan iki makinemiz olsa (mesela 10.10.10.10 ve 10.10.10.11 makineleri diyelim.) NSB yi enable ettiğimizde, master routing engine failover senaryosunda bu iki makine arasında herhangi bir paket kaybı yaşanmayacaktır.
Master Routing Engine üzerinde NSB yi aşağıdaki komutla ile enable edebiliriz.
root#set ethernet-switching-options nonstop-bridging
commit

Emre BAŞTUĞ

About Emre BAŞTUĞ

Emre BAŞTUĞ