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

Jay Lau jay.lau.513 at gmail.com
Wed Feb 19 10:22:21 UTC 2014


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140219/7888ab04/attachment.html>


More information about the OpenStack-dev mailing list