A really old neutron version. But anyway, IMO, you met this bug: https://bugs.launchpad.net/neutron/+bug/1682094 This is the error comes from: https://github.com/openstack/neutron/blob/master/neutron/db/db_base_plugin_v2.py#L611-L616
According to the exception, I did the following tests: >>> ip = netaddr.IPAddress("2a0a:4180::2") >>> net = netaddr.IPNetwork("2a0a:4180::2/127") >>> (ip in net and (ip == net.network or (net.version == 4 and ip == net[-1]))) True >>> ip == net.network True >>> (ip in net and (net.version == 4 and ip in (net.network, net[-1]))) >>> <---- current check False >>> ip in net True So you should update this function to such style: https://github.com/openstack/neutron/blob/master/neutron/ipam/utils.py#L40-L51 Since this verison 9.1.1 of neutron had been marked as EOL long time ago, I will marked this bug to invalid. ** Changed in: neutron Status: New => Invalid -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1840737 Title: Neutron create IPv6 subnet error. Gateway is not valid on subnet. Status in neutron: Invalid Bug description: Hello! I try create subnet ipv6, but i got error: Gateway is not valid on subnet. neutron subnet-create --debug --disable-dhcp --tenant-id b060ad4bdf256ab02 --ip-version 6 --gateway 2a0a:4180::2 --ipv6 -address-mode slaac --name test-ipv6-subnet test-ipv6-net 2a0a:4180::2/127 Output of this command: DEBUG: stevedore.extension found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') DEBUG: stevedore.extension found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') DEBUG: stevedore.extension found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') DEBUG: stevedore.extension found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') DEBUG: stevedore.extension found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') DEBUG: stevedore.extension found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') DEBUG: stevedore.extension found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') DEBUG: stevedore.extension found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') DEBUG: stevedore.extension found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') DEBUG: stevedore.extension found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') DEBUG: stevedore.extension found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') DEBUG: stevedore.extension found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') DEBUG: stevedore.extension found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') DEBUG: stevedore.extension found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') DEBUG: stevedore.extension found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') DEBUG: stevedore.extension found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') DEBUG: stevedore.extension found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') DEBUG: stevedore.extension found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') DEBUG: stevedore.extension found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') DEBUG: stevedore.extension found extension EntryPoint.parse('token_endpoint = openstackclient.api.auth_plugin:TokenEndpoint') DEBUG: stevedore.extension found extension EntryPoint.parse('table = cliff.formatters.table:TableFormatter') DEBUG: stevedore.extension found extension EntryPoint.parse('json = cliff.formatters.json_format:JSONFormatter') DEBUG: stevedore.extension found extension EntryPoint.parse('shell = cliff.formatters.shell:ShellFormatter') DEBUG: stevedore.extension found extension EntryPoint.parse('value = cliff.formatters.value:ValueFormatter') DEBUG: stevedore.extension found extension EntryPoint.parse('yaml = cliff.formatters.yaml_format:YAMLFormatter') DEBUG: neutronclient.neutron.v2_0.subnet.CreateSubnet run(Namespace(allocation_pools=None, cidr=u'2a0a:4180::2/127', columns=[], description=None, disable_dhcp=True, dns_nameservers=None, enable_dhcp=False, formatter='table', gateway=u'2a0a:4180::2', host_routes=None, ip_version=6, ipv6_address_mode=u'slaac', ipv6_ra_mode=None, max_width=0, name=u'test-ipv6-noc', network_id=u'test-ipv6-noc', no_gateway=False, noindent=False, prefix='', prefixlen=None, request_format='json', segment=None, subnetpool=None, tenant_id=u'b060ad44b2cd4592bdfc50948256ab02', use_default_subnetpool=False, variables=[])) DEBUG: keystoneauth.session REQ: curl -g -i -X GET http://IP:35357/v3 -H "Accept: application/json" -H "User-Agent: neutron keystoneauth1/3.1.0 python-requests/2.18.4 CPython/2.7.13" DEBUG: keystoneauth.session RESP: [200] Date: Mon, 19 Aug 2019 15:05:15 GMT Server: Apache/2.4.25 (Debian) Content-Length: 249 Vary: X-Auth-Token x-openstack-request-id: req-f1a1b245-e748-432c-a434-d006a2c0dec9 Content-Type: application/json RESP BODY: {"version": {"status": "stable", "updated": "2016-10-06T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}], "id": "v3.7", "links": [{"href": "http://IP:5000/v3/", "rel": "self"}]}} DEBUG: keystoneauth.session GET call to None for http://IP:35357/v3 used request id req-f1a1b245-e748-432c-a434-d006a2c0dec9 DEBUG: keystoneauth.identity.v3.base Making authentication request to http://IP:5000/v3/auth/tokens DEBUG: keystoneauth.identity.v3.base {"token": {"is_domain": false, "methods": ["password"], "roles": [{"id": "1cc071e66c754cffaa456624dca80c3c", "name": "KeystoneServiceAdmin"}, {"id": "96a5102c060745f48cb7f11f4dd15e0e", "name": "admin"}, {"id": "eec10b49110b42c1b1ae38054da43b19", "name": "Member"}, {"id": "e9542ded1ad14d9a9073ea36590c8089", "name": "ResellerAdmin"}, {"id": "29cc1e73fb0349cf92da70c6cd812109", "name": "heat_stack_owner"}, {"id": "792b0c1402b74cc1b2dbedd51b503b5d", "name": "KeystoneAdmin"}], "expires_at": "2019-08-19T16:05:15.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "b060ad44b2cd4592bdfc50948256ab02", "name": "admin"}, "catalog": [{"endpoints": [{"url": "http://IP:5000/v3", "interface": "public", "region": "regionOne", "region_id": "regionOne", "id": "573228e3a6d340a7856ade99ee558112"}, {"url": "http://IP2:35357/v3", "interface": "admin", "region": "regionOne", "region_id": "regionOne", "id": "b081314a073742f68cc64fce3d3733fb"}, {"url": "http://IP2:5000/v3", "interface": "internal", "region": "regionOne", "region_id": "regionOne", "id": "cdb0e99c1fe945448455f66f76def4bb"}], "type": "identity", "id": "09b4417a945d4e90ba4f0331234ee479", "name": "keystone"}, {"endpoints": [{"url": "http://IP2:9696", "interface": "internal", "region": "regionOne", "region_id": "regionOne", "id": "4ae854ab528c403c92c18febfcf4ecb0"}, {"url": "http://IP:9696", "interface": "public", "region": "regionOne", "region_id": "regionOne", "id": "b2056afa28c348189a974adfe34f92bd"}, {"url": "http://IP2:9696", "interface": "admin", "region": "regionOne", "region_id": "regionOne", "id": "d33f500c99b84dd6bed1058d1d69887e"}], "type": "network", "id": "4cbf6038675144c8a2a3b17493dfce66", "name": "neutron"}, {"endpoints": [], "type": "volume", "id": "6569b1453a5340cbaa6ff0c808b65040", "name": "cinder"}, {"endpoints": [{"url": "http://IP2:8774/v2.1/b060ad44b2cd4592bdfc50948256ab02", "interface": "internal", "region": "regionOne", "region_id": "regionOne", "id": "2a39332209a74834889eefe337350f19"}, {"url": "http://IP2:8774/v2.1/b060ad44b2cd4592bdfc50948256ab02", "interface": "admin", "region": "regionOne", "region_id": "regionOne", "id": "a872011dbcfc42bc93345d7453b5c4bb"}, {"url": "http://IP:8774/v2.1/b060ad44b2cd4592bdfc50948256ab02", "interface": "public", "region": "regionOne", "region_id": "regionOne", "id": "dab4625418ef462989bba44cb24198f0"}], "type": "compute", "id": "968b98b276b24442978c689bd5aeec23", "name": "nova"}, {"endpoints": [{"url": "http://IP:9292", "interface": "public", "region": "regionOne", "region_id": "regionOne", "id": "086ecbad7b3241b89dfc56c3d72a6369"}, {"url": "http://IP2:9292", "interface": "internal", "region": "regionOne", "region_id": "regionOne", "id": "2c2595c67a454cedb6f7af97c2222788"}, {"url": "http://IP2:9292", "interface": "admin", "region": "regionOne", "region_id": "regionOne", "id": "9319dfcf61b941638f23b5e9ada41cd5"}], "type": "image", "id": "b7188f1d89bb4ff6b9b3c9e03fa7a7a7", "name": "glance"}, {"endpoints": [{"url": "http://IP2:8776/v2/b060ad44b2cd4592bdfc50948256ab02", "interface": "internal", "region": "regionOne", "region_id": "regionOne", "id": "21b9119e9f09418b8338ae2d60673e28"}, {"url": "http://IP:8776/v2/b060ad44b2cd4592bdfc50948256ab02", "interface": "public", "region": "regionOne", "region_id": "regionOne", "id": "70f47c4ef7544ea88c047b64415908db"}, {"url": "http://IP2:8776/v2/b060ad44b2cd4592bdfc50948256ab02", "interface": "admin", "region": "regionOne", "region_id": "regionOne", "id": "9fae60bbbcbb4ab192ff02473a7bd036"}], "type": "volumev2", "id": "c1efc02af42d4e2c9189d03f19412184", "name": "cinderv2"}], "user": {"domain": {"id": "default", "name": "Default"}, "id": "56641995162a4d0c95d5849df9797831", "name": "admin"}, "audit_ids": ["fH-Ji6ujTZ27wFteVwz1cA"], "issued_at": "2019-08-19T15:05:15.000000Z"}} DEBUG: keystoneauth.session REQ: curl -g -i -X GET http://IP:9696/v2.0/networks.json?fields=id&name=test-ipv6-noc -H "User-Agent: python-neutronclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}efffdb21dfa3807c64a4d0d3eada61dec61894ef" DEBUG: keystoneauth.session RESP: [200] Content-Type: application/json Content-Length: 62 X-Openstack-Request-Id: req-3a766988-6b22-4953-8403-7232f2c1de63 Date: Mon, 19 Aug 2019 15:05:15 GMT RESP BODY: {"networks": [{"id": "f848e892-0911-4f87-b10d-709573fb5205"}]} DEBUG: keystoneauth.session GET call to network for http://IP:9696/v2.0/networks.json?fields=id&name=test-ipv6-noc used request id req-3a766988-6b22-4953-8403-7232f2c1de63 DEBUG: neutronclient.v2_0.client GET call to neutron for http://IP:9696/v2.0/networks.json?fields=id&name=test-ipv6-noc used request id req-3a766988-6b22-4953-8403-7232f2c1de63 DEBUG: keystoneauth.session REQ: curl -g -i -X POST http://IP:9696/v2.0/subnets.json -H "User-Agent: python-neutronclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}efffdb21dfa3807c64a4d0d3eada61dec61894ef" -d '{"subnet": {"name": "test-ipv6-noc", "enable_dhcp": false, "network_id": "f848e892-0911-4f87-b10d-709573fb5205", "tenant_id": "b060ad44b2cd4592bdfc50948256ab02", "gateway_ip": "2a0a:4180::2", "ip_version": 6, "ipv6_address_mode": "slaac", "cidr": "2a0a:4180::2/127"}}' DEBUG: keystoneauth.session RESP: [400] Content-Type: application/json Content-Length: 131 X-Openstack-Request-Id: req-b2f7eb7c-a32b-4767-84cb-0edd03fb8a1a Date: Mon, 19 Aug 2019 15:05:15 GMT RESP BODY: {"NeutronError": {"message": "Invalid input for operation: Gateway is not valid on subnet.", "type": "InvalidInput", "detail": ""}} DEBUG: keystoneauth.session POST call to network for http://IP:9696/v2.0/subnets.json used request id req-b2f7eb7c-a32b-4767-84cb-0edd03fb8a1a DEBUG: neutronclient.v2_0.client Error message: {"NeutronError": {"message": "Invalid input for operation: Gateway is not valid on subnet.", "type": "InvalidInput", "detail": ""}} DEBUG: neutronclient.v2_0.client POST call to neutron for http://IP:9696/v2.0/subnets.json used request id req-b2f7eb7c-a32b-4767-84cb-0edd03fb8a1a ERROR: neutronclient.shell Invalid input for operation: Gateway is not valid on subnet. Neutron server returns request_ids: ['req-b2f7eb7c-a32b-4767-84cb-0edd03fb8a1a'] Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 877, in run_subcommand return run_command(cmd, cmd_parser, sub_argv) File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 114, in run_command return cmd.run(known_args) File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 324, in run return super(NeutronCommand, self).run(parsed_args) File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 92, in run column_names, data = self.take_action(parsed_args) File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 407, in take_action data = obj_creator(body) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 793, in create_subnet return self.post(self.subnets_path, body=body) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 365, in post headers=headers, params=params) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 300, in do_request self._handle_fault_response(status_code, replybody, resp) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 275, in _handle_fault_response exception_handler_v20(status_code, error_body) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 91, in exception_handler_v20 request_ids=request_ids) BadRequest: Invalid input for operation: Gateway is not valid on subnet. Neutron server returns request_ids: ['req-b2f7eb7c-a32b-4767-84cb-0edd03fb8a1a'] Network at which i try create subnet: root@os-host1:~# neutron net-show test-ipv6-net +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | availability_zone_hints | | | availability_zones | nova | | created_at | 2019-07-11T12:37:12Z | | description | | | id | f848e892-0911-4f87 | | ipv4_address_scope | | | ipv6_address_scope | | | mtu | 1500 | | name | test-ipv6-net | | port_security_enabled | True | | project_id | b060ad44b2cd45 | | provider:network_type | vlan | | provider:physical_network | external | | provider:segmentation_id | 92 | | revision_number | 5 | | router:external | False | | shared | False | | status | ACTIVE | | subnets | | | tags | | | tenant_id | b060ad44b2cd45 | | updated_at | 2019-08-19T14:35:44Z | +---------------------------+--------------------------------------+ Nova version: root@os-host1:~# nova-manage version 14.0.0 OS version: root@os-host1:~# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.0 (stretch) Release: 9.0 Codename: stretch Kernel version: root@os-host1:~# uname -a Linux os-host1 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 GNU/Linux Neutron version: root@os-host1:~# neutron --version 6.0.0 Neutron client: root@os-host1:~# pip list | grep neutron neutron (9.1.1) neutron-lib (0.4.0) python-neutronclient (6.0.0) This online calc show me that gateway is correct http://www.gestioip.net/cgi-bin/subnet_calculator.cgi I would be appreciate for any help! Thanks! To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1840737/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp