<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 01/22/2015 09:41 PM, Robert L.
Harris wrote:<br>
</div>
<blockquote
cite="mid:CAOXayVu7G_ou0T9xuxtM9kJaULnFQSPFG6ycm1Ganhqfdc4CRw@mail.gmail.com"
type="cite">I have multiple projects/products, etc at work we are
breaking into separate broadcast domains ( currently 11, likely to
be closer to 20 ). I don't want a different dhcp server per
subnet/vlan. I can put a trunk port to the dhcp server so if I
can have dhcpd answering on each vlan so I have centrally managed
dhcp, that's ideal. So maybe I'm stuck doing the eth0.21, etc
with an IP on each subnet and one dhcp server.</blockquote>
<br>
Hrm.<br>
<br>
Perhaps another layout would be more fitting.<br>
<br>
If the goal is to break things apart into broadcast domains, just
use multicast on a normal network infrastructure.<br>
<br>
So:<br>
<ul>
<li>Each project or product is assigned a multicast address from
the Administratively Scoped region (239.0.0.0/8). So, you can
have Project A use 239.0.0.1 for the server(s) and 239.0.0.2 for
"broadcasts".</li>
<li>Each server joins the server group (e.g., 239.0.0.1) and
listens for UDP packets and sends UDP replies. If the service is
TCP, then you'd use this to find the "real" address of the
server (the UDP reply will come from the server's IP unicast
address) and then use TCP to establish a connection to the
server's unicast address. This allows the software to always
"latch" onto the server which replied first, providing a useful
form of load-balancing.</li>
<li>Each interested party joins the broadcast group (239.0.0.2)
and handles any received data.</li>
</ul>
<p>This would require creating a little utility to add to a project
to listen to the server or broadcast addresses, and forward
connection information to the "real" software, but it doesn't
require breaking the network itself apart into several subnetworks
and virtual LAN spaces. You'd need a method of managing the
locally-assigned address space (a spreadsheet works just fine,
honestly) and add the shim to the application.<br>
</p>
<p>As an example of an adapter that uses multicast to establish a
connection to a TCP application, imagine you have a fleet of Web
servers. Of course, they use HTTP, which is on top of TCP. But
you would not try to connect to a multicast IP address this way.
Instead, you could have a little C program which listens on port
80, gets the name of the host from the Host: header, sends a
multicast request for the server responsible for that name, the
server answers, and the C program sends a redirect to
<a class="moz-txt-link-freetext" href="http://SERVER-UNICAST-ADDRESS/PATH">http://SERVER-UNICAST-ADDRESS/PATH</a>. The web browser need not have
any knowledge that multicast is used to handle the connection in
the end, and it doesn't care: it gets the resource it wanted, and
that's really all that matters.<br>
</p>
<p>The additional benefit here is that a single node can listen to
multiple groups without being on multiple VLANs and hogging up
resources in the network and packet filtering stacks. This allows
your network to handle significantly more load with the same
amount of resources.<br>
</p>
<p> — Mike<br>
</p>
</body>
</html>