---
# System prepended metadata

title: Rush
tags: [dns]

---

---
tags: dns
title: Rush
---
[TOC]


<span style="color: orange">  </span>

# <span style="color: red">  Spécifications </span>
## <span style="color: green"> Générales </span>
Gère IPv4 et IPv6
Peut répondre en TCP et UDP -> en TCP chaque message est précédé de sa taille sur 2 octets
:::warning
Attention aux problèmes de MTU et de troncation ! 
:::
## <span style="color: green">Fonctionnement DNS</span>
### <span style="color: orange"> Rappel</span>
### <span style="color: orange">Enregistrements</span>
#### A ou AAAA
nom, type, TTL, adresse
```
www.example.com;AAAA;7200;2001:DB8::1
ns0.example.com;A;86400;192.0.2.3
ns1.example.com;A;7200;192.0.2.4
```
#### NS
nom, type, TTL, nom du serveur

```
example.com;NS;86400;ns0.example.com.
example.com;NS;86400;ns1.example.com.
sub.zone.example.com;NS;86400;ns1.sub.zone.example.com.
sub.zone.example.com;NS;;86400ns2.sub.zone.example.com.
```
#### SOA
nom, type, TTL, nom du serveur, adresse mail, serial (ID), refresh, retry, expire, TTL (cache)

```
example.com;SOA;3600;ns0.example.com. postmaster.example.com. 2020092501 86400 3600 604800 3600
```
#### TXT
nom, type, TTL, value

```
example.com;TXT;10;Hello there\; how are you?
ent.sub.example.com;TXT;86400;broken ENT was here !
```
#### CNAME
nom, type, TTL, rdata

```
www-dev.example.com;CNAME;7200;www.example.com.
```
#### Le champ RCODE
Valeurs possibles :
* 0 : Pas d'erreur
* 1 : Form Error : impossible de parser la requête
* 2 : Server Failure
* 3 : NXDomain : le domaine demandé n'existe pas
* 4 : NotImp : la fonctionalité demandée n'existe pas
* 5 : Refused : client non autorisé ou zone inconnue

### <span style="color: orange">Enregistrement</span>
Le serveur doit gérer les enregistrement **SOA**, **A**, **AAAA**,**NS**, **CNAME**, et **TXT** tous dans la classe **IN**

## <span style="color: green"> Bon à savoir </span>
Les enregistrements additionels ne nous intéressent pas
### <span style="color: orange">Valeurs constantes dans l'en-tête DNS</span>
**opcode** = 0
**AA** = 0
**RD** -> à ignorer
**RA** = 0
**Z** = 0
