On Tue, 16 Aug 2005, Rogier Krieger wrote:

On 8/15/05, Luiz Otavio Souza <[EMAIL PROTECTED]> wrote:
Why CARP not send packets with physical CARP interface address ?

(...)
Unless I'm badly mistaken, the reason CARP does not send the physical
interface's address in its packets is the same reason why CARP works
at all.

well, CARP is sending the physical interface MAC address and is working.

Something which would explain the wording within the FAQ [1]: "No
matter what the IP and MAC address of the local physical interface,
packets sent to the CARP address are returned with the CARP
information."

At layer 2, machines deal with hardware addresses. Equipment links a
specific IP address to a specific hardware (MAC) address through ARP.
Suppose the hardware address is no longer available due to a crash,
what machine will respond? None.

CARP makes sure that there is always someone to answer a call for an
IP address by keeping a specific MAC address alive and active. That is
what makes a failover transparent.

CARP acts in ARP replys, sending the virtual MAC address in response to any ARP request for a virtual IP (IP on CARP interface).

This make redundancy possible.

Sounds to me you do not want to mess with that as you'd properly undo CARP.

not at this time :)

but i found what i looking for...

The routing table return the interface wich the packet is send when the packet pass on ip_output.c.

The interface returned is always the physical interface, not CARP.

I think i can do a dirty hack, looking for interfaces (type == CARP && status == MASTER) with the same source address from my packet and change the (ifnet *)ifp pointer.

cheers,
luiz

Reply via email to