wicked dhcp6 and ENIs #2561
Replies: 10 comments 16 replies
-
One other likely important bit is that the IPv6 address that eth0 gets from wicked is configured as a /64 and
With our previous AL2 AMI this was a /128 and did not include The wicked dhcp6 test shows a /128 as well:
Since this is a /64 and it would include the IP addresses assigned by the ENI to eth1 I suspect this is where things are getting confused. |
Beta Was this translation helpful? Give feedback.
-
Hi @joewilliams, can you go into a bit more detail about your use-case? |
Beta Was this translation helpful? Give feedback.
-
@jpculp I am attempting to migrate from AL2 and have a few "ingress" EKS nodes that run containers that use host networking and ENIs instead of kube networking. I am attempting to use the k8s bottlerocket AMI for these nodes, or at least attempt to modify the k8s AMI as a test to see what needs to change to build my own variant. It seems the behavior of wicked is markedly different than something like dhclient. |
Beta Was this translation helpful? Give feedback.
-
One part I do not understand, and I think is critical, is for some reason under bottlerocket the next hop is STALE whereas under AL2 it is REACHABLE. I suspect this is why dhcp6 is not working. Below output from bottlerocket:
AL2:
|
Beta Was this translation helpful? Give feedback.
-
Also, if I take the ENI I've been using on the bottlerocket host and attach it to an AL2 host and run Wicked seems to have different behavior wrt to default routes which might be part of the problem as well https://github.com/openSUSE/wicked/wiki/FAQ#q-why-wicked-does-not-set-my-default-static-route |
Beta Was this translation helpful? Give feedback.
-
On this same ENI testing dhcp via wicked results in IPv4 working and IPv6 not working:
From my perspective the repro steps are:
|
Beta Was this translation helpful? Give feedback.
-
Hi @joewilliams - thanks for opening the discussion and providing the detailed repro. We'll dig into this and figure out what's going on. Full disclosure - this would be the first time (that we know of) that anyone is attempting to manually configure interfaces directly on Bottlerocket in an AWS variant; not using CNI, etc. I do know that dropping files into Another thing I noticed in your config is that you have |
Beta Was this translation helpful? Give feedback.
-
@joewilliams I'm looking into this now - currently working on getting an ipv6 cluster/VPC set up so I can properly test it. |
Beta Was this translation helpful? Give feedback.
-
@joewilliams - When you attached the ENI to the instance, curious if you set any ipv6 prefixes? It falls under the ENI option |
Beta Was this translation helpful? Give feedback.
-
@joewilliams I think we've got this figured out. @bcressey and I put our heads together this morning and remembered that it's important in EC2 that interfaces using IPv6 DHCP need to accept router advertisements. We currently set the sysctl A good way to configure additional ENIs would be a boostrap container that writes a For prototyping and/or debugging until #2615 is implemented, you could do one of the following. I do not recommend building a production solution using the following:
|
Beta Was this translation helpful? Give feedback.
-
I am trying to understand how wickedd-dhcp6 configures ENI interfaces. IPv4 on the default interface eth0 seems to work fine.
To test I used the admin container to add a config like the following:
After that
ifup
works, as does IPv4, but IPv6 doesn't seem to:One interesting bit, after this
ip -6 n s
shows eth0's neighbors being the ENI addresses I expected to be assigned to eth1 via DHCP with eth1's MAC. Also, the upstream router that works for eth0 is STALE for eth1 (this is the default route for eth0).Also,
wicked test dhcp6 eth0
works fine whereaswicked test dhcp6 eth1
does not.IPv4 seems to work fine on both eth0 and eth1.
Anyone have any suggestions?
Beta Was this translation helpful? Give feedback.
All reactions