No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
* GLIBC: The <code>getaddrinfo()</code> function doesn't work properly and is not supported in nsswitch.conf. It breaks whenever my development machine happens to be on an IPv4-only network. | * GLIBC: The <code>getaddrinfo()</code> function doesn't work properly and is not supported in nsswitch.conf. It breaks whenever my development machine happens to be on an IPv4-only network. | ||
* nss-mdns (Avahi nsswitch plugin): Can't implement link-local name resolution because of the above problem in GLIBC. | * nss-mdns (Avahi nsswitch plugin): Can't implement link-local name resolution because of the above problem in GLIBC. | ||
== What do we need for proper Linux networking == | |||
* Interface for static IPv4 and IPv6 configuration (kernel) | |||
* Interface for bridging/bonding/vlan configuration (kernel) | |||
* Interface for DNS configuration (/etc/resolv.conf) | |||
* DHCP client implementation for IPv4 automatic configuration (dhclient) | |||
* RA client implementation for IPv6 address configuration (kernel, with workarounds in NetworkManager) | |||
* RDNSS/DNSSL client implementation for IPv6 DNS configuration (NetworkManager through kernel, with workarounds) | |||
* DHCP client implementation for IPv6 address/DNS/other configuration (dhclient) | |||
* IPsec, VPN and tunneling implementations (various daemons) | |||
* A network management daemon to properly manage all of the above together with user configuration (NetworkManager) | |||
* Networking API for applications (glibc, with many problems) | |||
I may have missed something but the objective is to show that networking is rather complex and the various tools need | |||
to be centrally managed by a network management service in order to make users and administrators happy. | |||
== NetworkManager == | |||
I'm currently maintaining a patchset in a separate NetworkManager branch called 'pavlix/next'. It has a lot of improvements over the | |||
current release of NetworkManager but also over the 'master' branch. The reason for keeping a separate branch is that | |||
I need to do a lot of interdependent stuff to fullfil a big picture of how things should work. Many changes I'm making | |||
are quite big. | |||
I am often rebasing this branch and rewriting its history. It is not currently possible to merge it into 'master' and it is not possible | |||
to continuously marge your local changes without a considerable amount of 'rebase' magic. | |||
The current patchset includes the following changes: | |||
* Add a '''new subsystem for kernel network configuration''' (bgo #683173) | |||
* Remove distribution-specific initscripts | |||
* '''Build on any linux distribution''' without special options (bgo #663602) | |||
* Remove unnecessary '--with-distro' values (some distributors may need to remove it from their package builds) | |||
* Move NM-specific DHCP leases to /var/lib/NetworkManager (may need selinux policy changes) | |||
* Add support for IPv4 dhclient.conf overrides in /etc/NetworkManager | |||
* Don't ask 'nscd' to reload configuration (it uses inotify to watch it) | |||
* Add support for '''bridges''' with manual and automatic IPv4/IPv6 configuration (bgo #546197) | |||
* Fix support for '''bonds''' with manual and automatic IPv4/IPv6 configuration (bgo #540995) | |||
* Read IPv4 addresses also in CIDR format in keyfile | |||
== GLIBC == | |||
== Contact == | == Contact == | ||
Line 12: | Line 53: | ||
Jabber: pavlix AT pavlix DOT net | Jabber: pavlix AT pavlix DOT net | ||
IRC: pavlix | IRC Freenode: pavlix (#nm and a couple of other channels) | ||
Phone: +420 775 996 256 | Phone: +420 775 996 256 |
Revision as of 11:09, 22 September 2012
When working on NetworkManager, the following projects cause me headache:
- NetworkManager itself: I need to test NM in a virtual environment with bridges. These are not supported in the current release. I hope to make the next release mature enough to support its own development.
- Kernel: The kernel IPv6 networking layer is somewhat unmanagable. The rtnetlink interface doesn't provide enough funcionality to support IPv6 networking.
- GLIBC: The
getaddrinfo()
function doesn't work properly and is not supported in nsswitch.conf. It breaks whenever my development machine happens to be on an IPv4-only network. - nss-mdns (Avahi nsswitch plugin): Can't implement link-local name resolution because of the above problem in GLIBC.
What do we need for proper Linux networking
- Interface for static IPv4 and IPv6 configuration (kernel)
- Interface for bridging/bonding/vlan configuration (kernel)
- Interface for DNS configuration (/etc/resolv.conf)
- DHCP client implementation for IPv4 automatic configuration (dhclient)
- RA client implementation for IPv6 address configuration (kernel, with workarounds in NetworkManager)
- RDNSS/DNSSL client implementation for IPv6 DNS configuration (NetworkManager through kernel, with workarounds)
- DHCP client implementation for IPv6 address/DNS/other configuration (dhclient)
- IPsec, VPN and tunneling implementations (various daemons)
- A network management daemon to properly manage all of the above together with user configuration (NetworkManager)
- Networking API for applications (glibc, with many problems)
I may have missed something but the objective is to show that networking is rather complex and the various tools need to be centrally managed by a network management service in order to make users and administrators happy.
NetworkManager
I'm currently maintaining a patchset in a separate NetworkManager branch called 'pavlix/next'. It has a lot of improvements over the current release of NetworkManager but also over the 'master' branch. The reason for keeping a separate branch is that I need to do a lot of interdependent stuff to fullfil a big picture of how things should work. Many changes I'm making are quite big.
I am often rebasing this branch and rewriting its history. It is not currently possible to merge it into 'master' and it is not possible to continuously marge your local changes without a considerable amount of 'rebase' magic.
The current patchset includes the following changes:
- Add a new subsystem for kernel network configuration (bgo #683173)
- Remove distribution-specific initscripts
- Build on any linux distribution without special options (bgo #663602)
- Remove unnecessary '--with-distro' values (some distributors may need to remove it from their package builds)
- Move NM-specific DHCP leases to /var/lib/NetworkManager (may need selinux policy changes)
- Add support for IPv4 dhclient.conf overrides in /etc/NetworkManager
- Don't ask 'nscd' to reload configuration (it uses inotify to watch it)
- Add support for bridges with manual and automatic IPv4/IPv6 configuration (bgo #546197)
- Fix support for bonds with manual and automatic IPv4/IPv6 configuration (bgo #540995)
- Read IPv4 addresses also in CIDR format in keyfile
GLIBC
Contact
Mail: psimerda AT redhat DOT com, pavlix AT pavlix DOT net
Jabber: pavlix AT pavlix DOT net
IRC Freenode: pavlix (#nm and a couple of other channels)
Phone: +420 775 996 256