Netgraph - Breaks "ping"



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.)



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@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: Netgraph - Breaks "ping"
    ... really using ng0 incorrectly. ... Machine 2: 192.168.4.4 (rl0) ... Machine 1 can ping machine 2 going through rl0 ... Num hooks: 1 ...
    (freebsd-net)
  • Re: Netgraph - Breaks "ping"
    ... really using ng0 incorrectly. ... Machine 2: 192.168.4.4 (rl0) ... Num hooks: 1 ... 00000007 Num hooks: 4 ...
    (freebsd-net)