Objectifs de certification

CCNA 200-301

  • 1.5 Comparer TCP à UDP

  • 1.6 Configurer et vérifier l’adressage et le sous-réseautage (subnetting) IPv4

  • 1.10 Vérifier les paramètres IP des OS clients (Windows, Mac OS, Linux)

  • 4.3 Expliquer le rôle de DHCP et de DNS au sein du réseau

  • 4.1 Configurer et vérifier inside source NAT (static et pools)


Lab vérifications et analyses TCP/IP

1. Objectifs

Cette activité consiste à déployer une topologie LAN simple connecté à l’Internet avec la configuration d’un routeur en Cisco IOS. C’est un aussi un “Lab de démarrage”. L’objectif principal est d’observer du trafic ICMP, TCP et UDP et de réaliser des tâches de diagnostic fondamental.

1.1. Préalable

Au préalable, on ira lire les documents qui exposent la nature de l’IOS Cisco, celui qui permet de mettre en place un environnement d’exercice avec GNS3, celui qui expose les méthodes de connexion à un routeur Cisco et enfin, une initiation à l’environnement en ligne de commande Cisco IOS.

2. Construire la topologie

Topologie CCNALab01 : simple LAN connecté à l'Internet

2.1. Composants

ComposantNomImageRôle
Routeurgatewayvios-adventerprisek9-m.vmdk.SPA.156-2.TPasserelle IPv4 entre l’Internet et le LAN avec services DHCP, DHCPv6, SLAAC, DNS Forwarder
NuageInternetIntégré au logicielSimule un Internet IPv4
CommutateurSW0Intégré au logicielCommutateur du LAN
OrdinateurPC1centos7.qcow2PC client TCP/IP dans le LAN
OrdinateurPC2centos7.qcow2PC client TCP/IP dans le LAN

2.2. Connexions

Périphérique 1InterfaceInterfacePériphérique 2Réseau partagé
Internetnat0G0/1--
gatewayG0/1nat0InternetWAN
gatewayG0/0e0SW0LAN
SW0e0G0/0GatewayLAN
SW0e1eth0PC1LAN
SW0e2eth0PC2LAN

2.3. Plan d’adressage

Une seule interface dispose de paramètres IPv4 et IPv6 statiques :

  • G0/0 du routeur “gateway” :
  • Adresse IPv4 privée : 192.168.1.254 255.255.255.0
  • Adresse IPv6 Link-Local : fe80::1/64
  • Adresse IPv6 privée :fd00:192:168:1::/64

Un service DHCP distribue les adresses dans cette plage de 192.168.1.1 à 192.168.1.199.

Le routeur s’annonce en DHCP comme passerelle et comme résolveur de noms DNS.

Le routeur remplit les tâches NAT qui interconnecte le réseau IPv4 privé 192.168.1.0/24 à l’Internet (public).

2.4. Configuration du routeur

Pour appliquer la configuration suivante, veuillez :

  • Coller la configuration suivante dans la mémoire tampon
  • Vous connecter à la console physique avec un logiciel de terminal.
  • Copier le texte à partir du mode privilège avec l’invite router#

On remarque une configuration très sémantique.

configure terminal
!
hostname gateway
!
interface GigabitEthernet0/0
 description LAN interface
 ip address 192.168.1.254 255.255.255.0
 ip nat inside
 no shutdown
 !
interface GigabitEthernet0/1
 description WAN interface
 ip address dhcp
 ip nat outside
 no shutdown
!
ip access-list standard LAN
 permit 192.168.1.0 0.0.0.255
!
ip nat inside source list LAN interface GigabitEthernet0/1 overload
!
ip domain lookup
ip name-server 8.8.8.8
ip dns server
!
ip dhcp pool DHCP-LAN
 network 192.168.1.0 255.255.255.0
 default-router 192.168.1.254
 dns-server 192.168.1.254
!
ip dhcp excluded-address 192.168.1.200 192.168.1.254
!
ipv6 unicast-routing
!
ipv6 dhcp pool DHCPv6-LAN
 address prefix FD00:192:168:1::/64
 dns-server FD00:192:168:1::1
!
interface GigabitEthernet0/0
 ipv6 address FE80::1 link-local
 ipv6 address FD00:192:168:1::1/64
 ipv6 nd managed-config-flag
 ipv6 nd other-config-flag
 ipv6 dhcp server DHCPv6-LAN
!
interface GigabitEthernet0/1
 description WAN interface
 ipv6 address autoconfig
 ipv6 nd ra suppress
!
end
!
wr

3. Vérifications à partir des clients TCP/IP

3.1. Paramètres IPv4

Visualisation de paramètres IPv4 :

[root@pc1 ~]# ip -4 add show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.1.2/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 83942sec preferred_lft 83942sec

Table de routage IPv4 :

[root@pc1 ~]# ip route
default via 192.168.1.254 dev eth0  proto static  metric 100
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.2  metric 100

Résolveurs de noms :

[root@pc1 ~]# cat /etc/resolv.conf

# Generated by NetworkManager
nameserver 192.168.1.254
nameserver fd00:192:168:1::1

Test de connectivité locale (passerelle) :

[root@pc1 ~]# ping -c 1 192.168.1.254
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
64 bytes from 192.168.1.254: icmp_seq=1 ttl=255 time=1.38 ms

--- 192.168.1.254 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.389/1.389/1.389/0.000 ms

Test de connectivité globale :

[root@pc1 ~]# ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=3.21 ms

--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.217/3.217/3.217/0.000 ms

Test de connectivité globale avec résolution de nom :

[root@pc1 ~]# ping -c 1 www.google.com
PING www.google.com (216.58.213.164) 56(84) bytes of data.
64 bytes from www.google.com (216.58.213.164): icmp_seq=1 ttl=52 time=2.24 ms

--- www.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.247/2.247/2.247/0.000 ms

Test de résolution de noms locale :

user@ubuntu1604:~$ dig www.google.com
[root@pc1 ~]# dig www.google.com
; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39810
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.com.			IN	A

;; ANSWER SECTION:
www.google.com.		267	IN	A	216.58.213.164

;; Query time: 17 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: Mon Jun 19 18:07:14 CEST 2017
;; MSG SIZE  rcvd: 48

Test de résolution de noms distante :

[root@pc1 ~]# dig @8.8.8.8 www.google.com
; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> @8.8.8.8 www.google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42683
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.google.com.			IN	A

;; ANSWER SECTION:
www.google.com.		299	IN	A	216.58.213.164

;; Query time: 22 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Jun 19 18:08:04 CEST 2017
;; MSG SIZE  rcvd: 59

Connectivité HTTP :

curl ipinfo.io/ip
XX.XX.XX.XX

Table ARP avec de joindre une nouvelle adresse :

[root@pc1 ~]# ip -4 neighbor
192.168.1.254 dev eth0 lladdr 00:60:0d:08:b4:00 STALE

Table ARP après avoir joint une nouvelle adresse :

[root@pc1 ~]# ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.90 ms

--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.909/2.909/2.909/0.000 ms

[[root@pc1 ~]# ip -4 neighbor
192.168.1.1 dev eth0 lladdr 00:60:0d:05:04:00 STALE
192.168.1.254 dev eth0 lladdr 00:60:0d:08:b4:00 STALE

4. Configuration manuelle d’un hôte terminal

Tâches à exécuter avec les droits du super-utilisateur (root).

Arrêt du gestionnaire réseau :

systemctl stop networking || systemctl stop NetworkManager

Définition de l’adresse IPv4 et de son masque :

ip add add dev eth0 192.168.1.1/24

Activation de l’interface :

ip link set dev eth0 up

Création d’une route par défaut :

ip route add default via 192.168.1.254

Paramètre de résolveur de noms :

echo "nameserver 192.168.1.254" >> /etc/resolv.conf

5. Analyse de trafic

  • Capture de trafic
  • Génération de trafic
  • Analyse de trafic

5.1. Trafic HTTP et DNS

Lancer une capture à partir de l’interface de PC1.

curl -i -X GET http://www.test.tf
curl -i -X HEAD http://www.test.tf

Sauvegarder la capture : https://www.cloudshark.org/captures/70eea568e03c.

5.2. Trafic TCP / UDP

Netcat est un outil libre de bas niveau qui sert à monter des tunnels TCP ou UDP. Seul, amélioré ou combiné avec des outils de chiffrement, il est une véritable boîte à outils du plombier du réseau.

On le propose ici dans un contexte client / serveur où PC1 joue le rôle de serveur TCP/UDP et PC2 joue le rôle de client TCP/UDP. L’objectif est de transmettre un dialogue texte du type “ici PC2”, “ici PC1”, “Au revoir” en UDP et en TCP.

Lancement du serveur TCP sur le port 4444 sur PC1 :

user@PC1:~$ nc -l -p 4444

Le client PC2 lance une session TCP sur le port 4444 de PC1 :

user@PC2:~$ nc 192.168.1.1 4444
ici PC2

Sur PC1, le message s’affiche et on répond :

user@PC1:~$ nc -l -p 4444
ici PC2
ici PC1

PC2 clôture la conversion :

user@PC2:~$ nc 192.168.1.1 4444
ici PC2
ici PC1
Au revoir
^C

Sauvegarder la capture : https://www.cloudshark.org/captures/f54d3f43824a.

Idem en UDP :

user@PC1:~$ nc -l -u -p 4444
user@PC2:~$ nc -u 192.168.1.1 4444

Sauvegarder la capture : https://www.cloudshark.org/captures/2c9e082671c9.