So, to summarize:

1) Allow the syntax for if[up,down] to list multiple interfaces (why not?)

2) For each interface:

2a) process all ifconfig.<interfacename> files - such as ifconfig.eth0, 
ifconfig.eth0.ipv6 one by one - ignoring both .bak as well as ones ending in ~.

2b) at the end, perform any needed link up/down actions.

That would work.

I would add this:

If a user specifies a file directly to ifdown/ifup, just that one file is 
processed. That way, I could disable ipv6 by doing:
 “Ifdown ifconfig.eth0.ipv6”

Depending on my schedule today, I can look into this.


Sent from my iPhone

> On Dec 9, 2019, at 11:20 PM, DJ Lucas <[email protected]> wrote:
> 
> 
> 
>> On 12/9/2019 4:35 AM, [email protected] wrote:
>> Hi -
>> 
>> How you want to incorporate IPv6 into LFS is your choice, of course - my 
>> goal was to provide a 'nudge' to actually incorporating it, as I think it 
>> needs to be included.
> 
> Nudge accepted. Thank you. :-)
> 
>> For example, I agree that the /etc/sysconfig/network file is annoying and 
>> can be easily ignored. If someone runs into that need (which is highly 
>> unlikely) they can deal with it. I also agree that no specific DNS provider 
>> should be mentioned in any reference to resolv.conf - my note I emailed 
>> indicated what I, in particular, did.
> 
> My comment was in reference to the book, not your hint. We list Google's IPv4 
> addresses in a note box.
> 
>> 
>> Having said that, I admit to confusion as to the suggestion to use an 
>> interface alias for the IPv6 configuration, because the concept no longer 
>> exists in iproute2.Interface aliases are a concept from net-tools, last 
>> updated (outside of BSD) in 2011, and the new Linux package, iproute2 (which 
>> is what LFS uses) doesn't provide such functionality, because it natively 
>> allows multiple addresses on a single interface, without needing the 
>> interface alias concept. In fact, supporting IPv6 requires this. (Yes, 
>> ipconfig is still used in BSD - but not Linux.)
> 
> It still exists, but it is only there for backwards compatibility. I had 
> forgotten that as I hadn't used it in a long time. Thank you for bringing it 
> to my attention. We should probably consider killing the ifup/ifdown 
> dependency on the full name of the configuration file. Grab `for IFACE in $@; 
> do ls /etc/sysconfig/ifconfig-${$IFACE}{,.*} | sort -u;....` or some such 
> (and 'sort -ur' for ifdown), that way you can do something like 'ifup eth0 
> eth1' if desired (drop a continue in there for *.bak). I'll take a quick look 
> at it in a couple of days unless you (and no pressure here, just offering if 
> you'd like since it is already fresh in your memory), or somebody else has a 
> quick suggestion.
> 
>> 
>> So, the creation of 'ipv46-static' followed from a chain of requirements. 
>> There could definitely be a flaw in the chain of reasoning shown below, but 
>> I don't see that.
>> 
>> a) We use iproute2, not net-tools.
>> b) iproute2 doesn't have interface aliases - and the use of 'labels' to try 
>> to 'feel like it' is a very ugly concept and doesn't mesh well with the 
>> needs of /sbin/if[up,down] etc.
>> c) the network configuration model of LFS is a directory of per-interface 
>> files named "ifconfig.<interfacename>' that are referenced by the 'network' 
>> script in /etc/init.d
>> d) (b) and (c) combine to make it necessary that all of an interface's 
>> network configuration be in one file, such as ifconfig.eth0
>> e) The "networks" script used by 'ifup' and 'ifdown' reference a *single* 
>> service script.
>> f) (d) and (e) combine to require a script combining both IPv4&IPv6 - 
>> ipv46-static.
>> 
> All of the above is incorrect in that the functionality still exists, but 
> again, I had no idea that it was only there for backwards compatibility. I 
> had also forgotten that the ":x" get's dropped. I'm thinking we should use 
> ifconfig-${1}{,.whatever_except.bak}.
>> I'll add one other reason: Some other packages that reference netfilter
>> 
> 
> I don't think that is valid as it drops the extension, but perhaps I'm 
> misunderstanding. Either way, ifup and ifdown need a little TLC - good catch 
> there.
> 
>> The reason for changes in "/sbin/ifdown" can now be understood: /sbin/ifdown 
>> will bring the interface *down* if no non-local/non-link-local addresses 
>> exist on it after at the end of running the "service" script. I did this 
>> because this (in my mind) most approximates what a user would want to see if 
>> they type "ifdown eth0"
>> 
>> I hope this note better explains why I created ipv46-static.
> 
> Oh, it does. Thanks for the detailed explanation. I'm still of the mind that 
> they should be separated, but your choice of having a separate dual-stack 
> service file makes much more sense now. Again, for the additional text in the 
> book, I'd use the private range fdxx::/8 (this is the closest equivalent to 
> 10.0.0.0/8, private, not routable, don't inadvertently open to the outside 
> world, etc.). Something like fd12:3456:789a:1::2/64. Regardless of whether 
> the static example goes into the book, at very least, disabling RD should be 
> mentioned (a potential security threat if your router is not setup correctly).
> 
> --DJ
> 
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to