openssh 3.1p1: ToS trouble

Oliver Wellnitz oliver at
Tue Mar 19 23:45:26 EST 2002

On Tue, Mar 19, 2002 at 11:11:12AM +0100, Markus Friedl wrote:
> server version?

Server ( was the said OpenSSH 3.1p1 on Linux 2.4.17
Client ( was OpenSSH 3.0.2p1 on Solaris 8

I did some more test and here are the results:
(YES means ToS bit set client->server only, NO means ToS bit set both ways)

stargate      ->  tuborg    YES
tuborg        ->  stargate  YES
arvika        ->  stargate  YES
barolo        ->  stargate  YES
stargate      ->  arvika    NO
barolo        ->  arvika    NO
arvika        ->  barolo    NO
tuborg        ->  barolo    NO 
   OpenSSH 3.1p1/Linux 2.4.17, sshd -6, IPv6-enabled host 
   OpenSSH 3.0.2p1/Linux 2.2.19, sshd -6, IPv6-enabled host
   OpenSSH 3.1p1/Linux 2.4.18, sshd, IPv6-enabled host
   OpenSSH 3.0.2p1/Solaris 8, sshd, IPv6-enabled host

It works fine if I start 'sshd -4' on stargate. Ah, I think I understand
now. When sshd binds to an IPv6 socket, IPv4 connections are mapped into
IPv6 adresses ::ffff:a.b.c.d (on Linux). So even if it's a v4 connection on
the network, sshd thinks it is v6 and cannot set the ToS bit, because v6
does not use ToS (but Traffic classes).

I don't know if it's possible to change IPv4-ToS with setsockopt(2) if you
have an IPv4 connection over an IPv6 socket.


More information about the openssh-unix-dev mailing list