[openstack-dev] [Network] Allocate MAC and IP address for a VM instance

Dong Liu willowd878 at gmail.com
Wed Feb 19 12:17:37 UTC 2014


Sorry for replying so late.

Yes, that is what I mean, btw, if you only need floatingip to bind vm mac, you do not need to specified --fix_ip, just specify the --mac-address is ok.

What I mean floatingip-mac is that, actually, when you creating a floatingip, neutron will automatic create a port use that public ip, this port has a mac-address, I mean this one.


在 2014年2月19日,18:22,Jay Lau <jay.lau.513 at gmail.com> 写道:

> Hi Liu Dong,
> 
> Just found a solution for this as following, the method is using fixed ip as a bridge for MAC and floating ip.
> 
> Can you please help check if it is the way that you want me to do? If not, can you please give some suggestion for your idea?
> 
> Thanks,
> 
> Jay
> 
> ==============My steps==============
> Suppose I want to bind MAC fa:16:3e:9d:e9:11 to floating ip 9.21.52.22, I was doing as following:
> 
> 1) Create a port for fixed ip with the MAC address fa:16:3e:9d:e9:11
> [root at db01b05 ~(keystone_admin)]#  neutron port-create IntAdmin  --mac-address fa:16:3e:9d:e9:11 --fixed-ip ip_address=10.0.1.2 
> Created a new port:
> +-----------------------+---------------------------------------------------------------------------------+
> | Field                 | Value                                                                           |
> +-----------------------+---------------------------------------------------------------------------------+
> | admin_state_up        | True                                                                            |
> | allowed_address_pairs |                                                                                 |
> | binding:capabilities  | {"port_filter": true}                                                           |
> | binding:host_id       |                                                                                 |
> | binding:vif_type      | ovs                                                                             |
> | device_id             |                                                                                 |
> | device_owner          |                                                                                 |
> | fixed_ips             | {"subnet_id": "0fff20f4-142a-4e89-add1-5c5a79c6d54d", "ip_address": "10.0.1.2"} |
> | id                    | b259770d-7f9c-485a-8f84-bf7b1bbc5706                                            |
> | mac_address           | fa:16:3e:9d:e9:11                                                               |
> | name                  |                                                                                 |
> | network_id            | fb1a75f9-e468-408b-a172-5d2b3802d862                                            |
> | security_groups       | aa3f3025-ba71-476d-a126-25a9e3b34c9a                                            |
> | status                | DOWN                                                                            |
> | tenant_id             | f181a9c2b1b4443dbd91b1b7de716185                                                |
> +-----------------------+---------------------------------------------------------------------------------+
> [root at db01b05 ~(keystone_admin)]# neutron port-list | grep 10.0.1.2
> | b259770d-7f9c-485a-8f84-bf7b1bbc5706 |      | fa:16:3e:9d:e9:11 | {"subnet_id": "0fff20f4-142a-4e89-add1-5c5a79c6d54d", "ip_address": "10.0.1.2"}   |
> 
> 2) Create a floating ip with the port id created in step 1)
> [root at db01b05 ~(keystone_admin)]# neutron floatingip-create --port-id b259770d-7f9c-485a-8f84-bf7b1bbc5706 Ex
> Created a new floatingip:
> +---------------------+--------------------------------------+
> | Field               | Value                                |
> +---------------------+--------------------------------------+
> | fixed_ip_address    | 10.0.1.2                             |
> | floating_ip_address | 9.21.52.22                           |
> | floating_network_id | 9b758062-2be8-4244-a5a9-3f878f74e006 |
> | id                  | 7c0db4ff-8378-4b91-9a6e-87ec06016b0f |
> | port_id             | b259770d-7f9c-485a-8f84-bf7b1bbc5706 |
> | router_id           | 43ceb267-2a4b-418a-bc9a-08d39623d3c0 |
> | tenant_id           | f181a9c2b1b4443dbd91b1b7de716185     |
> +---------------------+--------------------------------------+
> 
> 3) Boot the VM with the port id in step 1)
> [root at db01b05 ~(keystone_admin)]#  nova boot --image centos64-x86_64-cfntools --flavor 2 --key-name adminkey --nic port-id=b259770d-7f9c-485a-8f84-bf7b1bbc5706 vm0001
> +--------------------------------------+--------------------------------------+
> | Property                             | Value                                |
> +--------------------------------------+--------------------------------------+
> | OS-EXT-STS:task_state                | scheduling                           |
> | image                                | centos64-x86_64-cfntools             |
> | OS-EXT-STS:vm_state                  | building                             |
> | OS-EXT-SRV-ATTR:instance_name        | instance-00000026                    |
> | OS-SRV-USG:launched_at               | None                                 |
> | flavor                               | m1.small                             |
> | id                                   | c0cebd6b-94ae-4305-8619-c013d45f0727 |
> | security_groups                      | [{u'name': u'default'}]              |
> | user_id                              | 345dd87da2364fa78ffe97ed349bb71b     |
> | OS-DCF:diskConfig                    | MANUAL                               |
> | accessIPv4                           |                                      |
> | accessIPv6                           |                                      |
> | progress                             | 0                                    |
> | OS-EXT-STS:power_state               | 0                                    |
> | OS-EXT-AZ:availability_zone          | nova                                 |
> | config_drive                         |                                      |
> | status                               | BUILD                                |
> | updated                              | 2014-02-19T10:12:36Z                 |
> | hostId                               |                                      |
> | OS-EXT-SRV-ATTR:host                 | None                                 |
> | OS-SRV-USG:terminated_at             | None                                 |
> | key_name                             | adminkey                             |
> | OS-EXT-SRV-ATTR:hypervisor_hostname  | None                                 |
> | name                                 | vm0001                               |
> | adminPass                            | F4cSHu9oC3Wi                         |
> | tenant_id                            | f181a9c2b1b4443dbd91b1b7de716185     |
> | created                              | 2014-02-19T10:12:36Z                 |
> | os-extended-volumes:volumes_attached | []                                   |
> | metadata                             | {}                                   |
> +--------------------------------------+--------------------------------------+
> 
> 4) The VM goes to active with floating ip 9.21.52.22
> [root at db01b05 ~(keystone_admin)]# nova list
> +--------------------------------------+--------+--------+------------+-------------+-------------------------------+
> | ID                                   | Name   | Status | Task State | Power State | Networks                      |
> +--------------------------------------+--------+--------+------------+-------------+-------------------------------+
> | c0cebd6b-94ae-4305-8619-c013d45f0727 | vm0001 | ACTIVE | None       | Running     | IntAdmin=10.0.1.2, 9.21.52.22 |
> +--------------------------------------+--------+--------+------------+-------------+-------------------------------+
> 
> 5) Check the VM MAC address, it is FA:16:3E:9D:E9:11 as expected
> [root at db01b05 ~(keystone_admin)]# ssh -i adminkey.priv root at 9.21.52.22 
> ssh: connect to host 9.21.52.22 port 22: Connection refused
> [root at db01b05 ~(keystone_admin)]# ssh -i adminkey.priv root at 9.21.52.22 
> Last login: Wed Feb 19 18:14:00 2014
> [root at host-10-0-1-2 ~]# ifconfig
> eth0      Link encap:Ethernet  HWaddr FA:16:3E:9D:E9:11  
>           inet addr:10.0.1.2  Bcast:10.0.1.255  Mask:255.255.255.0
>           inet6 addr: fe80::f816:3eff:fe9d:e911/64 Scope:Link
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:43 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000 
>           RX bytes:6402 (6.2 KiB)  TX bytes:6483 (6.3 KiB)
>  
> lo        Link encap:Local Loopback  
>           inet addr:127.0.0.1  Mask:255.0.0.0
>           inet6 addr: ::1/128 Scope:Host
>           UP LOOPBACK RUNNING  MTU:16436  Metric:1
>           RX packets:4 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:0 
>           RX bytes:352 (352.0 b)  TX bytes:352 (352.0 b)
>  
> 
> 
> 
> 
> 2014-02-19 17:59 GMT+08:00 Jay Lau <jay.lau.513 at gmail.com>:
> Thanks Liu Dong.
> 
> It is a VM mac address, so do you have any idea for how can I make sure the VM mac address can bind to a floating ip address?
> 
> Also what do you mean by floatingip mac?
> 
> Really thanks very much for your kind help, it is really helped me a lot!
> 
> Thanks,
> 
> Jay
> 
> 
> 
> 2014-02-19 16:21 GMT+08:00 Dong Liu <willowd878 at gmail.com>:
> 
> Jay, what the mac belong to? Is it a vm mac, or a mac of floatingip.
> If it is a vm mac, you can associate any floatingip to vm port.
> If it is a floatingip mac, I have no idea.
> 
> 2014-02-19 11:44, Jay Lau :
> Thanks Liu Dong.
> 
> In case that you may not get my previous question, so here just post it
> again to see if you can give a help.
> 
> Is it possible to bind MAC to a FLOATING IP?
> 
> Thanks,
> 
> Jay
> 
> 
> 
> 2014-02-19 10:38 GMT+08:00 Dong Liu <willowd878 at gmail.com
> <mailto:willowd878 at gmail.com>>:
> 
> 
>     yes, it does not worked via dashboard
> 
>     Dong Liu
> 
>     于 2014-02-19 8:11, Jay Lau 写道:
> 
>         Thanks Dong for the great help, it does worked with command line!
> 
>         This seems not available via dashboard, right?
> 
>         Thanks,
> 
>         Jay
> 
> 
> 
>         2014-02-19 1:11 GMT+08:00 Dong Liu <willowd878 at gmail.com
>         <mailto:willowd878 at gmail.com>
>         <mailto:willowd878 at gmail.com <mailto:willowd878 at gmail.com>>>__:
> 
> 
> 
>              Hi Jay,
> 
>              In neutron API, you could create port with specified
>         mac_address and
>              fix_ip, and then create vm with this port.
>              But the mapping of them need to manage by yourself.
> 
> 
>              在 2014年2月18日,22:41,Jay Lau <jay.lau.513 at gmail.com
>         <mailto:jay.lau.513 at gmail.com>
>              <mailto:jay.lau.513 at gmail.com
>         <mailto:jay.lau.513 at gmail.com>>__> 写道:
> 
> 
> 
>               > Greetings,
>               >
>               > Not sure if it is suitable to ask this question in
>         openstack-dev
>              list. Here come a question related to network and want to
>         get some
>              input or comments from you experts.
>               >
>               > My case is as this: For some security issue, I want to
>         put both
>              MAC and internal IP address to a pool and when create VM, I
>         can get
>              MAC and its mapped IP address and assign the MAC and IP
>         address to
>              the VM.
>               >
>               > For example, suppose I have following MAC and IP pool:
>               > 1) 78:2b:cb:af:78:b0, 192.168.0.10
>               > 2) 78:2b:cb:af:78:b1, 192.168.0.11
>               > 3) 78:2b:cb:af:78:b2, 192.168.0.12
>               > 4) 78:2b:cb:af:78:b3, 192.168.0.13
>               >
>               > Then I can create four VMs using above MAC and IP
>         address, each
>              row in above can be mapped to a VM.
>               >
>               > Does any of you have any idea for the solution of this?
>               >
>               > --
>               > Thanks,
>               >
>               > Jay
>               > _________________________________________________
>               > OpenStack-dev mailing list
>               > OpenStack-dev at lists.openstack.__org
>         <mailto:OpenStack-dev at lists.openstack.org>
>              <mailto:OpenStack-dev at lists.__openstack.org
>         <mailto:OpenStack-dev at lists.openstack.org>>
> 
>               >
>         http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev
>         <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
> 
> 
>              _________________________________________________
>              OpenStack-dev mailing list
>         OpenStack-dev at lists.openstack.__org
>         <mailto:OpenStack-dev at lists.openstack.org>
>              <mailto:OpenStack-dev at lists.__openstack.org
>         <mailto:OpenStack-dev at lists.openstack.org>>
> 
>         http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev
> 
>         <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
> 
> 
> 
> 
>         --
>         Thanks,
> 
>         Jay
> 
> 
>         _________________________________________________
>         OpenStack-dev mailing list
>         OpenStack-dev at lists.openstack.__org
>         <mailto:OpenStack-dev at lists.openstack.org>
>         http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev
>         <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
> 
> 
> 
>     _________________________________________________
>     OpenStack-dev mailing list
>     OpenStack-dev at lists.openstack.__org
>     <mailto:OpenStack-dev at lists.openstack.org>
>     http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
> 
> 
> 
> 
> 
> --
> Thanks,
> 
> Jay
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> 
> 
> -- 
> Thanks,
> 
> Jay
> 
> 
> 
> -- 
> Thanks,
> 
> Jay
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140219/a7059a04/attachment.html>


More information about the OpenStack-dev mailing list