mesh-networking
mesh-networking copied to clipboard
ARP
Why do we need to reimplement ARP? ARPs job is to map layer 3 address (IP addresses) to layer 2 (MAC addresses).
So if we assign IP addresses at our will, then ARP could do the job for us mapping them to the link layer in the network without us having to do any work.
I'm not really sure about this, but I think this is the way it works.
you could be right... in which case, less work for us!
I was thinking the only changes we would have to make are to prevent arp packets from leaving a zone and contaminating other zones
The biggest issue, IMHO, with reimplementing ARP is the security risk. All someone would have to do to DoS huge portions of the network would be to create fake nodes and have them request the layer 3, as @izqui said, addresses mapped to layer 2 (MAC) of all other nodes on the mesh. To reiterate: if many nodes join the mesh network very quickly, wouldn't it put enourmous strain on the other, already established, nodes to answer that many ARP requests? One solution might be to have a system where, when one node needed the layer 2 or 3 address of another, it asked only one other node, which in turn would ask yet another node if it did not already have the information cached.
I like your idea, it's reminiscent of how distributed hash table nodes lookup and cache requests without fork-bombing the whole network. (if I understand DHTs correctly, only one node at a time performs the next lookup after a miss)
On Thursday, August 6, 2015, zlgunn [email protected] wrote:
The biggest issue, IMHO, with reimplementing ARP is the security risk. All someone would have to do to DoS huge portions of the network would be to create fake nodes and have them request the layer 3, as @izqui https://github.com/izqui said, addresses mapped to layer 2 (MAC) of all other nodes on the mesh. To reiterate: if many nodes join the mesh network very quickly, wouldn't it put enourmous strain on the other, already established, nodes to answer that many ARP requests? One solution might be to have a system where, when one node needed the layer 2 or 3 address of another, it asked only one other node, which in turn would ask yet another node if it did not already have the information cached.
— Reply to this email directly or view it on GitHub https://github.com/pirate/mesh-networking/issues/1#issuecomment-128562542 .
--From Nick (Mobile)