+ All Categories
Home > Documents > Adding IPv6 to the application layer

Adding IPv6 to the application layer

Date post: 16-Mar-2016
Category:
Upload: ardice
View: 41 times
Download: 0 times
Share this document with a friend
Description:
Adding IPv6 to the application layer. APNIC 27 Manila 2009 - IPv6 in 3D. Adding IPv6 to the application layer. Koichi Taniguchi livedoor Co., Ltd. Feb 25th, 2009. Adding IPv6 to the application layer. www.livedoor.com (*) 2.3 billion PV/month 23 million UU/month * autumn 2008. - PowerPoint PPT Presentation
22
Adding IPv6 to the application layer Koichi Taniguchi livedoor Co., Ltd. Feb 25th, 2009 APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
Transcript
Page 1: Adding IPv6 to the application layer

Adding IPv6 to the application layer

Koichi Taniguchilivedoor Co., Ltd.

Feb 25th, 2009

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 2: Adding IPv6 to the application layer

Background

www.data-hotel.net

LIVEDOOR/AS17707APNIC member

EDGE Co.Lab v6provides IPv6 testing environment.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

www.livedoor.com(*)

2.3 billion PV/month23 million UU/month

* autumn 2008

Page 3: Adding IPv6 to the application layer

Problems at the beginning•A lot of problems.•What I need to do?•How can I develop web

applications on IPv6?•Not found any useful tips, hints.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 4: Adding IPv6 to the application layer

Research and development•I researched and developed.•Blogged it.•"8 tips how to add IPv6 to your

application if you don't have enough knowledge about it"

•http://tinyurl.com/IPv6-dev-ja•English version is brought to you now!

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 5: Adding IPv6 to the application layer

#1 You need IPv6 connectivity•Each gateways should handle IPv6.•Each OS should handle IPv6.•... or IPv4 client -> IPv6 HTTP

proxy•Some of enterprise load balancer

often don’t support IPv6.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 6: Adding IPv6 to the application layer

#2 SSL server ID is same as before•Using SSL•IPv4 server ID <=> IPv6 server ID

(same!)•Established -> SSL server key

exchange (immediately)•It doesn’t matter which version of IP

you’re using.APNIC 27 Manila 2009 - IPv6 in

3D

Adding IPv6 to the application layer

Page 7: Adding IPv6 to the application layer

#3 Easy Apache configuration•Apache 2.x (or later) + APR

(Apache Portable Runtime) are IPv6 ready!

•There are few differences.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 8: Adding IPv6 to the application layer

•IPv4ListenNameVirtualHost<VirtualHost> :</VirtualHost>

Listen 192.0.2.36:80NameVirtualHost 192.0.2.36:80<VirtualHost 192.0.2.36:80> :</VirtualHost>

Listen 192.0.2.36NameVirtualHost 192.0.2.36<VirtualHost 192.0.2.36> :</VirtualHost>

#3 Easy Apache configuration

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 9: Adding IPv6 to the application layer

•IPv6ListenNameVirtualHost<VirtualHost> :</VirtualHost>

Listen 2001:db8::dead:beef:80NameVirtualHost 2001:db8::dead:beef:80<VirtualHost 2001:db8::dead:beef:80> :</VirtualHost>

Listen [2001:db8::dead:beef]:80NameVirtualHost [2001:db8::dead:beef]:80<VirtualHost [2001:db8::dead:beef]:80 > :</VirtualHost>

#3 Easy Apache configuration

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 10: Adding IPv6 to the application layer

•Exceptional caseAllowDenyAllow from 192.0.2.8Deny from 192.0.2.16Allow from 192.0.2.8/255.255.255.249Deny from 192.0.2.16/255.255.255.249

#3 Easy Apache configuration

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Allow from 192.0.2.8/29Deny from 192.0.2.16/29Allow from 192.0.2.8/29Deny from 192.0.2.16/29Allow from 2001:db8::c0:ffee/10

Page 11: Adding IPv6 to the application layer

#4 ping and traceroute aren’t able to use on IPv6

•We usually use ping and traceroute command.

•Most of connecting commands are suffixed with “6”.

% ping6 2001:db8:bad:face::dead% traceroute6 2001:db8:bad:face::deadC:\WINDOWS>tracert6 2001:db8:bad:face::dead

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 12: Adding IPv6 to the application layer

#5 Use AAAA record in DNS•We use A record.•Names won’t be resolved to IPv6

address.•Add IPv6 entries to the AAAA

(quad-A) record.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 13: Adding IPv6 to the application layer

#6 Which version of IP is the client using?

•Dual-stack and same hostname.•Vary based on the version.•REMOTE_ADDR environment

variable.•You don’t need to check the

format of addresses strictly.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 14: Adding IPv6 to the application layer

•Listening to proxied requests from reverse proxy.•Add extra header on reverse

proxy with using mod_headers.

#6 Which version of IP is the client using?

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 15: Adding IPv6 to the application layer

#6 Which version of IP is the client using?

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Listen 80

# IP-based virtual hosting<VirtualHost [2001:db8::babe::face]:80> ServerName babeface.example.com RewriteEngine On : RequestHeader set X-IP-Version 6</VirtualHost>

<VirtualHost 192.0.2.1:80> ServerName babeface.example.com RewriteEngine On : RequestHeader set X-IP-Version 4</VirtualHost>

Listen 80

# IP-based virtual hosting<VirtualHost [2001:db8::babe::face]:80> ServerName babeface.example.com RewriteEngine On : RequestHeader set X-IP-Version 6</VirtualHost>

<VirtualHost 192.0.2.1:80> ServerName babeface.example.com RewriteEngine On : RequestHeader set X-IP-Version 4</VirtualHost>

Page 16: Adding IPv6 to the application layer

#6 Which version of IP is the client using?

•Getting IP version.•HTTP_X_IP_VERSION environment

variable is 4 or 6.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 17: Adding IPv6 to the application layer

#7 Expand the column length•To save remote addresses into the

DB.•IPv4•IPv6• INET_ADDRSTRLEN (16) - 1 (nul)

-> INET6_ADDRSTRLEN (46) - 1 (nul)•15 bytes -> 45 bytes

255.255.255.255FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.255

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 18: Adding IPv6 to the application layer

#8 Check the access log parser•Many access log parsers.•Some of them are failed to parse

some lines (including IPv6 address).

•Check your parser.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 19: Adding IPv6 to the application layer

Critical issues• Web application developers:

• are poorly informed about IPv6.• have misunderstandings of IPv6.

• know that IPv4 will be exhausted.• aren’t sure when it will be exhausted.• hope that some new technology will appear to avoid

IPv4 exhaustion.• aren’t motivated to add IPv6.• think that IPv6 doesn’t have any advantages.• don’t think that IPv4 has some serious disadvantage.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 20: Adding IPv6 to the application layer

Critical issuesImagine

The all of interesting websiteswill be phased out in 2011.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 21: Adding IPv6 to the application layer

Conclusion•Please call out and introduce the

fact to some L7 developer you know.

•I wish this slides will be Bible for web application developers.

Bridging the layers is our task.

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

Page 22: Adding IPv6 to the application layer

Thank you

APNIC 27 Manila 2009 - IPv6 in 3D

Adding IPv6 to the application layer

[email protected]://twitter.com/nipotanhttp://search.cpan.org/~taniguchi/


Recommended