Adding IPv6 to the application layer <ul><li>Koichi Taniguchi </li></ul><ul><li>livedoor Co., Ltd. </li></ul><ul><li>Feb 2...
Background EDGE Co.Lab v6 provides IPv6 testing environment. www.data-hotel.net LIVEDOOR/AS17707 APNIC member APNIC 27 Man...
Problems at the beginning <ul><li>A lot of problems. </li></ul><ul><ul><li>What I need to do? </li></ul></ul><ul><ul><li>H...
Research and development <ul><li>I researched and developed. </li></ul><ul><li>Blogged it. </li></ul><ul><ul><li>&quot;8 t...
#1 You need IPv6 connectivity <ul><li>Each gateways should handle IPv6. </li></ul><ul><li>Each OS should handle IPv6. </li...
#2 SSL server ID is same as before <ul><li>Using SSL </li></ul><ul><ul><li>IPv4 server ID <=> IPv6 server ID (same!) </li>...
#3 Easy Apache configuration <ul><li>Apache 2.x (or later) + APR (Apache Portable Runtime) are IPv6 ready! </li></ul><ul><...
<ul><li>IPv4 </li></ul>#3 Easy Apache configuration Listen NameVirtualHost <VirtualHost> : </VirtualHost> Listen 192.0.2.3...
<ul><li>IPv6 </li></ul>#3 Easy Apache configuration Listen NameVirtualHost <VirtualHost> : </VirtualHost> Listen 2001:db8:...
<ul><li>Exceptional case </li></ul>#3 Easy Apache configuration Allow Deny Allow from 192.0.2.8 Deny from 192.0.2.16 Allow...
#4 ping and traceroute aren’t able to use on IPv6 <ul><li>We usually use ping and traceroute command. </li></ul><ul><li>Mo...
#5 Use AAAA record in DNS <ul><li>We use A record. </li></ul><ul><ul><li>Names won’t be resolved to IPv6 address. </li></u...
#6 Which version of IP is the client using? <ul><li>Dual-stack and same hostname. </li></ul><ul><ul><li>Vary based on the ...
<ul><li>Listening to proxied requests from reverse proxy. </li></ul><ul><ul><li>Add extra header on reverse proxy with usi...
#6 Which version of IP is the client using? APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer Listen ...
#6 Which version of IP is the client using? <ul><li>Getting IP version. </li></ul><ul><ul><li>HTTP_X_IP_VERSION  environme...
#7 Expand the column length <ul><li>To save remote addresses into the DB. </li></ul><ul><ul><li>IPv4 </li></ul></ul><ul><u...
#8 Check the access log parser <ul><li>Many access log parsers. </li></ul><ul><ul><li>Some of them are failed to parse som...
Critical issues <ul><li>Web application developers: </li></ul><ul><ul><li>are poorly informed about IPv6. </li></ul></ul><...
Critical issues Imagine The all of interesting websites will be phased out in  2011 . APNIC 27 Manila 2009 - IPv6 in 3D Ad...
Conclusion <ul><li>Please call out and introduce the fact to some L7 developer you know. </li></ul><ul><li>I wish this sli...
Thank you [email_address] http://twitter.com/nipotan http://search.cpan.org/~taniguchi/ APNIC 27 Manila 2009 - IPv6 in 3D ...
Upcoming SlideShare
Loading in …5
×

Adding IPv6 to the application layer

7,565 views

Published on

also you can watch the movie and have the transcript of it at http://meetings.apnic.net/27/program/ipv6-in-3d

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,565
On SlideShare
0
From Embeds
0
Number of Embeds
4,871
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Adding IPv6 to the application layer

  1. 1. Adding IPv6 to the application layer <ul><li>Koichi Taniguchi </li></ul><ul><li>livedoor Co., Ltd. </li></ul><ul><li>Feb 25th, 2009 </li></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  2. 2. Background EDGE Co.Lab v6 provides IPv6 testing environment. www.data-hotel.net LIVEDOOR/AS17707 APNIC member APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer www.livedoor.com (*) 2.3 billion PV/month 23 million UU/month * autumn 2008
  3. 3. Problems at the beginning <ul><li>A lot of problems. </li></ul><ul><ul><li>What I need to do? </li></ul></ul><ul><ul><li>How can I develop web applications on IPv6? </li></ul></ul><ul><ul><li>Not found any useful tips, hints. </li></ul></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  4. 4. Research and development <ul><li>I researched and developed. </li></ul><ul><li>Blogged it. </li></ul><ul><ul><li>&quot;8 tips how to add IPv6 to your application if you don't have enough knowledge about it&quot; </li></ul></ul><ul><ul><li>http://tinyurl.com/IPv6-dev-ja </li></ul></ul><ul><li>English version is brought to you now! </li></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  5. 5. #1 You need IPv6 connectivity <ul><li>Each gateways should handle IPv6. </li></ul><ul><li>Each OS should handle IPv6. </li></ul><ul><ul><li>... or IPv4 client -> IPv6 HTTP proxy </li></ul></ul><ul><li>Some of enterprise load balancer often don’t support IPv6. </li></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  6. 6. #2 SSL server ID is same as before <ul><li>Using SSL </li></ul><ul><ul><li>IPv4 server ID <=> IPv6 server ID (same!) </li></ul></ul><ul><ul><li>Established -> SSL server key exchange (immediately) </li></ul></ul><ul><li>It doesn’t matter which version of IP you’re using. </li></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  7. 7. #3 Easy Apache configuration <ul><li>Apache 2.x (or later) + APR (Apache Portable Runtime) are IPv6 ready! </li></ul><ul><li>There are few differences. </li></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  8. 8. <ul><li>IPv4 </li></ul>#3 Easy Apache configuration Listen NameVirtualHost <VirtualHost> : </VirtualHost> Listen 192.0.2.36:80 NameVirtualHost 192.0.2.36:80 <VirtualHost 192.0.2.36:80> : </VirtualHost> Listen 192.0.2.36 NameVirtualHost 192.0.2.36 <VirtualHost 192.0.2.36> : </VirtualHost> APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  9. 9. <ul><li>IPv6 </li></ul>#3 Easy Apache configuration Listen NameVirtualHost <VirtualHost> : </VirtualHost> Listen 2001:db8::dead:beef:80 NameVirtualHost 2001:db8::dead:beef:80 <VirtualHost 2001:db8::dead:beef:80> : </VirtualHost> Listen [2001:db8::dead:beef]:80 NameVirtualHost [2001:db8::dead:beef]:80 <VirtualHost [2001:db8::dead:beef]:80 > : </VirtualHost> APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  10. 10. <ul><li>Exceptional case </li></ul>#3 Easy Apache configuration Allow Deny Allow from 192.0.2.8 Deny from 192.0.2.16 Allow from 192.0.2.8/255.255.255.249 Deny from 192.0.2.16/255.255.255.249 APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer Allow from 192.0.2.8/29 Deny from 192.0.2.16/29 Allow from 192.0.2.8/29 Deny from 192.0.2.16/29 Allow from 2001:db8::c0:ffee/10
  11. 11. #4 ping and traceroute aren’t able to use on IPv6 <ul><li>We usually use ping and traceroute command. </li></ul><ul><li>Most of connecting commands are suffixed with “6”. </li></ul>% ping6 2001:db8:bad:face::dead % traceroute6 2001:db8:bad:face::dead C:WINDOWS>tracert6 2001:db8:bad:face::dead APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  12. 12. #5 Use AAAA record in DNS <ul><li>We use A record. </li></ul><ul><ul><li>Names won’t be resolved to IPv6 address. </li></ul></ul><ul><li>Add IPv6 entries to the AAAA (quad-A) record. </li></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  13. 13. #6 Which version of IP is the client using? <ul><li>Dual-stack and same hostname. </li></ul><ul><ul><li>Vary based on the version. </li></ul></ul><ul><ul><li>REMOTE_ADDR environment variable. </li></ul></ul><ul><ul><li>You don’t need to check the format of addresses strictly. </li></ul></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  14. 14. <ul><li>Listening to proxied requests from reverse proxy. </li></ul><ul><ul><li>Add extra header on reverse proxy with using mod_headers. </li></ul></ul>#6 Which version of IP is the client using? APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  15. 15. #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>
  16. 16. #6 Which version of IP is the client using? <ul><li>Getting IP version. </li></ul><ul><ul><li>HTTP_X_IP_VERSION environment variable is 4 or 6. </li></ul></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  17. 17. #7 Expand the column length <ul><li>To save remote addresses into the DB. </li></ul><ul><ul><li>IPv4 </li></ul></ul><ul><ul><li>IPv6 </li></ul></ul><ul><ul><li>INET_ADDRSTRLEN (16) - 1 (nul) -> INET6_ADDRSTRLEN (46) - 1 (nul) </li></ul></ul><ul><ul><ul><li>15 bytes -> 45 bytes </li></ul></ul></ul>255.255.255.255 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.255 APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  18. 18. #8 Check the access log parser <ul><li>Many access log parsers. </li></ul><ul><ul><li>Some of them are failed to parse some lines (including IPv6 address). </li></ul></ul><ul><ul><li>Check your parser. </li></ul></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  19. 19. Critical issues <ul><li>Web application developers: </li></ul><ul><ul><li>are poorly informed about IPv6. </li></ul></ul><ul><ul><li>have misunderstandings of IPv6. </li></ul></ul><ul><ul><ul><li>know that IPv4 will be exhausted. </li></ul></ul></ul><ul><ul><ul><li>aren’t sure when it will be exhausted. </li></ul></ul></ul><ul><ul><ul><li>hope that some new technology will appear to avoid IPv4 exhaustion. </li></ul></ul></ul><ul><ul><ul><li>aren’t motivated to add IPv6. </li></ul></ul></ul><ul><ul><ul><li>think that IPv6 doesn’t have any advantages. </li></ul></ul></ul><ul><ul><ul><li>don’t think that IPv4 has some serious disadvantage. </li></ul></ul></ul>APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  20. 20. Critical issues Imagine The all of interesting websites will be phased out in 2011 . APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  21. 21. Conclusion <ul><li>Please call out and introduce the fact to some L7 developer you know. </li></ul><ul><li>I wish this slides will be Bible for web application developers. </li></ul>Bridging the layers is our task. APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  22. 22. Thank you [email_address] http://twitter.com/nipotan http://search.cpan.org/~taniguchi/ APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer

×