dtcloud_router_static_route (Kaynak)
Bir yönlendiriciye tek bir statik rota ekler: bir hedefe giden trafik, geçitten çıkmak yerine belirtilen sonraki adrese gönderilir.
Örnek Kullanım
resource "dtcloud_router_static_route" "branch" {
router_id = dtcloud_router.main.id
destination = "192.168.50.0/24"
next_hop = "10.0.10.20"
# Sonraki adresin arkasında bulunduğu arayüz, bu rota var olduğu sürece
# ayrılamaz ve API bu bağımlılığı bildirmez. Burada belirtin.
depends_on = [dtcloud_router_interface.app]
}
# Birden çok rota, girdi başına bir kaynak.
variable "branch_networks" {
type = map(string)
default = {
"192.168.51.0/24" = "10.0.10.21"
"192.168.52.0/24" = "10.0.10.22"
}
}
resource "dtcloud_router_static_route" "branches" {
for_each = var.branch_networks
router_id = dtcloud_router.main.id
destination = each.key
next_hop = each.value
depends_on = [dtcloud_router_interface.app]
}
not
Yerinde değiştirilecek bir şey yok. Bir rota, hedefi ve sonraki adresinden ibarettir; bu yüzden ikisinden birini değiştirmek başka bir rotadır. İki uç da terraform plan sırasında denetlenir, yani hatalı biçimli olan bir şey gönderilmeden önce hata verir.
Şema
Zorunlu
destination(String) Hedef ağ, CIDR gösteriminde; örneğin192.168.50.0/24. Bu değiştirilirse yeni bir kaynak oluşturulur.next_hop(String) Hedefe giden trafiğin gönderileceği adres. IPv4 ve önek uzunluğu olmadan. Bu değiştirilirse yeni bir kaynak oluşturulur.router_id(String) Rotanın ekleneceği yönlendiricinin kimliği. Bu değiştirilirse yeni bir kaynak oluşturulur.
İsteğe Bağlı
timeouts(Block, Optional) (bkz. aşağıdaki iç içe şema)
Salt Okunur
id(String) Bu kaynağın kimliği.
timeouts için iç içe şema
İsteğe Bağlı:
create(String)delete(String)
Bilinmesi Gerekenler
- Bir yönlendiricinin rotaları teker teker uygulanır. Platform bir rotayı, yönlendiricinin tüm rota listesini yeniden yazarak uygular; bu yüzden aynı anda yazılan iki rota, listeyi ikisinden de önceki hâliyle okur ve ikinci yazma birincisini düşürür. Sağlayıcı tek bir yönlendiricinin rotalarını sıraya sokar; bu da çok rotalı bir yönlendiricinin orantılı olarak daha uzun sürmesi demektir. Farklı yönlendiricilerdeki rotalar yine paralel gider. Koruyamadığı şey, aynı yönlendiriciye aynı anda başka bir şeyin yazmasıdır — başka bir koşu ya da web konsolu.
- Başka yerde kaldırılan bir rota geri gelir. Bir sonraki yenileme onu state'ten düşürür, bir sonraki apply yeniden ekler. Bu aynı zamanda sağlayıcının yukarıdaki üzerine yazma sorununa cevabıdır: yeniden yakınsa.
- Bir rota, üzerinden geçtiği arayüzü sabitler.
next_hop,dtcloud_router_interfaceile bağlanmış bir ağdaysa, rota var olduğu sürece o arayüz ayrılamaz ve Terraform bunu kendi başına çıkaramaz.depends_onile belirtin. - Rotalar yönlendiricide bir liste değildir. Bir rota eklemek yönlendirici kaynağını yeniden yazmaz ve Terraform dışında eklenen bir rota bir sonraki apply ile sessizce silinmez. Yönetilsin yönetilmesin hepsini görmek için
dtcloud_router_static_routesokuyun.
Zaman Aşımları
create ve delete varsayılan olarak 10'ar dakikadır. Oluşturma, rota gerçekten yönlendiricide listelenene kadar dönmez; silme de rota gidene kadar. Değeri geri okumak buradaki tek dürüst doğrulamadır, çünkü platform bu yazmaları uygulamadan önce onaylar.
İçe Aktarma
# <router-id>:<destination>:<next-hop>
terraform import dtcloud_router_static_route.branch 3f2a1c9e-77b4-4a01-9d3e-2b6c81f4e5a7:192.168.50.0/24:10.0.10.20
Her şey geri gelir — kimlik kaynağın tamamını taşır.