netkit lab IPv6 Neighbor Discovery (NDP)

Similar documents
netkit lab bgp: transit as Università degli Studi Roma Tre Dipartimento di Informatica e Automazione Computer Networks Research Group

Guide to TCP/IP Fourth Edition. Chapter 6: Neighbor Discovery in IPv6

IPv6 Neighbor Discovery

Juniper Netscreen Security Device. How to Enable IPv6 Page-51

ICMPv6. Internet Control Message Protocol version 6. Mario Baldi. Politecnico di Torino. (Technical University of Turin)

IPv6 ND Configuration Example

IPv6 Neighbor Discovery

Introduction to IPv6 - II

IPv6 Associated Protocols. Athanassios Liakopoulos 6DEPLOY IPv6 Training, Skopje, June 2011

Step 2. Manual configuration of global unicast and link-local addresses

IPv6 Neighbor Discovery

Table of Contents 1 IPv6 Configuration IPv6 Application Configuration 2-1

CS 356: Computer Network Architectures. Lecture 10: IP Fragmentation, ARP, and ICMP. Xiaowei Yang

2 nd SEE 6DISS Workshop Plovdiv June Host Configuration (Windows XP) Athanassios Liakopoulos

Operation Manual IPv6 H3C S3610&S5510 Series Ethernet Switches Table of Contents. Table of Contents

netkit lab bgp: transit as Università degli Studi Roma Tre Dipartimento di Informatica e Automazione Computer Networks Research Group

Configuring IPv6 for Gigabit Ethernet Interfaces

Table of Contents 1 IPv6 Configuration IPv6 Application Configuration 2-1

Ch.6 Mapping Internet Addresses to Physical Addresses (ARP)

IPv6 Neighbor Discovery

Workshop on Scientific Applications for the Internet of Things (IoT) March

IPv4 and IPv6 Commands

IPv6 Neighbor Discovery

Table of Contents 1 IPv6 Configuration IPv6 Application Configuration 2-1

Internet protocols: ICMP, ARP, DHCP

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

Central America Workshop - Guatemala City Guatemala 30 January - 1 February 07 Host Configuration (Linux)

Troubleshooting Tools

Table of Contents 1 IPv6 Basics Configuration 1-1

IPv6 Protocols and Networks Hadassah College Spring 2018 Wireless Dr. Martin Land

IPv6 Security Training Course. Exercise Booklet

LAB THREE STATIC ROUTING

IPv6. (Internet Protocol version 6)

sottotitolo Network Administration Milano, XX mese 20XX A.A. 2016/17 Federico Reghenzani, Alessandro Barenghi

FiberstoreOS IPv6 Service Configuration Guide

Contents. Ping, tracert, and system debugging commands 1 debugging 1 display debugging 2 ping 2 ping ipv6 5 tracert 7 tracert ipv6 9

ETSF05/ETSF10 Internet Protocols Network Layer Protocols

IPv6 address configuration and local operation

IPv6. IPv4 & IPv6 Header Comparison. Types of IPv6 Addresses. IPv6 Address Scope. IPv6 Header. IPv4 Header. Link-Local

IPv6 Protocol Architecture

IPv6 Source Addresses

Intro to OpenFlow Tutorial

IPv6 Client IP Address Learning

Introduction to Computer Networking Netkit lab Routing protocols: RIP and OSPF

IPv6 associated protocols

The Netwok Layer IPv4 and IPv6 Part 2

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August

Configuring IPv6 basics

Address Resolution Protocol (ARP), RFC 826

This is a sample Lab report from ECE 461 from previous years. L A B 6

Lab Using Wireshark to Examine Ethernet Frames

IPv6 Concepts. Improve router performance Simplify IP header Align to 64 bits Address hierarchy with more levels Simplify routing tables

Contents. Ping, tracert, and system debugging commands 1. debugging 1 display debugging 1 ping 2 ping ipv6 5 tracert 7 tracert ipv6 10

ISO 9001:2008. Pankaj Kumar Dir, TEC, DOT

Veryx ATTEST TM Conformance Test Suite

Switching & ARP Week 3

HP FlexFabric 5930 Switch Series

Last time. Network layer. Introduction. Virtual circuit vs. datagram details. IP: the Internet Protocol. forwarding vs. routing

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Auxiliary Protocols

HPE FlexNetwork 5510 HI Switch Series

Rocky Mountain IPv6 Summit April 9, 2008

Lab Using Wireshark to Examine Ethernet Frames

Internet Control Message Protocol (ICMP)

Homework 3 Discussion

4. Basic IP Support Protocols

IPv6 Protocol & Structure. npnog Dec, 2017 Chitwan, NEPAL

Secure Neighbor Discovery. By- Pradeep Yalamanchili Parag Walimbe

Experimenting Internetworking using Linux Virtual Machines Part I

Laboratory 2 Dynamic routing using RIP. Iptables. Part1. Dynamic Routing

IPv6 Deployment at ORNL

FiberstoreOS IPv6 Security Configuration Guide

Introduction to IPv6. IPv6 addresses

IPv6 Stateless Autoconfiguration

HPE FlexNetwork 5510 HI Switch Series

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August 1964

Athanassios Liakopoulos

Setup. Grab a vncviewer like: Or

HPE 5920 & 5900 Switch Series

ECE 461 Internetworking Fall Quiz 1

Network Layer (4): ICMP

Part 3. ARP poisoning

lab rip experiences with RIPv2 distance vector protocol

H

TCP/IP Protocol Suite

tcp ipv6 timer fin-timeout 40 tcp ipv6 timer syn-timeout 40 tcp ipv6 window 41

IPv6 CONSORTIUM TEST SUITE Address Architecture Conformance Test Specification

Computer Networks ICS 651. IP Routing RIP OSPF BGP MPLS Internet Control Message Protocol IP Path MTU Discovery

Vorlesung Kommunikationsnetze

Network Layer: Internet Protocol

Outline. SC/CSE 3213 Winter Sebastian Magierowski York University. ICMP ARP DHCP NAT (not a control protocol) L9: Control Protocols

Exercises: Basics of Network Layer Experiential Learning Workshop

Chapter 7: IP Addressing CCENT Routing and Switching Introduction to Networks v6.0

Internet Control Message Protocol (ICMP), RFC 792. Prof. Lin Weiguo Copyleft 2009~2017, School of Computing, CUC

IPv6 Multicast. Where and when?

Route Leaking in MPLS/VPN Networks

MPLS router configuration

MLD. MLDv1 (defined in RFC 2710), which is derived from IGMPv2. MLDv2 (defined in RFC 3810), which is derived from IGMPv3.

HP A5830 Switch Series Layer 3 - IP Services. Configuration Guide. Abstract

Problems of IP. Unreliable connectionless service. Cannot acquire status information from routers and other hosts

Network layer: Overview. Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing

Transcription:

netkit lab IPv6 Neighbor Discovery (NDP) Version 1.0 Author(s) E-mail Web Description S. Doro based on work ARP by G. Di Battista, M. Patrignani, M. Pizzonia, F. Ricci, M. Rimondini sandro.doro@gmail.com http://netkit.zuccante.it/ using the ICMPv6 Neighbor Discovery and ICMPv6 Neighbor Solicitation

copyright notice All the pages/slides in this presentation, including but not limited to, images, photos, animations, videos, sounds, music, and text (hereby referred to as material ) are protected by copyright. This material, with the exception of some multimedia elements licensed by other organizations, is property of the authors and/or organizations appearing in the first slide. This material, or its parts, can be reproduced and used for didactical purposes within universities and schools, provided that this happens for non-profit purposes. Information contained in this material cannot be used within network design projects or other products of any kind. Any other use is prohibited, unless explicitly authorized by the authors on the basis of an explicit agreement. The authors assume no responsibility about this material and provide this material as is, with no implicit or explicit warranty about the correctness and completeness of its contents, which may be subject to changes. This copyright notice must always be redistributed together with the material, or its portions.

step 1 network topology scope link details :5 :3 fe80::200:ff:fe00:5/64 pc1 :7 fe80::200:ff:fe00:7/64 fe80::200:ff:fe00:3/64 pc3 A C :1 :11 fe80::200:ff:fe00:1/64 fe80::200:ff:fe00:11/64 :9 r1 fe80::200:ff:fe00:9/64 eth1 B eth1 r2 :10 fe80::200:ff:fe00:10/64

step 1 network topology site link details (rfc 4193) pc1 pc3 fd88:8844:468d:1::/64 A C fd88:8844:468d:3::/64 r1 fd88:8844:468d:2::/64 B r2

step 1 network topology all link details :5 fe80::200:ff:fe00:5/64 fd88:8844:468d:1::5/64 pc1 :7 fe80::200:ff:fe00:7/64 fd88:8844:468d:3::7/64 :3 fe80::200:ff:fe00:3/64 fd88:8844:468d:3::3/64 pc3 fd88:8844:468d:1::/64 :1 fe80::200:ff:fe00:1/64 fd88:8844:468d:1::1/64 A C fd88:8844:468d:2::/64 fd88:8844:468d:3::/64 :11 fe80::200:ff:fe00:11/64 fd88:8844:468d:1::11/64 r1 :9 fe80::200:ff:fe00:9/64 fd88:8844:468d:2::9/64 eth1 B eth1 r2 :10 fe80::200:ff:fe00:10/64 fd88:8844:468d:2::10/64

step 2 a quick look at the lab lab.conf r1[0]="a" r1[0]="a" r1[1]="b" r1[1]="b" r2[0]="c" r2[0]="c" r2[1]="b" r2[1]="b" pc1[0]="a" pc1[0]="a" [0]="C" [0]="C" pc3[0]="c" pc3[0]="c" pc1.startup ip ip link link set set address address 00:00:00:00:00:05 ip ip link link set set up up ip ip -6-6 addr addr add add fd88:8844:468d:1::5/64 dev dev ip ip -6-6 route route add add default default via via fd88:8844:468d:1::1.startup ip ip link link set set address address 00:00:00:00:00:07 ip ip link link set set up up ip ip -6-6 addr addr add add fd88:8844:468d:1::7/64 dev dev ip ip -6-6 route route add add default default via via fd88:8844:468d:3::11 fd88:8844:468d:3::11 pc3.startup ip ip link link set set address address 00:00:00:00:00:03 ip ip link link set set up up ip ip -6-6 addr addr add add fd88:8844:468d:1::3/64 dev dev ip ip -6-6 route route add add default default via via fd88:8844:468d:3::11

step 2 a quick look at the lab r1.startup # -------------------------------------------------- setup setup ip ip link link set set address address 00:00:00:00:00:01 00:00:00:00:00:01 ip ip link link set set up up ip ip -6-6 addr addr add add fd88:8844:468d:1::1/64 dev dev # -------------------------------------------------- setup setup eth1 eth1 ip ip link link set set eth1 eth1 address address 00:00:00:00:00:09 ip ip link link set set eth1 eth1 up up ip ip -6-6 addr addr add add fd88:8844:468d:2::9/64 dev dev eth1 eth1 # -------------------------------------------------- add add route route ip ip -6-6 route route add add default default via via fd88:8844:468d:2::10 fd88:8844:468d:2::10 # -------------------------------------------------- enable enable IPv6 IPv6 forwarding forwarding echo echo "1" "1" > /proc/sys/net/ipv6/conf/all/forwarding

step 2 a quick look at the lab r2.startup ip ip link link set set address address 00:00:00:00:00:11 ip ip link link set set up up ip ip -6-6 addr addr add add fd88:8844:468d:3::11/64 dev dev ip ip link link set set eth1 eth1 address address 00:00:00:00:00:10 ip ip link link set set eth1 eth1 up up ip ip -6-6 addr addr add add fd88:8844:468d:2::10/64 dev dev eth1 eth1 ip ip -6-6 route route add add default default via via fd00:2::9 fd00:2::9 echo echo "1" "1" > /proc/sys/net/ipv6/conf/all/forwarding start the lab host machine user@localhost:~$ cd netkit-lab_ndp user@localhost:~/netkit-lab_ndp$ lstart user@localhost:~/netkit-lab_ndp$ devilspie ds & # optional

step 3 inspecting neighbors With With following following command command you you can can display display the the learnt learnt or or configured configured IPv6 IPv6 neighbors neighbors # ip ip -6-6 neigh neigh show show [dev [dev <device>] <device>] The The following following example example shows shows one one neighbor, neighbor, which which is is a reachable reachable router router # ip ip -6-6 neigh neigh show show fe80::23ff:6789 fe80::23ff:6789 dev dev lladdr lladdr 00:01:23:45:67:89 router router nud nud reachable reachable With With following following command command you you are are able able to to manually manually add add an an entry entry # ip ip -6-6 neigh neigh add add <IPv6 <IPv6 address> address> lladdr lladdr <link-layer <link-layer address> address> dev dev <device> <device> Example: Example: # ip ip -6-6 neigh neigh add add fec0::1 fec0::1 lladdr lladdr 02:01:02:03:04:05 dev dev

step 3 inspecting neighbors (continue) Like Like adding adding also also an an entry entry can can be be deleted: deleted: # ip ip -6-6 neigh neigh del del <IPv6 <IPv6 address> address> lladdr lladdr <link-layer <link-layer address> address> dev dev <device> <device> Example: Example: # ip ip -6-6 neigh neigh del del fec0::1 fec0::1 lladdr lladdr 02:01:02:03:04:05 dev dev The The tool tool ip ip is is less less documentated, documentated, but but very very strong. strong. See See online online help help for for more: more: # ip ip -6-6 neigh neigh help help Usage: Usage: ip ip neigh neigh { add add del del change change replace replace } { ADDR ADDR [ lladdr lladdr LLADDR LLADDR ] [ nud nud { permanent permanent noarp noarp stale stale reachable reachable } ] proxy proxy ADDR ADDR } [ dev dev DEV DEV ] ip ip neigh neigh {show flush} {show flush} [ to to PREFIX PREFIX ] [ dev dev DEV DEV ] [ nud nud STATE STATE ]

step 3 inspecting neighbors (local traffic) traffic within the same network does not traverse routers pc1 A :7 fe80::200:ff:fe00:7/64 C :3 fe80::200:ff:fe00:3/64 pc3 :11 fe80::200:ff:fe00:11/64 r1 B r2

step 3 inspecting neighbors the the neighbor cache is is initially empty pc3 (local traffic) pc3:~# ip -6 neigh show pc3:~# ping6 -c 1 fe80::200:ff:fe00:7% PING fe80::200:ff:fe00:7%(fe80::200:ff:fe00:7) 56 data bytes 64 bytes from fe80::200:ff:fe00:7: icmp_seq=1 ttl=64 time=4.04 ms --- fe80::200:ff:fe00:7% ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 4.041/4.041/4.041/0.000 ms pc3:~# ip -6 neigh show fe80::200:ff:fe00:7 dev lladdr 00:00:00:00:00:07 STALE pc3:~# address resolution results are are stored in in the the neighbor cache sending packets to to fe80::200:ff:fe00:7r equires address resolution

step 3 inspecting the neighbors cache (local traffic) communications are usually bi-directional pc3 send multicast to ff02::1:ff00:7 neighbor solicitation who has fe80::200:ff:fe00:7? (the receiver) sends to fe80::200:ff:fe00:3 ICMP6, neighbor advertisement is fe80::200:ff:fe00:7. It learns the mac address of the other party, to avoid a new request in opposite direction (standard behavior, see rfc 5942) :~# ip -6 neigh show fe80::200:ff:fe00:3 dev lladdr 00:00:00:00:00:03 REACHABLE :~#

step 4 inspecting the neighbors cache (non local traffic) :5 fe80::200:ff:fe00:5/64 fd88:8844:468d:1::5/64 pc1 :7 fe80::200:ff:fe00:7/64 fd88:8844:468d:3::7/64 :3 fe80::200:ff:fe00:3/64 fd88:8844:468d:3::3/64 pc3 fd88:8844:468d:1::/64 :1 fe80::200:ff:fe00:1/64 fd88:8844:468d:1::1/64 A C fd88:8844:468d:2::/64 fd88:8844:468d:3::/64 :11 fe80::200:ff:fe00:11/64 fd88:8844:468d:1::11/64 r1 :9 fe80::200:ff:fe00:9/64 fd88:8844:468d:2::9/64 eth1 B eth1 r2 :10 fe80::200:ff:fe00:10/64 fd88:8844:468d:2::10/64

step 4 inspecting the neighbor cache (non local traffic) when ip traffic is addressed outside the local network, the sender needs the mac address of the router neighbor requests can get replies only within the local network :~# ping6 -c 1 fd88:8844:468d:1::5 PING fd88:8844:468d:1::5(fd88:8844:468d:1::5) 56 data bytes 64 bytes from fd88:8844:468d:1::5: icmp_seq=1 ttl=62 time=45.9 ms --- fd88:8844:468d:1::5 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 45.906/45.906/45.906/0.000 ms :~# ip -6 neig show fd88:8844:468d:3::11 dev lladdr 00:00:00:00:00:11 router REACHABLE fe80::200:ff:fe00:11 dev lladdr 00:00:00:00:00:11 router REACHABLE :~#

step 4 inspecting the neighbor what about routers? routers perform neighbor discover too (hence have neighbor caches) anytime they have to send ip packets on an ethernet lan r1 (eth1) r1:~# ip -6 neigh show (eth1) fe80::200:ff:fe00:10 dev eth1 lladdr 00:00:00:00:00:10 router REACHABLE fd88:8844:468d:2::10 dev eth1 lladdr 00:00:00:00:00:10 router REACHABLE fd88:8844:468d:1::5 dev lladdr 00:00:00:00:00:05 REACHABLE fe80::200:ff:fe00:5 dev lladdr 00:00:00:00:00:05 REACHABLE r1:~# r2 cache (non local traffic) pc1 pc1 r2 r2 r2:~# ip -6 neigh show fd88:8844:468d:2::9 dev eth1 lladdr 00:00:00:00:00:09 router REACHABLE fe80::200:ff:fe00:9 dev eth1 lladdr 00:00:00:00:00:09 router REACHABLE fd88:8844:468d:3::7 dev lladdr 00:00:00:00:00:07 REACHABLE r1 fe80::200:ff:fe00:7 dev lladdr 00:00:00:00:00:07 REACHABLE r1 r2:~# (eth1) (eth1)

step5 sniffing arp traffic restart the lab in order to clear neighbor caches host machine user@localhost:~/netkit-lab_ndp$ lcrash user@localhost:~/netkit-lab_ndp$ lstart get ready to sniff = show link-level headers (mac addresses) virtual machine vm:~# tcpdump e t i suppress timestamps (netkit is is not not a simulation system, hence timestamps are are not not meaningful) sniff on on this this interface

step 5 sniffing neighbor traffic :5 fe80::200:ff:fe00:5/64 fd88:8844:468d:1::5/64 pc1 fd88:8844:468d:1::/64 :1 fe80::200:ff:fe00:1/64 fd88:8844:468d:1::1/64 :~# ping6 fd88:8844:468d:1::5 :7 fe80::200:ff:fe00:7/64 fd88:8844:468d:3::7/64 A C fd88:8844:468d:2::/64 :3 fe80::200:ff:fe00:3/64 fd88:8844:468d:3::3/64 pc3 fd88:8844:468d:3::/64 :11 fe80::200:ff:fe00:11/64 fd88:8844:468d:1::11/64 r1 :9 fe80::200:ff:fe00:9/64 fd88:8844:468d:2::9/64 eth1 B eth1 r2 :10 fe80::200:ff:fe00:10/64 fd88:8844:468d:2::10/64

r2 step 5 sniffing ND traffic on collision domain C r2:~# tcpdump -t -i tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on, link-type EN10MB (Ethernet), capture size 96 bytes IP6 fd88:8844:468d:3::7 > ff02::1:ff00:11: ICMP6, neighbor solicitation, who has fd88:8844:468d:3::11, length 32 IP6 fd88:8844:468d:3::11 > fd88:8844:468d:3::7: ICMP6, neighbor advertisement, tgt is fd88:8844:468d:3::11, length 32 IP6 fd88:8844:468d:3::7 > fd88:8844:468d:1::5: ICMP6, echo request, seq 1, length 64 IP6 fd88:8844:468d:1::5 > fd88:8844:468d:3::7: ICMP6, echo reply, seq 1, length 64 1. asks all the stations on collision domain C: who has fd88:8844:468d:3::11? (fd88:8844:468d:3::11 is s default gateway) 2. r2 replies both and r2 update their neighbor cache 3. sends to r2 the ip packet (icmp echo request) for pc1 4. r2 sends to the corresponding echo reply (generated by pc1)

step 5 sniffing neighbor traffic :5 fe80::200:ff:fe00:5/64 fd88:8844:468d:1::5/64 pc1 fd88:8844:468d:1::/64 :1 fe80::200:ff:fe00:1/64 fd88:8844:468d:1::1/64 :~# ping6 fd88:8844:468d:1::5 :7 fe80::200:ff:fe00:7/64 fd88:8844:468d:3::7/64 A C fd88:8844:468d:2::/64 :3 fe80::200:ff:fe00:3/64 fd88:8844:468d:3::3/64 pc3 fd88:8844:468d:3::/64 :11 fe80::200:ff:fe00:11/64 fd88:8844:468d:1::11/64 r1 :9 fe80::200:ff:fe00:9/64 fd88:8844:468d:2::9/64 eth1 B eth1 r2 :10 fe80::200:ff:fe00:10/64 fd88:8844:468d:2::10/64

step 6 sniffing ND traffic r1 on collision domain B r1:~# tcpdump -t -i eth1 IP6 fe80::200:ff:fe00:10 > ff02::1:ff00:9: ICMP6, neighbor solicitation, who has fd88:8844:468d:2::9, length 32 IP6 fd88:8844:468d:2::9 > fe80::200:ff:fe00:10: ICMP6, neighbor advertisement, tgt is fd88:8844:468d:2::9, length 32 IP6 fd88:8844:468d:3::7 > fd88:8844:468d:1::5: ICMP6, echo request, seq 1, length 64 IP6 fe80::200:ff:fe00:9 > ff02::1:ff00:10: ICMP6, neighbor solicitation, who has fd88:8844:468d:2::10, length 32 IP6 fd88:8844:468d:2::10 > fe80::200:ff:fe00:9: ICMP6, neighbor advertisement, tgt is fd88:8844:468d:2::10, length 32 IP6 fd88:8844:468d:1::5 > fd88:8844:468d:3::7: ICMP6, echo reply, seq 1, length 64 1. r2 asks all the stations on collision domain B: who has fd88:8844:468d:2::9? (fd88:8844:468d:2::9 is the next hop obtained from the routing table) 2. r1 replies both r1 and r2 update their neighbor cache 3. r2 sends to r1 the echo request generated by for pc1 4. r1 sends to r2 the echo reply generated by pc1 for

step 5 sniffing neighbor traffic :5 fe80::200:ff:fe00:5/64 fd88:8844:468d:1::5/64 pc1 fd88:8844:468d:1::/64 :1 fe80::200:ff:fe00:1/64 fd88:8844:468d:1::1/64 :~# ping6 fd88:8844:468d:1::5 :7 fe80::200:ff:fe00:7/64 fd88:8844:468d:3::7/64 A C fd88:8844:468d:2::/64 :3 fe80::200:ff:fe00:3/64 fd88:8844:468d:3::3/64 pc3 fd88:8844:468d:3::/64 :11 fe80::200:ff:fe00:11/64 fd88:8844:468d:1::11/64 r1 :9 fe80::200:ff:fe00:9/64 fd88:8844:468d:2::9/64 eth1 B eth1 r2 :10 fe80::200:ff:fe00:10/64 fd88:8844:468d:2::10/64

pc1 step 5 sniffing ND traffic on collision domain A pc1:~# tcpdump -t -i IP6 fe80::200:ff:fe00:1 > ff02::1:ff00:5: ICMP6, neighbor solicitation, who has fd88:8844:468d:1::5, length 32 IP6 fd88:8844:468d:1::5 > fe80::200:ff:fe00:1: ICMP6, neighbor advertisement, tgt is fd88:8844:468d:1::5, length 32 IP6 fd88:8844:468d:3::7 > fd88:8844:468d:1::5: ICMP6, echo request, seq 1, length 64 IP6 fd88:8844:468d:1::5 > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has fd88:8844:468d:1::1, length 32 IP6 fd88:8844:468d:1::1 > fd88:8844:468d:1::5: ICMP6, neighbor advertisement, tgt is fd88:8844:468d:1::1, length 32 IP6 fd88:8844:468d:1::5 > fd88:8844:468d:3::7: ICMP6, echo reply, seq 1, length 64 1. r1 asks all the stations on collision domain A: who has fd88:8844:468d:1::5? (fd88:8844:468d:1::5 the destination address of the icmp request obtained from the ip header) 2. pc1 replies both pc1 and r1 update their neighbor cache 3. r1 sends the ip packet (echo request) to pc1 4. pc1 generates the corresponding echo reply for and sends it to r1

step 6 understanding the whole pc1 r1 picture A B C r2 time neighbor solicitation neighbor advertisement icmp echo req neighbor solicitation neighbor advertisement icmp echo req icmp echo reply icmp echo reply neighbor solicitation neighbor advertisement icmp echo req icmp echo reply

r2 step 7 neighbor implementation details r2:~# tcpdump -t -i IP6 fd88:8844:468d:3::7 > ff02::1:ff00:11: ICMP6, neighbor solicitation, who has fd88:8844:468d:3::11, length 32 IP6 fd88:8844:468d:3::11 > fd88:8844:468d:3::7: ICMP6, neighbor advertisement, tgt is fd88:8844:468d:3::11, length 32 IP6 fd88:8844:468d:3::7 > fd88:8844:468d:1::5: ICMP6, echo request, seq 1, length 64 IP6 fd88:8844:468d:1::5 > fd88:8844:468d:3::7: ICMP6, echo reply, seq 1, length 64 neighbor solicitation (type 135) requests use a multicast address with the prefix ff02:0:0:0:0:1:ff00:0000/104 concatenated with the 24 loworder bits of a corresponding IPv6 unicast address (ff02::1:ff00:11) A node may also send unsolicited Neighbor Advertisements to announce a link-layer address change it may also happen that a station (router/pc) sends a unicast arp request to check if an entry of the arp cache is still valid unicast arp requests may be performed periodically on each entry of the arp cache, depending on the implementation

proposed exercises what packets can we observe in case of Duplicate Address Detection (DAD)?

proposed exercises check the different error messages obtained by trying to ping an unreachable destination in the case of Neighbor Unreachability Detection (NUD) local destination non local destination which packets are exchanged in the local collision domain in the two cases?