Re: netgraph ability

2004-04-24 Thread Ruslan Ermilov
[ Redirected to -net ]

On Thu, Apr 22, 2004 at 05:50:57PM -0700, David Yeske wrote:
 I'm in a situation where I need to emulate multiple ethernet devices with
 different mac addresses.  I have gotten far enough to have this.
 
 I ran ngctl and then ran
 mkpeer . eiface hook ether
 
 I then ran
 ifconfig ngeth0 link '00:bd:03:11:21:11'
 ifconfig ngeth0 192.168.20.5
 ifconfig sis0 192.168.23.45
 
 So basically I want to be able to ping / connect to 
 192.168.20.5 from another box on the 192.168.23.0/24 network, and have it see
 the mac address that I have set rather than the mac address of my sis0 device.
 I know I can do this with vmware, but I am trying to avoid that.
 
 Anyone know if this is possible?  Is there a way to do this with the tap device
 and or arpd?
 
Using Netgraph, you can emulate any number of Ethernet interfaces
on one physical interface.  Here's my recipe for you:

1.  Load the ng_ether(4) module.
2.  Create the required number of ng_eiface(4) nodes.
3.  Connect lower and upper of sis0: and all ngethX:
ng_ether(4) nodes to one ng_bridge(4).
4.  Make sure to ngctl msg if: setautosrc 0 to all
ng_ether(4) nodes.
5.  Optionally set net.link.ether.inet.log_arp_wrong_iface=0.

Here's my test (I've omitted obvious configuration steps):

# ifconfig dc0 ether
dc0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
options=48VLAN_MTU,POLLING
ether 00:10:a4:c0:c0:45

# ifconfig ngeth0
ngeth0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
ether 00:00:00:01:02:03

# ngctl show bridge:
  Name: bridge  Type: bridge  ID: 000b   Num hooks: 4
  Local hook  Peer name   Peer typePeer ID Peer hook
  --  -   ---- -
  link4   ngeth0  ether0007lower
  link3   ngeth0  ether0007upper
  link2   dc0 ether0002lower
  link1   dc0 ether0002upper

# ifconfig ngeth0 1.2.3.4

# tcpdump -lenx -i dc0 ether host 0:0:0:1:2:3
tcpdump: listening on dc0
20:29:05.571179 0:0:0:1:2:3 ff:ff:ff:ff:ff:ff 0806 42: arp who-has 1.2.3.4 tell 1.2.3.4
 0001 0800 0604 0001  0001 0203 0102
 0304    0102 0304


Cheers,
-- 
Ruslan Ermilov
[EMAIL PROTECTED]
FreeBSD committer


pgp0.pgp
Description: PGP signature


netgraph ability

2004-04-23 Thread David Yeske
I'm in a situation where I need to emulate multiple ethernet devices with
different mac addresses.  I have gotten far enough to have this.

I ran ngctl and then ran
mkpeer . eiface hook ether

I then ran
ifconfig ngeth0 link '00:bd:03:11:21:11'
ifconfig ngeth0 192.168.20.5
ifconfig sis0 192.168.23.45

So basically I want to be able to ping / connect to 
192.168.20.5 from another box on the 192.168.23.0/24 network, and have it see
the mac address that I have set rather than the mac address of my sis0 device.
I know I can do this with vmware, but I am trying to avoid that.

Anyone know if this is possible?  Is there a way to do this with the tap device
and or arpd?

Regards,
David Yeske
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to [EMAIL PROTECTED]