Address scopes membangun dari subnet pools. Sementara subnet pools menyediakan mekanisme untuk mengendalikan alokasi alamat untuk subnet, address scopes menunjukkan di mana alamat dapat dialihkan antara jaringan, mencegah user tumpang tindih alamat dalam dua subnet. Karena semua alamat dialokasikan dalam address scope tidak tumpang tindih, router neutron jangan men-NAT antara jaringan tenants Anda dan jaringan eksternal Anda. Selama alamat dalam suatu address scope match, layanan Networking melakukan routing yang sederhana antara jaringan.
Siapapun dengan akses ke layanan Networking dapat membuat address scopes sendiri. Namun, administrator jaringan dapat membuat shared address scopes, yang memungkinkan proyek lain untuk membuat jaringan dalam address scope itu.
Akses ke alamat di scope dikelola melalui subnet pools. Subnet pool tidak dapat diciptakan dalam address scope, ataupun diperbarui menjadi milik address scope.
Dengan subnet pool, semua alamat digunakan dalam address scope adalah unik dari sudut pandang pemilik address scope. Oleh karena itu, menambahkan lebih dari satu subnet pool untuk address scope jika pool mempunyai pemilik yang berbeda, memungkinkan untuk pendelegasian sebagian dari address scope. Pendelegasian mencegah alamat tumpang tindih di seluruh scope. Jika tidak, Anda menerima pesan kesalahan jika dua pool memiliki rentang alamat yang sama.
Setiap interface router dikaitkan dengan address scope dengan melihat subnet terhubung ke jaringan. Ketika router terhubung ke jaringan eksternal dengan pencocokan address scope, tranffic jaringan me-rute antara tanpa Network Address Translation (NAT). Router menandai semua koneksi tranffic yang berasal dari masing-masing interface dengan address scope yang sesuai. Jika tranffic melintasi interface dalam scope yang salah, router memblok tranffic.
Jaringan yang dibuat sebelum rilis Mitaka tidak mengandung secara eksplisit address scope ternama, kecuali jaringan berisi subnet dari subnet pool milik address scope dibuat atau diperbarui. Layanan Jaringan mempertahankan backwards compatibility dengan jaringan pra-Mitaka melalui sifat address scope khusus agar jaringan ini bisa melakukan routing canggih:
Tumpang tindih alamat tak terbatas diperbolehkan.
Router neutron, secara default, akan menjadi NAT traffic dari jaringan internal untuk jaringan eksternal.
Pre-Mitaka address scope tidak terlihat melalui API. Anda tidak bisa daftar address scope atau detail acara. Scope eksis secara implisit sebagai catch-semua untuk alamat yang tidak discope secara eksplisit.
Bagian ini menunjukkan bagaimana user non-privileged dapat menggunakan address scope untuk rute langsung ke jaringan eksternal tanpa NAT.
Buat beberapa jaringan untuk subnet host:
$ neutron net-create network1
Created a new network:
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| id | f5a980d9-5521-438e-b831-0ebacba2b372 |
| name | network1 |
| subnets | |
+-------------------------+--------------------------------------+
$ neutron net-create network2
Created a new network:
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| id | 438e4f26-0e45-4b26-9797-57d0bd817953 |
| name | network2 |
| subnets | |
+-------------------------+--------------------------------------+
Buat subnet tidak terkait dengan subnet pool atau address scope:
$ neutron subnet-create --name subnet-ip4-1 network1 198.51.100.0/26
Created a new subnet:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| cidr | 198.51.100.0/26 |
| id | 48ed5c71-2a1d-4f73-b29e-371deec04d44 |
| name | subnet-ip4-1 |
| network_id | f5a980d9-5521-438e-b831-0ebacba2b372 |
| subnetpool_id | |
+-------------------+--------------------------------------+
$ neutron subnet-create --name subnet-ip6-1 network1 \
--ipv6-ra-mode slaac --ipv6-address-mode slaac \
--ip_version 6 2001:db8:80d2:c4d3::/64
Created a new subnet:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| cidr | 2001:db8:80d2:c4d3::/64 |
| id | c9f0bb79-1d7b-435f-b362-05a9a7259aa6 |
| name | subnet-ip6-1 |
| network_id | f5a980d9-5521-438e-b831-0ebacba2b372 |
| subnetpool_id | |
+-------------------+--------------------------------------+
Buat subnet menggunakan subnet pool terkait dengan address scope dari jaringan eksternal:
$ neutron subnet-create --name subnet-ip4-2 \
--subnetpool subnet-pool-ip4 network2
Created a new subnet:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| cidr | 203.0.112.0/26 |
| id | deb36645-8d46-4c13-a489-1135174d8a8c |
| name | subnet-ip4-2 |
| network_id | 438e4f26-0e45-4b26-9797-57d0bd817953 |
| subnetpool_id | e2c4f12d-307f-4616-a4df-203a45e6cb7f |
+-------------------+--------------------------------------+
$ neutron subnet-create --name subnet-ip6-2 --ip_version 6 \
--ipv6-ra-mode slaac --ipv6-address-mode slaac \
--subnetpool subnet-pool-ip6 network2
Created a new subnet:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| cidr | 2001:db8:a583::/64 |
| id | b157e288-748e-4c4b-9b2e-8b8e65241036 |
| name | subnet-ip6-2 |
| network_id | 438e4f26-0e45-4b26-9797-57d0bd817953 |
| subnetpool_id | 14813344-d11a-4896-906c-e4c378291058 |
+-------------------+--------------------------------------+
Dengan membuat subnet dari scoped subnet pool, jaringan dikaitkan dengan address scope.
$ neutron net-show network2
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| id | 4f677ab6-32a1-452c-8feb-b0b6b7ed1a0f |
| ipv4_address_scope | 97702525-e145-40c8-8c8f-d415930d12ce |
| ipv6_address_scope | 13b83fb2-beb4-4533-9e12-4bf9a5721ef5 |
| name | network2 |
| subnets | d5d68ac3-3eaa-439e-b75b-0e0b2c1d221a |
| | 917f9360-a840-45c1-83a1-2a093bd7b376 |
+-------------------------+--------------------------------------+
Menghubungkan router untuk masing-masing subnet tenant yang telah dibuat, misalnya, menggunakan router disebut `` router1``:
$ neutron router-interface-add router1 subnet-ip4-1
Added interface 73d832e1-e4a7-4029-9a66-f4e0f4ba0e76 to router router1.
$ neutron router-interface-add router1 subnet-ip4-2
Added interface 94b4cdb2-875d-4ab3-9a6e-803c3626c4d9 to router router1.
$ neutron router-interface-add router1 subnet-ip6-1
Added interface f35c4541-d529-4bd8-af4e-1b069269c263 to router router1.
$ neutron router-interface-add router1 subnet-ip6-2
Added interface f5904a4b-9547-4c08-bc7e-bc5fc71a8db9 to router router1.
Contoh ini menunjukkan bagaimana untuk memeriksa konektivitas antara jaringan dengan address scope.
Meluncurkan dua instance, instance1 pada network1 dan instance2 pada network2. Mengasosiasikan floating IP address untuk kedua instance.
Sesuaikan security groups untuk mengizinkan ping dan SSH (IPv4 dan IPv6):
$ nova list
+--------------+-----------+---------------------------------------------------------------------------+
| ID | Name | Networks |
+--------------+-----------+---------------------------------------------------------------------------+
| 97e49c8e-... | instance1 | network1=2001:db8:80d2:c4d3:f816:3eff:fe52:b69f, 198.51.100.3, 172.24.4.3 |
| ceba9638-... | instance2 | network2=203.0.112.3, 2001:db8:a583:0:f816:3eff:fe42:1eeb, 172.24.4.4 |
+--------------+-----------+---------------------------------------------------------------------------+
Terlepas dari address scope, IP floating dapat ping dari jaringan eksternal:
$ ping -c 1 172.24.4.3
1 packets transmitted, 1 received, 0% packet loss, time 0ms
$ ping -c 1 172.24.4.4
1 packets transmitted, 1 received, 0% packet loss, time 0ms
Anda sekarang bisa ping `` instance2`` langsung karena `` instance2`` men-share address scope yaang sama dengan jaringan eksternal:
Catatan
BGP routing dapat digunakan untuk secara otomatis mengatur rute statis untuk instances Anda.
# ip route add 203.0.112.0/26 via 172.24.4.2
$ ping -c 1 203.0.112.3
1 packets transmitted, 1 received, 0% packet loss, time 0ms
# ip route add 2001:db8:a583::/64 via 2001:db8::1
$ ping6 -c 1 2001:db8:a583:0:f816:3eff:fe42:1eeb
1 packets transmitted, 1 received, 0% packet loss, time 0ms
Anda tidak bisa ping `` instance1`` langsung karena address scope tidak cocok:
# ip route add 198.51.100.0/26 via 172.24.4.2
$ ping -c 1 198.51.100.3
1 packets transmitted, 0 received, 100% packet loss, time 0ms
# ip route add 2001:db8:80d2:c4d3::/64 via 2001:db8::1
$ ping6 -c 1 2001:db8:80d2:c4d3:f816:3eff:fe52:b69f
1 packets transmitted, 0 received, 100% packet loss, time 0ms
Jika address scopes cook antar jaringan maka me-ping dan me-rute tranffic lainnya langsung. Jika lingkup tidak cocok antar jaringan, router dapat men-drop tranffic atau memberlakukan NAT untuk melintasi batas scope.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.