데비안 스퀴즈에서 IPv4 매핑 IPv6을 사용할 수 없습니다.

데비안 스퀴즈에서 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 패킷은 지정된 주소로 생성되며 이는 유선상에서는 의미가 없습니다. 제 생각에는 이것은 안전하게 버그로 간주될 수 있으며 ping6둘 다 IPv4 주소가 포함된 IPv6 패킷을 유선에 주입하거나 해당 주소가 IPv6 스택에 존재하도록 허용하기 전에 커널이 더 일찍 실패해야 합니다.

관련 정보