• No results found

Customer Satisfaction, Commitment, and Retention

Chapter 4: Findings and Discussion

4.1.6. Characteristics of the Service Influencing COSE 1 Customer Segment

4.1.7.1. Customer Satisfaction, Commitment, and Retention

0000 00 12 3f f8 96 b4 00 13 72 4e 74 4a 08 00 45 00 ..?...rNtJ..E. 0010 02 99 44 eb 00 00 40 11 76 3f c8 22 16 0f c8 22 [email protected]?.’...’ 0020 16 d6 14 e9 80 0c 02 85 75 ff cc 72 85 03 00 01 ...u..r.... 0030 00 00 00 06 00 01 01 62 04 74 65 73 74 00 00 01 ...b.test... 0040 00 01 c0 0e 00 06 00 01 00 00 04 b0 00 29 02 6e ...).n 0050 73 c0 0e 07 67 6c 6f 7a 61 6e 6f 03 6e 69 63 02 s...glozano.nic. 0060 6d 78 00 00 00 00 01 00 00 0e 10 00 00 03 84 00 mx... 0070 09 3a 80 00 00 04 b0 c0 0e 00 2e 00 01 00 00 04 .:... 0080 b0 00 98 00 06 05 01 00 01 51 80 45 cc a1 c2 45 ...Q.E...E 0090 a5 14 c2 7e 92 04 74 65 73 74 00 3b 3e d9 3b d1 ...~..test.;>.;. 00a0 23 83 fd 8d 38 e0 12 7c ec 63 44 fe f7 01 81 bc #...8..|.cD...

00b0 46 be 98 fd 35 e4 76 d4 1f 06 a6 5f 73 dd 16 59 F...5.v.... s..Y 00c0 29 a8 ad b4 66 2f e3 e8 d6 f1 42 17 26 79 94 10 )...f/....B.&y.. 00d0 78 3f ce 3d 80 cc 9c eb 1c e3 27 1c 25 65 d5 5e x?.=...’. %e.^ 00e0 84 66 e1 2a d6 1e 7e 4b b9 91 35 57 88 3b 5d eb .f.*..~K..5W.;]. 00f0 27 82 64 0b e2 b5 90 78 d8 98 8f c3 29 4e a1 f4 ’.d....x....)N.. 0100 ad 3c 45 92 9e 00 fb 5c 0a 75 f7 ec 3b 22 d5 3d .<E....\.u..;’.= 0110 da 25 88 ed 71 1d d1 f2 85 5d 78 c0 6b 00 2f 00 . %..q....]x.k./. 0120 01 00 00 04 b0 00 11 01 61 04 74 65 73 74 00 00 ...a.test.. 0130 07 22 00 00 00 00 03 80 c0 ff 00 2e 00 01 00 00 .’... 0140 04 b0 00 98 00 2f 05 01 00 00 04 b0 45 cc a1 c2 .../...E... 0150 45 a5 14 c2 7e 92 04 74 65 73 74 00 a0 8c 12 1f E...~..test... 0160 16 89 94 3b 65 83 14 b2 bb bc 47 4a 22 04 1e 07 ...;e...GJ’... 0170 68 ba 4c 0c 56 db 9d 0d 3d 53 c4 dd 16 05 50 16 h.L.V...=S....P. 0180 cc 5a 52 c7 0e 54 d7 f6 b6 9a d5 17 30 7a 37 e7 .ZR..T...0z7. 0190 67 03 d0 35 2a 39 94 fd 98 b4 55 a8 93 fe 22 03 g..5*9....U...’. 01a0 85 d1 7c d2 9f 6e 1a 58 67 13 42 ec 76 00 78 61 ..|..n.Xg.B.v.xa 01b0 9b 8b 6b 1b 85 f9 fc ae 2b d9 4c ad 13 97 26 2a ..k...+.L...&* 01c0 d2 30 d2 1c 05 b6 fd 35 38 d9 63 08 6b 6f 39 1a .0...58.c.ko9. 01d0 b2 ae 4e 8b 02 ce eb 24 7c 48 db a1 c0 fd 00 2f ..N....$|H.../ 01e0 00 01 00 00 04 b0 00 10 01 63 04 74 65 73 74 00 ...c.test. 01f0 00 06 40 00 00 00 00 03 c0 fd 00 2e 00 01 00 00 ..@... 0200 04 b0 00 98 00 2f 05 02 00 00 04 b0 45 cc a1 c2 .../...E... 0210 45 a5 14 c2 7e 92 04 74 65 73 74 00 b4 ce 4e 97 E...~..test...N. 0220 e0 5c 08 20 a4 68 7d cf d2 29 ed 52 81 28 bd ef .\. .h}..).R.(.. 0230 17 bb 20 88 fb ca 1e eb ff 3d b1 da b2 79 1d ad .. ...=...y.. 0240 83 a0 41 f3 95 f0 94 4f df 6e 02 45 88 dd 51 67 ..A....O.n.E..Qg 0250 d3 20 a8 7f 64 df fa 87 b7 8e 74 bf 22 a2 81 31 . ..d...t.’..1 0260 23 42 d0 c8 f5 64 55 1e 1f 9b 1e b2 35 87 a3 56 #B...dU...5..V 0270 ef d7 7d fa f4 08 d7 85 92 f5 ba 1a 0a 76 70 6b ..}...vpk 0280 be ed 23 e7 f3 92 fd a6 9f 62 79 0c ab eb 1d 52 ..#...by....R 0290 71 01 72 eb 96 39 c7 b5 f5 b4 e4 2f 00 00 29 10 q.r..9.../..). 02a0 00 00 00 80 00 00 00 ...

Ap´endice D

Librer´ıa LDNS

La librer´ıa LDNS contienen rutinas espec´ıficas para el procesamiento de paquetes de DNS. Dichas librer´ıas est´an escritas en lenguaje C y dentro de las principales rutinas desta- can las que permiten crear paquetes de pregunta recibiendo como argumento el nombre de dominio solicitado, igualmente existen funciones que permiten ejecutar un proceso resolver para enviar y recibir solicitudes de un servidor de DNS. Las librer´ıas de LDNS tambi´en est´an dise˜nadas para soportar DNSSEC, por lo se apoyan en las librer´ıas de OpenSSL para las funciones de firmado y verificaci´on de paquetes. Otras funciones utilizadas para este trabajo incluyen las que permite modificar informaci´on de los paquetes y realizar una inspecci´on de los mismos para buscar registros espec´ıficos.

La documentaci´on est´a disponible en l´ınea en la p´agina del proyectoldns: http://www.nlnetlabs.nl/ldns/doc/globals.html

A continuaci´on se enuncian las rutinas utilizadas para este proyecto as´ı como una breve descripci´on de cada una de ellas:

ldns status ldns resolver new frm file(ldns resolver** r, const char* filename) Configura un resolver utilizando un archivo de configuraci´on. El apuntador al nombre del archivo puede ser nulo y en ese caso se utiliza el archivo/etc/resolv.conf. void ldns resolver set port(ldns resolver* r, uint16 t p)

Asigna el puerto que elresolver debe de utilizar.

ldns status ldns key new frm fp(ldns key** k, FILE* fp)

Crea una nueva llave privada bas´andose en el contenido del archivo apuntado porfp. ldns status ldns wire2pkt(ldns pkt** packet, const uint8 t* data, size t len) Convierte la informaci´on en el arreglo de bytes de tipouint8 t al formato de paquete de DNS.

ldns status ldns resolver send pkt(ldns pkt** answer, const ldns resolver* r, const ldns pkt* query pkt)

Env´ıa el paquete dado al servidor de nombres indicado por elresolver. ldns pkt rcode ldns pkt get rcode(const ldns pkt* p)

ldns rr list* ldns pkt question(const ldns pkt* p) Devuelve la secci´on de pregunta del paquete de DNS. size t ldns rr list rr count(const ldns rr list* rr list)

Regresa el n´umero de registros existentes en la estructura ldns rr list dada. ldns rr* ldns rr list rr(const ldns rr list* rr list, size t nr)

Regresa un registro espec´ıfico contenido en una estructuraldns rr list dada. ldns rdf* ldns rr owner(const ldns rr* rr)

Regresa elOwner Name de un registro de DNS. void ldns dname2canonical(const ldns rdf* rdf )

Convierte un nombre de dominio a su forma can´onica (en min´usculas). char* ldns rdf2str(const ldns rdf* rdf )

Convierte la informaci´on contenida en la secci´on RDATA de un registro en una cadena de caracteres.

ldns rr list* ldns pkt authority(const ldns pkt* p)Devuelve la secci´on autorita- tiva de un paquete de DNS.

ldns rr type ldns rr get type(const ldns rr* rr) Obtiene el valor de tipo para un registro de DNS.

void ldns resolver set dnssec(ldns resolver* r, bool b)

Configura el resolver para que utilice DNSSEC en sus paquetes de pregunta.

ldns pkt* ldns resolver query(const ldns resolver* r, const ldns rdf* name, ldns rr type type, ldns rr class class, uint16 t flags)

Env´ıa un paquete de pregunta a un servidor de nombres.

int ldns rr compare(const ldns rr* rr1, const ldns rr* rr2)

Compara el contenido de dos registros de DNS bas´andose en su orden can´onico. bool ldns rr list push rr list(ldns rr list* rr list, const ldns rr list* push list) Concatena una lista de registros con otra.

void ldns pkt set section count(ldns pkt* p, ldns pkt section s, uint16 t x) Modifica el n´umero de registros por secci´on ubicado en la cabecera del paquete de DNS de acuerdo al valor dex.

void ldns pkt set authority(ldns pkt* p, ldns rr list* rr)

Modifica la secci´on autoritativa de un paquete de DNS sustituyendo los registros por los contenidos en la lista de registros proporcionada.

int ldns dname compare(const ldns rdf* dname1, const ldns rdf* dname2) Compara dos nombres de dominio de acuerdo a su orden can´onico.

ldns rdf* ldns dname new frm str(const char* str)

Crea una estructura de tipo ldns rdf que representa un nombre de dominio a partir de la cadena de caracteres proporcionada.

ldns rdf* ldns rr rdf(const ldns rr* rr, size t nr)

Devuelve el elemento de la secci´on RDATA referido por el n´umeronr. ldns status ldns str2rdf dname(ldns rdf** rd, const char* str)

Convierte una cadena de caracteres a una estructura de tipoldns rdf que representa un nombre de dominio.

ldns rdf* ldns rr set rdf(ldns rr* rr, const ldns rdf* f, size t position) Coloca una estructura de tipoldns rdf en la secci´on de RDATA del registro apuntado porrr.

void ldns rr set owner(ldns rr* rr, ldns rdf* owner)

Modifica elOwner Name de un registro de DNS con el contenido de la restructura de tipoldns rdf que se le asigna como par´ametro.

ldns key list* ldns key list new()

Crea una nueva lista encadenada que contiene llaves utilizadas para firma registros. ldns rdf* ldns rr rrsig signame(const ldns rr* r)

Devuelve el nombre de la entidad que firma tal cual como aparece en el registro RRSIG proporcionado como par´ametro.

void ldns key set pubkey owner(ldns key* k, ldns rdf* r) Asigna la identidad del due˜no de la llave p´ublica a la llave referida. void ldns key set inception(ldns key* k, uint32 t i)

Asigna la fecha de incepci´on para las firmas realizadas con la llave referida. uint32 t ldns rdf2native int32(const ldns rdf* rd)

Devuelve la conversi´on a entero de 32 bits del dato contenido en la estructura de tipo ldns rdf referencia.

void ldns key set expiration(ldns key* k, uint32 t i)

Asigna la fecha de expiraci´on para las firmas realizadas con la llave referida. bool ldns key list push key(ldns key list* key list, ldns key* key) Inserta una llave a una lista de llaves referenciada.

ldns rr list* ldns rr list new()

Crea una nueva lista que contendr´a registros de DNS.

bool ldns rr list push rr(ldns rr list* rr list, const ldns rr* rr) Inserta un registro de datos en una lista de registros dada.

ldns rr list* ldns sign public(ldns rr list* rrset, ldns key list* keys)

Firma el contenido de la lista apuntada porrrsetutilizando las llaves contenidas en la listakeys.

ldns status ldns pkt2wire(uint8 t** dest, const ldns pkt* p, size t* size) Convierte el paquete de DNS a su representaci´on en arreglo de caracteres (bytes). void ldns pkt free(ldns pkt* packet)

Libera de memoria el contenido de la estructura ldns pkt free que hace referencia a un paquete de DNS.

Ap´endice E

Registros NSEC Generados por el Servidor

Proxy

A continuaci´on se presentan los registros NSEC generados por el servidorProxy durante las pruebas del proceso iterativo. El servidor Proxy se ejecut´o en la computadora con IP 200.34.22.17 y el servidor autoritativo en la computadora 200.34.22.15. Las peticiones se realizaron desde la computadora con IP 200.34.22.16 y estaba dirigidas al servidorProxy. La zona del servidor autorativo es la zona test.presentada en el ap´endice A.

Pregunta:dig @200.34.22.17 b.test +dnssec test. 1200 IN NSEC 0.test. NS SOA RRSIG NSEC DNSKEY

azzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.test. 1200 IN NSEC b0.test. A RRSIG NSEC

Pregunta:dig @200.34.22.17 www.b.test +dnssec test. 1200 IN NSEC 0.test. NS SOA RRSIG NSEC DNSKEY

b.test. 1200 IN NSEC b0.test. A RRSIG NSEC

Pregunta:dig @200.34.22.17 noexiste.test +dnssec test. 1200 IN NSEC 0.test. NS SOA RRSIG NSEC DNSKEY

noexistdzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.test. 1200 IN NSEC noexiste0.test. A RRSIG NSEC

Pregunta:dig @200.34.22.17 www.noexiste.test +dnssec test. 1200 IN NSEC 0.test. NS SOA RRSIG NSEC DNSKEY

noexiste.test. 1200 IN NSEC noexiste0.test. A RRSIG NSEC Cuadro E.1: Registros NSEC generados por el servidorProxy

Pregunta:dig @200.34.22.17 a.test mx +dnssec a.test. 1200 IN NSEC a0.test. A RRSIG NSEC

Pregunta:dig @200.34.22.17 noexiste.a.test +dnssec test. 1200 IN NSEC 0.test. NS SOA RRSIG NSEC DNSKEY

a.test. 1200 IN NSEC a0.test. A RRSIG NSEC

Pregunta:dig @200.34.22.17 0.test +dnssec test. 1200 IN NSEC 0.test. NS SOA RRSIG NSEC DNSKEY

\)zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.test. 1200 IN NSEC 00.test. NS SOA RRSIG NSEC DNSKEY

Pregunta:dig @200.34.22.17 9.test +dnssec test. 1200 IN NSEC 0.test. NS SOA RRSIG NSEC DNSKEY

8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.test. 1200 IN NSEC 90.test. NS SOA RRSIG NSEC DNSKEY

Pregunta:dig @200.34.22.17 www.0.test +dnssec test. 1200 IN NSEC 0.test. NS SOA RRSIG NSEC DNSKEY

0.test. 1200 IN NSEC 00.test. NS SOA RRSIG NSEC DNSKEY

Ap´endice F

Archivos de Configuraci´on para Servidor Recursivo

El siguiente ap´endice presenta el contenido del archivonamed.confutilizado para confi- gurar el servidor recursivo para el proceso del mismo nombre y tambi´en se presenta el archivo root.hint para indicarle a dicho servidor donde se localiza el servidor ra´ız.

F.1.

Archivo

named.conf

options {

;IP donde el servidor escucha peticiones listen-on { 200.34.22.56; };

;Directorio donde se ubica el archivo de zona directory ’/named/zones’;

;Se habilita DNSSEC dnssec-enable yes;

;Se configura el servidor como recursivo recursion yes;

};

logging {

channel dnssec log {

file ’dnssec.log’ size 20m;

;Se habilita la impresi´on de bit´acoras print-time yes;

print-category yes; print-severity yes; severity debug 3; };

category dnssec{dnssec log;}; };

trusted-keys {

’.’ 257 3 5 ’AwEAAejnLLnjMVntHQbB23SMnN+2uoO8DpaKIZGKbzOxbYHniIx1Q1YF wstprpcGTCkceah1MduEXUoXfd9ySPZt6h9fQiPcEQaRekTwQhZW+U88HJ20H4tp6v/Cj

4vguky/enADwSVeWpFepfl0hmbnhEMM5vgP/2YFHPYS+lfTUxCqP2GxDg+Y2Y6XMFYtKE nGIRGAd4juGt9LKnn5jw5aelvRy0FfN8VR9SyU1fN775nWSzEYfsnvFRIN2Oj3Wcy9rDP IF7nF1Jt6ckoP3kxROkTRFYpYCvWCgXcDgZe+fgm7ppSYG/3BFIP8126WZAlAicS+rwwK jAKcnTJa1KDH8FU=’;}; zone ’.’ { type hint;

;El archivo ’root.hint’ contiene informaci´on sobre la ra´ız file ’root.hint’;

};