Netgraph - Breaks "ping"
Marko Zec
zec at icir.org
Mon Oct 22 05:53:54 PDT 2007
On Monday 22 October 2007 07:06:30 Len Gross wrote:
> I'm trying to "monitor" an ethernet interface with a tee node, but
> ping breaks when I setup the graph. I suspect I'm doing something
> "dumb" with respect to how the Ethernet node and/or the iface (ng0)
> need to be configured in order to make this work, or possibly I'm
> really using ng0 incorrectly. (I've also tried this with a "direct
> connect" of rl0: to ng0: which also doesn't work.)
You don't need an iface (ng0) node to be able to hook a monitoring ngctl
process to the ng_tee node. Just as you've connected rl0.lower hook to
the tee node, connect the rl0.upper hook to the tee node instead of
ng0.
Marko
> Before Netgraph
>
> Machine Setup
>
> Machine 1 192.168.4.1
>
> Machine 2: 192.168.4.4 (rl0)
>
> Machine 1 can ping machine 2 going through rl0
>
>
>
> BSD-1# ifconfig rl0
>
> rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>
> options=8<VLAN_MTU>
>
> inet6 fe80::248:54ff:fe8b:1cc8%rl0 prefixlen 64 scopeid 0x3
>
> inet 192.168.4.4 netmask 0xffffff00 broadcast 192.168.4.255
>
> ether 00:48:54:8b:1c:c8
>
> media: Ethernet autoselect (100baseTX <full-duplex>)
>
> status: active
>
>
>
> Now on Machine 2, I set up netgraph:
>
>
>
> Kldload ng_ether
>
>
>
> Using ngctl to create a path from rl0: to tee: to ng0:
>
> Here is the list and show output.
>
>
>
> There are 6 total nodes:
>
> Name: ng0 Type: iface ID: 00000008
> Num hooks: 1
>
> Name: tee Type: tee ID:
> 00000007 Num hooks: 4
>
> Name: rl0 Type: ether ID: 00000004
> Num hooks: 1
>
> Name: wi0 Type: ether ID: 00000003 Num
> hooks: 0
>
> Name: xl0 Type: ether ID: 00000002
> Num hooks: 0
>
> Name: ngctl681 Type: socket ID: 00000001 Num
> hooks: 2
>
>
>
> + show tee:
>
> Name: tee Type: tee ID: 00000007 Num
> hooks: 4
>
> Local hook Peer name Peer type Peer ID Peer
> hook
>
>
> ---------- --------- --------- -------
> ---------
>
>
> left2right ngctl681 socket 00000001 upper
>
>
> left ng0 iface 00000008
> inet
>
>
> right rl0 ether 00000004
> lower
>
>
> right2left ngctl681 socket 00000001 lower
>
>
>
> + show rl0:
>
> Name: rl0 Type: ether ID: 00000004 Num
> hooks: 1
>
> Local hook Peer name Peer type Peer ID Peer
> hook
>
>
> ---------- --------- --------- -------
> ---------
>
>
> lower tee tee 00000007 right
>
>
>
> + show ng0:
>
> Name: ng0 Type: iface ID: 00000008 Num
> hooks: 1
>
> Local hook Peer name Peer type Peer ID Peer
> hook
>
>
> ---------- --------- --------- -------
> ---------
>
>
> inet tee tee 00000007 left
>
>
>
>
>
>
> Now I use machine 1 to ping machine 2 and here is what I get on the
> ngctl screen.
>
>
>
> Rec'd data packet on hook "lower":
>
> 0000: 00 48 54 8b 1c c8 00 02 3f 8a d6 44 08 00 45 00
> .HT.....?..D..E.
>
> 0010: 00 3c 02 19 00 00 80 01 af 52 c0 a8 04 01 c0 a8
> .<.......R......
>
> 0020: 04 04 08 00 2a 5c 02 00 21 00 61 62 63 64 65 66
> ....*\..!.abcdef
>
> 0030: 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76
> ghijklmnopqrstuv
>
> 0040: 77 61 62 63 64 65 66 67 68 69 wabcdefghi
>
>
>
> This looks kind-of right, but I don't get anything back from the ng0
> node ( i.e no other output to ngctl.) Also, machine 1 "times out"
> its ping.
>
>
>
> BSD-1# ifconfig ng0
>
> ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu
> 1500
>
> inet6 fe80::201:3ff:fe24:ffe3%ng0 prefixlen 64 scopeid 0x6
>
>
>
> I've also tried giving ng0 inet addresses, but got the same results.
>
>
>
> Help!
>
>
>
> -- Len
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to
> "freebsd-net-unsubscribe at freebsd.org"
More information about the freebsd-net
mailing list