Güvenlik

JunOS Cluster Mimarisi ve Temel Konfigürasyon (SRX Firewall)

 

JunOS işletim sistemi ve JunOS CLI mimarisini incelediğimiz ilk iki makalemizden sonra, bu üçüncü makalemizde de JunOS işletim sistemli High-End Serisi SRX Firewall’lar üzerinde temel konfigürasyon ve Cluster kurulumunun nasıl gerçekleştirileceğini inceleyeceğiz.

 

Juniper tarafından üretilen JunOS işletim sistemli High-End Serisi SRX Firewall’lar, SRX1400, SRX3400, SRX3600, SRX5600, SRX5800 modelleridir. Biz incelemelerimizde modeli SRX 3400 olan bir firewall kullanacağız.

 

 

 

image001

 

 

 

Firewall’da oluşabilecek donanım/yazılım problemlerine karşı bir önlem olarak başvurulan cluster mimarisini sağlamak üzere iki tane firewall bulundurulması gerekliliği, hemen hemen tüm orta/büyük ölçekli firmaların başvurduğu bir yöntemdir. Tek bir SRX Firewall’un temel konfigürasyonu ile cluster çalışacak şekilde yapılandırılacak iki tane SRX Firewall’un temel konfigürasyonu önemli farklılıklar gösterir. Bu sebeple, çalışmalarımızda önce tek bir SRX Firewall için temel konfigürasyonu gerçekleştireceğiz ardından da iki tane SRX 3400 Firewall’un cluster çalışacak şekilde temel konfigürasyonlarını gerçekleştireceğiz.

Tek bir SRX 3400 Firewall’un Temel Konfigürasyonu

 

Beş adımda gerçekleştirilir.

1- Root’a Şifre Atanması

 

Factory default konfigürasyonlu bir SRX Firewall’a, console portundan bağlanarak root kullanıcısı ile login olunacağını (şifresi yoktur) sonra da yapılacak ilk işin, root’a bir şifre atamak olması gerektiğini zira root kullanıcısı ile login olunduktan sonra yapılacak konfigürasyonlar kaydedilmek istendiğinde root’a şifre atanmadan konfigürasyon değişikliği yapılamayacağına dair uyarı mesajıyla karşılaşılacağını söylemiştik.

Root kullanıcısı ile konsol portu üzerinden login olunan bir SRX Firewall’da, bağlandığımız yer Unix shell’idir. Ekranda şu satırlar görülecektir:

root@host%

 

JunOS CLI’ını başlatmak için cli komutu yazılır ve enter tuşuna basılarak operasyonel moda geçilir:

root@host% cli
root@host>

Operasyonel modda iken, configure komutu yazılarak enter tuşuna basılırak CLI’ın konfigürasyon moduna geçilir.


root@host> configure
root@host#


Konfigürasyon modunda da aşağıdaki komut kullanılarak root’a bir şifre atayalım:

root@host# set system root-authentication plain-text-password



Komut çalıştırılınca belirlenecek şifrenin iki kez girilmesi istenir.

 

New password:

Retype new password:

 

Şifre iki kez girildikten sonra yine konfigürasyon modunda commit komutu kullanılarak yaptığımız değişiklikler aktifleştirilir.

 

root@host# commit

 

 

2- Host-name ve Domain-name Atanması

 

 

Juniper SRX 3400 Firewall’umuza bir isim verelim ve bir de domain ismi tanımlayalım. Bunun için CLI konfigürasyon modunda aşağıdaki komut çalıştırılır:

root@host# set system host-name SemerkandFw
root@host# set system domain-name Semerkand.com

 

 

3- Management IPsinin ve Uzak Erişim Protokollerinin Tanımlanması

 

 

Juniper SRX 3400 Firewall’umuzun management interface’ine(fxp0 portu) bir IP verelim ki, bu porta ağ üzerinden (switch) takılacak bir kablo sayesinde ilgili IP üzerinden erişim gerçekleştirilirek firewall yönetimi yapılabilir olsun. Hem IP’nin tanımlanması hem de bu IP’ye ssh ve web browser ile erişim gerçekleştirilebilmesi için CLI konfigürasyon modunda aşağıdaki komut çalıştırılır:

root@host# set interfaces fxp0 unit 0 family inet address 192.168.0.1/24
root@host# set system services ssh    
root@host# set system services web-management https interface
fxp0.0

 



image002

 

4- Management Trafiği için Statik Route Tanımlanması

 

 

SRX yeniden başlatıldığında, routing protokol prosesinin çalışmaması durumuna önlem olarak, aynı subnette direk bağlı olduğu bir backup router yapılandırılması gerekir. Yani olası bir hata durumunda, Firewall’a ulaşılamaz konumda olmamak için, bir backup-router IP’si tanımlanır ki bunun için CLI konfigürasyon modunda aşağıdaki komut çalıştırılır:

root@host# set system backup-router 192.168.0.254 destination 192.168.0.0/24



Bu komutla, 192.168.0.0/24 subnet’inden, management IP’si 192.168.0.1 olan Firewall’umuza, 192.168.0.254 IP’li backup-router üzerinden erişilebilme imkanı elde edilmiş olur.


5- NTP Atanması

 

 

Juniper SRX 3400 Firewall’umuzun zaman tanımını düzenlemek için ağda bulunan bir NTP sunucunun IP’si CLI üzerinde tanımlanmalıdır. Bunun için CLI konfigürasyon modunda aşağıdaki komut çalıştırılır: (NTP Sunucu IP’si 192.168.1.1 olsun)

root@host# set system ntp server 192.168.1.1

Bu beş işlemin kaydedilip aktifleştirilmesi için konfigürasyon modunda commit komutu çalıştırılır.

root@host# commit

 

Bu şekilde beş adımda tek bir SRX Firewall’un temel ayarlarını tanımlamış olduk. Sıra geldi iki tane SRX 3400 Firewall’un cluster çalışacak şekilde temel konfigürasyonlarını gerçekleştirmeye.

İki SRX 3400 Firewall’un Cluster Kurulumu ve Temel Konfigürasyonları

 

JunOS’un SRX Firewall’lar için sağladığı High Availability yapılandırması, chasis cluster kullanılarak gerçekleştirilir. Bir firewall primary iken diğeri secondary olarak çalışır ve bir tanesinde oluşacak sistem ya da donanım problemi durumunda diğeri yükü üzerine alır.

Cluster çalışacak iki firewall’un, aynı modelde ve tüm kartlarının(SPC, NPC ve IOC kartları) cihazın aynı slotlarına takılmış olması gerekmektedir. Bu kartlar:
SPCs: Services Processing Cards
NPCs: Network Processing Cards
IOCs: Input/Output Cards

Firewall’un ön yüzünde takılı bulunan kartlar:

 

 

 

image003

 

 

 

Firewall’un arka yüzünde takılı kartlar:

 

 

 

image004

 

 

 

JunOS İşletim Sisteminin Temelleri isimli makalemizde detaylı olarak incelediğimiz Control Plane ve Forwarding(Data) Plane
mimarisi, cluster yapılanmasının da en önemli bölümünü oluşturmaktadır. Junos High Availability yapılandırması, iki firewall’daki Control Plane’ler için bir tanesinin aktif diğerinin pasif olmasını desteklemektedir. Data Plane’ler için aktif-aktif bir yapı desteklenmektedir.

 

image005

 

Control Plane cluster yapısı Kontrol Portları üzerinden gerçekleşirken Data Plane için Fabric Portlar üzerinden gerçekleşir.

 

image006

 

 

 

Hem node0 hem de node 1 için, üzerinde sadece Control Plane senkrenizasyonunu sağlamak üzere konumlandırılmış iki kontrol portu bulunur. Bu portlar sayesinde iki node arasında Control Plane senkronizasyonu sağlanır.

 

 

Hem node 0 hem de node 1 için, üzerinde gelen 8 tane bir gigabit interface bulunur. Ayrıca iki tane de 10 gigabit portumuz olsun. Bu on interface aşağıdaki gibi isimlendirilmişlerdir:

 

ge-0/0/0

ge-0/0/1

ge-0/0/2

ge-0/0/3

ge-0/0/4

ge-0/0/5

ge-0/0/6

ge-0/0/7
xe-1/0/0

xe-1/0/1

 

 

Sekiz tane bir gigabit interface’den bir tanesini (örneğin sekizinci portu: ge-0/0/7) fabric port olarak tanımlayacağız ki bu port sayesinde node’lar arasında data-plane senkronizasyonu sağlanabilsin.

Yukarıdaki resimde görüldüğü şekilde, node 0 ve node 1’in ikişer portu iki kablo ile birbirlerine bağlanır. (Switch üzerinden de bağlanmaları mümkündür)

Şimdi konfigürasyonumuza başlayalım.

 

 

 

1- Root’a Şifre Atanması

 

 

Factory default konfigürasyonlu iki firewall’umuzda da konfigürasyon moduna geçilip aşağıdaki komut çalıştırılır:

root@host# set system root-authentication plain-text-password

Komut çalıştırılınca belirlenecek şifrenin iki kez girilmesi istenir.

 

New password:

Retype new password:

 

Şifre iki kez girildikten sonra yine konfigürasyon modunda commit komutu kullanılarak yaptığımız değişiklikler aktifleştirilir.

 

root@host# commit

 

 

2- Node-ID ve Cluster-ID Tanımlanması

 

 

Cluster üyesi olan her bir firewall’umuza node diyoruz ve bu node’lara atanacak ID’ler bir tanesi için 0 iken diğeri için 1 olmak zorundadır. Bir tanesi node 0 iken değeri node 1 olarak tanımlanacaktır. Birini diğerinden ayırt edecek bir tanımlama olmaktan başka bir işlevi bulunmamaktadır.

 

İki firewall arasında chassis cluster tanımlanacağı zaman bir Cluster ID değeri tanımlanmalıdır ki bu ID değeri 1 ile 15 arasında değerler alabilir. Cluster-ID değeri, node’ların dahil olacağı cluster’ı tanımlayan bir ID değeridir ki, bir SRX Firewall aynı anda tek bir cluster’ın üyesi olabilir. Yani her iki node için de aynı cluster-id tanımı yapılmalıdır.

 

 

Birinci Firewall: node-id değeri node 0 ve cluster-id değeri cluster-id 1 olsun.
İkinci Firewall : node-id değeri node 1 ve cluster-id değeri cluster-id 1 olsun.

 

 

Aşağıdaki komutlar çalıştırılarak cluster-id ve node-id tanımı yapıldıktan sonra, iki firewall’un da restart edilmesi gerekmektedir.

Birinci Firewall’un operasyonel modunda çalıştırılacak komut:
root@host> set chassis cluster cluster-id 1 node 0 reboot


İkinci Firewall’un operasyonel modunda çalıştırılacak komut:
root@host> set chassis cluster cluster-id 1 node 1 reboot


Biz node 0’ı primary, node 1’i ise secondary olarak yapılandıracağız. Bu adımdan sonra yapılacak tüm konfigürasyon sadece node 0 üzerinde yapılacaktır. Çünkü node 0 üzerinde gerçekleştirilecek tüm konfigürasyon node 1’e otomatik olarak kopyalanacaktır.

 

Restart sonrası iki firewall da chassis cluster modunda başlatılmış olurlar. Bu durumun interface’lere yansıması şu şekilde olur:

 

image007

 

Yani node 0 ya da node 1’den hangisine bağlanırsanız bağlanın, her iki node’un interface’lerini bir arada göreceksiniz.

ge-0/0/0 isimli interface, node 0’ın ilk portuyken, ge-8/0/0 isimli interface, node 1’in ilk portudur. Aynı şekilde
ge-0/0/7 isimli interface, node 0’ın sekizinci portuyken, ge-8/0/7 isimli interface, node 1’in sekizinci portudur.

 

 

3- Kontrol Port Konfigürasyonu

 

 

Bu portlar sayesinde iki node arasında Control Plane senkronizasyonu sağlanır. SRX 1400, SRX 3400 ve SRX 3600 Firewall’larda kontrol port konfigürasyonuna gerek bulunmamaktadır. Biz de konfigürasyonumuzu SRX 3400 üzerinde gerçekleştirdiğimiz için, kontrol portlarıyla ilgili herhangi bir cluster tanımı yapmayacağız. Ancak SRX 5600 ya da SRX 5800 serisi bir firewall konfigüre edecek olsaydık, aşağıdaki komutları konfigürasyon modunda çalıştırmalıydık.

root@host# set chassis cluster control-ports fpc 1 port 0
root@host# set chassis cluster control-ports fpc 13 port 0

 


4- Fabric(Data) Port Konfigürasyonu

 

 

Her iki node için de, bir gigabit portlarından bir tanesini fabric port olarak tanımlayacağız ki, bu portlar sayesinde node’lar arasında data-plane senkronizasyonu sağlanabilsin. (Yukarıda kablo bağlantısından bahsetmiştik) Biz örneğimizde sekizinci port olan ge-0/0/7 ve ge-8/0/7 portlarını kullanacağız. Bunun için konfigürasyo modunda çalıştırmamız gereken komutlar şu şekilde olmalıdır:

root@host# set interfaces fab0 fabric-options member-interfaces ge-0/0/7
root@host# set interfaces fab1 fabric-options member-interfaces ge-8/0/7


5- Grup Konfigürasyonu

 

 

Cluster yapıda çalışacak iki firewall için, host-name, backup-router ve management interface IP kanfigürasyonları grup tanımı altında yapılandırılır. Bunun için gereken komutlar aşağıdaki gibidir:

root@host# set groups node0 system host-name Semerkand-Fw1
root@host# set groups node0 interfaces fxp0 unit 0 family inet address 192.168.0.1/24
root@host# set groups node0 system backup-router 192.168.0.254
root@host# set groups node0 system backup-router destination 192.168.0.0/24



root@host# set groups node1 system host-name Semerkand-Fw2
root@host# set groups node1 interfaces fxp0 unit 0 family inet address 192.168.0.2/24
root@host# set groups node1 system backup-router 192.168.0.254
root@host# set groups node1 system backup-router destination 192.168.0.0/24
root @host# set apply-groups “${node}”


Hatırlatmakta fayda var; ikinci adımdan sonra yapılacak tüm konfigürasyonlar sadece node 0 üzerinde yapılacaktır. Çünkü node 0 üzerinde gerçekleştirilecek tüm konfigürasyon zaten node 1’e otomatik olarak kopyalanacaktır.

 

6- Redundancy Groups(RG) Tanımlanması


Redundancy Group(RG), cluster üyesi iki node’a ait bir takım obje gruplarını barındıran ve yöneten soyut bir kavramdır. node-id değerleri 0 yada 1 olabiliyorken, cluster-id 1-15 arası değerler alabiliyordu. (Hatırlamak isterseniz ikinci adım olan 2- Node-ID ve Cluster-ID Tanımlanması bölümüne bakabilirsiniz) RG’ler ise 0-255 arası değerler alır.

Node’lara cluster-id ve node-id değerleri atanıp restart edildikten sonra(ikinci adımdan sonra) iki firewall da chassis cluster modunda başlatılmış olup JunOS tarafından otomatik olarak RG0 isimli bir Redundancy Group üretilmiş olur ki ismi RG0’dır. RG0, node0 ve node1’in RE’lerinin failover durumlarını yönetmeye başlar. (Hangi node’un RE’sinin primary, hangi node’un RE’sinin secondary olacağını belirler) RG0 aynı anda sadece bir node üzerinde primary olabilir.

Redundancy Groups(RG) özünde Control Plane ve Data Plane’e hizmet eder. RG0 ile Control Plane’e, manuel oluşturulacak RG1 ile de Data Plane’e ve Data Plane portlarına hizmet eder. İsimleri RG0 ve RG1 olan iki tane RG tanımlanması cluster yapı için yeterlidir. RG0 haricindeki RG1 ya da diğer RG’ler ile(RG1 – RG15) interface’lerin cluster yapılandırması ve yönetimleri sağlanır. Bu interface’lerin sayısı maksimum 15 tane olabilir ve her bir interface reth olarak isimlendirilir.

RG’lerle ilgili genel bilgi verdikten sonra, bu adımda gerçekleştirmemiz gereken konfigürasyon ile iki şeyi tanımlamalıyız:

– Redundant Ethernet Groups tanımlanması.

redundancy-group 0 ve redundancy-group 1 tanımlanacaktır.

– Control Plane ve Data Plane için Priority tanımlanması.

Control Plane ve Data Plane’e atanacak priority değerlerine göre, yüksek değerli priority’ye hangi node sahipse, ilgili plane’ler o node ya da node’lar üzerinde aktif olarak çalışır. Tavsiye edien, Control Plane ve Data Plane’in aynı node üzerinde aktif olarak çalışması yönünde priority atanmasıdır.

Konfigürasyon modunda aşağıdaki komutlar çalıştırılır:

root@host# set chassis cluster reth-count 10
root@host# set chassis cluster redundancy-group 0 node 0 priority 200
root@host# set chassis cluster redundancy-group 0 node 1 priority 100
root@host# set chassis cluster redundancy-group 1 node 0 priority 200
root@host# set chassis cluster redundancy-group 1 node 1 priority 100

 

Bu komutlarla, hem redundancy-group 0 hem de redundancy-group 1 için node 0 priority’s daha yüksek atanmıştır. Bu şekilde, redundancy-group 0 ve redundancy-group 1, node 0 üzerinde aktif olarak çalışacaktır. (Yani node 0’ın Control Plane’i ve node 0’ın Data Plane’i aktif olarak çalışacaktır.)

 

7- Reth Interface’lerin Tanımlanması

SRX 3400 Firewall’umuzun üzeride, konsol, management(fxpo) ve control portlarının haricinde, sekiz tane 1 Gigabit’lik(ge) port ve iki tane 10 Gigabit’lik(xe) port bulunmaktadır.

 

Bu sekiz tane gigabit porttan bir tanesini(sekizinci) fabric port olarak atamıştık. Kalan yedi interface ve iki tane de 10 Gbit port için konfigürasyon yapabileceğiz.

 

Sekiz tane 1 Gbit interface’den dördüne ve iki 10 Gbit interface’den de bir tanesine ihtiyaç duymuş olalım. Buna göre reth interface’ler tanımlayacağız. Tanımlayacağımız reth interface’leri de Redundany Group 1 ‘e üye edeceğiz. Bunun için konfigürasyon modunda aşağıdaki komutlar çalıştırılır:

root@host# set interfaces ge-0/0/0 gigether-options redundant-parent reth0 (node 0 ‘ın ilk portu)
root@host# set interfaces ge-8/0/0 gigether-options redundant-parent reth0 (node 1 iın ilk portu)
root@host# set interfaces ge-0/0/1 gigether-options redundant-parent reth1
root@host# set interfaces ge-8/0/1 gigether-options redundant-parent reth1
root@host# set interfaces ge-0/0/2 gigether-options redundant-parent reth2
root@host# set interfaces ge-8/0/2 gigether-options redundant-parent reth2
root@host# set interfaces ge-0/0/3 gigether-options redundant-parent reth3
root@host# set interfaces ge-8/0/3 gigether-options redundant-parent reth3
root@host# set interfaces ge-0/0/4 gigether-options redundant-parent reth4
root@host# set interfaces ge-8/0/4 gigether-options redundant-parent reth4
root@host# set interfaces xe-1/0/0 gigether-options redundant-parent reth8
root@host# set interfaces xe-9/0/0 gigether-options redundant-parent reth8

root@host# set interfaces reth0 redundant-ether-options redundancy-group 1
root@host# set interfaces reth1 redundant-ether-options redundancy-group 1
root@host# set interfaces reth2 redundant-ether-options redundancy-group 1
root@host# set interfaces reth3 redundant-ether-options redundancy-group 1
root@host# set interfaces reth8 redundant-ether-options redundancy-group 1

 

reth5 ve reth6 ileride ihtiyaç durumunda tanımlanabilir. Reth7 tanımı yapılamaz çünkü fabric port olarak atanmıştır.

 

Bu komutlar çalıştırıldıktan sonra, node’larda görülecek interface listesi aşağıdaki gibi olacaktır:

 

image008

 

 

 

8- Diğer Temel Konfigürasyon Tanımlamaları:

Tek bir Firewall’un temel konfigürasyonu bölümünde detaylı incelediğimiz bazı tanımlamaları, cluster yapıda da gerçekleştirmeliyiz. Bu tanımlar: domain-name, ntp-server ve servis tanımlamalarıdır. Bunun için konfigürasyon modunda aşağıdaki komutlar çalıştırılmalıdır:

 

root@host# set system domain-name Semerkand.com
root@host# set system ntp server 192.168.1.1
root@host# set system services ssh    
root@host# set system services web-management https interface fxp0.0



İki SRX 3400 Firewall’un Cluster kurulumunu ve temel konfigürasyonlarını sekiz adımda tamamlamış olduk. Son olarak opsiyonel iki tanımlama var ki, tanımlanmaları mecburiyet değildir. Şu ana kadar yaptığımız cluster konfigürasyonu gereğince, control portu ile Control Plane’in, fab portu(yedinci interface) ile de Data Plane’in cluster çalışmasını sağlamış olduk.

 

İsteğe bağlı yapılabilecek birinci konfigürasyonla, cluster çalışan Semerkand-Fw1 ve Semerkand-Fw2 isimli iki node’dan aktif olanında, interfacelerden bir tanesinde problem olması ya da kablo çıkması gibi durumlarda trafik diğer node’a geçsin denilebilir. Bunun için konfigürasyon modunda çalıştırılacak komutlar aşağıdaki gibidir:

 

root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/0 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/0 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/1 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/1 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/2 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/2 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/3 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/3 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/4 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/4 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor xe-1/0/0 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor xe-9/0/0 weight 255

 

İsteğe bağlı yapılabilecek ikinci konfigürasyon ise, bir RG için Preempt atanabilmesidir.

Örneğin, RG1 için preempt atadık diyelim. Beşinci adımda yaptığımız RG0 ve RG1 konfigürasyonunda

redundancy-group 1 ‘in node 0 için priority’sini 200

redundancy-group 1 ‘in node 1 için priority’sini 100 olarak atamıştık. Yani RG1 node 0 üzerinde aktif olarak çalışacaktır. Fakat node 0 restart edildi diyelim; bu durumda RG1 node 1 üzerinde aktifleşecektir. Node 0 açıldığı zaman RG1 yükünü üzerine alır ve RG1 node 0 üzerinde primary olarak çalışmaya başlar. Preempt değeri atanmasaydı, priority değeri yüksek olsa bile, biz manuel failover yapana kadar ya da node 1 restart edilene kadar RG1 node 1 üzerinde çalışmaya devam edecekti. RG için preempt’i etkinleştirmek isterseniz aşağıdaki komutu çalıştırmalısınız.

 

root@host# set chassis cluster redundancy-group 1 preempt

 

Yaptığımız Cluster yapılandırmasınının durumunu, operasyonel modda çalıştıracağımız show chassis cluster status komutuyla görebiliriz. Node 0 ve node 1 üzerinde çalıştırılan show chassis cluster status komutunun çıktısını aşağıdaki gibi görmelisiniz.

 

image009

 

image010

 

Konfigürasyon modunda çalışıyorken, operasyonel moda geçmek için exit komutu kullanılır demiştik. Ancak konfigürasyon modunda, operasyonel moddaymış gibi, operasyonel moda ait komutlar yürütebilmek isteyebilirsiniz. Bunun için, ilgili operasyonel moda ait komutun başına run yazarak, komutu konfigürasyon modunda çalıştırabilirsiniz. Bir örnek:

root@Semerkand-Fw1> show chassis cluster status
root@Semerkand-Fw1# run show chassis cluster status

Hoşçakalın.

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu