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@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@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@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@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@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@db01b05 ~(keystone_admin)]# ssh -i adminkey.priv root@9.21.52.22 ssh: connect to host 9.21.52.22 port 22: Connection refused [root@db01b05 ~(keystone_admin)]# ssh -i adminkey.priv root@9.21.52.22 Last login: Wed Feb 19 18:14:00 2014 [root@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....@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 <willowd...@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 <willowd...@gmail.com >>> <mailto:willowd...@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 <willowd...@gmail.com >>> <mailto:willowd...@gmail.com> >>> <mailto:willowd...@gmail.com <mailto:willowd...@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....@gmail.com >>> <mailto:jay.lau....@gmail.com> >>> <mailto:jay.lau....@gmail.com >>> <mailto:jay.lau....@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@lists.openstack.__org >>> <mailto:OpenStack-dev@lists.openstack.org> >>> <mailto:OpenStack-dev@lists.__openstack.org >>> <mailto:OpenStack-dev@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@lists.openstack.__org >>> <mailto:OpenStack-dev@lists.openstack.org> >>> <mailto:OpenStack-dev@lists.__openstack.org >>> <mailto:OpenStack-dev@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@lists.openstack.__org >>> <mailto:OpenStack-dev@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@lists.openstack.__org >>> <mailto:OpenStack-dev@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@lists.openstack.org >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >>> >>> >> >> _______________________________________________ >> OpenStack-dev mailing list >> OpenStack-dev@lists.openstack.org >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> > > > > -- > Thanks, > > Jay > -- Thanks, Jay
_______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev