arp-proxy

Brian Candler B.Candler at pobox.com
Thu Nov 17 08:27:56 PST 2005


On Thu, Nov 17, 2005 at 04:52:03PM +0100, Jon Otterholm wrote:
> Scenario#1:
> -I have a range of ip's, for example 215.10.10.0 - 215.10.10.255.
> -I want to distrubute theese ip's to my customers via DHCP.
> -They are all atached to me via a VLAN-trunk on a unique VID
> -I have 200+ customers.
> 
> If I was to subnet these addresses so that all the sustomers would get
> their own IF (with an IP) in my router and their own IP I could create a
> bunch of /30-nets but each customer would take up 4 IP's (net, G/W,
> CustomerIP, Broadcast) - and that is a big vaste of IP's in my opinion.

Albeit one that you can sensibly justify to a registry for your purpose.

If you could get clients to run PPPoE, then you wouldn't need to allocate
any /30 subnets to the VLANs, and you could give each customer a single /32
IP (either statically or from a pool). Multiple customers could share a VLAN
which might be useful in future, e.g. if one VLAN serves a building with
multiple users.

> If I instead could create a pseudo bridge with a "mother if" acting as
> gateway, distrute IP's via DHCP (ISC?) I could reduce the number of IP's
> and administration when adding new customers.
> 
> Anyone with a souloution or revelation?

I think it's tricky, given the additional constraints you gave in your other
E-mails. In particular, you said that MAC address xx:xx:xx:xx:xx:xx which
originates on VLAN X must never appear as a source MAC address on any other
VLAN, because that would confuse the switching infrastructure which links
the bundle of VLANs to the customer sites. (i.e. the VLANs are not true
VLANs because they are not properly isolated from each other)

Given DHCP, you're not statically assigning a particular IP or range of IPs
to a particular vlanN interface: so you can't "route add" to send traffic
for IP address x.x.x.x down VLAN Y. Hence you need to do dynamic bridging,
but with the MAC source address masquerading.

Now, this is not the Linux proxy-arp solution described in the link you
gave; it's something very different. I'm not aware of any implementation of
this on any platform.

If you're happy to hack code, the best I can suggest is you start with
ng_bridge and modify it to fit.

Regards,

Brian.


More information about the freebsd-net mailing list