Dear Jason,

Il 04/11/2011 02:27, Jason Tackaberry ha scritto:
>
> kaa.Socket uses AF_INET6 sockets exclusively, and uses IPv4-mapped
> IPv6 addresses for IPv4 addresses on AF_INET6 sockets.  This is why
> you see:
>
> $ netstat --inet6 -an | grep 19999
> tcp6       0      0 127.0.0.1:19999         :::*                   
> LISTEN 
>
> That's expected; netstat is just showing the IPv4-mapped address
> (::ffff:127.0.0.1) stripped of the prefix.  These sockets can be
> connected over IPv4.
>

for the record, I logged into my freevo-box (that runs
Debian/squeeze/i386) and I did some tests using the utility 'netcat6'
(version 1.0-8 ), namely,  I started
   $ nc6 -l -p 19089
on one console, and then I checked that
  # netstat --inet6 -a | grep 19089
  tcp6       0      0 [::]:19089              [::]:*                 
LISTEN    
  # netstat --inet -a | grep 19089
  tcp        0      0 *:19089                 *:*                    
LISTEN    
as you see this is quite different than what kaa does, indeed when kaa
listens on a socket, that port appears only in the 'netstat --inet6 -a'
listing

I also tested that I can send data to the 'nc6' that is listening to
that port 19089, both using 'nc' and using 'nc6' ; and I can send data
to that host from a different host (only ipv4 since my home network is
not ipv6)

So somehow 'netcat6' manages to do the right thing even inside my freevo-box

> Getting a /network/ unreachable when you try to connect to 127.0.0.1
> is perplexing.  My first instinct was that lo was down, but your ip
> addr ls output says otherwise.
>
> Doing a bit of Googling, I see that the BSDs don't support IPv4-mapped
> addresses on IPv6 sockets.  This might be a reason to change
> kaa.Socket to use AF_INET or AF_INET6 sockets selectively.  Are you
> using a BSD kernel on Debian?
nope, standard linux 2.6.32-5-686

>   Can you please try the attached crudely constructed test script and
> dump the output?  Make sure ::1 isn't in the localhost address list in
> /etc/hosts.
>

I tried your script in four  PCs (all running different installs of
Debian), and my freevo-box is the only one where it fails (!!) and I
then tried to understand what is the difference but I really could not
spot anything that may explain this weird fact. (I even tried to 'diff'
the whole /etc/ tree of the freevo-box against another PC, but I did not
spot anything suspicious)

To prepare the files in attachment I used this shell line
# ( uname -r ; uname -m ; echo ;  ip addr ls ; echo ; ip ro ls ; echo ;
ip -6 ro ls ; echo ; dpkg -l libc6  python ; echo ;  python sockettest.py )

See attachment.

> Thanks!
>
thank you for the effort

a.

2.6.32-5-amd64
x86_64

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state 
UNKNOWN qlen 1000
    link/ether 00:1b:fc:ed:7d:65 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.21/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::21b:fcff:feed:7d65/64 scope link 
       valid_lft forever preferred_lft forever
3: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether a2:51:0b:d4:68:10 brd ff:ff:ff:ff:ff:ff

192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.21 
default via 192.168.0.1 dev eth0 

fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 
4294967295

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nome                                         Versione                       
      Descrizione
+++-============================================-====================================-==============================================================================
ii  libc6                                        2.11.2-10                      
      Embedded GNU C Library: Shared libraries
ii  python                                       2.6.6-3+squeeze6               
      interactive high-level object-oriented language (default version)

------ localhost
AF_INET bind to localhost:20011
  try ('127.0.0.1', 20011)
AF_INET bind to localhost:20011
  try ('127.0.0.1', 20011)
AF_INET connect to localhost:20011
  try ('127.0.0.1', 20011)
------ 127.0.0.1
AF_INET bind to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
AF_INET bind to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
AF_INET connect to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
------ localhost
AF_INET6 bind to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
AF_INET6 bind to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
AF_INET6 connect to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
------ ip6-localhost
AF_INET6 bind to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 bind to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 connect to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
------ 127.0.0.1
AF_INET6 bind to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
AF_INET6 bind to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
AF_INET6 connect to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
------ ::1
AF_INET6 bind to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 bind to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 connect to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
2.6.32-5-openvz-amd64
x86_64

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
qlen 1000
    link/ether 00:1f:c6:a1:81:61 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::21f:c6ff:fea1:8161/64 scope link 
       valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 00:18:51:a6:de:5f brd ff:ff:ff:ff:ff:ff
    inet 192.84.155.215/24 brd 192.84.155.255 scope global br0
    inet6 fe80::21f:c6ff:fea1:8161/64 scope link 
       valid_lft forever preferred_lft forever
4: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 00:38:fe:b7:73:58 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.1/24 brd 10.0.1.255 scope global br1
    inet6 fe80::b0f8:efff:fe0a:64ab/64 scope link 
       valid_lft forever preferred_lft forever
5: br2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 00:28:51:64:c3:7b brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.1/24 brd 10.0.2.255 scope global br2
    inet6 fe80::40e9:b3ff:fea6:4591/64 scope link 
       valid_lft forever preferred_lft forever
6: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue 
state UNKNOWN 
    link/void 
7: veth100.3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state 
UNKNOWN 
    link/ether 00:38:fe:b7:73:58 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::238:feff:feb7:7358/64 scope link 
       valid_lft forever preferred_lft forever
8: veth100.4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state 
UNKNOWN 
    link/ether 00:28:51:64:c3:7b brd ff:ff:ff:ff:ff:ff
    inet6 fe80::228:51ff:fe64:c37b/64 scope link 
       valid_lft forever preferred_lft forever
9: veth111.7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state 
UNKNOWN 
    link/ether 00:48:51:77:37:58 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::248:51ff:fe77:3758/64 scope link 
       valid_lft forever preferred_lft forever
10: veth111.8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state 
UNKNOWN 
    link/ether 00:18:51:a6:de:5f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::218:51ff:fea6:de5f/64 scope link 
       valid_lft forever preferred_lft forever

10.0.1.0/24 dev br1  proto kernel  scope link  src 10.0.1.1 
10.0.2.0/24 dev br2  proto kernel  scope link  src 10.0.2.1 
192.84.155.0/24 dev br0  proto kernel  scope link  src 192.84.155.215 
default via 192.84.155.1 dev br0 

fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 
4294967295
fe80::/64 dev br0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 
4294967295
fe80::/64 dev br1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 
4294967295
fe80::/64 dev br2  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 
4294967295
fe80::/64 dev veth100.3  proto kernel  metric 256  mtu 1500 advmss 1440 
hoplimit 4294967295
fe80::/64 dev veth100.4  proto kernel  metric 256  mtu 1500 advmss 1440 
hoplimit 4294967295
fe80::/64 dev veth111.7  proto kernel  metric 256  mtu 1500 advmss 1440 
hoplimit 4294967295
fe80::/64 dev veth111.8  proto kernel  metric 256  mtu 1500 advmss 1440 
hoplimit 4294967295

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nome                                       Versione                         
               Descrizione
+++-==========================================-===============================================-=====================================================================================================================================================================================================================
ii  libc6                                      2.11.2-10                        
               Embedded GNU C Library: Shared libraries
ii  python                                     2.6.6-3+squeeze6                 
               interactive high-level object-oriented language (default version)

------ localhost
AF_INET bind to localhost:20011
  try ('127.0.0.1', 20011)
AF_INET bind to localhost:20011
  try ('127.0.0.1', 20011)
AF_INET connect to localhost:20011
  try ('127.0.0.1', 20011)
------ 127.0.0.1
AF_INET bind to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
AF_INET bind to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
AF_INET connect to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
------ localhost
AF_INET6 bind to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
AF_INET6 bind to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
AF_INET6 connect to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
------ ip6-localhost
AF_INET6 bind to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 bind to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 connect to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
------ 127.0.0.1
AF_INET6 bind to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
AF_INET6 bind to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
AF_INET6 connect to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
------ ::1
AF_INET6 bind to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 bind to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 connect to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
3.0.0-1-amd64
x86_64

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
qlen 1000
    link/ether 00:25:00:ad:af:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::225:ff:fead:afda/64 scope link 
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:25:00:3f:42:ab brd ff:ff:ff:ff:ff:ff

default via 192.168.0.1 dev eth0  proto static 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.100  metric 1 

fe80::/64 dev eth0  proto kernel  metric 256 

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nome                                 Versione                          
Descrizione
+++-====================================-=================================-==========================================================================
ii  libc6                                2.13-21                           
Embedded GNU C Library: Shared libraries
ii  python                               2.7.2-9                           
interactive high-level object-oriented language (default version)

------ localhost
AF_INET bind to localhost:20011
  try ('127.0.0.1', 20011)
AF_INET bind to localhost:20011
  try ('127.0.0.1', 20011)
AF_INET connect to localhost:20011
  try ('127.0.0.1', 20011)
------ 127.0.0.1
AF_INET bind to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
AF_INET bind to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
AF_INET connect to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
------ localhost
AF_INET6 bind to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
AF_INET6 bind to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
AF_INET6 connect to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
------ ip6-localhost
AF_INET6 bind to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 bind to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 connect to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
------ 127.0.0.1
AF_INET6 bind to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
AF_INET6 bind to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
AF_INET6 connect to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
------ ::1
AF_INET6 bind to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 bind to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 connect to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
2.6.32-5-686
i686

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
qlen 1000
    link/ether 90:e6:ba:70:a8:3c brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.23/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::92e6:baff:fe70:a83c/64 scope link 
       valid_lft forever preferred_lft forever

192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.23 
default via 192.168.0.1 dev eth0 

fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nome                                          Versione                      
Descrizione
+++-=============================================-=============================-=============================================================================
ii  libc6                                         2.11.2-10                     
Embedded GNU C Library: Shared libraries
ii  python                                        2.6.6-3+squeeze6              
interactive high-level object-oriented language (default version)

------ localhost
AF_INET bind to localhost:20011
  try ('127.0.0.1', 20011)
AF_INET bind to localhost:20011
  try ('127.0.0.1', 20011)
AF_INET connect to localhost:20011
  try ('127.0.0.1', 20011)
------ 127.0.0.1
AF_INET bind to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
AF_INET bind to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
AF_INET connect to 127.0.0.1:20011
  try ('127.0.0.1', 20011)
------ localhost
AF_INET6 bind to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
    -> failed: [Errno 22] Invalid argument
AF_INET6 bind to localhost:20011
  try ('127.0.0.1', 20011) -> ('::ffff:127.0.0.1', 20011)
    -> failed: [Errno 22] Invalid argument
  skipping connect
------ ip6-localhost
AF_INET6 bind to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 bind to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 connect to ip6-localhost:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
------ 127.0.0.1
AF_INET6 bind to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
    -> failed: [Errno 22] Invalid argument
AF_INET6 bind to 127.0.0.1:20011
  try ('::ffff:127.0.0.1', 20011, 0, 0) -> ('::ffff:127.0.0.1', 20011, 0, 0)
    -> failed: [Errno 22] Invalid argument
  skipping connect
------ ::1
AF_INET6 bind to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 bind to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)
AF_INET6 connect to ::1:20011
  try ('::1', 20011, 0, 0) -> ('::1', 20011, 0, 0)

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to