diff --git a/pkg/multicloud/aliyun/instance.go b/pkg/multicloud/aliyun/instance.go index bc99bec151..c506e8fef5 100644 --- a/pkg/multicloud/aliyun/instance.go +++ b/pkg/multicloud/aliyun/instance.go @@ -295,6 +295,15 @@ func (self *SInstance) GetINics() ([]cloudprovider.ICloudNic, error) { } nics = append(nics, &nic) } + for _, classicIp := range self.InnerIpAddress.IpAddress { + nic := SInstanceNic{ + instance: self, + id: fmt.Sprintf("%s-%s", self.InstanceId, classicIp), + ipAddr: classicIp, + classic: true, + } + nics = append(nics, &nic) + } return nics, nil } diff --git a/pkg/multicloud/aliyun/instancenic.go b/pkg/multicloud/aliyun/instancenic.go index 437269e8e4..5530f12a53 100644 --- a/pkg/multicloud/aliyun/instancenic.go +++ b/pkg/multicloud/aliyun/instancenic.go @@ -22,6 +22,7 @@ import ( "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs" "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/util/netutils" "yunion.io/x/onecloud/pkg/cloudprovider" ) @@ -32,6 +33,8 @@ type SInstanceNic struct { ipAddr string macAddr string + classic bool + cloudprovider.DummyICloudNic } @@ -51,11 +54,15 @@ func (self *SInstanceNic) GetIP() string { } func (self *SInstanceNic) GetMAC() string { - return self.macAddr + if len(self.macAddr) > 0 { + return self.macAddr + } + ip, _ := netutils.NewIPV4Addr(self.GetIP()) + return ip.ToMac("00:16:") } func (self *SInstanceNic) InClassicNetwork() bool { - return false + return self.classic == true } func (self *SInstanceNic) GetDriver() string {