Hi, today I wanted to make a short post that I now have a working kernel built-in ARP(reply) stack😎. Although the stack can't yet handle ARP request, my stack is now able to receive packets from local peers! Here are the output showing the windows sending arp request and raspberry pi (my stack!) replying to the request.
C:\WINDOWS\system32>arp -a
Interface: 192.168.10.2 --- 0x8
Internet Address Physical Address Type
192.168.10.1 fc-99-47-12-26-7a dynamic
192.168.10.255 ff-ff-ff-ff-ff-ff static
224.0.0.22 01-00-5e-00-00-16 static
224.0.0.251 01-00-5e-00-00-fb static
224.0.0.252 01-00-5e-00-00-fc static
239.255.255.250 01-00-5e-7f-ff-fa static
Interface: 172.21.176.1 --- 0x2b
Internet Address Physical Address Type
172.21.179.85 00-15-5d-4a-0e-39 dynamic
172.21.191.255 ff-ff-ff-ff-ff-ff static
224.0.0.22 01-00-5e-00-00-16 static
224.0.0.251 01-00-5e-00-00-fb static
224.0.0.252 01-00-5e-00-00-fc static
224.0.1.60 01-00-5e-00-01-3c static
239.255.255.250 01-00-5e-7f-ff-fa static
C:\WINDOWS\system32>ping 192.168.10.3
Pinging 192.168.10.3 with 32 bytes of data:
Request timed out.
Ping statistics for 192.168.10.3:
Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
Control-C
^C
C:\WINDOWS\system32>
┌──(kali㉿kali-raspberry-pi)-[~]
└─$ dmesg | grep my_arp_rcv
[ 93.757253] my_arp_rcv(): address of skb 00000000f1642941
[ 93.757324] my_arp_rcv(): address of arp header0000000063ca06a6
[ 93.757349] my_arp_rcv(): sender IP address of 34252992
[ 93.757371] my_arp_rcv(): target IP address of 51030208
[ 93.757391] my_arp_rcv(): the arp requsest is for IP protocol
[ 93.757430] my_arp_rcv(): found matching ip interface
[ 93.757484] my_arp_rcv(): successfully sent an arp response
C:\WINDOWS\system32>arp -a
Interface: 192.168.10.2 --- 0x8
Internet Address Physical Address Type
192.168.10.1 fc-99-47-12-26-7a dynamic
192.168.10.3 e4-5f-01-d3-5b-d9 dynamic --> here the entry is added, fc-99-47-12-26-7a is the MAC of pi
192.168.10.255 ff-ff-ff-ff-ff-ff static
224.0.0.22 01-00-5e-00-00-16 static
224.0.0.251 01-00-5e-00-00-fb static
224.0.0.252 01-00-5e-00-00-fc static
239.255.255.250 01-00-5e-7f-ff-fa static
Interface: 172.21.176.1 --- 0x2b
Internet Address Physical Address Type
172.21.179.85 00-15-5d-4a-0e-39 dynamic
172.21.191.255 ff-ff-ff-ff-ff-ff static
224.0.0.22 01-00-5e-00-00-16 static
224.0.0.251 01-00-5e-00-00-fb static
224.0.0.252 01-00-5e-00-00-fc static
224.0.1.60 01-00-5e-00-01-3c static
239.255.255.250 01-00-5e-7f-ff-fa static
C:\WINDOWS\system32>
I recently started this service called scrapbox.io for keeping all the notes taken while I build my programs. Below is the link to the note while I was doing some debuggings for this arp reply stack.
https://scrapbox.io/everydaymemo/arpリプライのデバッグ