# A10 ADC / SSLI Yönetim & administration

# Cihaz Genel konfigürasyonu ve ilk erişim

A10networks'un cihazları ACOS ismi verilen, yüksek performans ile paket işlemek için özelleştirilmiş linux tabanlı bir işletim sistemine sahiptir.

# Fiziksel Cihaza ilk bağlantı

Network cihazları için genelde bildiğimiz standartların bir çoğu A10 cihazlar için de geçerlidir.

Bu cihazlar 9600-8-n değerleri ile çalışan bir adet konsol portu ve 1 adet management interface vardır

interface ve cihaz aşağıdaki detaylara, fabrika çıkışı ayarlarına sahiptir. 

    Management interface default ip : 172.31.31.31 /24
    Kullanıcı adı : admin 
    şifre : a10
    enable password : boş

# Genel Network tanımları

# Network tanımları

### Hostname tanımı
	A10>conf t
	SSL-I>en
	Password:
	A10#conf t
	A10(config)#hostname host_name
	A10(config)#end
	A10#exit
## Management interface için ip adres tanımı
	A10>conf t
    A10>en
    Password:
    A10#conf t
    A10(config)#interface management 
    A10(config-if:management)#ip address 192.168.254.10 /24
    A10(config-if:management)#end
    A10#exit
    
## Routed interface tanımı
	A10>conf t
    SSL-I>en
    Password:
    A10#conf t
    A10(config)#interface ethernet 3
    A10(config-if:ethernet:3)#
    A10(config-if:ethernet:3)#ip address 192.168.1.1 /24 
    A10(config-if:ethernet:3)#enable
    A10(config-if:ethernet:3)#end
    A10#exit

## VLAN Ekleme

    A10>conf t
    SSL-I>en
    Password:
    A10#conf t
    A10(config)#vlan 500 
    A10(config-vlan:500)#name test_vlan
    
## bize göre Trunk, tagged yada untagged port tanımı

	A10>conf t
    SSL-I>en
    Password:
    A10#conf t
    A10(config)#vlan 500 
    A10(config-vlan:500)#tagged ethernet 3
    A10(config-vlan:500)#untagged ethernet 4

## A10'a göre trunk, lacp interface tanımı
Lacp tanımı işi , A10 işletim sisteminde trunk tanımı olarak düşünülmüştür. Buna göre interfaceleri trunk grouplar altına ekliyoruz.

	
	A10>conf t
    SSL-I>en
    Password:
    A10#conf t
    A10(config)#
	A10(config)# interface ethernet 6
    A10(config-if:ethernet:6)#
    A10(config-if:ethernet:6)# name LACP
    A10(config-if:ethernet:6)# enable
    A10(config-if:ethernet:6)# trunk-group 10 lacp
    A10(config-if:ethernet:6)# exit
    A10(config)# interface ethernet 8
    A10(config-if:ethernet:8)# name LACP
    A10(config-if:ethernet:8)# enable
    A10(config-if:ethernet:8)# trunk-group 10 lacp
    !

ip adresi tanımlamak için 
	
   
	A10(config)#interface trunk 10
	A10(config-if:trunk:10)#ip address 192.168.1.10 /23
    A10(config-if:trunk:10)#exit
    A10(config)#end


## Svi tanımlama ve ip adresi verme

bir interface direkt ip adresi verebileceğimiz gibi aynı vlan tagine sahip bütün interfaclerden karşılanan svi tanımı da yapabiliriz bunun için aşağıdaki konfig yeterlidir. 

	A10>conf t
    SSL-I>en
    Password:
    A10#conf t
    A10(config)#vlan 500 
    A10(config-vlan:500)#router-interface ve 500
    A10(config-vlan:500)#exit
    A10(config)#interface ve 500
    A10(config-if:ve:500)#ip address 192.168.5.1 /24
    
## Lldp açma

    A10>conf t
    A10>en
    Password:
    A10#conf t
    A10(config)#interface ethernet 3
    A10(config-if:ethernet:3)#lldp enable rx tx
    A10(config-if:ethernet:3)#exit
    A10(config)#end

## Ntp dns tanımları
	
	A10>conf t
    A10>en
    Password:
    A10#conf t
    A10(config)#ip dns primary 8.8.8.8
    A10(config)#ip dns secondary 4.2.2.1
    A10(config)#end
    
## Management portu üzerinden çalıştırılacak kontrol uygulamaları çalıştırma
	A10>conf t
    A10>en
    Password:
    A10#conf t
    A10(config)#interface management 
    A10(config-if:management)#ip control-apps-use-mgmt-port
    A10(config-if:management)#exit
    A10(config)#end

## Statik rota

	A10>conf t
    A10>en
    Password:
    A10#conf t
    A10(config)ip route 172.16.10.0 /24 x.x.x.x(next-hop)
    A10(config)end
    
## Default gateway tanımı (Management VRF)

    A10>en
    Password:
    A10#conf t
    A10(config)interface management
    A10(config)ip address 10.34.0.2 255.255.255.0
    A10(config)ip control-apps-use-mgmt-port
    A10(config)ip default-gateway 10.34.0.1
    !

## SNMPv2 tanımı

Gui üzerinden konfigürasyon metodu;

1. Ana menüden system/monitoring
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002392517.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002392517.png)

2.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002427840.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002427840.png)
3.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002438855.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002438855.png)
4.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002456186.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002456186.png)
5.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002464990.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002464990.png)
6.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002472401.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002472401.png)
7.

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002478402.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002478402.png)



Cli çıktısı
	
    A10>en
    Password:
    A10#conf t
    A10(config)snmp-server enable service 
    A10(config)snmp-server contact mesut@mikronet.net 
    A10(config)snmp-server location "umraniye, ISTANBUl, TURKEY" 
    A10(config)snmp-server SNMPv1-v2c user snmpuser 
      community read encrypted 9l28nOjCuUrjJAmSihG94jwQjLjV2wDnPBCMuNXbAOc8EIy41dsA5zwQjLjV2wDn 
      remote 192.168.1.40 255.255.255.255 
    A10(config)snmp-server host 192.168.1.40 version v2c 12qwasZX 
    A10(config)exit


## SNMPv3 tanımı


## Management ve Production aynı vlan ise...

Management/yönetim ip adresine verdiğiniz subnet ile Production/çalışma alanına verdiğiniz blok aynı olamaz, bu durumda, "Partition" adını verdiğimiz bir sanal bölünme üretmek zorundayız bunun için

    A10>conf t
    SSL-I>en
    Password:
    A10#conf t
    A10(config)#partition PROD 1 ADC
    A10(config)#active-partition PROD
    A10[PROD](config)#normal config ...
    A10#exit

# Basit Yük Dengeleyici işlemleri

Bu kategoride basit bir yük dengeleme konfigürasyonu için gerekli adımları bulabilirsiniz

# Örnek topoloji

Sistemlere giden yükleri dengelemek için, eğer servis ssl içeriyorsa aşağıdaki adımları içerir

1. Yükü karşılayacak gerçek sunucuların adres ve port tanımları
2. Gerçek sunuculardan oluşan havuzu ifade eden servis grubu tanımı
3. Ssl trafiğini karşılayabilmek ve ssl terminasyonu yapmak için gerekli sertifikaların içeriye alınması ve ilgili sertifika template in tanımı
4. Gelen http isteklerinin hep aynı sunucuya gönderilmesi için persistency tanımı
5. Özellikle nat pool tanımı yapıldığında. kaybolan clientların ip adreslerini http header kısmına koymak için gerekli tanımın yapılması
6. Servisi karşılamak için gerekli ve son tanımların bir arada toplanarak yapıldığı Virtual server, yani sanal servis tanımı

Bu işlemlerin sonucunda  aşağıdaki gibi bir topolojiyi kurgulamış olursunuz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002574123.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002574123.png)

# Gerçek Sunucu tanımı

Kendi networkümüzde yer alan gerçek fiziksel veya sanal sunucularımızı ADC-SLB-Servers menüsü altından ekleyebiliriz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002608653.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002608653.png)

Sağ üstten Create adımı altında Server ekleyebilir ve ilgili eklenilen Server'a port tanımı yapabiliriz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002662673.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002662673.png)


Yapılan Konfigurasyonun CLI çıktısı aşağıdaki gibidir.


	slb server SERVER-1 192.168.10.20 
     	port 80 tcp 
    !
    slb server SERVER-2 192.168.10.21 
    	port 80 tcp 
    !

# Servis Grubu tanımı

Gui aracılığı ile gerçek sunucuları gruplamak üzere servis grubunun tanımlanması

A10 ADC cihazımızda Servis grubu tanımı yapmak için  ilgili cihazımızda ADC-SLB -Service Groups tabı altından tanım yapabiliriz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002873838.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002873838.png)

Create butonu ile önceden eklediğimiz server'larımı burada oluşturduğumuz Servis Gruplarına bağlayabiliriz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002887429.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002887429.png)


yukarıdaki değişikliğin show çıktısı aşağıdaki gibidir.

    slb service-group SERVERS tcp 
      backup-server-event-log 
      health-check ping 
      member SERVER-1 80 
      member SERVER-2 80 
    !

# Sanal Servis tanımı

Servis grubunu ve/veya templateleri bağlamak için virtual slb server tanımı

A10 ADC cihazımızda Virtual Service oluşturup buna göre ilgili bir destination IP servisini dinleyip buna gelen paketleri istediğimiz Servis grubuna yönlendirebilir ve bu trafik üzerinde istediğimiz gibi manipülasyon yapabiliriz.

Sırasıyla A10->>ADC->>SLB->> Virtual-Service ;
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002934528.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002934528.png)
[![
](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002942895.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002942895.png)


Virtual Servis oluştururken, istersek oluşturuğumuz bir nat pool'unu bu servise bağlayabiliriz.
Oluşturduğumuz bir HTTP Headerını bu servise bağlayıp trafiği istediğimiz gibi manipüle edebiliriz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002956648.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002956648.png)


Yukarıdaki değişikliklerin show çıktısı aşağıdaki gibidir.

    slb virtual-server VIP 5.5.5.5 
      port 80 http 
        name VIP_80_http 
        source-nat pool Local-Pool 
        service-group SERVERS 
        template persist source-ip Sticky-Local 
        template http X-forwarded 
    !

# Sertifika Yönetimi

Cihaza sertifika yükleme silme ve değişiklik işlemleri
Decryption veya ssl-offload işlemleri için cihaza sertifikalar yüklememiz gerekebilir.

Bu işlem için aşağıdaki adımları izleyebilirsiniz.
### Sertifika ekleme

1. Logon olduktan sonra ADC -> SSL Management ekranına geçiyoruz
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668002995781.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668002995781.png)

2. Import butonuna tıklıyoruz
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003007252.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003007252.png)

3. Certtificate opsyionunu seçip sertifikaya bir isim veriyoruz
	bu ismi kopyalamayı unutmayın, düzenli görünmesi için key adımında da aynı ismi kullanacağız.
	
	[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003034948.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003034948.png)
    
    
4. Bu adımda da yine importa bastıktan sonra bu sefer key opsiyonunu seçip sertifika adımınındaki isimle __aynı ismi__ veriyoruz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003054923.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003054923.png)


5. Sertifika ve key inin birbirlerine uygun şekilde görüntülendiğine emin oluyoruz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003068158.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003068158.png)

# New Persistency tanımı

Load Balancer cihazımızda dışarıdan gelen istekleri source-ip header'ına bakılarak senaryo veya alt yapımıza göre aynı source ip'ye sahip istekleri sürekli aynı server'a yönlendirmek isteyebiliriz.
Bunun için öncelikle Persistence template'i hazırlayıp bu template i ilgili virtual servis' e bağlamamız gerekiyor.
Sırayla SLB-Template-Persistence altına gidiyoruz.
Ardından Persistence altında source-ıp' ye göre template oluşturuyoruz.

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003100492.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003100492.png)

Create   ->>>> Persist Source IP
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003114285.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003114285.png)

Source Ip template Detaylarını ekliyoruz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003125347.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003125347.png)


Bu aşamada oluşturduğumuz Persiste Source IP template'ini virtual servise bağlamamız gerekiyor.

ADC->>>SLB->>>Virtual Services
İlgili daha önceden oluşturulan Virtual Service i editleyip ilgili template bağlamamız gerekiyor.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003139290.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003139290.png)

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003168857.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003168857.png)



Yukarıdaki değişikliklerin show çıktısı

    slb template persist source-ip Sticky-Local 
    !
    slb virtual-server VIP 5.5.5.5 
      port 80 http 
        name VIP_80_http 
        source-nat pool Local-Pool 
        service-group SERVERS 
        template persist source-ip Sticky-Local 
        template http X-forwarded 
    !

# XFF yada x forwarded for tanımları

saklanan client ip nin header içinde iletimi

Load Balancer cihazımız dışarıdan gelen isteği içeriye alırken NAT yapıyor olabilir.Bu durumda default olarak dışarıdan gelen talebin orjinal source IP bilgisi içeriye gönderilen paketin içerisinde yer almayacaktır.Bu durumda orjinal source ip imizi kaybetmiş olacağız.Bunu önlemek ve orjinal source ip header'ını pakete eklemek için L7 Template oluşturup, bu oluşturduğumuz template'de 
    """ Client IP Header Insert  """ 
fonksiyonunu açmamız gerekiyor.

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003196960.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003196960.png)

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003203681.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003203681.png)

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003211642.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003211642.png)


Ardından bu oluşturulan Layer 7 Template'i ilgil virtual-service bağlamamız gerekiyor.
ADC-SLB-Virtual Services 

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003224067.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003224067.png)


Yukarıdaki değişikliklerin show çıktıları aşağıdaki gibidir.

    slb template http X-forwarded 
      insert-client-ip replace 
    !
    slb virtual-server VIP 5.5.5.5 
      port 80 http 
        name VIP_80_http 
        source-nat pool Local-Pool 
        service-group SERVERS 
        template persist source-ip Sticky-Local 
        template http X-forwarded 
    !

# Nat pool tanımı

Yük dengeleyiciler, varsayılan ağ geçidi -default gateway- olmadıklarında, erişmeye çalıştıkları sunucuların, trafiği kendilerine geri gönderebilmeleri için, erişim talebi yaparken, kaynak adreslerini değiştirirler.

Nat Pool oluştururken ADC->>>Ip Source Nat kısmına gidiyoruz.

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003255614.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003255614.png)

Create kısmından yeni NAT poolumuzu oluşturabiliriz.
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003267583.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003267583.png)

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003276063.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003276063.png)



Ardından bu yaptığımız NAT pool tanımını ADC-SLB-Virtual Services altında ilgili Virtual Service' e bağlamamız gerekiyor.

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003293130.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003293130.png)


Yukarıdaki değişikliğin show çıktısı aşağıdaki gibidir.

    ip nat pool Local-Pool 192.168.10.50 192.168.10.55 netmask /24
    slb virtual-server VIP 5.5.5.5 
      port 80 http 
        name VIP_80_http 
        source-nat pool Local-Pool 
        service-group SERVERS 
        template persist source-ip Sticky-Local 
        template http X-forwarded 
    !

# Sorun Giderme

Bu başlık altında a10 cihazlardaki genel sorun giderme ve metrik okuma adımlarını bulabilirsiniz.

# Nat Pool istatistikleri

Cihazımız üzerinde oluşturulan ip nat havuzu kullanım istatiskleri ve her havuzdan her bir source ip başına total kullanımı görüntüleyebiliriz.


	Lab(NOLICENSE)#show ip nat pool Local-Pool statistics 


[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003342350.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003342350.png)

# Session Oturum istatistikleri

Cihaz üzerindeki bulunan anlık session tablosunu görüntüleyebilirsiniz.

    Lab(NOLICENSE)#show session 
    Lab(NOLICENSE)#show session brief
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003377174.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003377174.png)

# Interface /  Arabirim istatistikleri

A10 ADC üzerinde interfacelerimizin anlık PPS değerlerini aşağıdaki komut ile görebiliriz

	Lab(NOLICENSE)#show interfaces statistics 
    
    
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003399382.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003399382.png)

# History

Bazen cihazımız üzerinde önceden çalıştırılmış olan komut setlerini görüntülemek isteyebiliriz.Bazen geçmişe dönük çalıştırılan komutlar görüntülenmek istenebilir.

	Lab(NOLICENSE)#show history 
    
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003439296.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003439296.png)

# Version Uptime

ADC üzerinde bulunan version'u ve system uptime'ı görüntülemek isteyebiliriz.

	Lab(NOLICENSE)#show version 	
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003461099.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003461099.png)

# Clock date vs

A10 ADC üzerinde saat ve tarih bilgisini görmek için aşağıdaki komutu kullanabilirsiniz.

	Lab(NOLICENSE)#show clock
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003480390.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003480390.png)

# Packet Capture

Cihazımızda anlık capture almak isteyebiliriz bunu için 

Capture filterlarının konfigürasyonu için ;

	Lab(NOLICENSE)#debug packet l3-protocol ip 192.168.10.20 count 50

Capture başlatmak için 
	
    Lab(NOLICENSE)#debug monitor 

Bitirmek için 

	Lab(NOLICENSE)#no debug monitor
    

Örnek çıktı ;

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003510574.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003510574.png)

# SLB Server istatistikleri

A10 üzerinde backend sunucusunda ne kadar trafik / session / connection olduğunun bilgisini içeren ekranlara ulaşmak için

	Lab(NOLICENSE)#show slb server 

Örnek çıktı;
[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003527653.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003527653.png)

# Cpu işlemci

A10 cihazlarda iki çeşit işlemci vardır
- Data
- Control

Data cpuları backplane işlemlerinden sorumludur ve trafiğin iletimini sağlarlar, Control cpuları cihazın web gui, ssh console, counterlar bazı lisans işlemleri avcs gibi operasyonları yönetirler ve data plane tarafına etki etmezler.

İstatistiklerini görmek için ;

	Lab(NOLICENSE)#show cpu 

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003558035.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003558035.png)

# Memory RAM

ADC üzerindeki ram miktarı modele göre farklılık göstermektedir.
Memory kullanımı varsayılanda 3 e ayrılmıştır.
- System
- aFlex
- SSL

Genel kurallar burada da geçerlidir, memory kullanımı %75 i geçmemelidir.

Kullanımı ile ilgili detayları görüntülemek için

	Lab(NOLICENSE)#show memory 


[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003587522.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003587522.png)

# LOG Cihaz Logları syslog

A10 ADC üzerinde logları görüntülemek isteyebiliriz.

Bunun için ;
	
    Lab(NOLICENSE)#show log   

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003614897.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003614897.png)

# Slb virtual-server Sanal servisler

Aygıt üzerinde oluşturulan sanal sunucular / Virtual service lerin detaylarını görüntüleyebileceğiniz bu çıktıda, İlgili virtual server'a doğru açılan connection, tcp ve http detaylarını vermektedir. 

	Lab(NOLICENSE)#show slb virtual-server 	

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003640695.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003640695.png)

# Lisanslama

# Lisanslama

A10 cihazlarda Application deliver controller lisansı içerisinde gelmektedir.
Sanal cihazlarda lisanslama glm.a10networks.com adresinden alınan bir token ın cihaza eklenmesi yoluyla yapılır.

# Güncelleme / Geri alma

Cihazları güncelleme yada geri alma işlemlerini içeren bölümdür.

# Diskler ve çalışan versiyonlar

A10 vThunder üzerinde 1 adet disk ve içerisinde 2 farklı adet image barındırabiliyoruz.
2 adet farklı imaj herhangi bir güncelleme operasyonu  sonrasında rollback yapmak adına çoğu zaman avantaj sağlayabiliyor.

Ayrıca 2 adet image üzerinden hangi image ile cihazımızı boot edebileceğimizi seçebilir, bir sonraki reboot işleminde de bunu uygulayabiliriz.

ACOS üzerinde; 
configurasyon modunda, 

ADC-1-Active(config)#bootimage hd pri 

şeklinde konfig yaptıktan sonra, cihazımız ilk reboot işleminde HD(Hard Disk) üzerinde bizim belirteceğimiz image üzerinden cihazımızı boot edecektir.

Ayrıca, anlık olarak cihazımız üzerindeki image versiyonlarını görüntülemek için aşağıdaki çıktıdan faydalanabiliriz.



    ADC-1-Active#show version 


    Thunder Series Unified Application Service Gateway vThunder
      Copyright 2007-2019 by A10 Networks, Inc.  All A10 Networks products are
      protected by one or more of the following US patents:
      10749904, 10742559, 10735267, 10708150, 10686683, 10659354, 10637717
      10630784, 0623992,  RE47924,  10601788, 10599680, 10594600, 10581976
      10581907, 10554517, 10536517, 10536481, 10530847, 10523748, 10516730
      10516577, 10505984, 10505964, 10491523, 10484465, 10469594, 10454844
      10447775, 10411956, 10397270, 10389835, 10389538, 10382562, 10360365
      10348631, 10341427, 10341335, 10341118, 10334030, 10318288, 10305904
      10305859, 10298457, 10268467, 10257101, 10250629, 10250475, 10243791
      RE47296,  10230770, 10187423, 10187377, 10178165, 10158627, 10129122
      10116634, 10110429, 10091237, 10069946, 10063591, 10044582, 10038693
      10027761, 10021174, 10020979, 10002141, 9992229,  9992107,  9986061
      9979801, 9979665, 9961136, 9961135, 9961130, 9960967, 9954899, 9954868
      9942162, 9942152, 9912555, 9912538, 9906591, 9906422, 9900343, 9900252
      9860271, 9848013, 9843599, 9843521, 9843484, 9838472, 9838425, 9838423
      9825943, 9806943, 9787581, 9756071, 9742879, 9722918, 9712493, 9705800
      9661026, 9621575, 9609052, 9602442, 9596286, 9596134, 9584318, 9544364
      9537886, 9531846, 9497201, 9477563, 9398011, 9386088, 9356910, 9350744
      9344456, 9344421, 9338225, 9294503, 9294467, 9270774, 9270705, 9258332
      9253152, 9231915, 9219751, 9215275, 9154584, 9154577, 9124550, 9122853
      9118620, 9118618, 9106561, 9094364, 9060003, 9032502, 8977749, 8943577
      8918857, 8914871, 8904512, 8897154, 8868765, 8849938, 8826372, 8813180
      8782751, 8782221, RE44701, 8595819, 8595791, 8595383, 8584199, 8464333
      8423676, 8387128, 8332925, 8312507, 8291487, 8266235, 8151322, 8079077
      7979585, 7804956, 7716378, 7665138, 7675854, 7647635, 7627672, 7596695
      7577833, 7552126, 7392241, 7236491, 7139267, 6748084, 6658114, 6535516
      6363075, 6324286, 8392563, 8103770, 7831712, 7606912, 7346695, 7287084
      6970933, 6473802, 6374300

          64-bit Advanced Core OS (ACOS) version 4.1.4-GR1-P8, build 53 (Jul-23-2021,01:13)
          Booted from Hard Disk primary image
          Number of control CPUs is set to 1
          Serial Number: vThunder85D7CDAC0845D3EB32CA2F5FE991AF759B59ECEB
          aFleX version: 2.0.0
          GUI primary image (default) version 4_1_4-GR1-P8-4_1_4-gr1-p8-8
          GUI secondary image version 4_1_4-GR1-P8-4_1_4-GR1-P8-53
          aXAPI version: 3.0
          Cylance version: N/A
          Hard Disk primary image (default) version 4.1.4-GR1-P8, build 53
          Hard Disk secondary image version 4.1.4-GR1-P8, build 53
          Last configuration saved at Oct-6-2021, 22:12
          Virtualization type: VMware
          System Polling Mode: On
          Hardware: 4 CPUs(Stepping 0), Single 20G drive, Free storage is 12G
          Total System Memory 8130 Mbytes, Free Memory 4943 Mbytes
          Hardware Manufacturing Code: N/A
          Current time is Oct-12-2021, 11:50
          The system has been up 14 days, 15 hours, 33 minutes


Ek olarak cihazımızın hangi image ile boot ettiğini öğrenmek için aşağıdaki parametreyi kullanabiliriz.


    ADC-1-Active# show bootimage 

                          (* = Default)
                              Version
    -----------------------------------------------
    Hard Disk primary         4.1.4-GR1-P8.53 (*)

    Hard Disk secondary       4.1.4-GR1-P8.53



(*) ile ifade edilen satır cihazın şu anda çalıştırmakta olduğu image'ı ifade ediyor.

# Güncelleme [aVCS olmadan]



# Güncelleme [aVCS varken]

1. A10 cihazımıza image'ı çekeceğimiz uzak hostumuzun Layer 3 erişim kontrolü yapılmalı.
2. VCS'de vMaster ve vBlade rolündeki cihazlar hem aynı version a sahip olmalı, hem de bu versiyonlar aynı image alanından(primary veya backup) boot edilmiş olmalıdır.
  kontrol için "show version"
3.Daha sonra konfigurasyon yedeğimizi A10 üzerinde diğer image alanına da kaydediyoruz.
  "write memory all-partition"

4.Upgrade öncesi tüm trafiği vMaster'a döndürmeliyiz eğer ortamda vrrp-a çalışıyorsa ve VRRP olarak vMaster Active değilse.
   "-vrrp-a vrid
       priority 255 device x(vMaster Cihazımızın VCS ID numarası)

 Trafiğin komple vMaster'a  geçmesinin başka yöntemi de mevcut "vrrp force-standby" gibi.Bu önerilen bir yöntem değil.vBlade reboot edip upgrade olduktan sonra trafiği üstüne almak isteyebilir ve farkında olmadığımız sorunlarla karşılaşabiliriz.Bu nedenle kontrollü geçişte yarar var.

5. Vmaster cihaz üzerinde aşağıdaki şekilde upgrade prosedurunu başlatabiliriz.
 upgrade hd pri use-mgmt-port show-percentage scp://user@x.x.x.x/file-path/file-name staggered-upgrade-mode Device [0-4] (Vcs üzerinde vBlade cihazın Device Numarası yazılmalı)

6. Yukarıdaki proseduru uyguladıktan sonra upgrade sonrası reboot edilsin mi diye sorulacaktır."Yes" şeklinde geçiyoruz.
  Upload bittikten sonra Vmaster cihazımız bu image üzerinde kontrol yapacak, eğer image'ı geçerli bulursa upload edilmiş dosyayı VCS üzerindeki vBlade'e upload edecek.
  vBlade aygıtı image'ı alıp kendini upgrade edecek.
  
  Ardından boot edilen vBlade üzerinde "show version" yaparak yeni versiyona geçilip geçilmediği kontrol edilmeli.
  Daha sonra vrrp Active durumunu, Vmaster'dan alıp vBlade olan cihaza geçirmeliyiz.
  
  Özetle trafiği upgrade olan vBlade cihazımız üzerine almalıyız.
  Bu işlemden sonra vBlade cihazı yeni Vmaster olacak ve yeni vBlade olan yani eski vMaster, cihaza image'ı upload edecek.
  Upload bittikten sonra yeni vBlade cihazımız reboot olacak.

TL;DR:

1. konfigürasyon yedeği alınmalı ve son hali kaydedilmeli
2. Konfigürasyon cihaz üzrinde all-partition ortak alanına kaydedilmeli
3.  write memory all-partition
    -Vmaster'ın tüm trafiği aldığına emin olduktan sonra
4. vrrp-a vrid XX
    -    priority 255 device XX(vMaster Cihazımızın VCS ID numarası)
5.Upgrade vmaster da başlatılır
   Upgrade hd pri use-mgmt-port show-percentage scp://user@x.x.x.x/file-path/file-name staggered-upgrade-mode Device [0-4] -Vcs üzerinde vBlade cihazın Device Numarası yazılmalı-
   Upgrade sonrası reboot edilsin mi diye sorulacaktır."Yes"
6. cihaz yeni versiyon ile açıldığında kontroller yapılır.
7. Sorun olmadığı gözlemlendiğinde, Vrrp-a master görevi güncellemesi yapılmış cihaza verilir.
8. Staggered upgrade gereği Eski versiyonda kalan, eski master, yeni imajı otomatik olarak alır ve kendini reboot eder.

# Testler

Yükü dengelenecek servis ile ilgili bazı testleri nasıl yapacağımızı anlatan bölümdür.

# SSL bir servisin, Curl ile TTFB değerinin alınması

ttfb bir servisin web sunucusuna isteği iletmek için ilk hareketi yaptığımız andan başlayarak 

- isteğin sunucuya iletilmesi
- isteğin sunucu tarafında alınması ve işlenmesi
- sonrasında cevabın bize iletilmek üzere bilgisayar ağına gönderilmesi
- bize varması 

adımlarında ilk byte ın ulaştığı ana denir ve gerçekte bir sunucunun ne kadar meşgul olduğunu gösterir. 

Bu aslında bir yük dengeleme işinde servisi devreye almadan önce ortalamasını almamız gereken bir değerdir. Bu değer sayesinde bir yük dengeleyicinin herhangi bir isteğe kaç milisaniye eklediğini bulmamızı sağlar. 

Aşağıda curl ile ttfb değerini bulmamızı sağlayacak bir örnek bulabilirsiniz.

    curl -o /dev/null -w "baglanti: %{time_connect} TTFB: %{time_starttransfer} Toplam zaman: %{time_total} \n" "https://www.trendyol.com"
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  178k    0  178k    0     0   856k      0 --:--:-- --:--:-- --:--:--  856k
    baglanti: 0,058970 TTFB: 0,186167 Toplam zaman: 0,208797

# Autocannon ile stres testi çok kullanıcı stres testi

Autocannon sadece bir adet http endpointi test etmek üzere hazırlanmıl bir test aracıdır. Linux içerisinde npm frameworku ile birlikte çalışır.

TTFB ve response time sürelerini farklı modeller ile test ederek sonuç döner.

Ubuntu 20.04 veya 18.04 üzerinde kurmak için

	#sudo apt update
	#sudo apt install nodejs npm
	#sudo npm i autocannon -g

[![](https://books.netdev.com.tr/uploads/images/gallery/2022-11/scaled-1680-/image-1668003867734.png)](https://books.netdev.com.tr/uploads/images/gallery/2022-11/image-1668003867734.png)