mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 21:50:33 +03:00
ndppd module: init (#35533)
This commit is contained in:
parent
21b926003d
commit
9f1da66587
3 changed files with 65 additions and 2 deletions
|
@ -515,6 +515,7 @@
|
||||||
./services/networking/murmur.nix
|
./services/networking/murmur.nix
|
||||||
./services/networking/namecoind.nix
|
./services/networking/namecoind.nix
|
||||||
./services/networking/nat.nix
|
./services/networking/nat.nix
|
||||||
|
./services/networking/ndppd.nix
|
||||||
./services/networking/networkmanager.nix
|
./services/networking/networkmanager.nix
|
||||||
./services/networking/nftables.nix
|
./services/networking/nftables.nix
|
||||||
./services/networking/ngircd.nix
|
./services/networking/ngircd.nix
|
||||||
|
|
47
nixos/modules/services/networking/ndppd.nix
Normal file
47
nixos/modules/services/networking/ndppd.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.ndppd;
|
||||||
|
|
||||||
|
configFile = pkgs.runCommand "ndppd.conf" {} ''
|
||||||
|
substitute ${pkgs.ndppd}/etc/ndppd.conf $out \
|
||||||
|
--replace eth0 ${cfg.interface} \
|
||||||
|
--replace 1111:: ${cfg.network}
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
services.ndppd = {
|
||||||
|
enable = mkEnableOption "daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
|
||||||
|
interface = mkOption {
|
||||||
|
type = types.string;
|
||||||
|
default = "eth0";
|
||||||
|
example = "ens3";
|
||||||
|
description = "Interface which is on link-level with router.";
|
||||||
|
};
|
||||||
|
network = mkOption {
|
||||||
|
type = types.string;
|
||||||
|
default = "1111::";
|
||||||
|
example = "2001:DB8::/32";
|
||||||
|
description = "Network that we proxy.";
|
||||||
|
};
|
||||||
|
configFile = mkOption {
|
||||||
|
type = types.nullOr types.path;
|
||||||
|
default = null;
|
||||||
|
description = "Path to configuration file.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.packages = [ pkgs.ndppd ];
|
||||||
|
environment.etc."ndppd.conf".source = if (cfg.configFile != null) then cfg.configFile else configFile;
|
||||||
|
systemd.services.ndppd = {
|
||||||
|
serviceConfig.RuntimeDirectory = [ "ndppd" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with maintainers; [ gnidorah ];
|
||||||
|
}
|
|
@ -1,6 +1,11 @@
|
||||||
{ stdenv, fetchFromGitHub, gzip, ... }:
|
{ stdenv, fetchFromGitHub, fetchurl, gzip, ... }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let
|
||||||
|
serviceFile = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/DanielAdolfsson/ndppd/f37e8eb33dc68b3385ecba9b36a5efd92755580f/ndppd.service";
|
||||||
|
sha256 = "1zf54pzjfj9j9gr48075njqrgad4myd3dqmhvzxmjy4gjy9ixmyh";
|
||||||
|
};
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
name = "ndppd-${version}";
|
name = "ndppd-${version}";
|
||||||
version = "0.2.5";
|
version = "0.2.5";
|
||||||
|
|
||||||
|
@ -19,6 +24,16 @@ stdenv.mkDerivation rec {
|
||||||
substituteInPlace Makefile --replace /bin/gzip ${gzip}/bin/gzip
|
substituteInPlace Makefile --replace /bin/gzip ${gzip}/bin/gzip
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/etc
|
||||||
|
cp ndppd.conf-dist $out/etc/ndppd.conf
|
||||||
|
|
||||||
|
mkdir -p $out/lib/systemd/system
|
||||||
|
# service file needed for our module is not in release yet
|
||||||
|
substitute ${serviceFile} $out/lib/systemd/system/ndppd.service \
|
||||||
|
--replace /usr/sbin/ndppd $out/sbin/ndppd
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
|
description = "A daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
|
||||||
homepage = https://github.com/DanielAdolfsson/ndppd;
|
homepage = https://github.com/DanielAdolfsson/ndppd;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue