I need to filter ARP packets. I have two boxes, primary ( P )
and backup ( B ). When P goes down, B takes over and changes
its IP address to P's. But when P comes up again it will send
gratuitous ARP and if I don't do anything, B will respond with
its own ethernet address. What I want here to happen is that B
detects P's ARP request, doesn't respond to it and change its
IP address back to the original one.
Kernel version is 2.2.14 and my application is running both in
user and in kernel (as a module) space. I hoped I would be able
to replace ARP handler with my own, but it didn't work since
there is no way to get default ARP packet_type structure (it is
declared static in arp.c and array ptype_base which keeps
protocol handlers is not exported).
I am also thinking about installing a tap handler in ptype_all.
In that case I would have to change something in the packet so
later ARP handler wouldn't respond to it. What would I have to
change, besides requested IP address, to be safe I won't get
some ugly error and still to be sure I won't respond to P's ARP?
I don't know how Linux reacts on IP address conflict, but one
of these boxes might be NT and I know it will freak out if it
detects conflict.
Any idea would be appreciated!
damir
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri Apr 07 2000 - 21:00:18 EST