Re: Advanced network configuration

2022-10-03 Thread Ryan Sundberg
Hi Alexy, are you running netplan under Guix? I would find it useful to have a 
service using a netplan config, bypassing the guile-based networking service 
for such advanced use cases as you mention.


Sincerely,

Ryan Sundberg
Principal Software Engineer
Arctype Corporation



 Original Message 
From: Alexey Abramov 
Sent: October 3, 2022 11:23:11 AM PDT
To: guix-devel@gnu.org
Subject: Advanced network configuration

Hi Guix,

I have a couple of questions regarding our current network configuration
in Guix. With the latest changes to the static configuration, live is
indeed, became easier, but I have to say that it is still insufficient
to define a complete network configuration.

Please check out the following (my) use cases:

1. I have servers with multiple network cards. Let's say, the management
one and production. both network cards have multiple interfaces, which I
need to bond into 803.1ad mode. Management bond has a native vlan where
DHCP should be provided AND another vlan for the management traffic. The
production interface (after bonding) has another set of VLANs for a
different type of traffic as well. Currently, there is no way to define
it without writing a custom service with the iproute2 utility.

I was hacking on guile-netlink and did some progress with setting
bonds. However current static configuration won't let me build it
anyway. I have to not only 'link-add' and create a bond, but also amend
existing interfaces by 'link-set' them as a slave to my newly created
bond master for example.

2. Having a router with Guix at home. I have to run multiple services
that provision 'networking' which is not allowed right now. The DHCP
client service is greedy right now and binds to all available
interfaces. I sent a [1] patch to solve this. However, I cannot define
dhcp-client and static configuration at the same time anyway.

These two examples lead me to the following questions:

1) To configure the network, I have been happily using netplan app
(debain/ubuntu world). The specification they use can be found here
[2]. Here is an example:

--8<---cut here---start->8---
network:
  bonds:
bond0:
  interfaces:
- eno0
- eno1
  parameters:
mode: 802.3ad
bond2:
  interfaces:
- enp0
- enp1
  parameters:
mode: 802.3ad
  ethernets:
eno0:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: eno0
eno1:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: eno1
eno2:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: eno2
eno3:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: eno3
enp0:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: enp0
enp1:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: enp1
  renderer: networkd
  version: 2
  vlans:
bond1.1055:
  addresses:
- 10.0.0.1/24
  routes:
- to: XX.XX.XX.XX/21
  via: 10.x.x.x
  gateway4: 10.0.0.1
  id: 1055
  link: bond1
bond2.2055:
  addresses:
- 10.8.0.1/24
  id: 2055
  link: bond2
bond2.3055:
  addresses:
- 192.168.0.0/16
  id: 3055
  link: bond2
--8<---cut here---end--->8---

From the example above, you can see that I rename interfaces (i do know
that udev can do it, but it is easier to do it here). I build bonds and
VLANs with their IPs. I also set routes and default gateway. Would
someone be interested in that? I don't see any problems in implementing
this with guile-netlink. This is basically my proposal on how we can
improve our static network configuration. What do you think?

2) In Systemd world there is a notion of 'target' which is used for
*grouping* units and *synchronization* points during the start-up.

At this moment *I* need to have dhcp-client and static
configuration. Seems like grouping is a key here. Were there any
ideas/attempts to make it happen? Or what should I do? 

Footnotes:
[1]  https://issues.guix.gnu.org/58223

[2]  https://netplan.io/reference

-- 
Alexey


Advanced network configuration

2022-10-03 Thread Alexey Abramov
Hi Guix,

I have a couple of questions regarding our current network configuration
in Guix. With the latest changes to the static configuration, live is
indeed, became easier, but I have to say that it is still insufficient
to define a complete network configuration.

Please check out the following (my) use cases:

1. I have servers with multiple network cards. Let's say, the management
one and production. both network cards have multiple interfaces, which I
need to bond into 803.1ad mode. Management bond has a native vlan where
DHCP should be provided AND another vlan for the management traffic. The
production interface (after bonding) has another set of VLANs for a
different type of traffic as well. Currently, there is no way to define
it without writing a custom service with the iproute2 utility.

I was hacking on guile-netlink and did some progress with setting
bonds. However current static configuration won't let me build it
anyway. I have to not only 'link-add' and create a bond, but also amend
existing interfaces by 'link-set' them as a slave to my newly created
bond master for example.

2. Having a router with Guix at home. I have to run multiple services
that provision 'networking' which is not allowed right now. The DHCP
client service is greedy right now and binds to all available
interfaces. I sent a [1] patch to solve this. However, I cannot define
dhcp-client and static configuration at the same time anyway.

These two examples lead me to the following questions:

1) To configure the network, I have been happily using netplan app
(debain/ubuntu world). The specification they use can be found here
[2]. Here is an example:

--8<---cut here---start->8---
network:
  bonds:
bond0:
  interfaces:
- eno0
- eno1
  parameters:
mode: 802.3ad
bond2:
  interfaces:
- enp0
- enp1
  parameters:
mode: 802.3ad
  ethernets:
eno0:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: eno0
eno1:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: eno1
eno2:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: eno2
eno3:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: eno3
enp0:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: enp0
enp1:
  match:
macaddress: xx:xx:xx:xx:xx:xx
  set-name: enp1
  renderer: networkd
  version: 2
  vlans:
bond1.1055:
  addresses:
- 10.0.0.1/24
  routes:
- to: XX.XX.XX.XX/21
  via: 10.x.x.x
  gateway4: 10.0.0.1
  id: 1055
  link: bond1
bond2.2055:
  addresses:
- 10.8.0.1/24
  id: 2055
  link: bond2
bond2.3055:
  addresses:
- 192.168.0.0/16
  id: 3055
  link: bond2
--8<---cut here---end--->8---

>From the example above, you can see that I rename interfaces (i do know
that udev can do it, but it is easier to do it here). I build bonds and
VLANs with their IPs. I also set routes and default gateway. Would
someone be interested in that? I don't see any problems in implementing
this with guile-netlink. This is basically my proposal on how we can
improve our static network configuration. What do you think?

2) In Systemd world there is a notion of 'target' which is used for
*grouping* units and *synchronization* points during the start-up.

At this moment *I* need to have dhcp-client and static
configuration. Seems like grouping is a key here. Were there any
ideas/attempts to make it happen? Or what should I do? 

Footnotes:
[1]  https://issues.guix.gnu.org/58223

[2]  https://netplan.io/reference

-- 
Alexey



Re: Guix System For Kids

2022-10-03 Thread Csepp


jgart  writes:

> On Mon, 03 Oct 2022 00:17:52 +0200 Csepp  wrote:
>> EndlessOS has a system for teaching kids, it's calle Hack, it might be
>> worth checking out.
>
> Does it run on GNU Guix System?

No idea, I haven't tried to compile it or look at its source code.



Re: Guix System For Kids

2022-10-03 Thread vidak
On 2022-10-03 15:18, Oliver Propst wrote:
> On 2022-10-02 21:32, jgart wrote:
>> What do people think of having an education distro for kids?
> 
> Sounds as a fantastic idea to me :) If we somehow could get the
> manpower to make it happen.

I think it is an awesome idea. It could be like an old 80s BBC Micro. I
am pursuing making a simple Lisp educational tool myself.

I can commit to working on this project. Let's talk casually on jitsi or
something!

vidak.



Re: Capitole du Libre at Toulouse

2022-10-03 Thread Julien Lepiller
I'll be there, so we could still meet :)

Le 3 octobre 2022 09:24:05 GMT+02:00, Oliver Propst  
a écrit :
>On 2022-10-01 13:14, Andreas Enge wrote:
>> Am Mon, Sep 26, 2022 at 11:30:53PM +0200 schrieb zimoun:
>> We decided that with only two confirmed and one uncertain participation,
>> we would not have enough people power and did not submit anything.
>> 
>> Andreas
>
>Sorry to hear this :(
>
>-- 
>Kinds regards Oliver Propst
>https://twitter.com/Opropst
>


Re: Capitole du Libre at Toulouse

2022-10-03 Thread Oliver Propst

On 2022-10-01 13:14, Andreas Enge wrote:

Am Mon, Sep 26, 2022 at 11:30:53PM +0200 schrieb zimoun:
We decided that with only two confirmed and one uncertain 
participation,

we would not have enough people power and did not submit anything.

Andreas


Sorry to hear this :(

--
Kinds regards Oliver Propst
https://twitter.com/Opropst



Re: Guix System For Kids

2022-10-03 Thread Oliver Propst

On 2022-10-02 21:32, jgart wrote:

What do people think of having an education distro for kids?


Sounds as a fantastic idea to me :) If we somehow could get the manpower 
to make it happen.


--
Kinds regards Oliver Propst
https://twitter.com/Opropst



Re: Guix System For Kids

2022-10-03 Thread Maxime Devos



On 02-10-2022 21:32, jgart wrote:

What do people think of having an education distro for kids?

Similar to these:

https://itsfoss.com/educational-linux-distros/

Could we use that Guix GUI written in smalltalk to get started?



Going by what I'm seeing on that page, in many cases 'education distro 
for kids' would be useful for adults not pursuing an education as well
-- I think we should focus more on the implied 'convenience' aspect than 
being 100% 'education' and 'for kids'.


Greetings,
Maxime.


OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature