-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
network interface name differs between Fedora CoreOS and RedHat CoreOS #484
Comments
@dustymabe before going for a meeting, I think we should investigate/document why the Fedora behavior is different and how we are defaulting to legacy interface names. |
ok will hold on the meeting discussion pending some investigation |
hey @Koma-Andrea - that particular piece of code is just there to say "if user added a |
This is actually a quite serious problem in my opinion and I'd classify this as a bug. I've got HP servers with six network interfaces (4 built-in, two extra) and the order is not deterministic and can vary from boot to boot. I tried setting So, how can I get back predictable interface names which are standard for a "normal" Fedora install since Fedora 19? I'll look into this myself in the coming days but maybe someone on here has a hint. |
For some reason, it looks like we are missing 99-default.link:
Most notably, it is not present in the initramfs. This means that an interface appears at boot, systemd and udev are aware of its persistent name, but there is nothing which performs the renaming. Thus, NM starts configuring it with the legacy name.
|
It turns out coreos/fedora-coreos-config#129 is the one that dropped it via:
Indeed, building a
|
For reference, fixing this for new nodes is likely a single-line patch. However there is a larger story around auto-upgrades flipping the netnames for existing machines. Let's take some time to brainstorm and see if we can come up with a safer update path. |
Thanks for the investigation Luca! sounds like something good to discuss on wednesday at our community meeting? |
@lucab What is reading that file if not systemd-networkd? |
@bgilbert the same question/comment was raised by @jlebon too. After a short code-digging trip, I found that udev has this logic which sources link units. To be fair, this is stated in the first sentence of the user docs on link units at https://www.freedesktop.org/software/systemd/man/systemd.link.html:
|
We discussed this in the community meeting last week. This might be as easy as adding a barrier with a script which adds
|
So the thoughts here are that existing nodes keep their existing behavior, but new nodes get the new behavior? If true, I do think it's the best path forward but it will lead to some confusion. We should try to do our best to document the problem (documentation FAQ entry?) and also raise awareness that a change in behavior is coming. |
Ugh...this is a mess indeed. That's really really unfortunate that we managed to break the default NIC naming scheme 😦 |
We discussed this during the meeting today:
As for when we should make the change the current proposal is that we wait for all the Fedora 32 changes to propagate out (since there is a lot going on there) and then properly implement this change and communicate it to users. |
I do agree on your proposed plan to roll this out as an upgrade that only affect new nodes. However, I am in the process of starting a new deployment now and I would really really want the predictable network naming from start. Is there anything I can do in my ignition file today that will turn this feature on? |
This release bumps the package set and also restores persistent NIC naming. See the following issue for context: coreos/fedora-coreos-tracker#484
This release bumps the package set and also restores persistent NIC naming. See the following issue for context: coreos/fedora-coreos-tracker#484
The barrier release (the release that adds net.ifnames=0 to kargs) for the |
The release that fixes this for the |
@tkarls FYI ^^ - If you want to do a proof of concept go grab the latest |
Now that we are using persistent NIC naming in FCOS we'll update the test to also use those interface names. See: coreos/fedora-coreos-tracker#484
Now that we are using persistent NIC naming in FCOS we'll update the test to also use those interface names. See: coreos/fedora-coreos-tracker#484 Also add a test that makes sure that net.ifnames=0 works as desired.
Now that we are using persistent NIC naming in FCOS we'll update the test to also use those interface names. See: coreos/fedora-coreos-tracker#484 Also add a test that makes sure that net.ifnames=0 works as desired.
This a barrier release for coreos/fedora-coreos-tracker#484 This also adds the GCP stream.
This a barrier release for coreos/fedora-coreos-tracker#484 This also adds the GCP Cloud launchable stream.
This a barrier release for coreos/fedora-coreos-tracker#484 This also adds the GCP Cloud launchable stream.
This a barrier release for coreos/fedora-coreos-tracker#484 This also adds the GCP Cloud launchable stream.
This a barrier release for coreos/fedora-coreos-tracker#484 This also adds the GCP Cloud launchable stream.
This a barrier release for coreos/fedora-coreos-tracker#484 This also adds the GCP Cloud launchable stream.
This a barrier release for coreos/fedora-coreos-tracker#484 This also adds the GCP Cloud launchable stream.
Barriers to pin the legacy names are now in place on all the streams:
|
The fix for this went into next stream release The fix for this went into testing stream release |
The fix for this went into stable stream release |
I've noticed that Fedora coreos use the old eth* standard while RedHat CoreOS use the net.ifnames=1 naming.
I.E. on vmware FedoraCOS expose eth0 while RHCOS expose ens192 .
The text was updated successfully, but these errors were encountered: