NetworkConfiguration / dhcpcd

DHCP / IPv4LL / IPv6RA / DHCPv6 client.
https://roy.marples.name/projects/dhcpcd
BSD 2-Clause "Simplified" License
348 stars 112 forks source link

Ignore Linux interface type veth? #90

Open epoch1970 opened 2 years ago

epoch1970 commented 2 years ago

First off, thanks for dhcpcd, it works and feels just great.

By accident I came across this: Add epair(4) to the ignored interface types list (#73) I would like to suggest ignoring by default veth interface types under linux.

Docker is fond of these, and last time I tried, dhcpcd and Docker would conflict bitterly until I set option "denyinterfaces veth*". Casual Docker users ignore what a veth pair is, I don't think they can easily realise the option is needed.

Thanks again!

rsmarples commented 2 years ago

Silly question - is this for inside or outside the container?

epoch1970 commented 2 years ago

Hi Roy. The issue is on the outside half of the veth pair. Docker creates and bridges it, dhcpcd configures it (timeout to zeroconf), Docker gets mad and recreates a veth pair, etc… I’ve seen dhcpcd crash from exhaustion ;) Edit: last time I’ve seen it is a few months/weeks ago on RaspiOS. Should be pretty easy to reproduce. On RPT’s forums you can find threads by users having the problem (and me chiming in with the magic denyinterfaces stanza) Edit 2: I’ve dug out a not too confused thread showing the issue. https://forums.raspberrypi.com/viewtopic.php?p=1828608&hilit=Docker+dhcpcd+crash#p1828608 There are others.

rsmarples commented 2 years ago

Is there anything in /sys/class/net that may indicate the interface is of type veth? I ask because on Linux you can change the interface name, but on BSD where you referenced epair, you cannot.

epoch1970 commented 2 years ago

I’m afraid I don’t have the answer to that. Iproute knows for sure, since "ip link show type veth” finds the right links. But I don’t see anything in /sys/class/net that would help directly.

On 8 Mar 2022, at 12:54, Roy Marples @.***> wrote:

Is there anything in /sys/class/net that may indicate the interface is of type veth? I ask because on Linux you can change the interface name, but on BSD where you referenced epair, you cannot.

— Reply to this email directly, view it on GitHub https://github.com/NetworkConfiguration/dhcpcd/issues/90#issuecomment-1061699392, or unsubscribe https://github.com/notifications/unsubscribe-auth/AARTHWJQMZCSKEFUDNTNNBLU645YJANCNFSM5P5SBF2A. You are receiving this because you authored the thread.

ido commented 2 years ago

I’m guessing, but this is probably exposed by rtnetlink somewhere.

On Tue, Mar 8, 2022 at 04:44 epoch1970 @.***> wrote:

I’m afraid I don’t have the answer to that. Iproute knows for sure, since "ip link show type veth” finds the right links. But I don’t see anything in /sys/class/net that would help directly.

On 8 Mar 2022, at 12:54, Roy Marples @.***> wrote:

Is there anything in /sys/class/net that may indicate the interface is of type veth? I ask because on Linux you can change the interface name, but on BSD where you referenced epair, you cannot.

— Reply to this email directly, view it on GitHub < https://github.com/NetworkConfiguration/dhcpcd/issues/90#issuecomment-1061699392>, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AARTHWJQMZCSKEFUDNTNNBLU645YJANCNFSM5P5SBF2A . You are receiving this because you authored the thread.

— Reply to this email directly, view it on GitHub https://github.com/NetworkConfiguration/dhcpcd/issues/90#issuecomment-1061738398, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAU4RQSPD7E2EJIZCRHNM3U65DR3ANCNFSM5P5SBF2A . You are receiving this because you are subscribed to this thread.Message ID: @.***>