cloudstack-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nux! <...@li.nux.ro>
Subject Re: Cloudstack-agent gets the local IP address exception
Date Thu, 02 May 2019 09:50:00 GMT
Thanks Wei, I've opened a proper issue for this, hope your fix gets applied.

https://github.com/apache/cloudstack/issues/3311

--
Sent from the Delta quadrant using Borg technology!

Nux!
www.nux.ro

----- Original Message -----
> From: "Wei ZHOU" <ustcweizhou@gmail.com>
> To: "dev" <dev@cloudstack.apache.org>
> Cc: "users" <users@cloudstack.apache.org>
> Sent: Wednesday, 1 May, 2019 21:52:06
> Subject: Re: Cloudstack-agent gets the local IP address exception

> Hi Nux,
> 
> It is because NetworkInterface.getInterfaceAddresses() returns the ips in
> reverse order.
> For example, "ip addr show dev eth0"  shows the following ips
> inet X.X.X.X
> inet secondary Y.Y.Y.Y
> inet6 Z:Z:Z:Z:Z:Z
> 
> Then NetworkInterface.getInterfaceAddresses returns
> Z:Z:Z:Z:Z:Z
> Y.Y.Y.Y
> X.X.X.X
> 
> The following patch should work as you expect.
> 
> ```
> diff --git a/utils/src/main/java/com/cloud/utils/net/NetUtils.java
> b/utils/src/main/java/com/cloud/utils/net/NetUtils.java
> index afe73f1..afb0ce6 100644
> --- a/utils/src/main/java/com/cloud/utils/net/NetUtils.java
> +++ b/utils/src/main/java/com/cloud/utils/net/NetUtils.java
> @@ -32,6 +32,7 @@ import java.net.SocketException;
> import java.net.URI;
> import java.net.UnknownHostException;
> import java.util.ArrayList;
> +import java.util.Collections;
> import java.util.Formatter;
> import java.util.List;
> import java.util.Random;
> @@ -394,10 +395,11 @@ public class NetUtils {
>     }
> 
>     public static String[] getNetworkParams(final NetworkInterface nic) {
> -        final List<InterfaceAddress> addrs = nic.getInterfaceAddresses();
> +        List<InterfaceAddress> addrs = nic.getInterfaceAddresses();
>         if (addrs == null || addrs.size() == 0) {
>             return null;
>         }
> +        Collections.reverse(addrs);
>         InterfaceAddress addr = null;
>         for (final InterfaceAddress iaddr : addrs) {
>             final InetAddress inet = iaddr.getAddress();
> ```
> 
> 
> -Wei
> 
> 
> 
> Nux! <nux@li.nux.ro> 于2019年5月1日周三 下午4:00写道:
> 
>> I ran into a similar problem when I tried to allocate an additional IP on
>> the agent machine (for other purposes), the hypervisor would then show up
>> in the UI with this new IP and in "Alert" state.
>>
>> I solved the problem by moving the IP out of br0 and on to the loopback
>> interface.
>>
>> --
>> Sent from the Delta quadrant using Borg technology!
>>
>> Nux!
>> www.nux.ro
>>
>> ----- Original Message -----
>> > From: "li jerry" <div8cn@hotmail.com>
>> > To: "users" <users@cloudstack.apache.org>, "dev" <
>> dev@cloudstack.apache.org>
>> > Sent: Monday, 22 April, 2019 14:36:51
>> > Subject: Cloudstack-agent gets the local IP address exception
>>
>> > HI All
>> >
>> >
>> > my kvm host [ip:10.226.16.11] virtualized a vip[10.226.16.10] via
>> keepalived.
>> >
>> > After I started the cloudstack-agent, I got vip[10.226.16.10] and I
>> couldn't get
>> > the correct IP [10.226.16.11];
>> >
>> > Can I have any way to get the cloudstack agent to get the correct IP
>> address?
>> >
>> >
>> >
>> > Cloudstack 4.11.2
>> > CentOS 7.5
>> >
>> >
>> >
>> > br2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
>> group
>> > default qlen 1000
>> >    link/ether ac:1f:6b:ba:96:ea brd ff:ff:ff:ff:ff:ff
>> >    inet 10.226.16.11/24 brd 10.226.16.255 scope global noprefixroute br2
>> >       valid_lft forever preferred_lft forever
>> >    inet 10.226.16.10/24 scope global secondary br2
>> >       valid_lft forever preferred_lft forever
>> >    inet6 fe80::1456:f9ff:fe06:6228/64 scope link
>> >        valid_lft forever preferred_lft forever

Mime
View raw message