実行中のGRETAPインターフェースを作成しました。
$ ip link show t104016114
15: t104016114@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1242 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 06:ef:75:cf:2c:b6 brd ff:ff:ff:ff:ff:ff
$ ip address list t104016114
15: t104016114@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1242 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 06:ef:75:cf:2c:b6 brd ff:ff:ff:ff:ff:ff
inet 10.40.16.226/14 brd 10.43.255.255 scope global dynamic t104016114
valid_lft 2836sec preferred_lft 2836sec
IP6リンクローカルアドレスが欲しいのですが、ここでブロックされます。
$ ipv6calc --in prefix+mac fe80:: 06:ef:75:cf:2c:b6
No action type specified, try autodetection...found type: prefixmac2ipv6
fe80::4ef:75ff:fecf:2cb6
$ sudo ip addr add dev t104016114 scope link noprefixroute fe80::4ef:75ff:fecf:2cb6/64
RTNETLINK answers: Invalid argument
誰かがここで正確に何が有効でないかを指摘できますか?より多くの情報を得る方法はありますか?
答え1
すべてRFC 2460:
パケットサイズの問題
IPv6では、インターネット上のすべてのリンクにMTUは1280です。
オクテット以上。
一度に1280オクテットパケットを転送できないリンクでは、
リンクごとの断片化と再組み立てをIPv6の下の層で提供する必要があります。
実行するトンネリング(または多層トンネリング)に関連する何らかの理由で、インターフェイスMTUは1280未満です。この場合、Linux 実装ではインターフェイスが IPv6 に適しているとは見なされません。 IPv6が無効になっています。以下は私のテストを示しています。
# ip netns add testbed
最初の学期:
# ip -n testbed monitor
第二学期:
# ip -n testbed link add t104016114 address 06:ef:75:cf:2c:b6 type gretap remote 10.100.0.2 local 10.100.0.1
最初の学期:
inet t104016114 forwarding on rp_filter strict mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off
inet6 t104016114 forwarding off mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off
5: t104016114@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default
link/ether 06:ef:75:cf:2c:b6 brd ff:ff:ff:ff:ff:ff
5: t104016114@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default
link/ether 06:ef:75:cf:2c:b6 brd ff:ff:ff:ff:ff:ff
デフォルトでは、選択されるMTUは1462です。
第二学期:
# ip -n testbed link set t104016114 up
最初の学期:
ff00::/8 dev t104016114 table local metric 256 pref medium
fe80::/64 dev t104016114 proto kernel metric 256 pref medium
5: t104016114 inet6 fe80::4ef:75ff:fecf:2cb6/64 scope link
valid_lft forever preferred_lft forever
local fe80::4ef:75ff:fecf:2cb6 dev t104016114 table local proto kernel metric 0 pref medium
第二学期:
# ip -n testbed link set t104016114 mtu 1242
最初の学期:
5: t104016114@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1242 qdisc pfifo_fast state UNKNOWN group default
link/ether 06:ef:75:cf:2c:b6 brd ff:ff:ff:ff:ff:ff
Deleted fe80::/64 dev t104016114 proto kernel metric 256 pref medium
Deleted local fe80::4ef:75ff:fecf:2cb6 dev t104016114 table local proto kernel metric 0 pref medium
Deleted ff00::/8 dev t104016114 table local metric 256 pref medium
Deleted ff02::2 dev t104016114 lladdr 33:33:00:00:00:02 NOARP
Deleted ff02::1:ffcf:2cb6 dev t104016114 lladdr 33:33:ff:cf:2c:b6 NOARP
Deleted ff02::16 dev t104016114 lladdr 33:33:00:00:00:16 NOARP
Deleted 5: t104016114 inet6 fe80::4ef:75ff:fecf:2cb6/64 scope link
valid_lft forever preferred_lft forever
Deleted inet6 t104016114
第二学期:
# ip -n testbed addr add dev t104016114 scope link noprefixroute fe80::4ef:75ff:fecf:2cb6/64
RTNETLINK answers: Invalid argument
第二学期:
# ip -n testbed link set t104016114 mtu 1462
最初の学期:
5: t104016114@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc pfifo_fast state UNKNOWN group default
link/ether 06:ef:75:cf:2c:b6 brd ff:ff:ff:ff:ff:ff
inet6 t104016114 forwarding off mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off
ff00::/8 dev t104016114 table local metric 256 pref medium
fe80::/64 dev t104016114 proto kernel metric 256 pref medium
5: t104016114 inet6 fe80::4ef:75ff:fecf:2cb6/64 scope link
valid_lft forever preferred_lft forever
local fe80::4ef:75ff:fecf:2cb6 dev t104016114 table local proto kernel metric 0 pref mediump-sysctl.txt?h=v5.3#n1739
最小値の場合、期待どおりに1279を選択するとIPv6が再び無効になり、mtu 1280を使用するとIPv6を復元できます。