(교차포스트: 네트워크 스택 교환 )

Wi-Fi를 통해 연결된 Proxmox로 설정했습니다. 모든 것이 내 요구 사항과 IPv4 연결에도 적합합니다.

이제 가상 머신에도 IPv6 주소가 있도록 일부 DHCPv6 설정을 수행할 수 있는지 확인하고 싶습니다. NAT가 없는 설정을 선호하지만 반드시 그래야 하는 것은 아닙니다.

IPv6 연결을 위해 몇 가지 옵션을 고려하고 있습니다.

  • NDP 프록시. 이것은 가장 "투명한"것처럼 느껴지며 호스트와 동일한 네트워크에서 공용 IPv6 주소를 얻습니다. 이 주소는 기본 abcd:abcd:abcd:FFFF::/64 네트워크입니다.
  • DHCPv6 네트워크. 내 라우터에 DHCPv6이 있으므로 Proxmox 인스턴스가 내부 브리지에 사용할 네트워크를 요청하도록 할 수 있습니다(접두사 위임 사용). 현재 가상 머신의 IPv4 주소에 dnsmasq를 사용하고 있지만 다른 것으로 대체할 수 있다고 생각합니다.
  • NAT. 이 옵션을 원하지 않지만 완전히 거부하지도 않습니다. 브리지 모드에서 Proxmox 브리지를 내 LAN에 연결할 수 없는 이유(훨씬 쉽게 만들 수 있음)는 유선 연결을 가져올 수 없으므로 WiFi를 사용해야 하기 때문입니다(다행히 적어도 5GHz 대부분의 경우 많은 트래픽이 필요하지 않습니다.) WiFi 클라이언트는 브리지를 지원하지 않습니다.

그래서 여기에 조언을 구합니다. 미리 감사드립니다.

편집 : 내 선택으로 접두사 위임에 왔습니다. 완전히 끝내지 못했습니다. 이제 문제에 대해:

  • IPv6 접두사를 위임받았습니다. Proxmox 서버는 /62를 받고 있습니다.
  • 내가 radvd를 활성화한 서버에서 VM의 내부 LAN에 제대로 광고하고 있습니다.
  • NetworkManager가 포함된 Ubuntu 20.04인 VM은 라우터 알림을 받고 기본 경로를 자동 구성하기까지 합니다. 그러나 IPv6 주소를 자동 구성하지 않으므로 IPv6 주소를 ping하려고 할 때 "대상에 연결할 수 없음: 원본 주소 범위를 벗어남"이라는 예기치 않은 문제가 발생합니다. "ip aa dev ens18 2001:db8:facb:9876::23:2918/62"를 수동으로 수행하면 작동합니다(경로는 2001:db8:facb:9874::/62에 기본 경로를 더한 것입니다).

radvdump 출력:

{
    AdvSendAdvert on;
    # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
    AdvManagedFlag off;
    AdvOtherConfigFlag off;
    AdvReachableTime 0;
    AdvRetransTimer 0;
    AdvCurHopLimit 64;
    AdvDefaultLifetime 300;
    AdvHomeAgentFlag off;
    AdvDefaultPreference medium;
    AdvSourceLLAddress on;

    prefix fde1:d59a:7fa7:8::/62
    {
        AdvValidLifetime 86400;
        AdvPreferredLifetime 14400;
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
    }; # End of prefix definition


    prefix 2001:db8:facb:9874::/62
    {
        AdvValidLifetime 86400;
        AdvPreferredLifetime 14400;
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
    }; # End of prefix definition


    prefix fde1:d59a:7fa7:8::/62
    {
        AdvValidLifetime 86400;
        AdvPreferredLifetime 14400;
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
    }; # End of prefix definition


    prefix 2001:db8:facb:9874::/62
    {
        AdvValidLifetime 86400;
        AdvPreferredLifetime 14400;
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
    }; # End of prefix definition


    route ::/0
    {
        AdvRoutePreference medium;
        AdvRouteLifetime 300;
    }; # End of route definition

}; # End of interface definition

RADVD 구성:

interface vmbr0 {
  AdvSendAdvert on;
  MinRtrAdvInterval 30;
  MaxRtrAdvInterval 100;
  AdvSourceLLAddress on;
  prefix ::/64 {
    AdvOnLink on;
    AdvAutonomous on;
    AdvRouterAddr on;
    Base6Interface vmbr0;
  };
  route ::/0 {
  };
};

(vmbr0에는 IPv6 주소가 올바르게 구성되어 있습니다)

answer

나는 약간 지나치게 복잡한 일을하고 있었다는 것이 밝혀졌습니다. 이제 나는 스스로 질문에 답할 수있었습니다.

먼저 이 목적에 가장 도움이 된 외부 리소스인 수퍼유저 답변 에 연결하겠습니다 .

내 구성은 해당 기사의 구성을 반영합니다.

  • 라우터: 접두사 위임을 활성화합니다. 아마도 기본값에서 변경하기 위해 수행할 필요가 없었지만 만일의 경우를 대비하여.
  • "wide-dhcpv6-client" 패키지를 설치합니다. 접두사 위임을 요청하도록 적절하게 구성하고 각 인터페이스에 대해 적절하게 수행합니다.
  • IPv6 주소를 제공하도록 dnsmasq를 조정하십시오. 이렇게 하면 라우터 광고와 DHCP가 모두 올바르게 작동할 수 있습니다.
  • 재부팅(어떤 이유로 ifup/ifdown이 그렇지 않으면 올바르게 조정되지 않음).

dhcp6c.conf 조각:

interface wlp2s0 {
        send rapid-commit;
        send ia-na 0;
        send ia-pd 0;
};

id-assoc na 0 {
};

id-assoc pd 0 {
        prefix ::/60 infinity;
        prefix-interface vmbr0 {
                sla-len 4;
                sla-id 0;
                ifid 1;
        };
};

dnsmasq.conf 조각:

enable-ra
dhcp-range=::1,constructor:vmbr0,ra-stateless,ra-names,4h