Debian スクイズでは IPv4 マッピング IPv6 を使用できません。

Debian スクイズでは IPv4 マッピング IPv6 を使用できません。

ipv6をテストするスクイーズボックスがあります... eth3はインターフェイスです... "一般" ipv6アドレス(::101:c0a8:3132/120)を設定すると、期待される結果が表示されますifconfig...

eth3      Link encap:Ethernet  HWaddr 00:02:b3:9a:af:6d  
          inet6 addr: fe80::202:b3ff:fe9a:af6d/64 Scope:Link
          inet6 addr: ::101:c0a8:3132/120 Scope:Global

しかし、私が設定した場合IPv4 マップされた IPv6 アドレス、住所の一部が見えません...

[mpenning@hotcoffee EX4200_PC5448]$ sudo ip -6 addr del ::101:c0a8:3132/120 dev eth3
[mpenning@hotcoffee EX4200_PC5448]$ sudo ip -6 addr add ::ffff:192.168.13.236/120 dev eth3
[mpenning@hotcoffee EX4200_PC5448]$ ifconfig eth3
eth3      Link encap:Ethernet  HWaddr 00:02:b3:9a:af:6d  
          inet6 addr: 192.168.13.236/120 Scope:Global
          inet6 addr: fe80::202:b3ff:fe9a:af6d/64 Scope:Link

住所を代わりに表示する必要はあり::ffff:192.168.13.236/120ませんか192.168.13.236/120

また、IPv4マップされたIPv6アドレスを割り当てる際にpingの問題が発生するため、これがifconfigの予期しない表示に関連しているのか、相手に問題があるのか​​疑問に思います。

編集する:

使用ip addr show eth3...

[mpenning@hotcoffee ~]$ ip addr show eth3
5: eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:02:b3:9a:af:6d brd ff:ff:ff:ff:ff:ff
    inet6 ::ffff:192.168.13.236/120 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::202:b3ff:fe9a:af6d/64 scope link 
       valid_lft forever preferred_lft forever
[mpenning@hotcoffee ~]$

ベストアンサー1

IPv4マッピングIPv6アドレスはIPv6インターフェイスに割り当てたり、IPv6ネイティブ通信に使用したりしないでください。少なくとも現在のLinuxではそうではありません。フラグなしip addr addで使用-6し、一般的なIPv4表記法で一般的なIPv4アドレスを追加します。

sudo ip addr add 192.168.13.236/24 dev eth3

そして再び言うが、使用しないでくださいifconfig古い廃止、損傷および交換済み渡すIP ルート 2。 IPv6アドレスを正しく表示せず、エイリアシングなしで同じインターフェイスに複数のIPv4アドレスを表示しません。


他のコメントで投稿するには大きすぎるので、以下のコメントで議論を明確にします。

IPv4アドレスがIPv4マップされたIPv6アドレスに変換されても、IPv6スタックに追加することは意味がありません。 IPv6プロトコルスタックはIPv6アドレスを処理し、IPv6パケットを送信し、IPv4スタックはIPv4アドレスを処理し、IPv4パケットを送信します。

インターフェイスにアドレスを追加してpingすることで動作します。おそらく、インターフェイスにアドレスを追加するカーネルコードに完全性チェックがありませんでした。

IPv4マッピングIPv6アドレスがある場合は、IPv6ソケットを使用してIPv4ホストと通信できます(重要:つまり、アプリケーションレベルで)。 IPv6を使用して通信するためにインターフェイスにIPv4マッピングIPv6アドレスを追加する必要はありません。試してみてください:

ssh ::ffff:127.0.0.1

ループバックインターフェイス()のIPv6スタックに:::ffff:127.0.0.1(IPv6)が登録されていない場合でもlo透過的に機能します。 127.0.0.1/8(IPv4)が動作するため動作します。 IPv6 アドレスを提供しても、システムは実際に IPv4 パケットを使用します。 Wiresharkまたはtcpdumpを使用してこれを確認できます。これは、IPv6ワイルドカードアドレスにバインド/受信されるIPv6ソケットを使用してIPv4パケットまたは接続を受信するときにも機能します。

ICMPソケット用のAPIはIPv4とIPv6の間で完全に異なるため、ICMPとpingは異なる動作をします。ping6実際、生のICMPv6パケットは指定されたアドレスで生成され、これは有線上では意味がありません。私の考えでは、これは安全にバグと見なすことができ、両方ともping6IPv4アドレスを含むIPv6パケットを有線に注入するか、そのアドレスがIPv6スタックに存在することを許可する前にカーネルがより早く失敗する必要があります。

おすすめ記事