summaryrefslogtreecommitdiff
path: root/os/kay/modules/network.nix
diff options
context:
space:
mode:
Diffstat (limited to 'os/kay/modules/network.nix')
-rw-r--r--os/kay/modules/network.nix82
1 files changed, 82 insertions, 0 deletions
diff --git a/os/kay/modules/network.nix b/os/kay/modules/network.nix
new file mode 100644
index 0000000..929fb1b
--- /dev/null
+++ b/os/kay/modules/network.nix
@@ -0,0 +1,82 @@
+{ config, ... }:
+
+let
+ inetVlan = 722;
+ voipVlan = 1849;
+ wanInterface = "enp4s0";
+ nameServer = "1.0.0.1";
+in
+{
+ imports = [
+ ./router.nix
+ ./hurricane.nix
+ ];
+
+ sops.secrets = {
+ "ppp/chap-secrets" = {};
+ "ppp/pap-secrets" = {};
+ "ppp/username" = {};
+ };
+
+ networking = let
+ voipVlanIface = "voip";
+ in {
+ vlans = {
+ wan = {
+ id = inetVlan;
+ interface = wanInterface;
+ };
+ ${voipVlanIface} = {
+ id = voipVlan;
+ interface = wanInterface;
+ };
+ };
+
+ interfaces.${voipVlanIface}.useDHCP = true;
+ dhcpcd.extraConfig = ''
+ interface ${voipVlanIface}
+ ipv4only
+ nogateway
+ '';
+ };
+
+ services = {
+ dnsmasq = {
+ enable = true;
+ settings = {
+ server = [ nameServer ];
+ bind-interfaces = true;
+ };
+ };
+
+ pppd = {
+ enable = true;
+
+ config = ''
+ plugin pppoe.so
+ debug
+
+ nic-wan
+ defaultroute
+ ipv6 ::1,
+ noauth
+
+ persist
+ lcp-echo-adaptive
+ lcp-echo-interval 1
+ lcp-echo-failure 5
+ '';
+
+ peers.bsnl = {
+ enable = true;
+ autostart = true;
+ configFile = config.sops.secrets."ppp/username".path;
+ };
+
+ secret = {
+ chap = config.sops.secrets."ppp/chap-secrets".path;
+ pap = config.sops.secrets."ppp/pap-secrets".path;
+ };
+ };
+ };
+}