ãã®èšäºã¯ CyberAgent Developers Advent Calendar 2025 16 æ¥ç®ã®èšäºã§ã ð
ã¿ãªãããIPv6ãã£ãŠãŸããïŒ ãµã€ããŒãšãŒãžã§ã³ãã®é»åŽ( @kuro_m88 ) ã§ãã
ä»å¹Žã¯IPv6ã§ã¯ãªã¹ãã¹ããªãŒðãäœã£ãŠã¿ãŸããïŒ
æ¢ã«IPv6ãæŽ»çšããŠãã人ããããããããªãã®ã§ç¡å¹åããŠããŸã£ãŠãã人ããã®èšäºãéããŠIPv6ã身è¿ã«æããŠããã ããã°ãšæããŸãã
AWSäžã«æ§ç¯ããããšã§ç䌌ããããšæã£ãæ¹ãææŠã§ããããã«ã»ãŒterraformã§å®çµããããããã ãããŸãããããµããŒããã±ããããããªããšè§£æ±ºäžèœãªåé¡ã«çŽé¢ãããªã©ãå人çã«ã¯ããªãé 匵ã£ãã®ã§æåŸãŸã§ã楜ãã¿ãã ããïŒ
ã€ãã£ããã®ð
ãã¡ãã§ãã綺éºãªã¯ãªã¹ãã¹ããªãŒãèŠããŸãããIPv6ãããç°å¢ã§ã¯Mac, Linuxãã䜿ãã®æ¹ã¯cliã§ traceroute6 -I xmas.as63790.net (Windowsã¯tracert)ãšã³ãã³ããæã£ãŠããã ããšåçŸå¯èœã§ã(2026幎1æé ãŸã§ã®æééå®å
¬éã§ã)ã

IPv6ã®ã€ã³ã¿ãŒãããæ¥ç¶ç°å¢ããããã°èª°ã§ããã®ã¯ãªã¹ãã¹ããªãŒãèŠãããšããããšã¯ãã€ã³ã¿ãŒãããã«ååšãããšããããšã§ããïŒâïž
ã䜿ãã®ã€ã³ã¿ãŒãããæ¥ç¶ç°å¢ãIPv6ã«å¯Ÿå¿ããŠãããç°¡åã«ç¢ºãããæ¹æ³ãšããŠãAWSããã¹ãããŠããIPv6ã®æ¥ç¶æ§ç¢ºèªã®ãµã€ãããããŸãã https://ipv6.ec2-reachability.amazonaws.com/ (ãªããhttpsã§ã¢ã¯ã»ã¹ããŠãhttpã«ãªãã€ã¬ã¯ããããŸã) ããã«ã¢ã¯ã»ã¹ããŠç·è²ã®ãã§ãã¯ããŒã¯ã衚瀺ãããã°IPv6ã«å¯Ÿå¿ããŠããŸããIPv6ã«å¯Ÿå¿ããŠããªãå Žåã¯ããã¡ããç°å¢äŸåã§ããã¹ããã®ãã¶ãªã³ã°çµç±ã ãšIPv6ã䜿ããããšãå€ããããããŸããã
ããã¿ð
å
ã»ã©çšãã tracerouteã³ãã³ãã¯ãããã¯ãŒã¯ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«ãããŠãã䜿ãããã³ãã³ãã§ãã
ãã±ãããã©ã®ã«ãŒã¿ãçµç±ããŠããããé
å»¶ã¯ã©ãã§çºçããŠããã®ãããã±ããã¯ã©ãã§ç Žæ£ãããŠããã®ãçã®æ
å ±ãåŸãããšã§ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ãã³ããåŸãããŸãã
ãã®ä»çµã¿ãå¿çšããŠãããã¯ãŒã¯çµè·¯äžã«é çªã«ã¯ãªã¹ãã¹ããªãŒã®ã¢ã¹ããŒã¢ãŒãã®åè¡ããã¹ãåã«æã€ã«ãŒã¿ãAWSäžã«ãããã€ããããšã§ãtracerouteã³ãã³ãã§çµè·¯ã調ã¹ããšåºåã«ã¯ãªã¹ãã¹ããªãŒãæµ®ãã³äžããä»çµã¿ã«ãªã£ãŠããŸãã
IPv6ã«ãããtraceroute
ä»åã¯ICMPv6ãããã³ã«ãå©çšããææ³ã玹ä»ããŸããICMPv6ã¯Internet Control Message Protocolã®IPv6çãšããæå³ã§ãä»åã¯Echo Request, Echo Reply, Time Exceededã®3ã€ã®ã¡ãã»ãŒãžã掻çšããŠããŸãã
Echo Request / Echo Reply
äžæ¹ãEcho Requestãéä¿¡ãããšã仿¹ã¯Echo Replyãè¿ä¿¡ããŸããããã«ãããããã¯ãŒã¯äžã«éä¿¡çžæãååšããã®ã調æ»ããããšãã§ããŸããping(ping6)ã³ãã³ãã§ã䜿ãããŠããŸãã

Time Exceeded
IPv6ãã±ããã«ã¯Hop Limitãšãããã£ãŒã«ããååšããã«ãŒã¿ãçµç±(Hop)ããããšã«ãã®å€ã¯1ã€æžç®ãããŸããHop Limitã0ã«ãªã£ããšãããã®ãã±ããã¯ç Žæ£ããããšåæã«éä¿¡è ã«Time Exceededãšããã¡ãã»ãŒãžãéä¿¡ããŸãã

Hop Limitã®ãã£ãŒã«ãããããããã§éäžçµè·¯ã®ã«ãŒãã£ã³ã°ã«ã«ãŒããçºçããŠããŸã£ãŠããŠããã€ãã¯Hop Limitã0ã«ãªããã±ãããç Žæ£ãããŸããããããªããšã€ã³ã¿ãŒãããã®ã©ããã§ã«ãŒããçºçãããšäžçã€ã³ã¿ãŒãããäžããã±ãããããŸããããšã«ãªããŸãããŸããå®å
ãååšããªãã£ãã®ããHop Limitã0ã«ãªã£ãã®ããåºå¥ã§ãããããTime Exceededãšããã¡ãã»ãŒãžã§éä¿¡è
ã«ãã£ãŒãããã¯ã§ããããã«ãªã£ãŠããŸãã
tracerouteã§ã¯éåžžååã«å€§ããªå€ã«èšå®ãããŠããHop Limitãå°ããããããšã§ãããšTime Exceededãçºçããããã®éä¿¡å
IPv6ã¢ãã¬ã¹ãèŠãããšã§éäžçµè·¯ã®ã«ãŒã¿ã®ååšãæ€åºããŸããå
·äœçã«ã¯Hop Limitã1, 2, 3âŠãšé çªã«å€§ããããŠãããEcho Reply(ãããã¯Destination Unreachable)ãåãåããŸã§ããè¿ãã°å®å
šãªçµè·¯ãåŸãããŸãã

ã¡ãªã¿ã«ãããã¯ãŒã¯ã®æ§è³ªäžãåŸè·¯ãšåŸ©è·¯ã®çµè·¯ã¯å¿ ãåäžãšã¯éããªããããå³å¯ã«ã¯åŸè·¯ã®çµè·¯ãã調æ»äžèœã§ã埩路ã¯çžææ¹ããéæ¹åã«tracerouteãããŠããããªããšããããŸããããŸããã»ãã¥ãªãã£çã®èгç¹ããICMPv6ã¡ãã»ãŒãžã®å¿çãããŠãããªãã«ãŒã¿ããµãŒããååšããŸãã
IPv6ã¢ãã¬ã¹ã®éåŒã
ãã®IPv6ã¢ãã¬ã¹ã«ã€ããŠãããã¹ãåã調ã¹ãã«ã¯ãã®DNSã§PTRã¬ã³ãŒããã¯ãšãªããŸãã
éåŒãçšã®ç¹æ®ãª ipv6.arpa ãšãããã¡ã€ã³ãããã2406:da14:1cc1:2a00:ca::3ãšããIPv6ã¢ãã¬ã¹ã«å¯ŸããPTRã¬ã³ãŒããã¯ãšãªããã«ã¯ 3.0.0.0.0.0.0.0.0.0.0.0.a.c.0.0.0.0.a.2.1.c.c.1.4.1.a.d.6.0.4.2.ip6.arpaãšããFQDNã«å¯ŸããŠã¯ãšãªããŸããé·ããŠã¿ã¥ããã§ãããIPv6ã¢ãã¬ã¹ãéé ã«4bitãã€ã®16鲿°è¡šèšãããªãªãã§åºåã£ãŠç¹ããã«ãŒã«ã«ãªã£ãŠããŸãã
ããšã¯åHopããšã®IPv6ã¢ãã¬ã¹ã«å¯ŸããéåŒãã®ãã¹ãåãé çªã«ã¯ãªã¹ãã¹ããªãŒã®ã¢ã¹ããŒã¢ãŒãã«ãªãããã«ããã°å®æã§ãïŒð
ã¯ãªã¹ãã¹ããªãŒã®ã€ããããð
å®éã«ã©ãå®è£
ããã®ãã玹ä»ããŸããåè¿°ããçè«ã©ããã«ãããšVPCäžã«EC2ã倧éã«èµ·åããããšã«ãªããŸããããªãœãŒã¹ã®ç¡é§ãªã®ã§ENIã®Prefix DelegationãšLinuxã®Network NamespaceãæŽ»çšããŠ1å°ã®EC2ã®äžã«å€§éã®ã«ãŒã¿ãšãµãããããæ§ç¯å¯èœã«ããŸããã
95%ãããã¯ãã¡ãã®terraformã§å®çµãããããã ãã£ããã®ããã¡ãã§å
¬éããŠããŸãã
https://github.com/kurochan/ipv6-christmas-tree/tree/v1.0.0
ããã«æ²¿ã£ãŠè§£èª¬ããŠãããŸãã
ãããã¯ãŒã¯æ§ç¯: VPC, ã€ã³ã¿ãŒãããã²ãŒããŠã§ã€, ãµãããã, ã«ãŒãããŒãã«
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/christmas_tree.tf#L1-L98
VPCãäœæããAWSããIPv6ã¢ãã¬ã¹ã /56 ã®ãµã€ãºã§å²ãåœãŠãåããŸããã©ããªPrefixãç Žãåœãããã¯å®è¡ããŠã¿ãŠããæ¥œãã¿ã§ãããããã /64 ãµã€ãºã§ãµãããããåãåºããŸããä»åã¯åé·åãªã©ã¯äžåè¡ããªãããã1AZæ§æã§ãã
ã»ãã¥ãªãã£: ã»ãã¥ãªãã£ã°ã«ãŒã, IAM Role, ã€ã³ã¹ã¿ã³ã¹ãããã¡ã€ã«
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/christmas_tree.tf#L59-L152
ã»ãã¥ãªãã£ã°ã«ãŒãã§ICMPv6ãã±ããã®åä¿¡ãèš±å¯ããtracerouteã®ãã±ããã«å¿çã§ããããã«ããŸããIAM Roleã§ã¯ãããã°çšã«SystemsManagerã§ã·ã§ã«ãã°ã€ã³ã§ããããã«ããã®ãšãåŸè¿°ããS3ãã±ãããžã®ã¢ã¯ã»ã¹ãã§ããããã«ããŸãã
ãµãŒã: AMI, ENI, EC2ã€ã³ã¹ã¿ã³ã¹
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/christmas_tree.tf#L153-L212
EC2ã«ã¢ã¿ããããENI(ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹)ãäœæããã®ã§ããããã®éã«ãµããããã® /64 ã®ã¢ãã¬ã¹ãããã®ENIã« /80 ãåãåºããŠå§è²(Prefix Delegation)ããŸãã202ãšããæ°å€ã¯prefixã®æåŸã16鲿°ã§caã«ãªã£ãŠãµã€ããŒãšãŒãžã§ã³ãã£ãœãããã§ãã
resource "aws_network_interface" "ec2" {
subnet_id = aws_subnet.main.id
security_groups = [aws_security_group.ec2.id]
ipv6_prefixes = [cidrsubnet(aws_subnet.main.ipv6_cidr_block, 16, 202)] # 64 + 16 = 80
tags = {
Name = "${local.project_name}-eni"
}
}
ããããžã§ãã³ã°: cloud-init, S3, ã·ã§ã«ã¹ã¯ãªãã
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/christmas_tree.tf#L213-L248
åŸè¿°ããçç±ããã·ã§ã«ã¹ã¯ãªãããèšçœ®ããããã®S3ãã±ãããå¿
èŠãªãããäœæããŠããŸãã
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/user_data.sh.tftpl
EC2ã¯cloud-initããµããŒãããŠãããã¡ã¿ããŒã¿(user data)ã«ã¹ã¯ãªãããèšè¿°ããããšã§ãååèµ·åæã«èªåå®è¡ããã»ã«ãããããžã§ãã³ã°ãè¡ããŸããEC2ã®user dataã¯ãµã€ãºå¶éãããã16KB以äžã¯èšè¿°ã§ããŸãããä»åããããžã§ãã³ã°ã«å©çšããã¹ã¯ãªããã16KBãè¶
ããããuser dataã«ã¯åãŸããŸããããã®ããS3ã«ã·ã§ã«ã¹ã¯ãªããæ¬äœãèšçœ®ããuser dataã¯S3ããã·ã§ã«ã¹ã¯ãªãããèªã¿èŸŒãããã ãã«å©çšããŸãã
snap install aws-cli --classic
aws s3 cp s3://${s3_bucket}/multihop.sh /opt/multihop.sh
bash /opt/multihop.sh | tee -a /opt/multihop.log
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/multihop.sh.tftpl
ä»åã®äžçªéèŠãªéšåã§ããããªãé·ãã®ã§é ã远ã£ãŠç޹ä»ããŠãããŸãã
åã«ãŒã¿ã®ã»ããã¢ãã
ip netns addã³ãã³ãã䜿ã£ãŠãLinuxäžã«Network NamespaceãäœæããŠããŸããNetwork Namespaceã¯ãã³ã³ããæè¡ã§ãå©çšãããŠããä»çµã¿ã§ããããã¯ãŒã¯èšå®(ã€ã³ã¿ãã§ãŒã¹ãã«ãŒãã£ã³ã°ããŒãã«ãªã©)ãç¬ç«ãããããšãã§ããŸãããã®Namespaceã 1 ã€ã®ã«ãŒã¿ã«èŠç«ãŠãããããã«ç¬ç«ããã«ãŒãã£ã³ã°ããŒãã«ãæãããããšã§ãã倿°ã®ã«ãŒã¿ãååšããç°å¢ããæ¬äŒŒçã«äœããŸãã
ããã«ããããã® Namespace å士ãä»®æ³ãªã³ã¯(veth)ã§æ¥ç¶ããããšã§ãè€æ°ã®ã«ãŒã¿ã暪äžåã«ã€ãªãã£ãŠãããããªãããã¯ãŒã¯æ§æãã1 ã€ã®Linuxã«ãŒãã«äžã«åçŸããŠããŸãã
# r1
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.conf.default.forwarding=1
ip netns add r1
ip netns exec r1 sysctl -w net.ipv6.conf.all.forwarding=1
ip netns exec r1 sysctl -w net.ipv6.conf.default.forwarding=1
ip link add veth-h-r1 type veth peer name veth-r1-h
ip link set veth-h-r1 up
ip link set veth-r1-h netns r1
ip -n r1 link set veth-r1-h up
ip -6 addr add ${ipv6_prefix}2/127 dev veth-h-r1
ip -6 -n r1 addr add ${ipv6_prefix}3/127 dev veth-r1-h
ip -6 -n r1 route add default dev veth-r1-h via ${ipv6_prefix}2
static routeã®æ³šå ¥
ä»å11åã«ãŒã¿ãããã°ããã£ãã®ã§ãããå€ãã«32åæ°ç ã€ãªãã«ããŸãããããããã®ã«ãŒã¿ã¯static routeããªããã°ã«ãŒãã£ã³ã°ã§ããªãã®ã§ã倧éã®ã«ãŒãã£ã³ã°èšå®ãæ³šå ¥ããŠããŸããå šéšã§528çµè·¯ãããŸãã
# r27
ip -6 -n r27 route add ${ipv6_prefix}3a/127 dev veth-r27-r28 via ${ipv6_prefix}39 # r29
ip -6 -n r27 route add ${ipv6_prefix}3c/127 dev veth-r27-r28 via ${ipv6_prefix}39 # r30
ip -6 -n r27 route add ${ipv6_prefix}3e/127 dev veth-r27-r28 via ${ipv6_prefix}39 # r31
ip -6 -n r27 route add ${ipv6_prefix}40/127 dev veth-r27-r28 via ${ipv6_prefix}39 # r32
# r28
ip -6 -n r28 route add ${ipv6_prefix}3c/127 dev veth-r28-r29 via ${ipv6_prefix}3b # r30
ip -6 -n r28 route add ${ipv6_prefix}3e/127 dev veth-r28-r29 via ${ipv6_prefix}3b # r31
ip -6 -n r28 route add ${ipv6_prefix}40/127 dev veth-r28-r29 via ${ipv6_prefix}3b # r32
# r29
ip -6 -n r29 route add ${ipv6_prefix}3e/127 dev veth-r29-r30 via ${ipv6_prefix}3d # r31
ip -6 -n r29 route add ${ipv6_prefix}40/127 dev veth-r29-r30 via ${ipv6_prefix}3d # r32
# r30
ip -6 -n r30 route add ${ipv6_prefix}40/127 dev veth-r30-r31 via ${ipv6_prefix}3f # r32
ãã¡ã€ã¢ãŠã©ãŒã«
traceroute以å€ã«çšéããªãã®ã§ã念ã®çºnftablesã䜿ã£ãŠå¶éããããŠããŸããã»ãã¥ãªãã£ã°ã«ãŒãã§ICMPv6ã®Echo Requestããåä¿¡ããªãããã«ããŠããŸããããµãŒãå ã§Echo Requestã®ãã€ããŒããµã€ãºã128ãã€ããã倧ããã£ãå Žåãéä¿¡å ã®IPv6ã¢ãã¬ã¹ã® /56 åäœã§éèšããŠç§é10ãã±ãã(200ãã±ããã®ããŒã¹ãã¯èš±å¯)ããå€ãã£ãå Žåã¯ãã±ãããæšãŠãããã«ããŠãäžå¿ èŠã«å€§éãªéä¿¡ãçºçããªãããã«ããŠããŸãã
nft add table inet icmpv6-filter
nft add chain inet icmpv6-filter input '{ type filter hook input priority 0 ; policy accept ; }'
nft add chain inet icmpv6-filter forward '{ type filter hook forward priority 0 ; policy accept ; }'
nft add rule inet icmpv6-filter input 'icmpv6 type echo-request meta length > 128 counter drop'
nft add rule inet icmpv6-filter input 'icmpv6 type echo-request meter in_ping_prefix_limit { ip6 saddr & ffff:ffff:ffff:ff00:: limit rate 10/second burst 200 packets } counter accept'
nft add rule inet icmpv6-filter input 'icmpv6 type echo-request counter drop'
nft add rule inet icmpv6-filter forward 'icmpv6 type echo-request meta length > 128 counter drop'
nft add rule inet icmpv6-filter forward 'icmpv6 type echo-request meter fwd_ping_prefix_limit { ip6 saddr & ffff:ffff:ffff:ff00:: limit rate 10/second burst 200 packets } counter accept'
nft add rule inet icmpv6-filter forward 'icmpv6 type echo-request counter drop'
ã¹ã¯ãªããçæ
ãã®éããã¡ãã¡æã§æžãã®ã¯å³ãããèŠåæ§ãããã®ã§ãã®ã·ã§ã«ã¹ã¯ãªãããçæããrubyã¹ã¯ãªãããæžããŸãããçè«äžã¯ãã£ãšããããã®ã«ãŒã¿ãæ§ç¯å¯èœã§ãããã ãIPv6ã®Hop Limitã®ä»æ§äžæå€§å€ã255ãªã®ã§ãã以äžã®æ°ã®ã«ãŒã¿ããã£ãŠãã©ãé 匵ã£ãŠãå°éäžå¯èœã«ãªã£ãŠããŸããŸãã
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/multihop.rb
DNS
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/dns.tf
ã€ã³ã¿ãŒããããŒãã®ãã¡ã€ã³ã䜿ã£ãéœåäžãããã ãCloudflareã«ãªã£ãŠããŸãããRoute53ã§ãç¹ã«æ¯éã¯ãããŸããã
ã¢ã¹ããŒã¢ãŒãã®åè¡ã¯ãã¡ãã®ãã¡ã€ã«ã«èšèŒãããŠããŸãã
https://github.com/kurochan/ipv6-christmas-tree/blob/v1.0.0/christmas_tree.txt
ããã¹ããã¡ã€ã«ãæ¹è¡ã§åºåã£ãŠé
åã«ãããããã«ãŒãããªããDNSã¬ã³ãŒããçæããŠããŸãã
locals {
hosts = split("\n", chomp(file("${path.module}/christmas_tree.txt")))
}
resource "cloudflare_dns_record" "tree" {
for_each = { for host in local.hosts : host => index(local.hosts, host) }
zone_id = var.zone_id
name = "${each.key}.${var.domain}"
ttl = 300
type = "AAAA"
comment = "for CyberAgent Developers Advent Calendar 2025"
content = cidrhost(tolist(aws_network_interface.ec2.ipv6_prefixes)[0], each.value * 2 + 1)
proxied = false
}
DNSã¬ã³ãŒããšIPv6ã¢ãã¬ã¹ãäžå¯Ÿäžã§çŽã¥ãå¿ èŠããããããéè€ããè¡ãã§ããªãããã«æ³šæããŠãã ããã

以äžã«ãŠAWSã¢ã«ãŠã³ãå (ãšCloudflareãå°ã)ã§å®çµããæäœã¯å®äºã§ãã
ä»äžã: ãµããŒããã±ããã起祚ãã
å ã»ã©èšå®ããDNSã®èšå®ã¯ãæ£åŒããã§ãããtracerouteæã«ã¯ãšãªãããã®ã¯ãéåŒããã§ããéåŒãã®DNSã¬ã³ãŒãã¯éåŒãã®ä»çµã¿äžãã®IPv6ã¢ãã¬ã¹(ãã¬ãã£ãã¯ã¹)ã®æã¡äž»ã§ãªããã°èšå®ãã§ããŸãããä»åå©çšããŠããAWSã®VPCå ã®IPv6ã¢ãã¬ã¹ã¯èªåã®æã¡ç©ã§ã¯ãªãããããŸã§ãAWSããå²ãåœãŠãŠããã£ãŠããã¢ãã¬ã¹ã§ãããã®ãããæã¡äž»ã§ããAWSã«ãé¡ããããŠèšå®ããŠãããå¿ èŠããããŸãã
Elastic IPã¯éåŒãã®èšå®ãããAPIãååšããã®ã§ãããElastic IPã¯IPv4ã®æŠå¿µã®ãããIPv6ã«å¯Ÿå¿ã§ããŸããã
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Using_Elastic_Addressing_Reverse_DNS.html
ããŸããªããããªãŠãŒã¹ã±ãŒã¹ãªã®ã§ãã¡å ã§ãµããŒããã±ããã起祚ããŠã¿ãŸãããããªãæªãããšããããæ¥ãããããµããŒããã±ããã«ãªã£ãŠããŸããŸããã

çµè«ããèšããšãEã¡ãŒã«éä¿¡çšéã§ã¯ãªããã€Elastic IPã§ã¯ãªãå Žåã«é¢ããŠããã¡ãã®ãã©ãŒã ã§ç³è«å¯èœãªããã§ãã
https://support.console.aws.amazon.com/support/contacts#/rdns-limits
ããã§ãã§ããã¯ãªã¹ãã¹ããªãŒã宿ããŸããïŒð
ãããã«
IPv6ã¯æåã®ä»æ§çå®ãã30å¹Žãæ¥æ¬åã®IPv6åçšãµãŒãã¹ãªãªãŒã¹ãã26幎ãçµéããæè¡ã§ãããªãã®å¹Žæãçµéããã¯ãæ°ããæè¡ã§ã¯ãªããªããŸããã
ãµã€ããŒãšãŒãžã§ã³ãã®ãšããåºåãããã¯ãã®å®ãã©ãã£ãã¯ã®IPv6æ¯çã¯2023幎æç¹ã§60%匱ãããã¯ã©ã€ã¢ã³ãåŽã®å¯Ÿå¿ãé²ãã§ããŠããããšãããããŸããããã以äžã«IPv4ã®ã¢ãã¬ã¹ç©ºéã®éŒè¿«ç¶æ³ã¯ã©ãã©ãå³ãããªã£ãŠããŠãããAWSã§ããš2023幎ã«ã¯ãããªãã¯IPv4ã¢ãã¬ã¹ã®æéäœç³»ã®å€æŽããããã³ã¹ãå¢ã®èŠå ãšãªã£ãŠããŸãã
AWSã®ãããªãã¯IPv4ã®æéäœç³»ã®å€æŽãšãµã€ããŒãšãŒãžã§ã³ãã®IPv6æŽ»çšæšé²äºäŸ | CyberAgent Developers Blog
LBãCDNã«IPv6ã¢ãã¬ã¹ãã€ããã°ã¯ã©ã€ã¢ã³ããšã®ã€ã³ã¿ãŒãããäžã®éä¿¡ã¯IPv6åãéæããããããããã ãã§ãããªãã®é²æ©ã§ããããã®è£ãIPv4ã®ã¿ã§æ§ç¯ãããŠããæ®µéã¯ãå®å šãªIPv6察å¿ããšèšãã«ã¯ãŸã è·é¢ããããŸãã
VPCå
ãã³ã³ããã¯ã©ã¹ã¿ãå«ãããªãç©æ¥µçãªIPv6åã®åãçµã¿ãããŠããã±ãŒã¹ãšããŠNetflixã®äºäŸã玹ä»ããŸãã
AWS re:Invent 2021 – How Netflix is using IPv6 to enable hyperscale networking

Netflixã¯2021幎ã«VPCå ã®ãããŒã®IPv6æ¯çã1%æªæºãã25%çšåºŠãŸã§åäžãããããã§ãã

ãããžãã¹äžãçµæžäžã®çç±ããå¿ èŠã ããIPv6åã«åãçµãã§ããããšããè¶£æšã®çºèšãéåžžã«å°è±¡çã§ããã
äœã£ãŠã¿ãææ³ã§ãããåŠçæä»£ã«æ¬èšäºãšäŒŒããããªããšãå人ãšãã£ãããšããããŸããåœæã¯Linuxã§å®è£ ããæ¹æ³ããããããçãLANã±ãŒãã«ã倧éã«è£œäœã48ããŒãã®L3ã¹ã€ãã(ã«ãŒã¿ã®ãããªãã®)ã3å°ç¹ããŠç©ççã«ãã±ãããHopãããã®ã§ãããä»ã§ã¯terraformã§å®è£ ã§ããããã«ãªãæé·ãæããŸããã

IPv6ã¢ãã¬ã¹ã¯ã¢ãã¬ã¹å¹ ãããã§ããèšèšãç°ãªããããä»åã玹ä»ãããããªæ¥µç«¯ãªæ§æãã€ã³ã¿ãŒãããã«ç¹ãã£ãç¶æ ã§å®è£ ãããšããã§å šãåé¡ãèµ·ããªãããšãããããŸããæ¬èšäºããã£ããã«IPv6ã«ããèå³ãæã€äººãå¢ããŸããã幞ãã§ãã
