infrastructure-roadmap icon indicating copy to clipboard operation
infrastructure-roadmap copied to clipboard

vMac for ipv6

Open NotLazy opened this issue 1 year ago • 8 comments

As an OVHcloud customer using dedicated bare metal servers I want to be able to assign virtual mac addresses to the ipv6 address block so that I can assign ipv6 addresses to guests in my proxmox instance

I have an existing setup with ipv4 addresses that I can easily set the mac address of a VM or LXC and through the use of a dhcp server, have the VM or LXC automatically discover and use their ipv4 address. I would appreciate a similar functionality for ipv6, as it seems very weird that we're not already able to do this, since we can do it with ipv4.

I'd expect that I can use "Select IPv6" or a new option "Add a virtual MAC" from the dropdown to select an ipv6 and then define a vMac and then have that ipv6 show up inside the ipv6's fold with the vmac, sort of similar to how ipv4's additional IP blocks work.

NotLazy avatar Mar 12 '24 21:03 NotLazy

Thanks for your issue. I have transferred to infrastructure roadmap which is managing additional IP product

yomovh avatar Apr 02 '24 13:04 yomovh

Have you seen Additional IPv6 working with vRack? No vMac there, but next-hop and routed subnets available. Would that help you, @NotLazy ?

jslocinski avatar Jun 18 '24 08:06 jslocinski

Have you seen Additional IPv6 working with vRack?

No vMac there, but next-hop and routed subnets available.

Would that help you, @NotLazy ?

Unfortunately the RISE series doesn't support vRack, so that's not an option for my use case.

NotLazy avatar Jun 18 '24 15:06 NotLazy

@NotLazy do you have proxy_ndp turned on on your bridge? this is needed for the router to find the vms

net.ipv6.conf.default.proxy_ndp = 1
net.ipv6.conf.all.proxy_ndp = 1

zarlo avatar Jun 21 '24 05:06 zarlo

@zarlo I'm not totally familiar with how all this works, so just to clarify, are those two settings the only thing I would need to change to test if that would work?

NotLazy avatar Jun 26 '24 18:06 NotLazy

@NotLazy they should be

sysctl -w net.ipv6.conf.default.proxy_ndp = 1
sysctl -w net.ipv6.conf.all.proxy_ndp = 1

this will turn on ndp proxying for all interfaces

root@pve5480:~# sysctl -a | grep "net.ipv6.conf.all"
net.ipv6.conf.all.accept_dad = 0
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_from_local = 0
net.ipv6.conf.all.accept_ra_min_hop_limit = 1
net.ipv6.conf.all.accept_ra_min_lft = 0
net.ipv6.conf.all.accept_ra_mtu = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.all.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.all.accept_ra_rtr_pref = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_untracked_na = 0
net.ipv6.conf.all.addr_gen_mode = 0
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.disable_policy = 0
net.ipv6.conf.all.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.all.drop_unsolicited_na = 0
net.ipv6.conf.all.enhanced_dad = 1
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.force_tllao = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.ignore_routes_with_linkdown = 0
net.ipv6.conf.all.ioam6_enabled = 0
net.ipv6.conf.all.ioam6_id = 65535
net.ipv6.conf.all.ioam6_id_wide = 4294967295
net.ipv6.conf.all.keep_addr_on_down = 0
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.all.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.ndisc_evict_nocarrier = 1
net.ipv6.conf.all.ndisc_notify = 0
net.ipv6.conf.all.ndisc_tclass = 0
net.ipv6.conf.all.proxy_ndp = 1
net.ipv6.conf.all.ra_defrtr_metric = 1024
net.ipv6.conf.all.regen_max_retry = 3
net.ipv6.conf.all.router_probe_interval = 60
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitation_max_interval = 3600
net.ipv6.conf.all.router_solicitations = -1
net.ipv6.conf.all.rpl_seg_enabled = 0
net.ipv6.conf.all.seg6_enabled = 0
net.ipv6.conf.all.seg6_require_hmac = 0
net.ipv6.conf.all.suppress_frag_ndisc = 1
net.ipv6.conf.all.temp_prefered_lft = 86400
net.ipv6.conf.all.temp_valid_lft = 604800
net.ipv6.conf.all.use_oif_addrs_only = 0
net.ipv6.conf.all.use_tempaddr = 0

my set up that works for me

zarlo avatar Jun 27 '24 00:06 zarlo

@zarlo without further configuration than those two settings, it didn't work. I updated them, restarted my vm and this is how that went:

# curl -6 ifconfig.me
curl: (7) Couldn't connect to server

NotLazy avatar Jun 27 '24 14:06 NotLazy

are you setting you gateway?

zarlo avatar Jun 27 '24 23:06 zarlo