<font face="tahoma" size="2"><p style="margin:0;padding:0;font-family: tahoma; font-size: 10pt; word-wrap: break-word;">If you are using Ethernet bridging, your Ethernet switches are doing exactly this at the Ethernet layer... they have large tables of MAC addresses that are known throughout the network, and for each MAC address in the Enterprise, they have the next hop destination.</p>
<p style="margin:0;padding:0;font-family: tahoma; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: tahoma; font-size: 10pt; word-wrap: break-word;">So IP routing tables, one IP address per destination in the Enterprise, would occupy no more space than do the Ethernet routing tables.... so any argument about space efficiency is mooted.</p>
<p style="margin:0;padding:0;font-family: tahoma; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: tahoma; font-size: 10pt; word-wrap: break-word;">This is why bridging is no better than routing - you have to solve the same problem at one layer or the other. The Ethernet layer's "solution" is actually very suboptimal, especially when roaming is going on.</p>
<!--WM_COMPOSE_SIGNATURE_START--><!--WM_COMPOSE_SIGNATURE_END-->
<p style="margin:0;padding:0;font-family: tahoma; font-size: 10pt; word-wrap: break-word;"><br /><br />On Sunday, January 25, 2015 6:57pm, "David Lang" <david@lang.hm> said:<br /><br /></p>
<div id="SafeStyles1422236834">
<p style="margin:0;padding:0;font-family: tahoma; font-size: 10pt; word-wrap: break-word;">> On Sun, 25 Jan 2015, dpreed@reed.com wrote:<br />> <br />> > Disagree. See below.<br />> ><br />> ><br />> > On Saturday, January 24, 2015 11:35pm, "David Lang" <david@lang.hm><br />> said:<br />> ><br />> ><br />> ><br />> >> On Sat, 24 Jan 2015, dpreed@reed.com wrote:<br />> >> > A side comment, meant to discourage continuing to bridge rather than<br />> route.<br />> >> ><br />> >> > There's no reason that the AP's cannot have different IP addresses,<br />> but a<br />> >> > common ESSID. Roaming between them would be like roaming among mesh<br />> subnets.<br />> >> > Assuming you are securing your APs' air interfaces using encryption<br />> over the<br />> >> > air, you are already re-authenticating as you move from AP to AP. So<br />> using<br />> >> > routing rather than bridging is a good idea for all the reasons that<br />> routing<br />> >> > rather than bridging is better for mesh.<br />> >><br />> >> The problem with doing this is that all existing TCP connections will<br />> break when<br />> >> you move from one AP to another and while some apps will quickly notice<br />> this and<br />> >> establish new connections, there are many apps that will not and this<br />> will cause<br />> >> noticable disruption to the user.<br />> >><br />> >> Bridgeing allows the connections to remain intact. The wifi stack<br />> re-negotiates<br />> >> the encryption, but the encapsulated IP packets don't change.<br />> ><br />> ><br />> > There is no reason why one cannot set up an enterprise network to support<br />> > roaming, yet maintaining the property that IP addresses don't change while<br />> > roaming from AP to AP. Here's a simple concept, that amounts to moving what<br />> > would be in the Ethernet bridging tables up to the IP layer.<br />> ><br />> > All addresses in the enterprise are assigned from a common prefix (XXX/16 in<br />> > IPv4, perhaps). Routing in each access point is used to decide whether to<br />> > send the packet on its LAN, or to reflect it to another LAN. A node's<br />> > preferred location would be updated by the endpoint itself, sending its<br />> > current location to its current access point (via ARP or some other<br />> protocol).<br />> > The access point that hears of a new node that it can reach tells all the<br />> > other access points that the node is attached to it. Delivery of a packet to<br />> > a node is done by the access point that receives the packet by looking up the<br />> > destination IP address in its local table, and sending it to the access point<br />> > that currently has the destination IP address.<br />> ><br />> > This is far better than "bridging" at the Ethernet level from a functionality<br />> > point of view - it is using routing, not bridging. Bridging at the Ethernet<br />> > level uses Ethernet's STP feature, which doesn't work very well in<br />> collections<br />> > of wireless LAN's (it is slow to recalculate when something moves, because it<br />> > was designed for unplug/plug of actual cables, and moving the host from one<br />> > physical location to another).<br />> ><br />> > IMO, Ethernet sometimes aspires to solve problems that are already<br />> well-solved<br />> > in the Internet protocols. (for example the 802.11s mess which tries to do a<br />> > mesh entirely in the Ethernet layer, and fails pretty miserably).<br />> ><br />> > Of course that's only my opinion, but I think it applies to overuse of<br />> > bridging at the Ethernet layer when there are better approaches at the next<br />> > layer up.<br />> <br />> Unless you are going to have your routing tables handle every address in your<br />> network separately (and fix all the software that depends on broadcasts) you are<br />> going to have trouble trying to do this at the IP layer.<br />> <br />> The 'modern Enterprise' datacenter has lots of large machines that get sliced<br />> into multiple virtual machines. For redundancy purposes you want to have the<br />> machines used for a particular job to be spread across as many of these machines<br />> as possible, spread around your datacenter.<br />> <br />> Switches in this environment are becoming layer 2 routers. They are connected<br />> together with multiple links providing redundant paths around the network. This<br />> isn't being done with Spanning Tree because Spanning Tree only allows one path<br />> to exist at once, and that is inefficient and creates bottlenecks. As a result,<br />> they are now keeping all these links live at the same time and using least cost<br />> paths to route the layer 2 traffic across the switches.<br />> <br />> It's fair to argue that this is abuse of layer 2, but the difficulties in having<br />> to change the software operating at higher layers vs the fact that making these<br />> changes at the layer 2 level is completely transparent to the higher layers make<br />> it so that using this layer 2 capability is pragmantically a far better choice.<br />> <br />> The Computer Scientist will cringe at the 'hacks' that this introduces, but<br />> there is far more progress made when new capabilities can be added in a way<br />> that's transparent to other layers of the stack then when it requires major<br />> changes to how things work.<br />> <br />> The software layer is the worst to try and force fundamental changes to. You<br />> would be horrified to learn how old some of the software is that's running major<br />> jobs at large companies. Even if the software is in continuous development, the<br />> age of the core software frequently shows.<br />> <br />> David Lang<br />> </p>
</div></font>