Edge yönlendirici
Sorun ve amaç
Bir VDC'deki (sanal veri merkezi) makinelerin yalnızca kendi ağlarına ihtiyacı olduğu sürece yönlendiriciye gerek yoktur. Trafiğin ağlar arasında ve VDC'nin dışına akması, tek tek servislerin farklı bir adres ve portta yayımlanması gerektiğinde ise bir bağlantı noktasına ihtiyaç duyulur: birden fazla ağı tanıyan ve trafik filtreleme ile adres dönüştürme kurallarını yöneten bir yönlendirici.
Bu bağlantı noktasını yazılım tanımlı bir yönlendirici olan Edge sağlar. Küme içinde çalışır, ağlara portları üzerinden bağlanır ve diğer vStack Center nesneleriyle aynı API çağrıları üzerinden yönetilir. Ayrı bir donanım cihazına veya yönetim konsoluna ihtiyaç duymaz: SDN (yazılım tanımlı ağ), yönlendiricinin tıpkı bir VM veya ağ gibi yönetilen bir küme nesnesi olduğu anlamına gelir.
Model ve varlıklar
Edge, vStack Center tarafından yönetilen bir sanal makinedir. edge-create yöntemi
sentetik bir vms-create isteği oluşturur ve bunu VM ajanına iletir. edge-start,
edge-stop ve edge-restart yöntemleri vms-start, vms-stop ve vms-restart
yöntemlerine, edge-remove ise vms-remove yöntemine karşılık gelir. Bunun pratik
sonucu şudur: yönlendirici küme kaynaklarını bir VM olarak tüketir ve aynı
kısıtlamalara tabidir. Örneğin, bir port yalnızca makine durdurulmuşken eklenebilir.
API yanıtlarında VM tanımlayıcısını (vm_id) yalnızca Cluster master rolü görebilir.
Edge nesnesinin kendisi şu alanlarla tanımlanır:
| Alan | Anlamı |
|---|---|
edge_id | Yönlendirici UUID'si. Tüm Edge yöntemlerinde anahtardır |
owner | Sahip. Tüm rollere döndürülür |
vdc_id | Paylaşılan Edge'in ait olduğu VDC |
vm_id | Yönlendirici VM'sinin tanımlayıcısı. Yalnızca Cluster master rolü için kullanılabilir |
oper_status, oper_progress, oper_ts | Son işlemin durumu, yüzde olarak ilerlemesi ve zamanı |
deploy_ts | Kuralların yönlendiriciye uygulanma zaman damgası |
modified | Kaydın son değişiklik zamanı |
base_version, ctrl_version, GI_object | Dahili sürümleme ve GI federasyonu alanları |
Edge, ağlara en fazla dört port üzerinden bağlanır. Bir port, ağ, yuva ve adresler arasındaki ilişkiyi tanımlar:
| Port alanı | Neyi belirtir |
|---|---|
port_id | Port tanımlayıcısı. edge-ratelimit ve edge-remove-nic tarafından kabul edilir; kurallar porta rule_ifname üzerinden başvurur |
slot | Yuva numarası (4'ten büyük olamaz) |
network_id | Portun bağlı olduğu ağ |
ifname | Port arabirim numarası |
address | Portun IPv4 adresi veya IPv4 adresi atanmamışsa null |
address_v6 | Portun IPv6 adresleri listesi (en fazla 8). IPv6 adresi atanmamışsa boş liste |
mac | Portun MAC adresi |
ip_guard | IP guard bayrağı: devre dışı bırakmak için 0, etkinleştirmek için 1. Varsayılan: 1 |
ratelimit_mbits | Mbps cinsinden bant genişliği sınırı. 0, sınır olmadığı anlamına gelir |
Edge kuralları iki numaralı kümede saklanır: adres dönüştürme için nat ve trafik
filtreleme (güvenlik duvarı) için fw. Bir küme içindeki anahtar kural numarasıdır;
güvenlik duvarı kuralları için numara 100–32767 aralığındadır. Kümelerle birlikte
incarnation alanı da döndürülür: bu, kurallarla birlikte yönlendiriciye gönderilen
bir küme işaretidir.
Nasıl çalışır
Kural yapılandırması ve yürütülmesi birbirinden ayrıdır. edge-add-fw-rule,
edge-add-nat-rule, edge-remove-fw-rule ve edge-remove-nat-rule yöntemleri
eşzamanlıdır ve yalnızca vStack Center veritabanıyla çalışır: kural kümede görünür
veya kümeden kaldırılır, ancak henüz trafiği etkilemez. Ayrı bir çağrı olan
edge-deploy-rules uygulamayı gerçekleştirir: veritabanından tam kümeyi
(incarnation, nat, fw) derler ve bunu eksiksiz olarak Edge ajanına gönderir.
Bu ayrımın iki sonucu vardır. Birincisi, küme uygulanana kadar veritabanındaki küme yönlendiricideki kümeden farklıdır; bu nedenle kural düzenleme, kural eklemeyle değil uygulamayla sona erer. İkincisi, uygulama tek tek değişiklikleri eklemek yerine kümenin tamamını değiştirir: veritabanındaki küme her zaman istenen durumun tamamını içerir.
Eşzamansız Edge işlemleri ajanlar üzerinden yürütülür ve ajan, işlem türüne bağlıdır.
Makine yaşam döngüsü işlemleri (başlatma, durdurma, yeniden başlatma, kaldırma) VM
ajanına, port işlemleri (edge-add-nic, edge-remove-nic) Storage ajanına, kurallar
ve paket filtresi günlüğü ise Edge ajanına gider. Böyle bir çağrı önce bir ara yanıt
döndürür: {"message": "relayed"}. Bu, sonucu değil iletimin yapıldığını onaylar.
Nihai yanıt, ajandan bir geri çağırma (callback) olarak gelir.
Yaşam döngüsü şöyle işler. edge-create, yönlendirici VM'sini oluşturur, Edge'i
veritabanına kaydeder ve makineyi başlatır; oluşturmadan sonra ayrıca başlatmak
gerekmez. Ardından işletim aşaması gelir: portlar eklenir ve kaldırılır, port bant
genişliği sınırlanır, kural kümeleri düzenlenir ve uygulanır. Durdurma ve başlatma,
yönlendiricinin yapılandırmasını değiştirmeden onu durumlar arasında taşır.
edge-remove, Edge'i ve tüm kurallarını veritabanından kaldırır, ardından VM'yi siler.
Erişim, kapsamlı yetkilere dayanır. Cluster master rolü kümedeki herhangi bir Edge
ile çalışabilir. Bir VDC yöneticisi kendi VDC'sinde yönlendirici oluşturur, oradaki
her yönlendiriciyi görür ve kural kümelerini okur. Yalnızca kendi oluşturduğu
yönlendiricileri yönetebilir: portlar, bant genişliği, başlatma ve durdurma, kuralları
düzenleme ve uygulama ve kaldırma. Bu işlemlerin her biri, VDC'sinde başka birine ait
bir yönlendirici için kaldırma dahil -403 döndürür.
VDC kullanıcıları ve gözlemciler kendi VDC'lerindeki yönlendiricilerin listesini, kartlarını ve kural kümelerini okuyabilir. Bu erişim için yönlendiricinin sahibi olmak gerekmez.
Paket filtresi günlüğü, kuralların davranışına ilişkin görünürlük sağlar.
edge-get-pfloggs yöntemi günlüğü yönlendiriciden bir PCAP dosyası olarak alır.
Kuralların gerçekte hangi paketlerle eşleştiğini görmek için dosyayı bir trafik
çözümleyicide açın.
Sınırlamalar
- Bir Edge'in en fazla dört portu olabilir; yuva numarası 4'ü aşamaz.
- Bir port yalnızca yönlendirici VM'si durdurulmuşken (veya hata ya da oluşturma
durumundayken) eklenebilir. Çalışan bir Edge'de
edge-add-nicçağrısı reddedilir. - Güvenlik duvarı kural numaraları 100–32767 aralığıyla sınırlıdır. NAT kural numaraları için bir aralık tanımlanmamıştır.
- Port başına en fazla 8 IPv6 adresi elle atanabilir. Her adres biçim, ağın IPv6
alt ağına (
net_cidr_v6) üyelik, ayrılmış (ippool_reserved_v6) ve zaten tahsis edilmiş (ippool_port_allocations) adresler arasında bulunmama ve istek içinde benzersizlik açısından denetlenir. rule_action,rule_protoverule_directiondeğerleri eylem ve protokol adları değil, küme başvuru listelerindeki sayısal tanımlayıcılardır.- Kuralların uygulanması için %100 ilerlemeye sahip ve bootstrap işlemi tamamlanmış çalışan bir Edge gerekir. Durdurulmuş veya hâlâ başlamakta olan bir yönlendirici kuralları kabul etmez.
- Paket filtresi günlüğü 24 saat saklanır ve ajan dışa aktarmaları 3000 paketle
sınırlar. Yöntemin kendisi küme ayarlarındaki
feature.edge_log_pcapözellik bayrağına bağlıdır. - Tüm Edge işlevselliği küme ayarlarındaki genel
feature.edgeözellik bayrağına bağlıdır. Bu bayrak devre dışıyken herhangi bir yönlendirici isteği-25030koduyla "The edge feature has not been enabled" döndürür. Okuma işlemleri de engellenir: yönlendirici listesi, yönlendirici kartı ve kural kümeleri. Bu tür her ret, güvenlik günlüğünefeature.gate-deniedolayı olarak kaydedilir.