Commit graph

54 commits

Author SHA1 Message Date
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
Eelco Dolstra
8874226fa3 * Add rfkill to the system path.
svn path=/nixos/trunk/; revision=21201
2010-04-21 11:37:52 +00:00
Lluís Batlle i Rossell
8d5037ad62 network-interfaces and emitting ip-up: I was still learning boolean logic.
svn path=/nixos/trunk/; revision=19464
2010-01-15 11:20:57 +00:00
Lluís Batlle i Rossell
b5ade01199 Make network-interfaces emit the ip-up if there are interfaces defined *OR*
there are localCommands (which potentially can bring up interfaces).


svn path=/nixos/trunk/; revision=19371
2010-01-12 11:08:27 +00:00
Eelco Dolstra
d545d08461 * In the network-interfaces task, emit an ip-up event if there is a
statically configured interface (i.e. we're not running dhclient).
  Otherwise the ntpd job won't be triggered.
* Use the "-n" flag of "initctl emit" to send the event
  asynchronously.

svn path=/nixos/branches/upstart-0.6/; revision=18227
2009-11-06 21:38:40 +00:00
Eelco Dolstra
9fa2f12cc2 * Do some more jobs.
svn path=/nixos/branches/upstart-0.6/; revision=18212
2009-11-06 15:46:56 +00:00
Eelco Dolstra
eba8f94069 * jobAttrs -> jobs.
svn path=/nixos/trunk/; revision=17769
2009-10-12 18:09:34 +00:00
Eelco Dolstra
d982f23f20 * Convert the remaining jobs to jobAttrs style.
svn path=/nixos/trunk/; revision=17764
2009-10-12 17:27:57 +00:00
Eelco Dolstra
e91d882a94 * Converted modules that were still using the old (concrete syntax)
style of declaring Upstart jobs.  While at it, converted them to the
  current NixOS module style and improved some option descriptions.
  Hopefully I didn't break too much :-)

svn path=/nixos/trunk/; revision=17761
2009-10-12 16:36:19 +00:00
Eelco Dolstra
fdab662659 * Add iproute to the system path. It was a dependency of dhclient
already anyway.

svn path=/nixos/trunk/; revision=17512
2009-09-29 15:43:52 +00:00