{ pkgs, ... }: { # Make space for VLAN header in containing ethernet segment networking.interfaces."enp1s0".mtu = 1518; ## DSL-Uplink networking.vlans."enp1s0.7" = { id = 7; interface = "enp1s0"; }; services.pppd = { enable = true; peers.lns-test = { config = '' plugin pppoe.so enp1s0.7 user "criese#regiotest@bsa-vdsl" ifname ppp-lns-test persist maxfail 0 holdoff 5 noipdefault lcp-echo-interval 20 lcp-echo-failure 3 hide-password nodefaultroute +ipv6 debug ''; }; }; /* networking.interfaces.lo.useDHCP = true; networking.interfaces.ppp-lns-test.useDHCP = true; networking.dhcpcd = { enable = true; extraConfig = '' interface ppp-lns-test ipv6rs ia_pd 0 lo/0 ''; };*/ environment.etc."ppp/ip-up" = { text = '' #! ${pkgs.runtimeShell} -e ${pkgs.iproute2}/bin/ip route flush table 20001 || true ${pkgs.iproute2}/bin/ip route add default dev ppp-lns-test table 20001 ''; mode = "555"; }; environment.etc."ppp/ip-down" = { text = '' #! ${pkgs.runtimeShell} -e ${pkgs.iproute2}/bin/ip route flush table 20001 || true ''; mode = "555"; }; environment.etc."ppp/ipv6-up" = { text = '' #! ${pkgs.runtimeShell} -e ${pkgs.iproute2}/bin/ip -6 route flush table 20001 || true ${pkgs.iproute2}/bin/ip -6 route add default dev ppp-lns-test table 20001 ''; mode = "555"; }; environment.etc."ppp/ipv6-down" = { text = '' #! ${pkgs.runtimeShell} -e ${pkgs.iproute2}/bin/ip -6 route flush table 20001 || true ''; mode = "555"; }; petabyte.policyrouting = { enable = true; rules4 = [ { rule = "from 212.218.16.237/32 lookup 20001"; prio = 19000; } { rule = "from 212.218.16.237/32 unreachable"; prio = 19001; } ]; }; }