IPv6

IPv6

Scope (lingkup):

  • Cara mengaktifkan instance dual-stack (IPv4 dan IPv6 diaktifkan).

  • Bagaimana contoh menerima alamat IPv6.

  • Bagaimana instance ini berkomunikasi melewati router ke subnet lain atau internet.

  • Bagaimana instance ini berinteraksi dengan layanan OpenStack lainnya.

Untuk mengaktifkan jaringan dual-stack dalam OpenStack Networking hanya membutuhkan pembuatan subnet dengan field ip_version diatur ke 6, kemudian atribut IPv6 (`` ipv6_ra_mode`` dan `` ipv6_address_mode``) terpasang. ipv6_ra_mode dan `` ipv6_address_mode`` akan dijelaskan secara rinci pada bagian berikutnya. Akhirnya, subnet cidr perlu disediakan.

Tidak dalam lingkup

Hal tidak dalam lingkup dokumen ini meliputi:

  • Satu tumpukan (stack) jaringan proyek IPv6

  • OpenStack mengkontrol komunikasi antara server dan layanan melalui jaringan IPv6.

  • Koneksi ke API OpenStack melalui jaringan transportasi IPv6

  • IPv6 multicast
  • IPv6 mendukungan dalam hubungannya dengan keluar dari tree router, switch, layanan atau agen baik dalam faktor bentuk fisik atau virtual.

Subnet neutron dan atribut API IPv6

Sebagaimana Juno, layanan OpenStack Networking (neutron) menyediakan dua atribut baru ke objek subnet, yang memungkinkan pengguna API untuk mengkonfigurasi subnet IPv6.

Ada dua atribut IPv6:

  • ipv6_ra_mode
  • ipv6_address_mode

Atribut ini dapat diatur untuk nilai berikut:

  • slaac
  • dhcpv6-stateful
  • dhcpv6-stateless

Atribut juga dapat dibiarkan tanpa disetel.

Alamat IPv6

Atribut ipv6_address_mode digunakan untuk mengontrol bagaimana pengalamatan ditangani oleh OpenStack. Ada sejumlah cara yang berbeda dimana guest instance dapat memperoleh alamat IPv6, dan atribut ini membuka (expose) pilihan ini untuk pengguna dari API Networking.

Penyiaran update dan perubahan router

Atribut ipv6_ra_mode digunakan untuk mengontrol penyiaran update dan perubahan router untuk subnet.

Protokol IPv6 menggunakan paket Internet Control Message Protocol (ICMPv6) sebagai cara untuk mendistribusikan informasi tentang jaringan. Paket ICMPv6 dengan pengaturan flag ke tipe 134 disebut paket “Router Advertisement”, yang menyiarkan informasi tentang router dan rute yang dapat digunakan oleh guest instance untuk mengirimkan lalu lintas jaringan.

`` ipv6_ra_mode`` digunakan untuk menentukan apakah layanan Networking harus mengirimkan paket ICMPv6, untuk subnet.

Kombinasi ipv6_ra_mode dan ipv6_address_mode

ipv6 ra mode ipv6 address mode radvd A,M,O External Router A,M,O

Deskripsi

N/S N/S Off

Not Defined (tak terdefinisikan)

Kompatibilitas mundur dengan perilaku pra-Juno IPv6.

N/S slaac Off 1,0,0

Guest instance memperoleh alamat IPv6 dari router non-OpenStack menggunakan SLAAC.

N/S dhcpv6-stateful Off 0,1,1

Saat ini tidak dilaksanakan dalam implementasi referensi.

N/S dhcpv6-stateless Off 1,0,1

Saat ini tidak dilaksanakan dalam implementasi referensi.

slaac N/S 1,0,0 Off

Saat ini tidak dilaksanakan dalam implementasi referensi.

dhcpv6-stateful N/S 0,1,1 Off

Saat ini tidak dilaksanakan dalam implementasi referensi.

dhcpv6-stateless N/S 1,0,1 Off

Saat ini tidak dilaksanakan dalam implementasi referensi.

slaac slaac 1,0,0 Off

Guest instance memperoleh alamat IPv6 dari OpenStack dikelola dengan radvd menggunakan SLAAC.

dhcpv6-stateful dhcpv6-stateful 0,1,1 Off

Guest instance memperoleh alamat IPv6 dari dnsmasq menggunakan DHCPv6 stateful dan info opsional dari dnsmasq menggunakan DHCPv6.

dhcpv6-stateless dhcpv6-stateless 1,0,1 Off

Guest instance memperoleh alamat IPv6 dari OpenStack dikelola dengan radvd menggunakan SLAAC dan info opsional dari dnsmasq menggunakan DHCPv6.

slaac dhcpv6-stateful     Invalid combination.
slaac dhcpv6-stateless     Invalid combination.
dhcpv6-stateful slaac     Invalid combination.
dhcpv6-stateful dhcpv6-stateless     Invalid combination.
dhcpv6-stateless slaac     Invalid combination.
dhcpv6-stateless dhcpv6-stateful     Invalid combination.

Pertimbangan jaringan proyek

Dataplane

Jembatan Linux dan modul dataplane Open vSwitch mendukung penerusan paket IPv6 di antara guest dan port router. Mirip dengan IPv4, tidak ada konfigurasi khusus atau pengaturan diperlukan untuk mengaktifkan dataplane untuk meneruskan paket dari sumber ke tujuan menggunakan IPv6. Perhatikan bahwa dataplanes ini akan meneruskan paket Link-local Address (LLA) antara host pada jaringan yang sama saja tanpa partisipasi atau setup oleh komponen OpenStack setelah port terhubung semua dan alamat MAC dipelajari.

Alamat untuk subnet

Ada empat metode untuk subnet untuk mendapatkannya cidr di OpenStack:

  1. tugas langsung selama pembuatan subnet melalui baris perintah (command line) atau Horizon

  2. Mengacu kolam subnet selama pembuatan subnet

Di masa depan, teknik yang berbeda dapat digunakan untuk mengalokasikan subnet untuk proyek:

  1. Menggunakan klien PD untuk meminta awalan (prefix) untuk subnet dari server PD

  2. Penggunaan modul IPAM eksternal untuk mengalokasikan subnet

Mode alamat untuk port

Catatan

Server DHCPv6 eksternal dalam teori bisa menimpa penetapan OpenStack alamat lengkap yang berdasarkan alamat EUI-64, tetapi itu tidak akan bijaksana seperti itu tidak akan konsisten melalui sistem.

IPv6 mendukung tiga skema pengalamatan yang berbeda untuk konfigurasi alamat dan untuk menyediakan informasi jaringan opsional.

Stateless Address Auto Configuration (SLAAC)

Konfigurasi alamat menggunakan Router Advertisement (RA).

DHCPv6-stateless

Konfigurasi alamat menggunakan RA dan informasi opsional menggunakan DHCPv6.

DHCPv6-stateful

Konfigurasi alamat dan informasi opsional menggunakan DHCPv6.

OpenStack bisa diatur sedemikian rupa sehingga OpenStack Networking langsung memberikan RA, penyiaran DHCP dan alamat DHCPv6 dan informasi opsional untuk jaringan mereka atau hal ini dapat didelegasikan kepada router dan layanan eksternal didasarkan pada driver yang sedang digunakan. Ada atribut dua subnet neutron - `` ipv6_ra_mode`` dan `` ipv6_address_mode`` - yang menentukan bagaimana IPv6 dan informasi jaringan disediakan untuk instance proyek:

  • `` Ipv6_ra_mode``: Menentukan siapa yang mengirimkan RA.

  • Ipv6_address_mode: Menentukan bagaimana instance mendapatkan alamat IPv6, gateway default, atau informasi opsional.

Untuk dua atribut di atas supaya menjadi efektif, enable_dhcp dari objek subnet harus diatur ke True.

Penggunaan SLAAC untuk pengalamatan

Bila menggunakan SLAAC, kombinasi didukung saat ini untuk ipv6_ra_mode dan ipv6_address_mode adalah sebagai berikut.

ipv6_ra_mode ipv6_address_mode Result

Tidak ditentukan.

SLAAC

Alamat ditugaskan penggunaan EUI-64, dan router eksternal akan digunakan untuk routing.

SLAAC SLAAC

Alamat ditugaskan penggunaan EUI-64, dan OpenStack Networking menyediakan routing.

Pengaturan ipv6_ra_mode untuk slaac akan menghasilkan router OpenStack Networking yang dikonfigurasi untuk mengirim paket RA, ketika mereka diciptakan. Hal ini menyebabkan nilai berikut ditetapkan untuk flag konfigurasi alamat dalam pesan RA:

  • Auto Configuration Flag = 1
  • Managed Configuration Flag = 0
  • Other Configuration Flag = 0

Jaringan Neutron baru atau yang sudah ada yang berisi SLAAC yang diaktifkan subnet IPv6 akan menghasilkan semua port neutron yang melekat pada jaringan menerima alamat IPv6. Hal ini karena ketika pesan broadcast RA dikirim keluar pada jaringan neutron, mereka akan diterima oleh semua port yang mampu menerima IPv6 pada jaringan, dan masing-masing port kemudian akan mengkonfigurasi alamat IPv6 berdasarkan informasi yang terdapat dalam paket RA. Dalam beberapa kasus, sebuah alamat IPv6 SLAAC akan ditambahkan ke port, selain IPv4 lain dan alamat IPv6 dimana port telah ditetapkan.

DHCPv6

Untuk DHCPv6-stateless, kombinasi yang didukung saat ini adalah sebagai berikut:

ipv6_ra_mode ipv6_address_mode Result
DHCPv6-stateless DHCPv6-stateless

Alamat dan informasi opsional penggunaan router neutron dan implementasi DHCP masing-masing.

DHCPv6-stateful DHCPv6-stateful

Alamat dan informasi opsional ditugaskan untuk penggunaan DHCPv6.

Pengaturan DHCPv6-stateless untuk ` ipv6_ra_mode`` mengkonfigurasi router neutron dengan agen radvd untuk mengirim RA. Tabel di bawah ini menangkap nilai-nilai yang ditetapkan untuk flag konfigurasi alamat di paket RA dalam skenario ini. Demikian pula, pengaturan DHCPv6-stateless untuk ipv6_address_mode mengkonfigurasi implementasi DHCP neutron untuk memberikan informasi jaringan tambahan.

  • Auto Configuration Flag = 1
  • Managed Configuration Flag = 0
  • Other Configuration Flag = 1

Dukungan router

Perilaku router neutron untuk IPv6 berbeda dengan IPv4 dalam beberapa cara.

Port router internal, yang bertindak sebagai port gateway default untuk jaringan, akan berbagi port umum untuk semua subnet IPv6 terkait dengan jaringan. Ini berarti bahwa akan ada sebuah antarmuka router internal yang IPv6 dengan beberapa alamat IPv6 dari masing-masing subnet IPv6 yang terkait dengan jaringan dan interface router internal IPv4 yang terpisah untuk subnet IPv4. Di sisi lain, port router eksternal diperbolehkan untuk memiliki konfigurasi dual-stack dengan IPv4 dan alamat IPv6 yang ditugaskan kepada mereka.

Jaringan proyek neutron yang ditugaskan di alamat dan prefiks Global Unicast Address (GUA) tidak memerlukan NAT pada gateway port eksternal router neutron untuk mengakses dunia luar. Sebagai konsekuensi dari kurangnya NAT port router eksternal tidak memerlukan GUA untuk mengirim dan menerima dengan jaringan eksternal. Ini berarti subnet prefix GUA IPv6 tidak selalu diperlukan untuk jaringan eksternal neutron. Secara default, LLA IPv6 terkait dengan port eksternal gateway dapat digunakan untuk tujuan routing. Untuk menangani skenario ini, pelaksanaan router-gateway-set API di neutron telah dimodifikasi sehingga suatu subnet IPv6 tidak diperlukan untuk jaringan eksternal yang berhubungan dengan router neutron. Alamat LLA dari router hulu dapat dipelajari dalam dua cara.

  1. Dengan tidak adanya dukungan RA hulu, ilag ipv6_gateway dapat diatur dengan LLA router gerbang eksternal dalam file konfigurasi neutron-l3-agent. Ini juga mensyaratkan bahwa tidak ada subnet dikaitkan dengan port tersebut.

  2. Router hulu dapat mengirim RA dan router neutron otomatis akan mempelajari LLA next-hop, tersedia lagi bahwa tidak ada subnet ditugaskan dan flag ipv6_gateway tidak diatur.

Secra efektif flag ipv6_gateway diutamakan melalui RA yang diterima dari router hulu. Jika ini diinginkan untuk menggunakan GUA next hop yang dicapai dengan mengalokasikan subnet ke port router eksternal dan menempatkan alamat GUA router hulu sebagai gateway untuk subnet.

Catatan

Bahwa itu harus memungkinkan untuk proyek untuk berkomunikasi satu sama lain pada jaringan terisolasi (jaringan tanpa port router) menggunakan LLA dengan tanpa bahkan tidak ada partisipasi pada bagian dari OpenStack. Para penulis bagian ini belum membuktikan bahwa kebenaran semua skenario itu.

Catatan

Bila menggunakan neutron L3 agent dalam konfigurasi dimana itu adalah auto-configuring alamat IPv6 melalui SLAAC, dan agen sedang mempelajari rute IPv6 defaultnya dari ICMPv6 Router Advertisement, itu mungkin perlu untuk mengatur sysctl net.ipv6.conf . <physical_interface> .accept_ra dengan nilai 2 agar routing berfungsi dengan benar. Untuk penjelasan lebih rinci, silakan lihat bug <https://bugs.launchpad.net/neutron/+bug/1616282> __.

Fitur Router Terdistribusi milik Neutron dan IPv6

IPv6 tidak bekerja ketika fungsi Distributed Virtual Router diaktifkan, tetapi semua lalu lintas masuk/keluar (ingress/egress) adalah melalui router terpusat (oleh karena itu, tidak didistribusikan). Banyak pekerjaan diperlukan untuk sepenuhnya mengaktifkan fungsi ini.

Layanan canggih

VPNaaS

VPNaaS mendukung IPv6, namun dukungan di Kilo dan rilis sebelumnya akan memiliki beberapa bug yang mungkin membatasi bagaimana hal itu dapat digunakan. Lebih menyeluruh dan lengkap pengujian dan perbaikan bug telah dilakukan sebagai bagian dari rilis Liberty. IPv6 yang berbasis VPN-as-a-Service dikonfigurasi mirip dengan konfigurasi IPv4. Salah satu atau kedua peer_address dan `` peer_cidr`` dapat ditetapkan sebagai alamat IPv6. Pilihan mode pengalamatan dan mode router dijelaskan di atas seharusnya tidak berdampak dukungan.

LBaaS

TODO

FWaaS

FWaaS memungkinkan penciptaan aturan berbasis IPv6.

NAT & IP mengambang

Pada waktu saat OpenStack Networking tidak menyediakan fasilitas apapun untuk mendukung setiap rasa NAT dengan IPv6. Tidak seperti IPv4 tidak ada dukungan tertanam saat ini untuk IP mengambang dengan IPv6. Hal ini diasumsikan bahwa IPv6 antara proyek menggunakan GUA tanpa tumpang tindih di seluruh proyek.

Pertimbangan keamanan

Konfigurasi interface (antarmuka) dari guest

OpenStack saat ini tidak mendukung ekstensi privasi yang didefinisikan oleh RFC 4941. Interface identifier dan DUID yang digunakan harus langsung berasal dari MAC seperti yang dijelaskan dalam RFC 2373. Host komputasi tidak harus mengatur untuk memanfaatkan ekstensi privasi saat membuat identifier interface identifier mereka .

Tidak ada ketentuan untuk layanan metadata berbasis IPv6 mirip dengan apa yang disediakan untuk IPv4. Dalam kasus dual stack Guest meskipun, hal itu selalu mungkin untuk menggunakan layanan metadata IPv4 sebagai gantinya.

Tidak seperti IPv4, MTU dari jaringan tertentu dapat disampaikan dalam pesan RA yang dikirim oleh router dan tidak dalam pesan DHCP.

Pertimbangan jaringan manajemen dan kontrol OpenStack

Pada rilis Kilo, upaya yang cukup telah dikerjakan untuk memastikan jaringan proyek dapat menangani ganda IPv6 stack dan transportasi IPv4 seluruh varietas konfigurasi yang dijelaskan di atas. Jaringan kontrol OpenStack dapat dijalankan dalam konfigurasi stack dual, dan OpenStack endpoint API dapat diakses melalui jaringan IPv6. Pada saat ini, tipe terowongan Open vSwitch (OVS) - STT, VXLAN, GRE, mendukung titik akhir (endpoint) IPv4 dan IPv6 .

Penyerahan awalan (prefix delegation)

Dari rilis Liberty dan seterusnya, OpenStack Networking mendukung IPv6 prefix delegation. Bagian ini menjelaskan langkah konfigurasi dan alur kerja yang diperlukan untuk menggunakan IPv6 prefix delegation untuk memberikan alokasi otomatis subnet CIDR. Hal ini memungkinkan Anda sebagai administrator OpenStack mengandalkan server DHCPv6 eksternal (ke layanan OpenStack Networking) untuk mengelola prefix jaringan proyek Anda.

Catatan

Prefix delegation menjadi tersedia dalam rilis Liberty, tidak tersedia dalam rilis Kilo. Router HA dan DVR saat ini tidak didukung oleh fitur ini.

Configuring OpenStack Networking untuk prefix delegation (penyerahan awalan)

Untuk mengaktifkan prefix delegation, edit file /etc/neutron/neutron.conf. Jika Anda menjalankan OpenStack Liberty, buatlah perubahan berikut:

default_ipv6_subnet_pool = prefix_delegation

Sebaliknya jika Anda menjalankan OpenStack Mitaka, buatlah perubahan ini:

ipv6_pd_enabled = True

Catatan

Jika Anda tidak menggunakan driver berbasis dibbler default untuk prefix delegation, maka Anda juga perlu mengatur driver dalam /etc/neutron/neutron.conf:

pd_dhcp_driver = <class path to driver>

Driver lain dari yang standar mungkin memerlukan konfigurasi tambahan, silakan lihat Konfigurasi tambahan

Ini memberitahu OpenStack Networking supaya menggunakan mekanisme prefix delegation untuk alokasi subnet ketika pengguna tidak menyediakan CIDR atau id kolam subnet saat membuat subnet.

Requirements

Untuk menggunakan fitur ini, Anda perlu server DHCPv6 berkemampuan prefix delegation yang dicapai dari node OpenStack Networking. Ini bisa menjadi perangkat lunak yang berjalan pada node OpenStack Networking atau di tempat lain, atau router fisik. Untuk tujuan panduan ini kita menggunakan server DHCPv6 open source, Dibbler. Dibbler tersedia di banyak manajer paket Linux, atau dari sumber di https://github.com/tomaszmrugalski/dibbler.

Bila menggunakan implementasi referensi dari driver prefix delegation OpenStack Networking, Dibbler juga harus diinstal pada node OpenStack Networking Anda untuk melayani sebagai klien DHCPv6. Versi 1.0.1 atau lebih tinggi diperlukan.

Panduan ini mengasumsikan bahwa Anda menjalankan server Dibbler pada node jaringan dimana jembatan jaringan eksternal ada. Jika Anda sudah memiliki server DHCPv6 yang mampu prefix delegation di tempat, maka anda dapat melewati (skip) bagian berikut.

Malakukan konfigurasi server Dibbler

Setelah menginstal Dibbler, edit file /etc/dibbler/server.conf:

script "/var/lib/dibbler/pd-server.sh"

iface "br-ex" {
    pd-class {
        pd-pool 2001:db8:2222::/48
        pd-length 64
    }
}

Opsi yang digunakan dalam file konfigurasi di atas adalah:

  • script, poin untuk script untuk dijalankan ketika awalan didelegasikan atau dilepaskan. Ini hanya diperlukan jika Anda ingin instance pada subnet Anda untuk memiliki akses jaringan eksternal. Lebih di bawah ini.

  • `` Iface``, nama antarmuka jaringan untuk mendengarkan pesan awalan delegasi.

  • pd-pool, prefiks yang lebih besar dari mana Anda ingin prefiks Anda didelegasikan untuk datang. Contoh yang diberikan ini sudah cukup jika Anda tidak memerlukan akses jaringan eksternal, jika tidak prefix routable global yang unik ini diperlukan.

  • `` Pd-length`` Panjang dimana prefiks akan mendelegasikan. Ini harus menjadi 64 untuk bekerja dengan implementasi referensi OpenStack Networking saat ini.

Untuk menyediakan akses jaringan eksternal untuk instance Anda, server Dibbler Anda juga perlu membuat rute baru untuk setiap awalan yang didelegasikan. Hal ini dilakukan dengan menggunakan file script di dalam file konfigurasi di atas. Edit file /var/lib/dibbler/pd-server.sh:

if [ "$PREFIX1" != "" ]; then
    if [ "$1" == "add" ]; then
        sudo ip -6 route add ${PREFIX1}/64 via $REMOTE_ADDR dev $IFACE
    fi
    if [ "$1" == "delete" ]; then
        sudo ip -6 route del ${PREFIX1}/64 via $REMOTE_ADDR dev $IFACE
    fi
fi

Variabel yang digunakan dalam file script di atas adalah:

  • $PREFIX1, Awalan yang ditambahkan/dihapus oleh server Dibbler.

  • $1, Operasi yang dilakukan.

  • $REMOTE_ADDR Alamat IP dari klien Dibbler yang meminta.

  • $IFACE, Antarmuka jaringan dimana permintaan itu diterima.

Hal di atas adalah semua yang Anda butuhkan dalam skenario ini, tetapi informasi lebih tentang cara menginstal, mengkonfigurasi, dan menjalankan Dibbler tersedia di buku petunjuk Dibbler, di http://klub.com.pl/dhcpv6/doc/dibbler-user.pdf.

Untuk memulai server Dibbler Anda, jalankan:

# dibbler-server run

Atau untuk berjalan dalam modus tanpa kepala (headless mode):

# dibbler-server start

Bila menggunakan DevStack, Hal ini penting untuk memulai server Anda setelah skrip stack.sh telah selesai untuk memastikan bahwa antarmuka jaringan yang diperlukan telah dibuat.

Alur kerja pengguna

Pertama, buat jaringan dan subnet IPv6:

$ neutron net-create ipv6-pd

Created a new network:
+-----------------+--------------------------------------+
| Field           | Value                                |
+-----------------+--------------------------------------+
| admin_state_up  | True                                 |
| id              | 31ef3e85-111f-4772-8172-8e4a404a7476 |
| mtu             | 1450                                 |
| name            | ipv6-pd                              |
| router:external | False                                |
| shared          | False                                |
| status          | ACTIVE                               |
| subnets         |                                      |
| tenant_id       | 28b39bcce66e4a648f82e2362b958b60     |
+-----------------+--------------------------------------+

$ neutron subnet-create ipv6-pd --name ipv6-pd-1 --ip_version 6 \
  --ipv6_ra_mode slaac --ipv6_address_mode slaac --use_default_subnetpool

Created a new subnet:
+-------------------+--------------------------------------------------+
| Field             | Value                                            |
+-------------------+--------------------------------------------------+
| allocation_pools  | {"start": "::2", "end": "::ffff:ffff:ffff:fffe"} |
| cidr              | ::/64                                            |
| dns_nameservers   |                                                  |
| enable_dhcp       | True                                             |
| gateway_ip        | ::1                                              |
| host_routes       |                                                  |
| id                | ea139dcd-17a3-4f0a-8cca-dff8b4e03f8a             |
| ip_version        | 6                                                |
| ipv6_address_mode | slaac                                            |
| ipv6_ra_mode      | slaac                                            |
| name              | ipv6-pd-1                                        |
| network_id        | 31ef3e85-111f-4772-8172-8e4a404a7476             |
| subnetpool_id     | prefix_delegation                                |
| tenant_id         | 28b39bcce66e4a648f82e2362b958b60                 |
+-------------------+--------------------------------------------------+

Subnet pada awalnya dibuat dengan CIDR sementara sebelum subnet dapat diberikan oleh prefix delegation. Jumlah subnet dengan CIDR sementara ini bisa eksis tanpa menimbulkan error tumpang tindih. subnetpool_id secara otomatis diatur untuk prefix_delegation.

Untuk memicu proses prefix delegation, buat antarmuka router antara subnet ini dan router dengan interface yang aktif pada jaringan eksternal:

$ neutron router-interface-add cb9b7a2c-0ffa-412f-989a-1e6c60e1c02f \
  ea139dcd-17a3-4f0a-8cca-dff8b4e03f8a
Added interface a7e4d663-e3fc-4b8f-909f-865c397a930e to router
cb9b7a2c-0ffa-412f-989a-1e6c60e1c02f.

Mekanisme prefix delegation kemudian mengirimkan permintaan melalui jaringan eksternal ke server prefix delegation Anda, yang menjawab dengan delegated prefix. Subnet tersebut kemudian diperbarui dengan prefix baru, termasuk menerbitkan alamat IP baru untuk semua port:

$ neutron subnet-show ipv6-pd-1

+-------------------+-------------------------------------------------+
| Field             | Value                                           |
+-------------------+-------------------------------------------------+
| allocation_pools  | {"start": "2001:db8:2222:6977::2",              |
|                   | "end":"2001:db8:2222:6977:ffff:ffff:ffff:fffe"} |
| cidr              | 2001:db8:2222:6977::/64                         |
| dns_nameservers   |                                                 |
| enable_dhcp       | True                                            |
| gateway_ip        | 2001:db8:2222:6977::1                           |
| host_routes       |                                                 |
| id                | ea139dcd-17a3-4f0a-8cca-dff8b4e03f8a            |
| ip_version        | 6                                               |
| ipv6_address_mode | slaac                                           |
| ipv6_ra_mode      | slaac                                           |
| name              | ipv6-pd-1                                       |
| network_id        | 31ef3e85-111f-4772-8172-8e4a404a7476            |
| subnetpool_id     | prefix_delegation                               |
| tenant_id         | 28b39bcce66e4a648f82e2362b958b60                |
+-------------------+-------------------------------------------------+

Jika server prefix delegation dikonfigurasi untuk mendelegasikan prefiks routable global dan mengatur rute, maka setiap instance dengan port pada subnet ini sekarang harus memiliki akses jaringan eksternal.

Penghapusan antarmuka router menyebabkan subnet yang akan dikembalikan ke CIDR sementara, dan semua port memiliki IP yang diperbaruinya. Peminjaman prefiks dilepaskan dan diperpanjang secara otomatis bila diperlukan.

Referensi

Link berikut memberikan tutorial langkah demi langkah besar tentang pengaturan IPv6 dengan OpenStack: http://www.debug-all.com/?p=52

Konfigurasi tambahan

Neutron dhcpv6_pd_agent

Untuk mengaktifkan driver untuk ini dhcpv6_pd_agent, set pd_dhcp_driver dalam /etc/neutron/neutron.conf:

pd_dhcp_driver = neutron_pd_agent

Untuk memungkinkan neutron-pd-agen untuk berkomunikasi dengan server prefix delegation, Anda harus mengatur jaringan yang antarmukanya digunakan untuk komunikasi eksternal. Dalam DevStack default untuk ini adalah br-ex:

pd_interface = br-ex

Setelah Anda menumpuknya, jalankan perintah di bawah ini untuk memulai neutron-pd-agent:

neutron-pd-agent --config-file /etc/neutron/neutron.conf
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.