[Olsr-dev] Detecting IP address collision between nodes
Mitar
(spam-protected)
Sat Sep 5 22:42:33 CEST 2009
Hi!
In our network we would like to extend our monitoring software with a
possibility of detecting IP address collision between nodes. Does OLSR
supports already something like this?
As we researched OLSR does not detect this and merge nodes together
into one node. This is understandable as it uses IP address to
identify nodes so it cannot distinguish between them. Only nodes which
are in a collision can detect this. In code there is a check if
message comes from same IP address:
ipequal((union olsr_ip_addr *)&m->v4.originator, &olsr_cnf->main_addr)
But as I understand such message can come back to a node also in a
normal OLSR operation when other nodes broadcast its message, can't
it?
So my idea is that each node would check TC messages and if it would
see that there are TC messages which are with its IP address but which
node has not send (like TC message that there is a peer this node does
not know nothing about) it would know that there is some IP address
collision going on.
When this situation would be detected by the node (one or the other or
both) it would have to report it to the monitoring node. Because
routing does not work reliably for this node TCP is probably not
possible. Even UDP could get lost on a way to the monitoring node. So
an idea was to add a special flag to TC messages this node is sending
around (and all other nodes distribute all over the network) which
would say that a node which has send this message has detected an IP
address collision. So all other nodes would know that something is
happening and also the monitoring node could then get this
information.
What do you think? Any improvements to the idea? It is too
complicated? It is too simple? Does something already exists? How
would one implement this? Is it possible to implement it as a plugin?
Would it be possible to add it to the official version if we make a
patch?
Mitar
More information about the Olsr-dev
mailing list