Send traffic to itself using real NIC

Marko Zec zec at fer.hr
Tue Aug 7 14:34:36 UTC 2012


On Tuesday 07 August 2012 16:04:17 Jacques Fourie wrote:
> On Tue, Aug 7, 2012 at 3:53 PM, Eugene Grosbein <egrosbein at rdtc.ru> wrote:
> > Hi!
> >
> > I'd like to run some stability tests for some L2-transparent
> > gigabit ethernet network hardware I've got.
> >
> > I have one spare FreeBSD 9.1-PRERELEASE with two-ports igb(4) card
> > and connected both ports using my L2 hardward making a loop.
> >
> > Is it possible to configure FreeBSD in such way so it would send
> > IP traffic for itself not via loopback interface but via igb0/igb1?
> >
> > I've tried to utilize multiple FIBs:
> >
> > sysctl net.add_addr_allfibs=0
> > ifconfig igb0 inet 10.0.0.1/24 mtu 9126
> > ifconfig igb1 inet 10.0.1.1/24 mtu 9126
> > setfib 1 route -q flush
> > setfib 1 route add 10.0.1.1/32 -iface igb1
> > setfib 2 route -q flush
> > setfib 2 route add 10.0.0.1/32 -iface igb0
> >
> > But "setfib 1 ping -S 10.0.0.1 10.0.1.1" still runs via lo0 (and has no
> > answer).
> >
> > The only way I've got working is unidirectional stream of packets
> > generated with ng_source(4) (patched due to kern/120304) that shows me
> > 10% packet loss (using netstat -I to see how many packets got through).
> >
> > I would really like using normal TCP/UDP/ICMP streams in addition of
> > ng_source tests.
> >
> > Eugene Grosbein
> > _______________________________________________
> > 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"
>
> You can try using a VIMAGE enabled kernel and jails using epair(4) as
> the network interface. Bridge the epair interfaces on the host to
> igb0/igb1 and you should be able to communicate between the two jails
> via igb0 and igb1.

There's no need to use epair at all here.  Just create a vnet jail, and assign 
one of the igb interfaces into it, done:

# jail -c name=x vnet persist
# ifconfig igb1 vnet x
# jexec x ifconfig
lo0: flags=8008<LOOPBACK,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
igb1: flags=8842<...> metric 0 mtu 1500 ...

Marko



More information about the freebsd-net mailing list