[pve-devel] [PATCH V2 ifupdown2 0/2] ifupdown2 package

Alexandre DERUMIER aderumier at odiso.com
Wed May 23 12:03:10 CEST 2018



Alexandre Derumier 
Ingénieur système et stockage 

Manager Infrastructure 


Fixe : +33 3 59 82 20 10 



125 Avenue de la république 
59110 La Madeleine 
[ https://twitter.com/OdisoHosting ] [ https://twitter.com/mindbaz ] [ https://www.linkedin.com/company/odiso ] [ https://www.viadeo.com/fr/company/odiso ] [ https://www.facebook.com/monsiteestlent ] 

[ https://www.monsiteestlent.com/ | MonSiteEstLent.com ] - Blog dédié à la webperformance et la gestion de pics de trafic

----- Mail original -----
De: "Alexandre Derumier" <aderumier at odiso.com>
À: "pve-devel" <pve-devel at pve.proxmox.com>
Cc: "Alexandre Derumier" <aderumier at odiso.com>
Envoyé: Jeudi 17 Mai 2018 12:25:08
Objet: [PATCH V2 ifupdown2 0/2] ifupdown2 package

Changelog v2: 
- use submodule for ifupdown2 src 
- split proxmox/extra patches 
- add description in 0004-add-dummy-mtu-bridgevlanport-modules.patch 
- add a note in this cover letter about systemd-networkd and ipv6 madness 

Hi, 

Theses last months, I'm working on vxlan implementation. (I'll send info in coming weeks) 

I have worked on classic ifupdown, but it's not super clean to implement, 
when we have complex configuration. 

ifupdown2 is currently well maintained by cumulus since 2014, and support all features from last kernels. 
(vxlan (unicast, multicast, frr, arp suppression, vrf, vlanaware bridge, 
vlan attributes on interfaces, ...) 
and compatible with classic ifupdown syntax. 


This package is based on cumulus branch 
https://github.com/CumulusNetworks/ifupdown2/tree/cl3u18 
as the master/debian branch is old and don't have all features 
(cumulus is planning to rebase it in coming months) 

For now, it could be great to simply propose ifupdown2 as alternative to proxmox users. 
and maybe in 1 or 2 years, if it's working great, make it default for proxmox6 ? 

Some advantages vs classic ifupdown: 

-we can reload configuration ! (ifreload -a, or systemctl reload networking). 
ifupdown2 maintain graphs dependencies between interfaces. 

(Note that as we don't define tap,veth interfaces in /etc/network/interfaces, 
they are not bridged anymore if you do ifdown/ifup vmbr0, 
but it don't remove them on ifreload vmbr0) 

-we can define ipv4/ipv6 in same interface 
(no need anymore iface inet6 static, iface inet static, or iface inet manual, but old iface inet syntax is still supported) 

auto eth0 
iface eth0 
address 192.168.0.1 
address 2001:db8::1:1/64 
address 2001:db8::2:2/64 

or multiple ip on loopback 

auto lo 
iface lo inet loopback 
address 10.3.3.3/32 
address 10:3:3::3/128 
-classic pre-up scripts still works (if users have custom config) 

- for ovs I just have needed to make a small workaround in ovs ifupdown script (see my ovs patch), 
and a small config change (replace allow-ovs by auto). 
Currently, I don't do in ifupdown2 post-install script 

-templating support: example: creating vxlan interfaces from vxlan30->vxlan100 

auto all 
%for v in range(30,100): 

auto vxlan${v} 
iface vxlan${v} 
vxlan-id ${v} 
vxlan-local-tunnelip 10.59.100.231 
bridge-learning off 
bridge-arp-nd-suppress on 
bridge-unicast-flood off 
bridge-multicast-flood off 
bridge-access ${v} 
%endfor 

some documentation here: 
https://support.cumulusnetworks.com/hc/en-us/articles/202933638-Comparing-ifupdown2-Commands-with-ifupdown-Commands 


About systemd-networkd: 
- Currently it can't reload configuration 
https://github.com/systemd/systemd/issues/6654 
- unicast vxlan it not supported 
https://github.com/systemd/systemd/issues/5145 
- I think we don't have to maintain a systemd package if we need to extend it 
- new features seem to take years to come 
- IPV6: systemd-networkd reimplement kernel features (ipv6 RA,...) with tons of bugs (some not yet fixed) 
http://ipv6-net.blogspot.fr/2016/11/ipv6-systemd-another-look.html 
http://ipv6-net.blogspot.fr/2016/04/systemd-oh-you-wanted-to-run-ipv6.html 
https://github.com/systemd/systemd/issues/8906 


Alexandre Derumier (2): 
add debian dir 
add ifupdown2 submodule 

.gitmodules | 3 + 
debian/changelog | 174 +++++++++++++++++++++ 
debian/compat | 1 + 
debian/control | 31 ++++ 
debian/copyright | 28 ++++ 
...0001-start-networking-add-usr-bin-in-PATH.patch | 28 ++++ 
...ns-scripts-fix-ENV-for-interfaces-options.patch | 29 ++++ 
...3-netlink-IFLA_BRPORT_ARP_SUPPRESS-use-32.patch | 31 ++++ 
.../extra/0004-add-vxlan-physdev-support.patch | 159 +++++++++++++++++++ 
debian/patches/pve/0001-config-tuning.patch | 52 ++++++ 
.../pve/0002-manual-interfaces-set-link-up.patch | 58 +++++++ 
...e-tap-veth-fwpr-interfaces-from-bridge-on.patch | 27 ++++ 
...0004-add-dummy-mtu-bridgevlanport-modules.patch | 74 +++++++++ 
debian/patches/series | 8 + 
debian/rules | 21 +++ 
ifupdown2 | 1 + 
16 files changed, 725 insertions(+) 
create mode 100644 .gitmodules 
create mode 100644 debian/changelog 
create mode 100644 debian/compat 
create mode 100644 debian/control 
create mode 100644 debian/copyright 
create mode 100644 debian/patches/extra/0001-start-networking-add-usr-bin-in-PATH.patch 
create mode 100644 debian/patches/extra/0002-addons-scripts-fix-ENV-for-interfaces-options.patch 
create mode 100644 debian/patches/extra/0003-netlink-IFLA_BRPORT_ARP_SUPPRESS-use-32.patch 
create mode 100644 debian/patches/extra/0004-add-vxlan-physdev-support.patch 
create mode 100644 debian/patches/pve/0001-config-tuning.patch 
create mode 100644 debian/patches/pve/0002-manual-interfaces-set-link-up.patch 
create mode 100644 debian/patches/pve/0003-don-t-remove-tap-veth-fwpr-interfaces-from-bridge-on.patch 
create mode 100644 debian/patches/pve/0004-add-dummy-mtu-bridgevlanport-modules.patch 
create mode 100644 debian/patches/series 
create mode 100755 debian/rules 
create mode 160000 ifupdown2 

-- 
2.11.0 



More information about the pve-devel mailing list