Özet
nsupdate [-d] [-D] [-L level] [[-g] | [-o] | [-l] | [-y [hmac:]keyname:secret] |
[-k keyfile]] [-t timeout] [-u udptimeout] [-r udpretries] [-R randomdev] [-v] [-T]
[-P] [-V] [filename]
Açıklama
nsupdate, RFC 2136'da tanımlanan Dinamik DNS Güncelleme isteklerini bir alan adı sunucusuna iletmek için kullanılır. Bu, bölge (zone) dosyasını elle düzenlemeye gerek kalmadan kaynak kayıtlarının bir bölgeye eklenmesini veya bölgeden kaldırılmasını sağlar. Tek bir güncelleme isteği, birden fazla kaynak kaydını ekleme veya kaldırma istekleri içerebilir.
nsupdate veya bir DHCP sunucusu aracılığıyla dinamik denetim altında olan bölgeler elle düzenlenmemelidir. Elle yapılan düzenlemeler dinamik güncellemelerle çakışabilir ve veri kaybına yol açabilir.
nsupdate ile dinamik olarak eklenen veya kaldırılan kaynak kayıtlarının aynı bölgede olması gerekir. İstekler bölgenin birincil (master) sunucusuna gönderilir. Bu sunucu, bölgenin SOA kaydındaki MNAME alanı tarafından tanımlanır.
Dinamik DNS güncellemelerinin kimliğini doğrulamak için işlem imzaları (transaction signatures) kullanılabilir. Bunlar, RFC 2845'te açıklanan TSIG kaynak kaydı türünü, RFC 2535 ve RFC 2931'de açıklanan SIG(0) kaydını veya RFC 3645'te açıklanan GSS-TSIG'yi kullanır.
TSIG, yalnızca nsupdate ve alan adı sunucusu tarafından bilinmesi gereken paylaşılan bir sırra (shared secret) dayanır. Örneğin, alan adı sunucusunun uygun gizli anahtarı ve algoritmayı TSIG kimlik doğrulamasını kullanacak istemci uygulamasının IP adresiyle ilişkilendirebilmesi için /etc/named.conf dosyasına uygun key ve server ifadeleri eklenir. Uygun yapılandırma parçaları üretmek için ddns-confgen aracını kullanabilirsiniz. nsupdate, TSIG paylaşılan sırrını sağlamak için -y veya -k seçeneklerini kullanır. Bu seçenekler birbirini dışlar (mutually exclusive).
SIG(0), açık anahtarlı şifreleme kullanır. Bir SIG(0) anahtarını kullanmak için, açık anahtarın, alan adı sunucu tarafından sunulan bir bölgedeki bir KEY kaydında saklanması gerekir.
GSS-TSIG, Kerberos kimlik bilgilerini kullanır. Standart GSS-TSIG modu -g bayrağıyla açılır. Windows 2000 tarafından kullanılan ve standartlara tam uymayan bir GSS-TSIG varyantı ise -o bayrağıyla etkinleştirilebilir.
Seçenekler
-d Hata ayıklama modu. Bu mod, yapılan güncelleme istekleri ve alan adı sunucusundan alınan yanıtlar hakkında izleme (tracing) bilgileri sağlar.
-D Ek hata ayıklama modu.
-k keyfile TSIG kimlik doğrulama anahtarını içeren dosya. Anahtar dosyaları iki formatta olabilir: ddns-confgen tarafından otomatik olarak üretilebilen, named.conf formatındaki bir anahtar ifadesini içeren tek bir dosya; veya dnssec-keygen tarafından üretilebilen, adları K{name}.+157.+{random}.key ve K{name}.+157.+{random}.private formatında olan bir dosya çifti. -k seçeneği, Dinamik DNS güncelleme isteklerinin kimliğini doğrulamak için kullanılan bir SIG(0) anahtarını belirtmek amacıyla da kullanılabilir. Bu durumda, belirtilen anahtar bir HMAC-MD5 anahtarı değildir.
-l Yalnızca yerel ana bilgisayar (local-host) modu. Bu, sunucu adresini localhost olarak ayarlar (sunucuyu devre dışı bırakarak sunucu adresinin geçersiz kılınmasını engeller). Yerel sunucuya yapılan bağlantılar, herhangi bir yerel birincil bölge update-policy seçeneğini local olarak ayarlamışsa named tarafından otomatik olarak oluşturulan /var/run/named/session.key dosyasındaki TSIG anahtarını kullanacaktır. Bu anahtar dosyasının konumu -k seçeneği ile geçersiz kılınabilir.
-L level Günlük kaydı hata ayıklama seviyesini ayarlar. Sıfır ise günlük kaydı devre dışı bırakılır.
-p port Bir alan adı sunucusuna yapılacak bağlantılar için kullanılacak portu ayarlar. Varsayılan değer 53'tür.
-P Formatı nsupdate tarafından anlaşılan özel BIND'a özgü kaynak kaydı türlerinin listesini yazdırır. Ayrıca -T seçeneğine bakın.
-r udpretries UDP deneme sayısı. Varsayılan değer 3'tür. Sıfır ise yalnızca tek bir güncelleme isteği yapılacaktır.
-R randomdev Rastgeleliğin nereden elde edileceği. İşletim sistemi bir /dev/random veya eşdeğer bir aygıt sağlamıyorsa, varsayılan rastgelelik kaynağı klavye girdisidir. randomdev, varsayılan kaynak yerine kullanılacak rastgele veriler içeren bir karakter aygıtının veya dosyasının adını belirtir. keyboard özel değeri, klavye girdisinin kullanılması gerektiğini belirtir. Bu seçenek birden fazla kez belirtilebilir.
-t timeout Bir güncelleme isteğinin iptal edilmeden önce sürebileceği maksimum süre. Varsayılan değer 300 saniyedir. Zaman aşımını devre dışı bırakmak için sıfır kullanılabilir.
-T Formatı nsupdate tarafından anlaşılan IANA standart kaynak kaydı türlerinin listesini yazdırır. nsupdate, listeler yazdırıldıktan sonra çıkış yapacaktır. -T seçeneği -P seçeneği ile birleştirilebilir.
Diğer türler, "XXXXX" değerinin başında sıfır olmayan ondalık tür değeri olduğu "TYPEXXXXX" kullanılarak girilebilir. rdata mevcutsa, BİLİNMEYEN (UNKNOWN) rdata formatı (<ters-eğik-çizgi>
-u udptimeout UDP deneme aralığı. Varsayılan değer 3 saniyedir. Sıfır ise aralık, zaman aşımı aralığı ve UDP deneme sayısından hesaplanacaktır.
-v Küçük güncelleme istekleri için bile TCP kullanır. Varsayılan olarak nsupdate, bir UDP isteğine sığmayacak kadar büyük olmadıkları sürece alan adı sunucusuna güncelleme isteklerini göndermek için UDP kullanır; sığmadığı durumlarda ise TCP kullanılır. Bir grup güncelleme isteği yapıldığında TCP tercih edilebilir.
-V Sürüm numarasını yazdırır ve çıkış yapar.
-y [hmac:]keyname:secret Düz metin TSIG kimlik doğrulama anahtarı. keyname anahtarın adıdır ve secret ise base64 ile kodlanmış paylaşılan sırdır. hmac ise anahtar algoritmasının adıdır; geçerli seçenekler hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 veya hmac-sha512'dir. hmac belirtilmemişse, varsayılan değer hmac-md5'tir; MD5 devre dışı bırakılmışsa hmac-sha256'dır.
NOT: Paylaşılan sır komut satırı argümanı olarak düz metin halinde sağlandığından -y seçeneğinin kullanılması önerilmez. Bu sır, ps(1) çıktısında veya kullanıcının kabuğu tarafından tutulan bir geçmiş (history) dosyasında görünür olabilir.
Girdi Formatı
nsupdate, girdileri bir dosyadan (filename) veya standart girdiden okur. Her komut tam olarak tek bir girdi satırında sağlanır. Bazı komutlar yönetimsel amaçlar içindir. Diğerleri ise güncelleme talimatları veya bölge içeriği üzerindeki önkoşul kontrolleridir. Bu kontroller, belirli bir adın veya kaynak kayıtları kümesinin (RRset) bölgede mevcut olması ya da bulunmaması koşullarını belirler. Tüm güncelleme isteğinin başarılı olması için bu koşulların karşılanması gerekir. Önkoşul koşullarının testleri başarısız olursa güncellemeler reddedilecektir.
Her güncelleme isteği sıfır veya daha fazla önkoşul ile sıfır veya daha fazla güncellemeden oluşur. Bu durum, bazı belirtilen kaynak kayıtlarının bölgede bulunması veya bulunmaması durumunda, uygun şekilde kimliği doğrulanmış bir güncelleme isteğinin işleme konmasını sağlar. Boş bir girdi satırı (veya send komutu), biriken komutların alan adı sunucusuna tek bir Dinamik DNS güncelleme isteği olarak gönderilmesine neden olur.
Komut formatları ve anlamları aşağıdaki gibidir:
server {servername} [port] Tüm dinamik güncelleme isteklerini servername alan adı sunucusuna gönderir. Herhangi bir server ifadesi sağlanmadığında, nsupdate güncellemeleri doğru bölgenin birincil (master) sunucusuna gönderecektir. O bölgenin SOA kaydındaki MNAME alanı, o bölge için birincil sunucuyu tanımlayacaktır. port, servername üzerindeki dinamik güncelleme isteklerinin gönderileceği port numarasıdır. Herhangi bir port numarası belirtilmezse, varsayılan DNS port numarası olan 53 kullanılır.
local {address} [port] Tüm dinamik güncelleme isteklerini yerel adresi kullanarak gönderir. Herhangi bir local ifadesi sağlanmadığında, nsupdate istekleri sistem tarafından seçilen bir adres ve portu kullanarak gönderecektir. port seçeneği, isteklerin belirli bir porttan gelmesini sağlamak amacıyla da kullanılabilir. Herhangi bir port numarası belirtilmezse sistem bir tane atayacaktır.
zone {zonename} Tüm güncellemelerin zonename bölgesine yapılacağını belirtir. Herhangi bir zone ifadesi sağlanmadığında, nsupdate girdinin geri kalanına dayanarak güncellenecek doğru bölgeyi belirlemeye çalışacaktır.
class {classname} Varsayılan sınıfı belirtir. Herhangi bir sınıf belirtilmezse, varsayılan sınıf IN'dir.
ttl {seconds} Eklenecek kayıtlar için varsayılan geçerlilik süresini (time to live - TTL) saniye cinsinden belirtir. none değeri varsayılan ttl değerini temizleyecektir.
key [hmac:] {keyname} {secret} Tüm güncellemelerin keyname ve secret çifti kullanılarak TSIG ile imzalanacağını belirtir. hmac belirtilirse, kullanımda olan imzalama algoritmasını ayarlar; varsayılan hmac-md5'tir veya MD5 devre dışı bırakılmışsa hmac-sha256'dır. key komutu, komut satırında -y veya -k aracılığıyla belirtilen tüm anahtarları geçersiz kılar.
gsstsig Güncellemeyi imzalamak için GSS-TSIG kullanır. Bu, komut satırında -g belirtmekle eşdeğerdir.
oldgsstsig Güncellemeyi imzalamak için GSS-TSIG'nin Windows 2000 sürümünü kullanır. Bu, komut satırında -o belirtmekle eşdeğerdir.
realm {[realm_name]} GSS-TSIG kullanırken, krb5.conf içindeki varsayılan realm yerine realm_name kullanır. Herhangi bir realm belirtilmezse, kaydedilen realm temizlenir.
[prereq] nxdomain {domain-name} domain-name adıyla herhangi bir türde hiçbir kaynak kaydının bulunmamasını gerektirir.
[prereq] yxdomain {domain-name} domain-name adının mevcut olmasını (herhangi bir türde en az bir kaynak kaydına sahip olmasını) gerektirir.
[prereq] nxrrset {domain-name} [class] {type} Belirtilen type, class ve domain-name bilgilerine sahip hiçbir kaynak kaydının bulunmamasını gerektirir. class belirtilmezse, IN (internet) varsayılır.
[prereq] yxrrset {domain-name} [class] {type} Belirtilen type, class ve domain-name bilgilerine sahip bir kaynak kaydının bulunmasını gerektirir. class belirtilmezse, IN (internet) varsayılır.
[prereq] yxrrset {domain-name} [class] {type} {data...} Ortak bir type, class ve domain-name paylaşan bu formdaki her bir önkoşul kümesinden gelen veriler, bir kaynak kayıtları (RR) kümesi oluşturmak üzere birleştirilir. Bu kaynak kayıtları kümesi, bölgede belirtilen type, class ve domain-name konumunda mevcut olan kaynak kayıtları kümesiyle tam olarak eşleşmelidir. Veriler, kaynak kaydının RDATA'sının standart metin gösterimiyle yazılır.
[update] del[ete] {domain-name} [ttl] [class] [type [data...]] domain-name adındaki tüm kaynak kayıtlarını siler. type ve data belirtilirse, yalnızca eşleşen kaynak kayıtları kaldırılacaktır. class sağlanmazsa internet sınıfı varsayılır. ttl yoksayılır ve yalnızca uyumluluk için izin verilir.
[update] add {domain-name} {ttl} [class] {type} {data...} Belirtilen ttl, class ve data ile yeni bir kaynak kaydı ekler.
show Son gönderimden (send) bu yana belirtilen tüm önkoşulları ve güncellemeleri içeren mevcut iletiyi görüntüler.
send Mevcut iletiyi gönderir. Bu, boş bir satır girmekle eşdeğerdir.
answer Yanıtı görüntüler.
debug Hata ayıklamayı açar.
version Sürüm numarasını yazdırır.
help Komutların listesini yazdırır.
Noktalı virgülle başlayan satırlar yorumdur ve yoksayılır.
Örnekler
Aşağıdaki örnekler, nsupdate aracının example.com bölgesinden kaynak kayıtlarını eklemek ve
silmek için nasıl kullanılabileceğini göstermektedir. Her örnekteki girdinin, komut grubunun
example.com için birincil alan adı sunucusuna tek bir dinamik güncelleme isteği olarak
gönderilmesi amacıyla sonda boş bir satır içerdiğine dikkat edin.
# nsupdate
> update delete oldhost.example.com A
> update add newhost.example.com 86400 A 172.16.1.1
> send
oldhost.example.com için tüm A kayıtları silinir. Ve newhost.example.com için IP adresi
172.16.1.1 olan bir A kaydı eklenir. Yeni eklenen kaydın geçerlilik süresi (TTL) 1 gündür
(86400 saniye).
# nsupdate
> prereq nxdomain nickname.example.com
> update add nickname.example.com 86400 CNAME somehost.example.com
> send
Önkoşul koşulu, alan adı sunucusunun nickname.example.com için herhangi bir türde kaynak kaydı
bulunmadığını kontrol etmesini sağlar. Varsa, güncelleme isteği başarısız olur. Bu ad mevcut
değilse, onun için bir CNAME eklenir. Bu, CNAME eklendiğinde, RFC 1034'teki bir adın CNAME
olarak mevcut olması durumunda başka herhangi bir kayıt türü olarak bulunmaması gerektiğine dair
köklü kuralla çakışmamasını sağlar. (Bu kural, RFC 2535'te DNSSEC için güncellenerek CNAME'lerin
RRSIG, DNSKEY ve NSEC kayıtlarına sahip olmasına izin verilmiştir.)
Dosyalar
/etc/resolv.conf varsayılan alan adı sunucusunu tanımlamak için kullanılır
/var/run/named/session.key yalnızca yerel modda kullanım için varsayılan TSIG anahtarını ayarlar
K{name}.+157.+{random}.key dnssec-keygen(8) tarafından oluşturulan HMAC-MD5 anahtarının base-64 kodlaması.
K{name}.+157.+{random}.private dnssec-keygen(8) tarafından oluşturulan HMAC-MD5 anahtarının base-64 kodlaması.
Ayrıca Bakınız
RFC 2136, RFC 3007, RFC 2104, RFC 2845, RFC 1034, RFC 2535, RFC 2931, named(8), ddns-confgen(8), dnssec-keygen(8).
Hatalar (Bugs)
TSIG anahtarı gereksiz bir şekilde iki ayrı dosyada saklanır. Bu, nsupdate aracının şifreleme işlemleri için DST kütüphanesini kullanmasının bir sonucudur ve gelecekteki sürümlerde değişebilir.
Yazar
Internet Systems Consortium, Inc.
Telif Hakkı
Copyright © 2004-2012, 2014-2016 Internet Systems Consortium, Inc. ("ISC") Copyright © 2000-2003 Internet Software Consortium.
ISC 2014-04-18 NSUPDATE(1)