Linux - NetworkingThis forum is for any issue related to networks or networking.
Routing, network cards, OSI, etc. Anything is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have a Debian 10.13 and a Windows machine behind an OpenWRT router. I added a Hurricane Electric Tunnel to my network to access IPv6 addresses, because my Internet provider delivers only a IPv4 address. Now I want to test my IPv6 configuration with ping. The internet tips suggest pinging ipv6.google.com. In windows all works fine, but under Debian I get no replays. In Debian the name is resolved to 2a00:1450:4005:800::200e correctly, so no DNS problem!
On the router, I put a TCPDump on the lan interface: tcpdump -q -i eth0.1 icmp6
If I do the windows ping (ping ipv6.google.com), I can see:
If I ping the newspaper www.welt.de I get ping IPv6 replies on both machines. What does it mean? The Google server knows somehow which is a Linux ping and decides not to answer in this case, or do I still have an error in my configuration? Is it the high sequence number?
Can you ping6 ipv6.google.com with your Debian machine?
But the linux ping (ping6 -s 32 ipv6.google.com) gives no replies? (I set the payload to 32+8 to make it the same size as the windows ping)
ping6 -s 32 1234:5678:9999::240
> Do you mean to ask the OP to ping 2a00:1450:4005:800::200e?
I want reporter to ping IPv6 address directly instead of using dns name, ipv6.google.com. The IPv6 address of ipv6.google.com is 2607:f8b0:4005:80b::200e.
Its the construction of the packet. I tried to build the windows ping with linux ping options, but it does not work out. The payload in windows is "abcdefghijklmnopqrstuvwabcdefghi" and in linux it's a timestamp followed by optional padding (-p HexNbr). I couldnt get rid of the timestamp and add custom payload in the same time. Also flow control cant be zero in linux, if you set it to zero, linux takes random numbers instead.
So I installed trafgen from netsniff-ng packet to send custom packets.
1. I recorded the windows and linux icmpv6 ping request on the lan interface of the router with: tcpdump -A -i eth0.1 "icmp6 && ip6[40] == 128" -w windows.cap
2. I converted the packets in trafgen conf files for later resending netsniff-ng --in windows.cap --out windows.cfg -s netsniff-ng --in linux.cap --out linux.cfg -s
I opened the linux.cfg and set manually the abcdef... payload, the flow label to 0x00000, the hop limit to 0x80. (Open packet with wireshark, it shows the location of these fields)
Calculating the checksum by hand was too hard for me, so I resend the packet and recorded it on the router: trafgen --in linux.cfg --num 1 --out ens33
I opened the newly created ping request cap file with wireshark and it told me that the checksum is false and what the correct checksum would be. So I put the right checksum into linux.cfg. Resending it again: trafgen --in linux.cfg --num 1 --out ens33
If you had now put tcpdump -A -i eth0.1 icmp6 on the router interface, you could see the echo request and reply. So its the construction of the packet.
So don't use google servers for testing your IPv6 connection!
If you use this statement, you get sometimes a ping reply. If not, change the 20 hex FlowControlBits in -F and try again.
ping6 -c 1 -s 32 -t 128 -F 00001 2a00:1450:4005:801::200e
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.