[lvs-users] Invalid operation. Possibly wrong module version, address not unicast, ...

Nigel Kukard nkukard at lbsd.net
Thu Jan 14 11:43:13 GMT 2010


>>> Apon upgrading to 2.6.29.6 from 2.6.22 and recompiling ipvsadm 1.25 to
>>> get ipv6 support I'm getting the following error:
>>>
>>> Invalid operation.  Possibly wrong module version, address not unicast, ...
>>>
>>> when running ...
>>>
>>> ipvsadm -ln -t SERVICE_HERE
>>>
>>> There is absolutely nothing else that changed apart from the kernel and
>>> recompile of 1.25.
>>>
>>> Everything seems to work fine,  ipvsadm -ln  works fine, setting up
>>> services works fine as does all functionality except the above.
>>>
>>> Can anyone shed some light?
>>>     
>>>       
>> Hi Nigel,
>>
>> I'm not having any luck reproducing this problem.
>> Is sane output produced when you run "ipvsadm -ln" ?
>> Could you be more specific about what SERVICE_HERE is,
>> and if it includes a host name if it resolves to an ipv4
>> or ipv6 address, or both?
>>
>> Also, is the 2.6.29.6 vanilla, or has it had some patches added?
>>     
> 2.6.29.6 vanilla
>
> The problem above was due to some CFLAGS being set in the environment,
> namely  "-O2 --march=pentium-mmx". Without the env being set, there are
> no more errors. I did a total rm -rf sources and recompile.
>
> Which brings me to another problem now... my ipvsadm -ln is not
> displaying the current number of connections. I've copied the same
> binary over to 2.6.29.5 and its working. Using the binary on 2.6.29.6
> seems to just give zero's. Also statement in the original post was
> incorrect, -ln did work, but also didn't display the number of connections.
>
> # ipvsadm -v
> ipvsadm v1.25 2008/5/15 (compiled with popt and IPVS v1.2.1)
>
> # ipvsadm -ln -t a.b.c.d:25
> Prot LocalAddress:Port Scheduler Flags
>   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
> TCP  a.b.c.d:25 wlc
>   -> 10.0.200.131:25              Masq    240    0          75       
>   -> 10.0.200.141:25              Masq    239    0          69       
>   -> 10.0.200.151:25              Masq    238    0          69       
>   -> 10.0.200.161:25              Masq    239    0          67
>
> # ipvsadm -ln -t a.b.c.d:25 --stats
> Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes
> OutBytes
>   -> RemoteAddress:Port
> TCP  a.b.c.d:25                 1516    37220    32114 31690896  1836300
>   -> 10.0.200.131:25                   404    13002    10258 10433390  
> 556410
>   -> 10.0.200.141:25                   360     7119     6485  5986697  
> 392303
>   -> 10.0.200.151:25                   390     9374     8454  8919481  
> 485851
>   -> 10.0.200.161:25                   362     7726     6918  6351400  
> 401884
>
> # ipvsadm -ln -t a.b.c.d:25 --rate
> Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS  
> OutBPS
>   -> RemoteAddress:Port
> TCP  a.b.c.d:25                    6       96       92    69714     5619
>   -> 10.0.200.131:25                     1       14       16    
> 3177     1108
>   -> 10.0.200.141:25                     2       38       32   
> 30077     1911
>   -> 10.0.200.151:25                     1       21       21   
> 14418     1274
>   -> 10.0.200.161:25                     1       24       23   
> 22041     1325
>
> # ipvsadm -ln -c | grep ESTABLISHED | wc -l   
> 65
>   

Ok ... I found the problem.

* My scripts overrode CFLAGS= which is why it worked before, -D for NL
was being forcefully removed.
* I fixed this a few weeks ago, when upgrading .. same time I upgraded
my kernel, appears that libnl is now used.
* Below ...

make HAVE_NL=0 POPT_LIB="-lpopt"   <= that works fine, I get the correct
listing below...
TCP  a.b.c.d:25 wlc
  -> 10.0.200.131:25              Masq    238    14         47       
  -> 10.0.200.141:25              Masq    241    14         36       
  -> 10.0.200.151:25              Masq    242    10         109      
  -> 10.0.200.161:25              Masq    242    13         90 

make POPT_LIB="-lpopt" <= that gives wrong details for ActiveConn, below ...
TCP  a.b.c.d:25 wlc
  -> 10.0.200.131:25              Masq    240    0          31       
  -> 10.0.200.141:25              Masq    240    0          34       
  -> 10.0.200.151:25              Masq    241    0          94       
  -> 10.0.200.161:25              Masq    238    0          87       

Same results on all kernel versions & servers I've tried.

My problem is that using HAVE_NL=0 seems not to work with v6 support...
/tmp/ipvsadm.no-nl -A -t [fc00::10]:25 -s rr
Operation not supported with specified address family

Please advise.

-N




More information about the lvs-users mailing list