Your SlideShare is downloading. ×
Adding IPv6 to the application layer
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Adding IPv6 to the application layer

6,935
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

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
6,935
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 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
  • 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. 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
  • 4. 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
  • 5. #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
  • 6. #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
  • 7. #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
  • 8.
    • IPv4
    #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.
    • IPv6
    #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.
    • Exceptional case
    #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. #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::dead C:WINDOWS>tracert6 2001:db8:bad:face::dead APNIC 27 Manila 2009 - IPv6 in 3D Adding IPv6 to the application layer
  • 12. #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
  • 13. #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
  • 14.
    • 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
  • 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. #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
  • 17. #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.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. #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
  • 19. 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
  • 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. 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
  • 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