Date: Sun, 7 Apr 2002 20:06:31 -0700 From: "Crist J. Clark" <crist.clark@attbi.com> To: Nick Rogness <nick@rogness.net> Cc: "Matthew D. Fuller" <fullermd@over-yonder.net>, Alex Rousskov <rousskov@measurement-factory.com>, freebsd-net@FreeBSD.ORG Subject: Re: Forcing packets to the wire Message-ID: <20020407200631.S70207@blossom.cjclark.org> In-Reply-To: <Pine.BSF.4.21.0204072011570.14115-100000@cody.jharris.com>; from nick@rogness.net on Sun, Apr 07, 2002 at 08:25:33PM -0500 References: <20020406212822.G70207@blossom.cjclark.org> <Pine.BSF.4.21.0204072011570.14115-100000@cody.jharris.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Apr 07, 2002 at 08:25:33PM -0500, Nick Rogness wrote:
>
> >On Sat, 6 Apr 2002, Crist J. Clark wrote:
> >> On Sat, Apr 06, 2002 at 01:57:44PM -0600, Nick Rogness wrote:
> >>
> >>> On Fri, Apr 05, 2002 at 06:48:09PM -0600 I heard the voice of
> >>> On Fri, 5 Apr 2002, Matthew D. Fuller wrote:
> >>>
> >>> You MIGHT be able to use ipfw divert/pipe rules to somehow shove the
> >>> packets into a program on their way out, and write a program that
> >>> would use raw sockets to hand-assemble the IP datagram on the way out;
> >>> I'm not sure if the kernel would try to outsmart you on that.
> >>
> >> Yeh, I thought of that. The problem is packets never leave
> >> anywhere since the route for the other NIC is not "OUT" any
> >> interface...it is the machine itself.
> >
> > They never go over a _physical_ inteface, but they _do_ cross an
> > interface, lo0, the internal loopback.
> >
> > ipfw fwd <external gateway> ip from <ip_if0> to <ip_if1> in via lo0
>
>
> AFAIK, the route to get from 1 interface to the other is not
> through the lo0. I'm not sure if the kernel sends these packets
> across lo0 (internally) or not. But the routing table would
> suggest not.
It sure looks like they do. I checked before suggesting this.
$ ifconfig dc0
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.64.60 netmask 0xffffff00 broadcast 192.168.64.255
inet6 fe80::2c0:f0ff:fe5a:6c0a%dc0 prefixlen 64 scopeid 0x1
inet 192.168.64.61 netmask 0xffffffff broadcast 192.168.64.61
ether 00:c0:f0:5a:6c:0a
media: Ethernet autoselect (10baseT/UTP)
status: active
$telnet -s 192.168.64.60 192.168.64.61
Trying 192.168.64.61...
telnet: connect to address 192.168.64.61: Connection refused
telnet: Unable to connect to remote host
And I was sniffing the loopback when I did this,
# tcpdump -n -ilo0
tcpdump: listening on lo0
20:02:34.300094 192.168.64.60.1979 > 192.168.64.61.23: S 2453490862:2453490862(0) win 65535 <mss 16344,nop,wscale 1,nop,nop,timestamp 11409532 0> (DF) [tos 0x10]
20:02:34.300138 192.168.64.61.23 > 192.168.64.60.1979: R 0:0(0) ack 2453490863 win 0
I also put in some ipfw(8) 'count' rules like,
# ipfw add count ip from 192.168.64.60 to 192.168.64.61 out via lo0
And they were hit by these packets.
--
Crist J. Clark | cjclark@alum.mit.edu
| cjclark@jhu.edu
http://people.freebsd.org/~cjc/ | cjc@freebsd.org
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020407200631.S70207>
