exec.Command("ping", "-c", "3", "ff02::2%tap"+s.name).Output()
if err != nil {
l.Info(fmt.Sprintf("%s error ping %s", s.name, err))
}
l.Info(fmt.Sprintf("%s ping dev %s", s.name, cmdOut))
ipAddr := &net.IPAddr{IP: net.IPv6linklocalallrouters, Zone: "tap" + s.name}
conn, err := net.ListenIP("ip6:58", ipAddr)
if err != nil {
l.Info(fmt.Sprintf("error listen: %+v",err))
return
}
May 28 17:22:39 cn58 [25057]: 261919 ping dev PING ff02::2%tap261919(ff02::2%tap261919) 56 data bytes
64 bytes from fe80::fc54:ff:fe02:7cd3%tap261919: icmp_seq=1 ttl=64 time=0.051 ms
64 bytes from fe80::fc54:ff:fe02:7cd3%tap261919: icmp_seq=2 ttl=64 time=0.123 ms
64 bytes from fe80::fc54:ff:fe02:7cd3%tap261919: icmp_seq=3 ttl=64 time=0.085 ms
--- ff02::2%tap261919 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2044ms
rtt min/avg/max/mdev = 0.051/0.086/0.123/0.030 ms
May 28 17:22:39 cn58 [25057]: error listen: listen ip6:58 ff02::2%tap261919: bind: no such device
обсуждали же
А я так и не понял. Как может быть no device, а пинги ходить.
Там же в мане написано
https://man7.org/linux/man-pages/man7/ipv6.7.html ENODEV
Это-то я прочитал, но не сильно понимаю, как эта ошибка следует из того, что я пишу в коде. Мне пояснительная бригада нужна )
🤷🏼♂️ Можно посмотреть в src/syscall/syscall_linux.go:545 поставив там брекпоинт
Обсуждают сегодня