Commit graph

63 commits

Author SHA1 Message Date
Eelco Dolstra 4d983d4955 Rename ‘system.build.systemd’ to ‘systemd.package’
This makes it cheaper to test a new systemd and is more consistent
with other modules.
2013-01-16 13:17:57 +01:00
Eelco Dolstra ae4e94d9ac Rename ‘boot.systemd’ to ‘systemd’
Suggested by Mathijs Kwik.  ‘boot.systemd’ is a misnomer because
systemd affects more than just booting.  And it saves some typing.
2013-01-16 12:33:18 +01:00
Eelco Dolstra 1541311f06 switch-to-configuration: Stop some target units to ensure proper dependency ordering
This is currently only done for network-interfaces.target, but
it should propably be done for most targets.
2013-01-07 16:06:45 +01:00
Eelco Dolstra 2e035ae042 Hack to prevent <interface>-cfg.service from breaking the default gateway
Restarting <interface>-cfg.service may cause the interface's IP
addresses to be flushed.  If the default gateway goes through that
interface, then the default gateway is deleted.  So we need to
restart network-setup.target.
2013-01-07 15:17:53 +01:00
Lluís Batlle i Rossell 38af598658 Simplifying defaultGatewayWindowSize according to Eelco suggestions 2013-01-06 23:20:48 +01:00
Lluís Batlle i Rossell 9a81748f20 Adding defaultGatewayWindowSize
This allows setting the max tcp window size for the route of
the default gateway (usually the internet access).

It works only for non-DHCP configurations by now.
2013-01-06 22:32:21 +01:00
Eelco Dolstra 745a201814 Check whether /proc/sys/net/ipv6/conf/all/disable_ipv6 exists 2012-12-11 13:14:17 +01:00
Eelco Dolstra 97f087cd44 Turn networking.interfaces into an attribute set
Thus

  networking.interfaces = [ { name = "eth0"; ipAddress = "192.168.15.1"; } ];

can now be written as

  networking.interfaces.eth0.ipAddress = "192.168.15.1";

The old notation still works though.
2012-11-02 17:08:11 +01:00
Eelco Dolstra c8628e0293 Don't let interfaces get IPv6 addresses if networking.enableIPv6 is false 2012-10-19 15:41:01 -04:00
Peter Simons 7ce9893bef network-interfaces.nix: interfaces that are part of a bridge must be brought 'up' for the bridge to function 2012-10-12 18:14:39 +02:00
Eelco Dolstra e3c1865067 Let the tun services depend on /dev/net/tun 2012-10-11 17:59:41 -04:00
Eelco Dolstra 285f587025 Move non-interface specific initialisation to ‘network-setup.service’
The unit ‘network-interface.service’ has been replaced by
‘network-interfaces.target’.
2012-10-11 16:18:48 -04:00
Eelco Dolstra 1c53b2e299 Don't flush addresses unless necessary
Flushing is bad if the Nix store is on a remote filesystem accessed
over that interface.

http://hydra.nixos.org/build/3184162

Also added a interface option ‘prefixLength’ as a better alternative
to ‘subnetMask’.
2012-10-11 15:36:52 -04:00
Eelco Dolstra bd1071d02b Remove "wants" dependencies on <interface>.service
Instead it's enough to depend on
sys-subsystem-net-devices-<interface>.device, which in turn has a
"wants" dependency on the service (if any) that creates the interface.
2012-10-10 22:47:50 -04:00
Eelco Dolstra d7458b5fc2 Split the monolithic network-interface service into multiple units
For each statically configured interface, we now create a unit
‘<interface>-cfg.service’ which gets started as soon as the network
device comes up.  Similarly, each bridge defined in
‘networking.bridges’ and virtual interface in ‘networking.interfaces’
is created by a service ‘<interface>.service’.

So if we have

  networking.bridges.br0.interfaces = [ "eth0" "eth1" ];
  networking.interfaces =
    [ { name = "br0";
        ipAddress = "192.168.1.1";
      }
    ];

then there will be a unit ‘br0.service’ that depends on
‘sys-subsystem-net-devices-eth0.device’ and
‘sys-subsystem-net-devices-eth1.device’, and a unit ‘br0-cfg.service’
that depends on ‘sys-subsystem-net-devices-br0.device’.
2012-10-10 17:55:42 -04:00
Eelco Dolstra aac6fe44b6 Merge branch 'master' of github.com:NixOS/nixos into systemd 2012-09-11 10:58:57 -04:00
Mathijs Kwik a502ce1128 networking: add proxy_arp / proxy_ndp options.
proxy_arp (and proxy_ndp for ipv6) can be turned on on a few
interfaces (at least 2).
This is mainly useful for creating pseudo-bridges between a real
interface and a virtual network such as VPN or a virtual machine for
interfaces that don't support real bridging (most wlan interfaces).
As ARP proxying acts slightly above the link-layer, below-ip traffic
isn't bridged, so things like DHCP won't work. The advantage above
using NAT lies in the fact that no IP addresses are shared, so all
hosts are reachable/routeable.
2012-08-29 22:59:36 +02:00
Mathijs Kwik 0dd46d1335 networking: add options for configuring virtual devices (tun/tap)
These are mainly useful for network tunnels (vpn/ipv6) and creating
bridges for virtual machines
2012-08-29 22:59:36 +02:00
Eelco Dolstra d18c2afc6f Add an ip-up target for services that require IP connectivity 2012-08-15 15:38:52 -04:00
Eelco Dolstra 11c3219c1c Remove the ‘networking’ job
Systemd has ‘network.target’ for this purpose.
2012-08-14 18:12:16 -04:00
Eelco Dolstra 4a95f8996b To ease migration to systemd, generate units from the ‘jobs’ option
Also get rid of the ‘buildHook’ job option because it wasn't very useful.
2012-06-16 00:19:43 -04:00
Eelco Dolstra 3ce8859551 * Basic module for fail2ban. Not configurable yet. It currently
blocks IP addresses if they make too many failed login attempts.

svn path=/nixos/trunk/; revision=34149
2012-05-17 02:51:24 +00:00
Mathijs Kwik 7d964498b8 changed the way networking-providers plug themselves before "networking"
svn path=/nixos/trunk/; revision=32781
2012-03-04 18:44:47 +00:00
Mathijs Kwik 8bfe513e75 renamed "all-interfaces" to "networking"
svn path=/nixos/trunk/; revision=32780
2012-03-04 18:44:42 +00:00
Mathijs Kwik 77240b46f1 all-interfaces event
many services depend on other services that bring up network interfaces.
Examples are ipv6 tunneling clients or VPNs.

As there are multiple choices for these network-interface-providing services,
it's not nice to hardcore these deps in every service.
This change sets up a generic config option for this purpose.

providers (gw6c/gogoclient/openvpn) can plug into this to signal they bring up
an important interface.

Daemons that need these interfaces, can then depend on the 'all-interfaces' event,
instead of the individual services.

By default, the event fires when network-interfaces completes.

svn path=/nixos/trunk/; revision=32764
2012-03-04 12:58:11 +00:00
Eelco Dolstra a46fd58b3d * Use the networking.useDHCP out of the dhclient module.
svn path=/nixos/trunk/; revision=32428
2012-02-20 14:29:21 +00:00
Eelco Dolstra a218a602d4 * Use openresolv to set the static nameserver configuration. Next
step is to get the DHCP client, OpenVPN etc. to use openresolv as
  well.

svn path=/nixos/trunk/; revision=32411
2012-02-20 00:00:50 +00:00
Lluís Batlle i Rossell 5c6165ef9f Reverting 32228. That was an incomplete change I had in the working directory.
svn path=/nixos/trunk/; revision=32308
2012-02-15 16:46:25 +00:00
Lluís Batlle i Rossell cc1daf97c7 Adding extra options for resolv.conf
svn path=/nixos/trunk/; revision=32228
2012-02-11 21:11:05 +00:00
Peter Simons 32d6a441a5 modules/tasks/network-interfaces.nix: create network bridges with "forward delay" set to zero
This change obsoletes the need to increase the IPv6 "router_solicitations" parameter.

svn path=/nixos/trunk/; revision=29493
2011-09-26 09:41:40 +00:00
Peter Simons eb6e1310b8 strip trailing whitespace; no functional change
svn path=/nixos/trunk/; revision=29285
2011-09-14 18:20:50 +00:00
Eelco Dolstra 59355bafe5 * Initialise bridges before doing the configuration specified in
networking.interfaces and networking.localCommands.

svn path=/nixos/trunk/; revision=27505
2011-06-20 18:12:47 +00:00
Eelco Dolstra 403accc71f * Some hackery to make sure that router solicitations get through
after creating a bridge.
* Ignore errors (set +e) so that we can get rid of all the "|| true"
  clauses.

svn path=/nixos/trunk/; revision=26660
2011-04-01 15:05:42 +00:00
Eelco Dolstra b2d6dfecbc * Add the rdnss daemon.
* Add the ndisc6 package to the system path if IPv6 is enabled.

svn path=/nixos/trunk/; revision=26496
2011-03-24 16:23:28 +00:00
Eelco Dolstra 3cb7a54dba * Added an option `networking.bridges' to allow Ethernet bridges to be
defined.

svn path=/nixos/trunk/; revision=26325
2011-03-15 15:13:48 +00:00
Eelco Dolstra 8ce36ffb3a * Use "ip" instead of "ifconfig" for setting up network interfaces,
since the latter is rather deprecated and has been unmaintained
  since 2001.  Note that "ip" doesn't know about classful addressing,
  so you can no longer get away with not specifying the subnet mask
  for explicitly configured interfaces.  So if you had

    networking.interfaces =
      [ { name = "eth0"; ipAddress = "192.168.1.1"; } ];

  this should be changed to

    networking.interfaces =
      [ { name = "eth0";
          ipAddress = "192.168.1.1";
          subnetMask = "255.255.255.0";
        }
     ];

  otherwise you end up with a subnet mask of 255.255.255.255.

svn path=/nixos/trunk/; revision=26279
2011-03-11 14:50:11 +00:00
Eelco Dolstra 7205c31ea3 * Remove "modprobe af_packet". It's loaded automatically when needed.
svn path=/nixos/trunk/; revision=26277
2011-03-11 13:57:48 +00:00
Eelco Dolstra 843e1f6c1e * Cleanup.
svn path=/nixos/trunk/; revision=26228
2011-03-09 12:28:44 +00:00
Eelco Dolstra f300833ebc * Add iproute to the path used by networking.localCommands.
svn path=/nixos/trunk/; revision=26222
2011-03-09 11:48:29 +00:00
Eelco Dolstra 9f755eb3a4 * Enable IPv6 support by default. (Note that most NixOS systems
already had the ipv6 kernel module loaded, because dhclient needs
  it.)

svn path=/nixos/trunk/; revision=26034
2011-02-19 17:21:29 +00:00
Evgeny Egorochkin 2224d78b33 network-interfaces: MAC address support take 2: now it seems to work
svn path=/nixos/trunk/; revision=24847
2010-11-24 22:58:53 +00:00
Evgeny Egorochkin 72422d4126 network-interfaces: support changing MAC addresses of interfaces
svn path=/nixos/trunk/; revision=24846
2010-11-24 22:58:48 +00:00
Evgeny Egorochkin 50d8698fd8 network-interfaces: cleanup
svn path=/nixos/trunk/; revision=24845
2010-11-24 22:58:42 +00:00
Eelco Dolstra 5b3fd663ed * Don't set hostname to "", dhclient no longer needs it.
svn path=/nixos/trunk/; revision=23783
2010-09-14 11:58:55 +00:00
Eelco Dolstra f729f12e4e Some cleanups in the activation script:
* Moved some scriptlets to the appropriate modules.
* Put the scriptlet that sets the default path at the start, since it
  never makes sense not to have it there.  It no longer needs to be
  declared as a dependency.
* If a scriptlet has no dependencies, it can be denoted as a plain
  string (i.e., `noDepEntry' is not needed anymore).

svn path=/nixos/trunk/; revision=23762
2010-09-13 15:41:38 +00:00
Eelco Dolstra d0342b4cf5 * The network-interfaces' task should wait until udevtrigger' has
finished, because it loads the kernel modules for the network
  devices.

svn path=/nixos/trunk/; revision=22492
2010-07-06 11:03:23 +00:00
Eelco Dolstra 5316059442 * Revert an unintended commit.
svn path=/nixos/trunk/; revision=22145
2010-06-04 14:00:56 +00:00
Eelco Dolstra 7f41d2bb86 svn path=/nixos/trunk/; revision=22126 2010-06-03 14:32:23 +00:00
Eelco Dolstra c089738bdc * Use the shadow' package instead of pwdutils', `pam_login' and
`su'.
* The `usermod' from `shadow' allows setting a supplementary group
  equal to the user's primary group, so the special hack for the
  `nixbld' group is no longer needed.
* Removed /etc/default/passwd since it's not used by the new passwd.
  The hash is configured in pam_unix.
* Move some values for `security.setuidPrograms' and
  `security.pam.services' to the appropriate modules.

svn path=/nixos/trunk/; revision=22107
2010-06-02 21:10:48 +00:00
Eelco Dolstra fa183e5472 * Expose networking.interfaces as an attribute set keyed on the
interface name through the derived option networking.ifaces.  This
  makes it easier to get information about specific interfaces
  (e.g. `nodes.router.config.networking.ifaces.eth2.ipAddress').
  Really networking.interfaces should be an attribute set.

svn path=/nixos/trunk/; revision=21938
2010-05-21 14:12:03 +00:00