ipv6アプリケーション プログラムの 注意点 · os・ソフトウェア os microsoft...

45
1 IPv6アプリケーション/プログラムの 注意点 Socketを使用した IPv6プログラミングの基礎から〜 IPv6普及・高度化推進協議会 IPv6/IPv4共存WG アプリIPv6化検討SWGメンバー Ruri Hiromi

Upload: doantu

Post on 14-May-2018

225 views

Category:

Documents


5 download

TRANSCRIPT

  • 1

    IPv6/ Socket IPv6

    IPv6 IPv6/IPv4WG

    IPv6SWG Ruri Hiromi

  • IPv6IPv6/IPv4WG IPv6SWG

    20119

    2

    IPv6 Ready

    IPv60.5 DMZ

    IPv6

    IPv6

    IPv6

    GLOBAL IP BUSINESS EXCHANGE

    IPTVDTVIPv6

    Facility Network

    FMC

    CGNHTML5/SPDY/WEBSOCKET

    IPv6

    Web SocketIPv6

  • IPv6

    201212

    3

  • 4

    IPv6

    1990 IP IP

    IP IP

    IPIP IPv4IPv6 IPv6IPv4

  • IPv6 Ready Logo 1. 2. 3. IP 4. OS

    Avaya / ERS 8800 10G

    D-Link DES-1210-08P 10/100M Web 2

    Cisco 893

    Avaya / VSP9000

    Dell PS6000, PS4000 iSCSI

    IPv4/IPv6 IPv4/IPv6

    HP Designjet / T520, T120

    Konica IPv4/v6

    SD9 series

    HP EVA P6000 ABM

    Dell Tape Library / PowerVault TL2000, TL4000

    OS OS Vmware vSphere

    OS OS Microsoft Windows 8, Windows Server 2012 OS

    2012IPv6 http://www.jate.jp/approved_list/

    IPv6

  • 6

    IPv6

    iDC/ ISP OSPC

    ApacheBIND

    IPv6

  • IP

    IP

    7

    WebWebskype

  • IPv6

    IPv4 IPv4IPv6

    IPv4

    8

    IPv4IPv6

  • GUIIP

    9

    IPv6

    IP

    192 0 2 1

    IPv6

    2001 db8 0 0

    0 0 80 1

    IPv6IPv6

    IP

  • IPv4

    10

    IPv4

    C/C++

    IPv4SocketIPv4IPv6

    IPv4DNSFQDNIP

    IPv4

    inet_addr(), inet_aton(), inet_lnaof(), inet_makeaddr(), inet_netof(), inet_network(), inet_ntoa(), inet_ntop(), inet_pton(), addr_ntoa(), network(), getservbyport(), gethostbyname(), gethostbyname2(), gethostbyaddr(), getservbyname(), in_addr

    sockaddr_storage, getaddrinfo(), getnameinfo()

  • IPv6

    IPv6IPv4 IPv6

    DNSIPv6AAAA IPv4DNSAAAA IPv6EDNS0

    IPv6 traceroute,pingIPv6 ICMPv6

    11

  • 12

    IPv6 ()

    CC++C#

    OSsocketAPI

    inet_addr, inet_aton, in_inaof, in_makeaddr, inet_netof, inet_network, inet_ntoa, inet_ntop, inet_pton, addr, ntoa, network, getservbyport, gethostbyname, gethostbyname2, gethostbyaddr, getservbyname, sockaddr_in, struct sockaddr, struct in_addr, INADDR_LOOPBACK, INADDR_ANY, IP_TTL, rresvport, rcmd, AF_INET, PF_INET

    sockaddr_strage, getaddrinfo, getnameinfo

    Java SolarisLinux :J2SE 1.4 Windows:J2SE 5.0

    Inet4Address, Inet6Address(IPv6)

    InetAddress

    Perl 5.10.0 5.14:IPv6

    IO::Socket::INET IO::Socket::IP

    Ruby 1.9.2 UDPSocket,TCPServer Socket.udp_server_loopSocket.tcp_server_loop

    PHP 5.0.0 gethostbyname,gethostbynamel checkdnsrr,PEAR::Net_DNS

  • 13

    IPv6() .NET :1.0:1.1 Tomcat :JavaVM1.41 :JavaVM1.4.2 Oracle :9i:10g:11gR2 SQL :2000:2005 MQ :5.3:6.0 Tuxedo :10.0:10.0gR3 ERP SAP :4.7:6.0:7.10 web apache :1.2.x:1.3.xweb IIS :5.2:6.0

  • 14

    1

    //GUIIP

    2 IP

    3 /API/IPv4

    4 IP

    5

    6 IPv6IPv6

  • 15

    IPv6

    IPv6 ASCII

    http://ascii.asciimw.jp/books/books/detail/4-7561-4236-2.shtml

    itojun

    itojun

    IW2012T7IPv6 https://www.nic.ad.jp/ja/materials/iw/2012/proceedings/

    t7/

    IW2013

  • 16

    IPv6

    IPv6/IPv4WG IPv6SWG http://www.v6pc.jp/jp/wg/coexistenceWG/v6app-

    swg.phtml

    SocketIPv6 http://www.v6pc.jp/jp/entry/wg/2012/12/ipv610.phtml

    // http://www.v6pc.jp/jp/upload/pdf/socket-20121203.pdf http://www.v6pc.jp/jp/upload/pdf/socket-

    sample-20121203.pdf http://www.v6pc.jp/jp/upload/pdf/about_asterisk_ipv6v5-9.pdf

    WebIPv6

  • 17

    IPv6 Summit IPv6 Summit 2014 in Hokkaido

    IPv6 12

    IAjapan http://www.iajapan.org/ IPv6 http://www.iajapan.org/ipv6/

  • 18

    BSD Socket APIIPv6

    IPv6

    IPv6

  • 19

    BSD Socket IPv6

  • 20

    IPv6

    IPv6IPv4

    IPv4

    IPv6/IPv4

  • 21

    IPv4 Socket Connect

  • 22

    IPv4 gethostbyname()hostent getservbyname()servent

    getaddrinfo()addrinfo

    freeaddrinfo()

    gethostbyname2() IPv6

  • 23

    addrinfosockaddr addrinfo

    11 sockaddr

    sockaddr IPv4IPv6 sockaddr_in6v6 sockaddr_inv4 sockaddr_storage

  • 24

    IPv4 gethostbyaddr()hostent getservbyport()servent

    getnameinfo()sockaddr

    NI_NOFQDN FQDN NI_DGRAM UDP NI_NUMERICHOST etc...

  • 25

    addrinfo addrinfo ai ai->ai_family ai->ai_socktype ai->ai_protocol ai->ai_addr ai->ai_addrlen

    s=socketai->ai_family, ai->ai_socktype, ai->ai_protocol;connect(s, ai->ai_addr, ai->ai_addrlen);

  • 26

    struct addrinfo hints, *res, *resall; hints.ai_family = AF_UNSPEC;hints.ai_socktype = SOCK_STREAM;getaddrinfo(www.v6pc.jp,http, &hints, &resall);

    for (res = resall; res; res = res->ai_next) { s=socketres->ai_family, res->ai_socktype, res->ai_protocol;if (sai_addr, res->ai_addrlen) < 0){ close(s); continue;}/**/close(s);break;

    }

  • 27

    getaddrinfo()IP addrinfo

    http://www.v6pc.jp/jp/upload/pdf/socket-

    sample-20121203.pdf

  • 28

    BSD Socket IPv6

  • 29

    inetd socket()

    FD

    IPv4 IPv4 Mapped IPv6

    addressv6

  • 30

    inetd

    inetdIPv6

    inetd

    2 socket

    3

    IPv6

    4 IPv4

    IPv4/IPv6

    IPv4IPv6IPv4

  • 31

    inetd

    getpeername()FDsockaddrsockaddr

    sockaddrsockaddr_storage

    sockaddr_storage

    getnameinfo()

    sockaddr_storage from;getpeername(0,(sockaddr*)&from,sizeof(from))

  • 32

    socket

  • 33

    getaddrinfo() addrinfo hintsAI_PASSIVEIN_ADDR_ANY

    IN6ADDR_ANY_INIT

    socket()bind()listen() FDfd_set

    fd_setselect() select()fdaccept()

  • 34

    getaddrinfo() AF_INETAF_INET6

    forkv4/v6 Copy on Write

  • 35

    IP

    UNIXOSioctl

    OSifconfig FreeBSD/usr/src/sbin/ifconfig/* ubuntunet-tools

  • 36

    http://www.v6pc.jp/jp/upload/pdf/socket-

    sample-20121203.pdf

  • 37

  • 38

    getaddrinfo

    getaddrinfo() addrinfo

    RFC3484 RFC6724 RFC3484Obsolete

    etc...

  • 39

    IP IP

    IP

    IP

  • 40

    IPDNS

    IP

    Windows: netsh interface ipv6 show prefixpolicies Linux: ip addrlavel show FreeSBD: ip6addrctl show

  • 41

    Happy Eyeballs RFC6555RFC6556 TCP Syn

    TCP Syn

    Happy EyeballsIPv6 / IPv4TCP Syn Syn/AckIPTCP Ack

    I/FIPv6

    IPv6 Syn/Ack

  • 42

    IPv6

  • 43

    Socket

    DNS

    IP RFC4085

  • 44

    IP

    getaddrinfo() RFC6724RFC3484 RFC

  • 45

    IPv6 IPv6

    IPv6

    https://www.v6pc.jp/jp/info/inquiry_web.phtml