Theo báo cáo của Cisco năm 2010 thì tài nguyên IPv4 đã cạn kiệt. Quay ngược thời gian , số lượng các IPv4 đã chạm đến ngưỡng giới hạn vào năm 1992 nhưng với sự ra đời của CIDR đã giúp nó vẫn tồn tại gần 20 chục năm. Do đó việc sử dụng IPv6 là yêu cầu vô cùng cấp thiết với các ISP và hãy thử xem IPv6 được đưa vào ứng dụng trong cloud, cụ thể là OpenStack như thế nào.

1. Các lưu ý về IPv6

Có 2 phương pháp để determine 64-bit Interface ID:

- Thông qua Mac Address của Host: Host sẽ determine Interface ID bằng cách lấy 48-bit địa chỉ Mac của mình và extend thành 64-bit.

- Randomly Generating (RFC 3041): Host sẽ determine Interface ID bằng cách tự khởi tạo một cách ngẫu nhiên một dãy số 64-bit

Nếu ta sử dụng VXLAN thì MTU của packet sẽ được đẩy lên với giá trị cao hơn, được tính bằng Ethernet payload 1500 bytes và overhead Một số vendor cho rằng 50 bytes cho overhead là cần thiết (bao gồm 20 bytes cho IPv4 header, 8 bytes UDP header, 8 bytes VXLAN header, 14 bytes MAC header), do đó MTU lúc này sẽ là 1550 bytes (trong trường hợp không sử dụng extension như VLAN tag).

Nếu ta dùng IPv6 thì header của nó được cố định với giá trị 40 bytes, do đó MTU lúc này ít nhất đạt được 1570 bytes. Sự thay đổi của MTU kéo theo sự thay đổi cần thiết của các thiết bị ảo hóa như vSwitch hay thiết bị vật lý như TOR switch, routers, etc.

2. IPv6 trong OpenStack 

Khi ta tạo subnet trong OpenStack, ta sẽ có thêm 2 attributes đó là: ipv6_ra_mode và ipv6_address_model.

Attribute

Chức năng

Giá trị

ipv6_ra_mode

Quyết định bit AMO và phương pháp gửi RA (Routing Advertise)(RA sẽ được gửi bởi Neutron router hay router vật lý?)

dhcpv6-statefull

dhcpv6-stateless

SLAAC (Stateless Address Autoconfiguration)

ipv6_address_model

Quyết định cách thức máy ảo nhận dạng gateway, địa chỉ IPv6 và các thông tin khác

dhcpv6-statefull

dhcpv6-stateless

SLAAC (Stateless Address Autoconfiguration)

Cách thức hoạt động của SLAAC:

- SLAAC là default model của IPv6

- Máy ảo sẽ khởi tạo một Interface ID như là một địa chỉ EUI-64 dựa trên địa chỉ MAC của máy ảo.

- IPv6 Prefix sẽ được cung cấp cho máy ảo thông qua RA (Routing Table). RA chứa các Prefix, default gateway, Prefix lifetime của subnet.

- Các RA sẽ được gửi theo chu kì bởi router để refresh lifetime.

- Sự kết hợp các attributes của subnet khi sử dụng SLAAC:

ipv6_ra_mode

ipv6_address_mode

Kết qủa

SLAAC

Not specified

Đánh địa chỉ (addressing) sử dụng Neutron router

Not specified

SLAAC

Đánh địa chỉ (addressing) sử dụng router ngoài (router vật lý)

SLAAC

SLAAC

Đánh địa chỉ (addressing) sử dụng Neutron router

- Mô hình triển khai SLAAC:

slaac

Source: Cisco

Ngoài ra việc sử dụng SLAAC sẽ tác động đến radvd agent trong việc gửi RA. Thiết lập giá trị cho address configuration flag trong RA sẽ cho phép các phương thức gửi RA thông qua Neutron router.

Cách thức hoạt động của DHCPv6:

- Ta phải cấu hình cho network để không cung cấp SLAAC prefix.

- Cấu hình cho máy ảo để nhận DHCPv6 thay vì SLAAC (thiết lập bit 'M' để RA chứa flag)

- DHCPv6 hoạt động tương tự như DHCPv4. Máy ảo sẽ yêu cầu một địa chỉ IPv6 từ DHCPv6 server và nhận 1 phản hồi với địa chỉ IPv6 được chứa bên trong và các thông tin khác như domain name, DNS resolver.

ipv6_ra_mode

ipv6_address_mode

Kết quả trong việc đánh địa chỉ

DHCPv6-stateless

Not specified

Sử dụng dịch vụ DHCP ngoài và Neutron router

Not specified

DHCPv6-stateless

Sử dụng Neutron DHCP và router ngoài

DHCPv6-stateless

DHCPv6-stateless

Sử dụng Neutron router và Neutron DHCP

Mô hình triển khai DHCPv6 statelessstateless

Source: Cisco

Tương tự như SLAAC trong việc thiết lập address configuration flag.

ipv6_ra_mode

ipv6_address_mode

Kết quả trong việc đánh địa chỉ

DHCPv6-statelful

Not specified

Sử dụng dịch vụ DHCP ngoài

Not specified

DHCPv6-statelful

Sử dụng Neutron DHCP

DHCPv6-stateful

DHCPv6-statelful

Sử dụng Neutron DHCP

Tương tự, ta cũng cần lưu trong việc thiết lập address configuration flag

3. Thách thức của IPv6 trong Openstack:

- Một trong những giới hạn của OpenStack hiện tại đó chính là đáp ứng được nhu cầu của các ứng dụng sử dụng IPv6. Các nhà cung cấp dịch vụ cloud tin rằng IPv6 sẽ tạo nên sự khác biệt đáng kể trong việc đáp ứng được nhu cầu về traffic ngày một gia tăng của thị trường các thiết bị thông minh. Hầu hết các ứng dụng đều nằm ở tầng SaaS và việc cung cấp sự truy cập các ứng dungj cho hàng tỷ các thiết bị trong tương lai đòi hỏi sự tích hợp vô cùng cấp thiết IPv6 trong Cloud. IoT (Internet of Thing) cần các tiền đề của Cloud nhưng IoT chỉ thực hiện được khi và chỉ khi IPv6 được sử dụng.

- IPv6 sẽ ảnh hưởng rất nhiều đến các yếu tố về mặt cấu trúc của OpenStack đã được xây dựng xoay quanh IPv4 như cấu trúc không gian địa chỉ, security. IPv6 sẽ ảnh hưởng mạnh mẽ nhất đến Nova và Neutron.

- Việc security của IPv6 cần phải được hỗ trợ trong OpenStack. Đã có một số sự thay đổi trong security group của OpenStack chính là việc sử dụng ICMPv6. Bên cạnh đó, OpenStack không hỗ trợ IPv6 floating IP như IPv4 floating IP nhằm giải quyết vấn đề về Duplicate Address Detection (DAD) trong các message multicast khi sử dụng SLAAC.

24-6-2015

VietStack Team