Hi,

In your specific case of testing SMTP servers there is a sendmail milter
to do what you want:
http://www.snertsoft.com/sendmail/roundhouse/

I do not believe that what you are trying to achieve is possible at the
TCP level. haproxy does not have any idea of the application protocol
(eg: SMTP) running over the transport (TCP). You really need some form
of application layer proxy to handle the duplication of your requests to
the two servers.

Regards,
Mike

Maik Broemme wrote:
> Hi,
>
> Benoit <[email protected]> wrote:
>   
>> Maik Broemme a écrit :
>>     
>>> Hi,
>>>   
>>>
>>> Multiplex means traffic duplication. If you have multiple server
>>> configuration options in one listen group, the incoming traffic is
>>> sent to all servers.
>>>   
>>>       
>> Hum, i'm sorry but no, multiplexing is not duplication. In fact it's
>> more like the opposite,
>> it's the process of combining multiple data stream into one (long descr.
>> here: http://en.wikipedia.org/wiki/Multiplexing)
>>     
>
> Sorry multiplexing was the wrong word for it, I rellay talk about
> duplication.
>
>   
>>> tcpdump is not perfect in that case, because it has to run the hole time
>>> you want to duplicate the traffic and sent it to server1 and server2.
>>>   
>>>       
>> So let's say you pacth haproxy and he duplicate traffic to two servers
>> and is able to forget
>> data from one (the dev/test one) and keep the other (the prod one).
>>
>> How will haproxy been able to react to the different responses/timing
>> from each servers ?
>> Let's say you duplicate MX traffic, with the test server being used to
>> validate a new configuration
>> to keep away spammers (simple example).
>> Let's say both server are able to answer at the exact same time or
>> aren't too frisky about having the answer
>> before the question, when the prod server will accept the mail message
>> and start listinening from it's main
>> part the other could have rejected it, however he still will receive the
>> main part, while not expecting it,
>> which depending of the implementation could lead to troubles, like if
>> the originating mail server try to
>>  send another mail using the same connection.
>>
>>     
>
> I am thinking about the timing issues, my guess is to add a option for
> the duplicate balance algorithm, lets say 'async' or 'sync'. In 'async'
> state haproxy will send traffic to dev/test and only take care of
> response from dev, regardless if test respond or not. Later answer from
> test will be dropped by haproxy. In 'sync' state the haproxy will wait
> until dev/test has answered and send the answer from dev to client.
>
> For short:
>
>   - async will drop everything from test, regardless of answer
>     time and send everything to test regardless if it is expected or
>     not.
>
>   - sync will drop everything from test, but wait until it has answered.
>
> There will be - for sure - not much scenarios were you need such
> feature.
>
>   
>> This is a very simple example and most MX implementation could react
>> correctly but that's not the case of
>> everything
>>
>>
>>     
>
> --Maik
>
>
>   

Reply via email to