Điểm:0

How to configure DHCPv6 in Proxmox without bridge?

lá cờ tr

(crosspost: Network stack exchange)

I have a setup with Proxmox connected via WiFi. Everything works for my needs and IPv4 connectivity too.

Now, I want to see if it is possible to do some DHCPv6 setup so that my virtual machines have IPv6 addresses as well. I'd prefer a setup without NAT, but it's not mandatory that it is so.

I'm taking a few options into consideration for IPv6 connectivity:

  • NDP Proxy. This one feels like it's the most "transparent", and I will get a public IPv6 address from the same network as the host, which is the main abcd:abcd:abcd:FFFF::/64 network.
  • DHCPv6 network. My router has DHCPv6, I can probably make my Proxmox instance request a network to use for its internal bridge (using prefix delegation). I'm currently using dnsmasq for the IPv4 addresses of virtual machines, but I believe I can replace it with something else.
  • NAT. I don't want this option, but I also won't decline it completely either. The reason why I cannot just connect the Proxmox bridge in bridge mode to my LAN (which would have made things significantly easier) is the fact that I cannot bring in a wired connection, so I have to use WiFi (thankfully at least it's 5 GHz and there's no need for much traffic most of the time) and WiFi client doesn't support bridges.

So here is my request for advice. Thank you in advance.

EDIT: Came to prefix delegation as my choice. Haven't managed to get it completely done. Now for the issues:

  • I get the IPv6 prefix delegated, the Proxmox server is getting a /62
  • On the server I have radvd enabled, it is properly advertising to the internal LAN of the VMs
  • The VM, a Ubuntu 20.04 with NetworkManager, is getting router advertisements and even autoconfiguring the default route. However, it doesn't autoconfigure the IPv6 address, which leads to unexpected issue of "Destination unreachable: Beyond scope of source address" when trying to ping an IPv6 address. If I manually do "ip a a dev ens18 2001:db8:facb:9876::23:2918/62" it works (the routes are 2001:db8:facb:9874::/62 plus the default route).

radvdump output:

{
    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 configuration:

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

(vmbr0 has its IPv6 address correctly configured)

lá cờ in
Nếu bạn có thể kiểm soát bộ định tuyến bên ngoài của mình thì định tuyến tiền tố /64 sang phía proxmox của bạn có lẽ là tốt nhất, nếu không thì bạn đã thử nó hoặc bất kỳ lựa chọn thay thế nào khác chưa? (Có vẻ như bạn đã có câu trả lời và không có câu hỏi thực sự?)
lá cờ tr
@NiKiZe Vấn đề là tiền tố mà bộ định tuyến nhận được không tĩnh - nó thay đổi mỗi khi tôi thực hiện lại kết nối PPPoE với ISP của mình. Câu hỏi của tôi gồm hai phần: Tùy chọn nào trong số những tùy chọn này là tốt nhất và cách thực hiện.
lá cờ tr
@NiKiZe Tôi đã thử ủy quyền tiền tố, có vẻ như nó không hoạt động (Tôi không nhận được tiền tố từ bộ định tuyến chính của mình). Hỗ trợ ủy quyền tiền tố được bật trong chính bộ định tuyến, vì vậy có thể ISP không cung cấp chính xác hay gì đó? Tôi đã không quản lý để proxy NDP hoạt động nhưng có lẽ tôi đang làm sai điều gì đó ở đó và một lần nữa tôi không muốn thực hiện NAT trừ khi không có giải pháp thay thế nào.
lá cờ tr
@NiKiZe Được quản lý để thực hiện ủy quyền tiền tố, nhưng không hoàn toàn. Định tuyến hoạt động, nhưng tính năng tự động định cấu hình địa chỉ không có trên máy khách Ubuntu 20.04. Tôi tự hỏi liệu đó có phải là lỗi của khách hay có một số vấn đề về cấu hình chính hãng.
Điểm:1
lá cờ tr

Hóa ra tôi đã làm một số việc hơi phức tạp, bây giờ tôi đã tự mình trả lời được câu hỏi.

Trước hết, hãy để tôi liên kết đến tài nguyên bên ngoài hữu ích nhất cho mục đích này: một câu trả lời SuperUser.

Cấu hình của tôi phản ánh cấu hình trong bài viết đó:

  • Bộ định tuyến: Bật ủy quyền tiền tố. Có lẽ không cần phải làm gì để thay đổi từ mặc định, nhưng chỉ trong trường hợp.
  • Cài đặt gói "wide-dhcpv6-client". Định cấu hình nó phù hợp để yêu cầu ủy quyền tiền tố và thực hiện tương ứng cho từng giao diện.
  • Điều chỉnh dnsmasq để cung cấp địa chỉ IPv6 -- điều này cho phép cả quảng cáo bộ định tuyến và DHCP hoạt động chính xác.
  • Khởi động lại (vì lý do nào đó ifup/ifdown không điều chỉnh chính xác theo cách khác).

đoạn dhcp6c.conf:

giao diện wlp2s0 {
        gửi cam kết nhanh chóng;
        gửi ia-na 0;
        gửi ia-pd 0;
};

id-assoc na 0 {
};

id-assoc pd 0 {
        tiền tố ::/60 vô cùng;
        giao diện tiền tố vmbr0 {
                sla-len 4;
                sla-id 0;
                nếu không 1;
        };
};

đoạn dnsmasq.conf:

kích hoạt-ra
dhcp-range=::1,constructor:vmbr0,ra-stateless,ra-names,4h

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.