> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Routing Sorunları

> Apinizer'da routing sorunlarını tespit edebilir, client IP adresi sorunlarını çözebilir, DNS çözümleme performansını optimize edebilir ve SOAP servis routing sorunlarını yönetebilir.

## Client IP Adresinin 10.244.x.x Şeklinde Görülmesi

### Problem

<Warning>
  Client IP adresi Kubernetes ortamında 10.244.x.x şeklinde görülmektedir.
</Warning>

### Sebep/Neden

Kubernetes NodePort yapısında eğer client'dan X-Forwarded-For değer gelmiyorsa default olarak arka taraftaki uygulamaya pod'un IP adresini yönlendiriyor. Çözüm olarak externalTrafficPolicy değer Local yaparak çözebiliyoruz ancak bu defa NodePort gelen isteği Cluster'daki diğer sunuculara yönlendirmediğinden erişim sıkıntısı oluşuyor. İlgili Node'u bilip ona gitmek gerekiyor.

### Çözüm

<Info>
  Apinizer Worker'ları Nginx veya F5 gibi bir yapının arkasına konacağı için, ilgili loadbalancer'ın konfigürasyon dosyasına aşağıdaki gibi header'a xff bilgisinin eklenmesi gerekiyor.
</Info>

**Nginx için bu ayar aşağıdaki gibi yapılabilir:**

```nginx theme={null}
location /apigateway/ {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://api.inst.com/apigateway/;
} # end location
```

## SOAP Servislerde WS-S/WS-STS Token Alma Routing Sorunu

### Problem

<Warning>
  SOAP servislerde kullanılan WS-S ya da WS-STS politikaları "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target" hatası nedeniyle token alamıyor.
</Warning>

### Sebep/Neden

SOAP servis çağrımında Apinizer'a yüklenmiş sertifikayı görememesi nedeniyle bu servisin token alımının reverse proxy üzerinden yapılması gerekiyor.

### Çözüm

<Info>
  İlgili token alma adresi ile routing yapan bir reverse proxy oluşturulur ve token kullanan servisteki wss/wssts politikasının token alma adresi bu servis olarak verilir. Nadir durumlarda reverse proxy üzerinden script ile xml mesajındaki adresin değiştirilmesi gerekebilir.
</Info>

## DNS Çözümleme Sorunları

### Problem

<Warning>
  Yoğun environment kullanımı veya yüksek sayıda rate limit tanımı olan sistemlerde, bazı servis adreslerinin anlık olarak çözülememesi.
</Warning>

### Sebep/Neden

Bu durum, DNS çözümleme performansının yetersiz kalmasından kaynaklanmaktadır.

### Çözüm

<Steps>
  <Step title="CoreDNS Kaynak Limitlerini Artır">
    CPU ve RAM kaynakları yükseltilerek daha fazla sorgunun aynı anda işlenebilmesi sağlanmalıdır.
  </Step>

  <Step title="CoreDNS Node'lar Üzerine Dağıt">
    Her worker node üzerinde bir adet CoreDNS podu olacak şekilde deployment yeniden yapılandırılmalıdır. Bu sayede DNS sorguları merkezi bir noktaya yığılmadan dağıtık şekilde işlenebilmektedir.
  </Step>
</Steps>

## Coğrafi Bilgi Sistemleri Servislerinde GetCapabilities Routing Sorunu

### Problem

Coğrafi Bilgi Sistemleri servislerinde GetCapabilities ile dönmekte olan WSDL içerisindeki adreslerin Apinizer'a taşınması gerekmektedir.

### Çözüm

2. bölgeye eklenecek bir Business Rule veya Script poliçesi ile url'de query param olarak 'request' anahtarında 'GetCapabilities' değeri geliyorsa string replace ile buradaki adres Apinizer'da ilgili proxy'e yönlenecek şekilde değiştirilmelidir.
