From: Adolf Belka <adolf.belka@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: The MTU definition part of dhcpcd has been rewritten in version 10.0.10
Date: Wed, 04 Sep 2024 11:25:41 +0200 [thread overview]
Message-ID: <db26b1d6-fdc7-43f9-a1a5-a5c75ddfeecf@ipfire.org> (raw)
In-Reply-To: <fef2f05c-0c27-46e6-ba21-d104120331e6@ipfire.org>
[-- Attachment #1: Type: text/plain, Size: 6073 bytes --]
Hi Michael,
So I have now tested out with setting high and low MTU values in the red setup stage.
In all cases with both the dhcpcd-10.0.10 + dhcpcd.exe patch or with a standard CU187, there is no MTU value in dhcpcd-red0.info and also the mtu value shown for red0 with ip address show is always 1500 irrespective of reboot or not.
The force MTU value is being stored somewhere because if I rerun the setup, before or after a reboot, the value I entered for the force MTU is still there.
Maybe I am not looking in the right place to see where the mtu has been forced.
What I can say, is that for a standard dhcp connection the version 10.0.10 with the dhcpcd.exe patch mod works fine for making a red connection.
Regards,
Adolf.
On 04/09/2024 09:54, Adolf Belka wrote:
> Hi Michael,
>
> On 03/09/2024 10:24, Michael Tremer wrote:
>> Hello Nick,
>>
>> Good thinking. This might actually not work any more if we are using the route option. I hope it does, but we might have to test.
>>
>> It would not solve the entire problem as this only applies to TCP and is basically a way to signal to the other party to not send packets larger than the MTU as it assumes that it will be symmetric.
>>
>> -Michael
>>
>>> On 3 Sep 2024, at 10:22, Nick Howitt <nick(a)howitts.co.uk> wrote:
>>>
>>> I really don't know if this is a red herring, but if you use --clamp-mss-to-pmtu in the firewall, does it get round the need to set an MTU at all?
>>>
>>> Nick
>>>
>>> On 03/09/2024 08:45, Michael Tremer wrote:
>>>> Good morning,
>>>> This is a good catch as this changes the behaviour of dhcpcd quite a lot.
>>>> They no longer will set the interface MTU, but instead will set it to the routes. This is because stupid hardware vendors cannot figure out their shit and might reset the Ethernet link when the MTU is being changed. That will trigger dhcpcd to fetch another lease and reset the MTU again, and then fetch another lease, and so on.
>>>> Instead they will configure routes in the kernel that have a different MTU to the interface MTU which will then fragment packets as soon as the kernel selects that route.
>>>> We didn’t adopt that change in our scripts although we could easily do this for the default route. However, the problems begin when there are static routes pointing at the RED interface. We would then have to figure out what the MTU is and set it for all static routes, too. This is not entirely trivial although not the biggest problem ever.
>>>> Looking at what I am getting from a cable model here, there is no MTU in /var/ipfire/dhcpc/dhcpcd-red0.info <http://dhcpcd-red0.info/>, but some other systems that I checked have it. So we could move setting the MTU to dhcpcd.exe (https://git.ipfire.org/?p=ipfire-2.x.git;a=blob;f=src/initscripts/networking/dhcpcd.exe;h=c8a79999dced000925f35bb4d244ce420077c13c;hb=HEAD).
>>>> That would be an acceptable workaround since we have not seen too many of those resets with our users and we would emulate the same behaviour. Could you test this, please?
>>>> root(a)michael:/build/ipfire-2.x# git diff
>>>> diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
>>>> index c8a79999d..870aef6a6 100644
>>>> --- a/src/initscripts/networking/dhcpcd.exe
>>>> +++ b/src/initscripts/networking/dhcpcd.exe
>>>> @@ -46,6 +46,14 @@ dhcpcd_up()
>>>> update=1;
>>>> fi
>>>> + # Assume an MTU of 1500 unless something else is configured
>>>> + if [ -z "${interface_mtu}" ]; then
>>>> + interface_mtu="1500"
>>>> + fi
>>>> +
>>>> + # Set the MTU
>>>> + ip link set "${interface}" mtu "${interface_mtu}"
>>>> +
>>>> # Get DNS from dhcp
>>>> /etc/rc.d/helper/getdnsfromdhcpc.pl 1 > /var/run/dns1
>>>> /etc/rc.d/helper/getdnsfromdhcpc.pl 2 > /var/run/dns2
>>>> -Michael
>
> I built dhcpcd-10.0.10 with the above modifications made to dhcpcd.exe and installed the resultant build on a vm system.
>
> It started up fine and made a successful dhcp connection via red. There was no mtu entry in dhcpcd-red0.info
>
> I then ran setup from the console and added an entry into the mtu line (1483) and then exited. It restarted networking successfully but there was no mtu entry in dhcpcd-red0.info
>
> I then did a fresh install of the the change again and during the installation phase I set the mtu to 1483. Successfully connected via red but again no mtu entry in dhcpcd-red0.info
>
> Is the above the checks that were required, or have I missed something to do/check.
>
> Regards,
>
> Adolf.
>
>>>>> On 2 Sep 2024, at 18:29, Adolf Belka <adolf.belka(a)ipfire.org> wrote:
>>>>>
>>>>> Dear All,
>>>>>
>>>>> dhcpcd-10.0.10 is available but I noticed that a change has been made in the mtu definition section that means that the patch we have had to allow free selection of the MTU by the user will not apply.
>>>>>
>>>>> I have had a look through the changes but I can not determine if what they have done will give us the equivalent of the patched result we used to have or if a totally new patch needs to be created to deal with the changed coding.
>>>>>
>>>>> The commit with the change is
>>>>>
>>>>> https://github.com/NetworkConfiguration/dhcpcd/commit/5ac1235b99d33085d0574ef81b95ceafcf79db34
>>>>>
>>>>> The issue that triggered the change
>>>>>
>>>>> https://github.com/NetworkConfiguration/dhcpcd/pull/346
>>>>>
>>>>> is labelled "No longer set interface mtu" which would suggest that it might be in line with what we want to have but I have no idea of how to test this and I don't understand the changes well enough to know if give us the result of users having free selection of the mtu.
>>>>>
>>>>> Can someone more experienced look through the changes to see if they are okay, before I look at doing a package update build for the updated version.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Adolf.
>>>>>
next prev parent reply other threads:[~2024-09-04 9:25 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-02 16:29 Adolf Belka
2024-09-03 7:45 ` Michael Tremer
2024-09-03 8:22 ` Nick Howitt
2024-09-03 8:24 ` Michael Tremer
2024-09-04 7:54 ` Adolf Belka
2024-09-04 9:25 ` Adolf Belka [this message]
2024-09-04 9:33 ` Michael Tremer
2024-09-04 9:46 ` Adolf Belka
2024-09-04 19:39 ` Michael Tremer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=db26b1d6-fdc7-43f9-a1a5-a5c75ddfeecf@ipfire.org \
--to=adolf.belka@ipfire.org \
--cc=development@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox