Hi,

I'm trying to capture OSPF hello packets like this:

        ens192, err := net.InterfaceByName("ens192")
        if err != nil {
                return err
        }
        _ = ens192
        c, err := net.ListenPacket("ip4:89", "0.0.0.0") // ipv4 proto 89, 
all local interfaces
        if err != nil {
                return err
        }
        defer c.Close()

        p := ipv4.NewPacketConn(c)
        if err != nil {
                return err
        }

        allSPFRouters := net.ParseIP("224.0.0.5")
        if err := p.JoinGroup(nil, &net.IPAddr{IP: allSPFRouters}); err != 
nil {
                return err
        }

        if err := p.SetControlMessage(ipv4.FlagDst|ipv4.FlagSrc|ipv4.
FlagInterface, true); err != nil {
                return err
        }

        b := make([]byte, 64)
        for {
                n, cm, src, err := p.ReadFrom(b)
                _ = n
                if err != nil {
                        return err
                }
                if cm.Dst.IsMulticast() {
                        if cm.Dst.Equal(allSPFRouters) {
                                fmt.Printf("OSPF hello received from %v\n", 
src)
                        } else {
                                // ignore/discard
                                fmt.Printf("Received packet from: %v to 
%v\n", src, cm.Dst)
                                continue
                        }
                }
        }


But I can only see locally generated traffic (ie. local ospf process)... I 
can see anything coming from other OSPF neighbours (even though I can see 
then when doing tcpdump on ens192)..
Any ideas?


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to