Netgraph - Breaks "ping"
Len Gross
sandiegobiker at gmail.com
Sun Oct 21 22:06:40 PDT 2007
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
More information about the freebsd-net
mailing list