kapetr píše:Díky cz-helper za vysvětlení - o dvouúrovňovosti preferencí služeb jsem ani nevěděl. Jen mě není jasné (jak jste myslel "to s 200 se vezme jen pri dotazu na ten konkrétni typ "), nač by bylo uvádět 2 záznamy s rozdílnou 1. preferencí (to 100 x 200), pokud by dle nějaké normy (?) musel klient stejně použít jen to s (100).
Nicméně je-li to jak říkáte, tak by bylo lepší (100-50, 100-50/1) než (100-50, 200-50)
Trochu jsem to natukl / pripustil v tom pozdejsim prispevku (
http://forum.odorik.cz/viewtopic.php?f= ... 7074#p7066), kdy jsem zminil e-mailovy system. Zaroven jsem tam i nadhodil moznosti nastaveni, aby bylo sjednoceno poradi a rozlisily se sluzby "pouze" preferenci. Zacnu se sjednocenim terminologie. Abychom mluvili o stejnem "cisle", take prvni z nich nazyvejme poradi (order) a druhe preferenci (preference) - vychazi z definice NAPTR (
http://www.ietf.org/rfc/rfc2915.txt).
Tu vyssi hodnotu vezme pouze, pokud se mu nepodari navazat spojeni na hodnotach ziskanych ze zaznamu s nizsim poradim. Pouziva se to prakticky i u MX zaznamu, ktere slouzi pro e-mailovou komunikaci. Takze pokud bych mel zaznamy napr.:
Kód: Vybrat vše
domena.tld IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.domena.tld.
domena.tld IN NAPTR 200 50 "s" "SIP+D2U" "" _sip._udp.zaloha.domena.tld.
V tomto pripade, pokud bude mozne navazat komunikaci na adrese a porte, ktera bude odpovidat srv zaznamu pro _sip._udp.domena.tld., nemel by se druhy zaznam vubec pouzit... Pokud by se ale stalo, ze z jakehokoli duvodu by se nepovedlo navazat spojeni (napr. udrzba serveru, technicka zavada...), v tom pripade muze klient pokracovat na dalsi zaznam s vyssim poradim, tedy _sip._udp.zaloha.domena.tld. .
Kód: Vybrat vše
domena.tld IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.domena.tld.
domena.tld IN NAPTR 100 51 "s" "SIP+D2T" "" _sip._tcp.domena.tld.
domena.tld IN NAPTR 200 50 "s" "SIP+D2U" "" _sip._udp.zaloha.domena.tld.
V tomto pripade by se mela navazat komunikace nejdrive skrze _sip._udp.domena.tld. pripadne _sip._tcp.domena.tld.. Nezadari-li se, mela by se zkusit dalsi moznost na stejnem poradi (100) a pripadne az pak zkouset dalsi poradi, tedy az po vycerpani udp a tcp na _sip.x.domena.tld. se teprve muze uvazovat ten zaznam ...zaloha...
Samozrejme, pokud by klient podporoval pouze udp, tak by se zaznam na tcp mel zcela ignoroval, jako by nebyl definovan.
No a k tomu "dotazu na konkretni typ" jsem mel na mysli tuto situaci:
Kód: Vybrat vše
domena.tld IN NAPTR 100 50 "s" "SIP+D2T" "" _sip._tcp.domena.tld.
domena.tld IN NAPTR 200 50 "s" "SIP+D2U" "" _sip._udp.domena.tld.
Rekneme, ze klient koretkne resi poradi i preferenci (tedy staci nam poradi
) a umi jen udp. Jestlize vznese dotaz do DNS, tak by mel vzit primo ten zaznam s poradim 200, nebot pro poradi 100 neni zadny "vyhovujici" zaznam, tedy zadny s UDP, ktery umi. Ten "konkretni" zaznam je v tom pripade dotaz na UDP.
Tady je ovsem potreba, aby neskoncil s tim, ze na 100 neni nic, cemu rozumi. Coz by spravne nemel, ale... Radeji je lepsi mit oboje na stejnem poradi a resit jen preference, pak si klient muze vybrat i "nerespektovat". Definice primo rika, ze poradi MUSI respektovat, ale preference by MEL respektovat => pripousti se, ze preference muze prebit svojim prednastavenim.
kapetr píše:Ještě k tomu záznamu pro sip.odorik.cz. Myslel jsem z uvedených důvodů, že záznam by tam (byť sám na sebe) měl být, aby to fungovalo ať v klientovi dám jako server odorik.cz i sip.odorik.cz. Pokud bych totiž dal rovnou sip.odorik.cz, tak se klient nezeptá na NAPTR/SRV nadřízené domény odorik.cz, ale zeptá se na recordy toho udaného sip.odorik.cz. A pokud je nemá, tak je to v pytli - o TCP se z DNS klient nedoví.
Takto postaveno je to prakticky presne receno. Bez NAPTR/SRV zaznamu pro sip.odorik.cz skutecne nebude zkoumat, jestli existuje odorik.cz, ale rovnou se pokusi najit alespon A nebo AAAA zaznam. V pripade sip.odorik.cz bude uspesny alespon pro A. Pokusi se navazat spojeni na 5060 UDP.
Pokud chceme pripustit tcp spojeni, bylo by asi vhodne tyto zaznamy take definovat. Je mozne odkazovat vsechny NAPTR zaznamy na stejne SRV zaznamy.
Kód: Vybrat vše
odorik.cz IN NAPTR 100 50 "s" "SIP+D2T" "" _sip._tcp.odorik.cz.
odorik.cz IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.odorik.cz.
sip.odorik.cz IN NAPTR 100 50 "s" "SIP+D2T" "" _sip._tcp.odorik.cz.
sip.odorik.cz IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.odorik.cz.
pripadne
Kód: Vybrat vše
odorik.cz IN NAPTR 100 50 "s" "SIP+D2T" "" _sip._tcp.sip.odorik.cz.
odorik.cz IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.sip.odorik.cz.
sip.odorik.cz IN NAPTR 100 50 "s" "SIP+D2T" "" _sip._tcp.sip.odorik.cz.
sip.odorik.cz IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.sip.odorik.cz.
at tak nebo tak je samozrejme potreba definovat prislusny SRV zaznam. Prvni varianta vychazi z jiz existujicich SRV zaznamu.
Samozrejme je mozne definovat kazdy SRV zaznam extra:
Kód: Vybrat vše
odorik.cz IN NAPTR 100 50 "s" "SIP+D2T" "" _sip._tcp.odorik.cz.
odorik.cz IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.odorik.cz.
sip.odorik.cz IN NAPTR 100 50 "s" "SIP+D2T" "" _sip._tcp.sip.odorik.cz.
sip.odorik.cz IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.sip.odorik.cz.
Pro doplneni SRV zaznam je definovan v
http://www.ietf.org/rfc/rfc2782.txt. Cisla jsou zde definovany jako priorita (priority) a (relativni) vaha (weight). Prvni z nich ma obdobny vyznam jako poradi u NAPTR. Druhe cislo je "relativni" vaha. Pokud by byly napr. 2 zaznamy se stejnou prioritou, pricemz prvni by mel vahu 60 a druhy 40, mel by byt prvni vyuzivan v cca 60% dotazu (6/10) a druhy ve 40% dotazu (4/10).
takze by to mohlo byt
Kód: Vybrat vše
_sip._udp.odorik.cz. IN SRV 0 0 5060 sip.odorik.cz.
_sip._tcp.odorik.cz. IN SRV 0 0 5060 sip.odorik.cz.
prip.
Kód: Vybrat vše
_sip._udp.odorik.cz. IN SRV 0 0 5060 sip.odorik.cz.
_sip._tcp.odorik.cz. IN SRV 0 0 5060 sip.odorik.cz.
_sip._udp.sip.odorik.cz. IN SRV 0 0 5060 sip.odorik.cz.
_sip._tcp.sip.odorik.cz. IN SRV 0 0 5060 sip.odorik.cz.
Soucasna priorita a vaha je take v pohode - priorita 4 a vaha 10.