🤖

JANOG47 NETCON 問題解説(300-1)

2021/03/05に公開

問題文

IPv6を試験的に導入する。他の利用者に影響を与えないようIPv6 Router Advertismentを抑制し、ClientAとClientBおよびRouter1に静的なIPv6アドレスを追加設定し通信確認を実施した。また、IPv4では、LAN内アドレスをプライベートアドレスで運用していたが、IPv6では潤沢なアドレスを割り当てられたため、グローバルアドレスを利用することとし、LAN側からの通信の戻りパケットのみインターネットから許可する運用とする。

問1) IPv6の通信確認を進めていると、利用者からWeb利用で一部のサイト閲覧で遅延が発生するとの連絡があり、調査の結果、意図しないSLAACによるIPv6アドレスが設定されていることが原因と分かった。どのような修正が必要か。

問2) 現在の設定では、LAN内クライアントとServerXとIPv6通信ができない状態である。どのような修正が必要か。

config

https://drive.google.com/file/d/1E51de1RUct2txvS6v3yMhxjdFkJeTWOT/view?usp=sharing

解答
問1) Router1の設定中にある"ipv6 nd ra suppress"を"ipv6 nd ra suppress all"に修正する。

interface GigabitEthernet0/0
 ...
 ipv6 nd ra suppress all
!
interface GigabitEthernet0/1
 ...
 ipv6 nd ra suppress all
!
interface GigabitEthernet0/2
 ...
 ipv6 nd ra suppress all
!

修正後以下を確認する。

netcon@ClientC:~$ ip -6 addr show dev ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 100
    inet6 fe80::250:2ff:feXX:XXXX/64 scope link
       valid_lft forever preferred_lft forwver


netcon@ClientA:~$ ping6 -c 3 2001:db8:cafe::1
PING 2001:db8:cafe::1(2001:deb8:cafe::1) 56 data bytes
64 bytes from 2001:db8:cafe::1: icmp_seq=1 ttl=64 time=7.18 ms
64 bytes from 2001:db8:cafe::1: icmp_seq=1 ttl=64 time=6.91 ms
64 bytes from 2001:db8:cafe::1: icmp_seq=1 ttl=64 time=5.94 ms

--- 2001:db8:cafe:2::10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
netcon@ClientA:~$ ping6 -c 3 2001:db8:cafe:2::10
PING 2001:db8:cafe:2::10(2001:deb8:cafe:2::10) 56 data bytes
64 bytes from 2001:db8:cafe:2::10: icmp_seq=1 ttl=64 time=5.02 ms
64 bytes from 2001:db8:cafe:2::10: icmp_seq=1 ttl=64 time=4.34 ms
64 bytes from 2001:db8:cafe:2::10: icmp_seq=1 ttl=64 time=4.83 ms

--- 2001:db8:cafe:2::10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms

問2) ServerXにLAN1およびLAN2への経路設定を追加する。

network:
  ethernets:
    ens3:
      addresses:
      - 192.0.2.100/25
      - 2001:db8:cafe::100/64
      gateway4: 192.0.2.2
      gateway6: 2001:db8:cafe::2
      routes:
      - to: 2001:db8:cafe::/48
        via: 2001:db8:cafe::1
        on-link: true
  version: 2
  

修正後、以下を確認する。

netcon@ClientA:~$ ping6 -c 3 2001:db8:cafe::100

問題解説
問1) "ipv6 nd ra suppress"では、定期的なRA配布は抑制されるが、クライアントからのRSに応答するRA (Solicited RA)はユニキャストで送信される。

Linuxなどの多くのクライアントOSは、明示的にIPv6を利用停止する設定を投入しない限り、デフォルトでIPv6 RSを送信しSLAACによるアドレス設定を試みる。そのため、意図しないIPv6アドレスが付与された。ちなみに、ubuntuにてSLAAC利用を禁止するには、netplanの場合"accept-ra: false"をインタフェースの設定に記載する必要がある。

今回は試験的な運用のためIPv6インターネットへの到達性がない環境であったため、IPv6からIPv4へ通信がフォールバックする実装の利用者から、IPv6対応サイトへの通信のみ遅延が発生する状況となった。

参考:https://www.janog.gr.jp/meeting/janog44/program/ipv6trbl

問2) IPv4ではNAT (NAPT)が一般的なので、プライベートアドレスセグメントへの経路を設定しなくても通信できてしまうが、IPv6では明示的に経路設定を実施しないといけない。これは当たり前過ぎることではあるが、IPv4と同じように設定するとハマるミス。

Discussion