TR-069

Taşıma detayları

CWMP metin tabanlı bir protokoldür. CPE ile ACS arasında gönderilen istekler HTTP (çoğunlukla HTTPS) üzerinden gönderilir. Burada CPE HTTP iletişiminin istemcisi, ASC sunucusu olarak davranır. Burada provizyon (ayar yapma) için açılan HTTP oturumlarının kontrolü CPE'nin elindedir.

Provizyonlama Oturumu

Bütün iletişim ve işlemler provizyonlama oturumları kapsamında yapılır. Oturum her zaman cihaz tarafından başlatılır ve ilk iletilen ileti Inform'dur. Bu iletinin alındığına dair onay mesajı sunucudan InformResponse olarak gönderilir. Bu oturum başlatma aşamasının sonudur. Sonra gelen 2 aşamanın sırası holdRequest bayrağının değerine bağlıdır. Eğer bu değer false ise, başlatma aşamasının ardından cihazın istekleri iletilir, tersi durumda önce ACS'in istekleri iletilir. Şimdi holdRequest değerinin false olması durumunda gerçekleştirilecek iletişimi açıklayalım:
Başlatma aşamasından sonraki ikinci aşamada istekler cihazdan ACS'e iletilir. Protokol cihazın ACS üzerinde çağırabileceği birden fazla metot tanımlasa da, genelde bir tanesi kullanılır: TransferComplete. Bu aşama ACS'e boş bir HTTP isteği gönderilmesi ile sonlandırılır.
Üçüncü aşamada CWMP açısından roller değiştirilir. Cihazın yaptığı isteğin cevabı olarak ACS'den cihaza gönderilen HTTP-cevabı, ACS'in cihazdan isteklerini bildiren bir CWMP-isteği içerir. Bunun devamında cihaz ACS'e, az önce gelen CWMP-isteğinin cevabını, bir HTTP-isteği içinde gönderecektir. Eğer birden fazla istek varsa bunlar teker teker gönderilir. Bu aşama (ve tabi bütün provizyonlama oturumu) boş bir HTTP-cevabının iletilmesiyle son bulur. Bu bekleyen başka bir istek olmadığını belirtir.

Güvenlik ve kimlik doğrulama

Önemli veriler (kullanıcı adı/şifre gibi) CPE'ye TR-069 ile gönderildiği için, güvenli bir iletişim kanalı açmak ve ACS'i kimlik doğrulamaya tabi tutmak, bu protokolün temel özeliiği olmalıdır. Güvenli iletişim ve ACS'in kimliğini doğrulama işlemi HTTPS kullanılarak ve ACS sertifikasının doğrulanmasıyla kolayca sağlanabilir. CPE'nin kimlik doğrulaması ise daha zordur. Cihazın kimliği HTTP seviyesinde paylaşımlı bir şifreye dayanılarak doğrulanır. Her provizyonlama oturumumda şifreler hakkında CPE ve ACS arasında karşılıklı bir anlaşma yapılır (negotiate). Cihaz ACS ile ilk defa iletişime geçtiğinde (ya da fabrika ayarlarına geri döndükten sonra) ön tanımlı şifreler kullanılır. Büyük ağlarda her cihazın benzersiz bilgilere sahip olmasını sağlamak tedarikçinin görevidir. Bu bilgilerin listesi cihazlarla birlikte verilir ve güvenliği sağlanır.

Bağlantı İsteği

Oturumun başlatılması ve kontrolü cihazım sorumluluğunda olduğu için, ACS'in de bir şekilde cihazdan oturum başlatma için istek gönderebilmesi gerekmektedir. Bağlantı isteği mekanızması da HTTP'ye dayanmaktadır. Bu durumda CPE, HTTP sunucusu rolündedir. ACS, üzerinde anlaşılan URL'i ziyaret edip, HTTP kimlik doğrulaması gerçekleştirerek cihazdan bağlantı talep eder. CPE'lerin ACS'lere karşı DDoS saldırılarında kullanılmalarını önlemek üzere, CPE ve ACS arasında paylaşılan bir şifre üzerinde de daha önceden anlaşılmış olmalıdır. Cihaz tarafından onay gönderildikten sonra provizyonlama oturumu en geç 30 saniye içinde başlamalıdır.

NAT üzerinden bağlantı isteği

CWMP, herhangi bir NAT ardındaki cihazlara (örneğin IP-Telefon'lar) erişim için de bir mekanizma tanımlar. Bu mekanizma STUN ve UDP NAT dolaşımına dayalıdır. TR-111 belgesinde açıklanmıştır.

Veri modeli

Ayarların birçoğu, cihaz parametrelerini alıp değerlerini güncellemekle yapılır. Bunlar güzel biçimde tanımlanmıştır ve genelde bütün cihaz modelleri ve üreticileri arasında ortak olan hiyerarşik bir yapıdadır. Broadband Forum bu veri model standartlarını iki biçimde yayınlar: Her bir veri modelinin detaylı özellikleri ve bunların sürümleri arasındaki değişimleri gösteren XML dosyaları ve daha insanca anlaşılır biçimde olan PDF dosyaları. Desteklenen standartlar ve ekleri cihaz veri modelinde açıkça belirtilmelidir. Bu bilgi ya Device.DeviceSummary alanında ya da InternetGatewayDevice.DeviceSummary alanında olmalıdır. Bu alanlar Device:1.0 ve InternetGatewayDevice:1.1 sürümlerinden itibaren zorunludur. Eğer alan bulunamazsa InternetGatewayDevice:1.0 'ın kastedildiği varsayılır. Device:1.4 ve InternetGatewayDevice:1.6'dan itibaren belgeye desteklenen standart özellik için yeni bir alan (<RO>.SupportedDatamodel) eklenmiştir.
Model'in kökü üreticinin seçimine bağlı olarak ya Device ya da InternetGatewayDevice'tır. Veri yapısının herhangi bir seviyesinde nesneler ya da parametreler (ya da dizi örnekleri) bulunabilir. Anahtarlar, nesnelerin adları ve parametreler birleştirilerek oluşturulur. Sonra bu değerlerin arasına ayraç olarak '.' (nokta) konulur. Örneğin: InternetGatewayDevice.Time.NTPServer1
Her bir parametre yazılabilir ve yazılamaz olarak tanımlanmıştır. Bu ayar cihaz tarafından GetParameterNamesResponse iletisi içinde rapor edilir. Cihaz sadece-okunabilir olarak işaretli parametrelerden hiçbirinin değerinin değiştirilmesine izin vermemelidir. Veri modeli raporu ve ekleri bu parametrelerin gerekli olup olmadığını açıkça belirtir.
Parametrelerin alabileceği değerler, tipleri ve anlamları da hassas bir şekilde bu standart tarafından tanımlanmıştır.

Diziler

Veri modelinin bazı kısımları altağacın birden fazla kopyasının bulunmasını gerektirir. Buna en iyi örnekler açıklama tablolarıdır: Örn, Port Forwarding Tabloları. Dizi tipindeki bir nesne yalnızca kendi çocukları olan örnekleri (tam sayı -integer- tipinde verilerle gösterilen) olabilir. Genellikle dizi ile aynı seviyede, hali hazırda var olan örneklerin sayısını gösteren bir parametre bulunur.
Temsil edilen verinin tipine göre, diziler yazılabilir (dinamik olarak çocuk ekleyip çıkarılmasına izin veren) ya da salt okunur olabilir. Örneğin dizi gömülü (built-in) bir anahtar (switch)'daki 4 portu temsil ediyorsa, bu portlara veri modelinden ekleme ve çıkartma yapılamamalıdır. Diziye bir nesne daha eklenirse, bu nesneye tam sayı tipinde bir kimlik numarası atanır. Kimlik numaraları atandıktan sonra cihazın fabrika ayarlarına geri döndürülmesi veya bir ayar dosyasının yüklenmesi dışında cihazın yaşam süresi boyunca değiştirilemez.

Sık karşılaşılan sorunlar

Gerekli parametreler ve bunların özellikleri standart tarafından detaylı bir şekilde tanımlanmış olsa da, cihazların çoğu standardın kurallarına tamamiyle uymamaktadır. Sık karşılaşılaşan sorunlardan bazıları şunlardır: Eksik parametreler, atlanmış örnek (instance) numaraları (tek örnekli-instance diziler için), yanlış parametre erişim seviyesi ve parametrenin değerinin yanlış anlaşılması. Örneğin erişim noktası cihazının desteklediği standardı belirten alanın değeri 'g' ise bu 802.11b ve 802.11g'yi desteklediği anlamına gelir. Eğer değer 'g-only' ise cihaz sadece 802.11g'yi destekliyor demektir. 'bg' veya 'b/g' gibi değerler Broadband Forum standartlarına göre geçersiz olsa da, bu değerler cihazların veri modellerinde sıkça görülmektedir.