forked from DGNum/lab-infra
feat(router02): Add HE tunnel and ipv4 nat
This commit is contained in:
parent
a95b3bda6f
commit
c2a3c53cde
2 changed files with 199 additions and 5 deletions
|
@ -8,17 +8,43 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"10-vmbr0" = {
|
"50-vmbr0" = {
|
||||||
matchConfig.Name = "vmbr0";
|
matchConfig.Name = "vmbr0";
|
||||||
linkConfig.RequiredForOnline = "routable";
|
linkConfig.RequiredForOnline = "routable";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"50-vmbr1" = {
|
||||||
|
matchConfig.Name = "vmbr1";
|
||||||
|
linkConfig.RequiredForOnline = "routable";
|
||||||
|
bridgeVLANs = [
|
||||||
|
{
|
||||||
|
VLAN = [
|
||||||
|
"2510" # NAT
|
||||||
|
"2501" # Managment
|
||||||
|
"2520" # MW DMZ
|
||||||
|
"2530" # HE DMZ
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
netdevs."vmbr0" = {
|
netdevs = {
|
||||||
|
"50-vmbr0" = {
|
||||||
netdevConfig = {
|
netdevConfig = {
|
||||||
Name = "vmbr0";
|
Name = "vmbr0";
|
||||||
Kind = "bridge";
|
Kind = "bridge";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
"50-vmbr1" = {
|
||||||
|
netdevConfig = {
|
||||||
|
Name = "vmbr1";
|
||||||
|
Kind = "bridge";
|
||||||
|
};
|
||||||
|
bridgeConfig = {
|
||||||
|
VLANFiltering = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
{
|
{
|
||||||
systemd.network = {
|
systemd.network = {
|
||||||
|
config.routeTables = {
|
||||||
|
he = 100;
|
||||||
|
};
|
||||||
networks = {
|
networks = {
|
||||||
"10-ens18" = {
|
"10-ens18" = {
|
||||||
name = "ens18";
|
name = "ens18";
|
||||||
|
@ -11,8 +14,173 @@
|
||||||
LLDP = true;
|
LLDP = true;
|
||||||
# Only to the switch we are connected to directly, e.g. the hypervisor or the switch.
|
# Only to the switch we are connected to directly, e.g. the hypervisor or the switch.
|
||||||
EmitLLDP = "nearest-bridge";
|
EmitLLDP = "nearest-bridge";
|
||||||
|
Tunnel = [
|
||||||
|
"gre-mwan"
|
||||||
|
"sit-he"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
"10-ens19" = {
|
||||||
|
name = "ens19";
|
||||||
|
networkConfig = {
|
||||||
|
Description = "Lan bridge";
|
||||||
};
|
};
|
||||||
|
vlan = [
|
||||||
|
"vlan-nat"
|
||||||
|
"vlan-he"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"50-tun-he" = {
|
||||||
|
name = "sit-he";
|
||||||
|
networkConfig = {
|
||||||
|
Description = "HE.NET IPv6 Tunnel (gdd)";
|
||||||
|
Address = [ "2001:470:1f12:187::2/64" ];
|
||||||
|
ConfigureWithoutCarrier = true;
|
||||||
|
};
|
||||||
|
routes = [
|
||||||
|
{
|
||||||
|
routeConfig = {
|
||||||
|
Destination = "::/0";
|
||||||
|
Table = "he";
|
||||||
|
Scope = "global";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
# Use HE tunnel for router trafic as well
|
||||||
|
routeConfig = {
|
||||||
|
Destination = "::/0";
|
||||||
|
Scope = "global";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
routingPolicyRules = [
|
||||||
|
{
|
||||||
|
routingPolicyRuleConfig = {
|
||||||
|
From = "2001:470:1f13:187::/64";
|
||||||
|
Table = "he";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"50-tun-mwan" = {
|
||||||
|
name = "gre-mwan";
|
||||||
|
networkConfig = {
|
||||||
|
Description = "Tunnel de livraison GRE IPv4/IPv6 de MilkyWAN";
|
||||||
|
Address = [
|
||||||
|
"10.1.1.50/30"
|
||||||
|
"2a0b:cbc0:1::216/126"
|
||||||
|
];
|
||||||
|
ConfigureWithoutCarrier = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"60-vlan-nat" = {
|
||||||
|
name = "vlan-nat";
|
||||||
|
networkConfig = {
|
||||||
|
Description = "Nat IPv4 vers renater";
|
||||||
|
Address = [ "10.3.161.1/24" ];
|
||||||
|
DHCPServer = true;
|
||||||
|
};
|
||||||
|
dhcpServerConfig = {
|
||||||
|
PoolOffset = 50;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"60-vlan-he" = {
|
||||||
|
name = "vlan-he";
|
||||||
|
networkConfig = {
|
||||||
|
Description = "HE DMZ VLAN";
|
||||||
|
Address = [ "2001:470:1f13:187::1/64" ];
|
||||||
|
IPv6SendRA = "yes";
|
||||||
|
};
|
||||||
|
ipv6Prefixes = [
|
||||||
|
{
|
||||||
|
ipv6PrefixConfig = {
|
||||||
|
Prefix = "2001:470:1f13:187::0/64";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
routes = [
|
||||||
|
{
|
||||||
|
routeConfig = {
|
||||||
|
Table = "he";
|
||||||
|
Scope = "global";
|
||||||
|
Destination = "2001:470:1f13:187::/64";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
routingPolicyRules = [
|
||||||
|
{
|
||||||
|
routingPolicyRuleConfig = {
|
||||||
|
To = "2001:470:1f13:187::/64";
|
||||||
|
Table = "he";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
netdevs = {
|
||||||
|
"50-tun-he" = {
|
||||||
|
netdevConfig = {
|
||||||
|
Kind = "sit";
|
||||||
|
Name = "sit-he";
|
||||||
|
};
|
||||||
|
tunnelConfig = {
|
||||||
|
Local = "129.199.146.230";
|
||||||
|
Remote = "216.66.84.42";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"50-tun-mwan" = {
|
||||||
|
netdevConfig = {
|
||||||
|
Kind = "gre";
|
||||||
|
Name = "gre-mwan";
|
||||||
|
MTUBytes = "1480";
|
||||||
|
};
|
||||||
|
tunnelConfig = {
|
||||||
|
Local = "129.199.146.230";
|
||||||
|
Remote = "80.67.167.30";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"60-vlan-nat" = {
|
||||||
|
netdevConfig = {
|
||||||
|
Kind = "vlan";
|
||||||
|
Name = "vlan-nat";
|
||||||
|
};
|
||||||
|
vlanConfig.Id = 2510;
|
||||||
|
};
|
||||||
|
"60-vlan-he" = {
|
||||||
|
netdevConfig = {
|
||||||
|
Kind = "vlan";
|
||||||
|
Name = "vlan-he";
|
||||||
|
};
|
||||||
|
vlanConfig.Id = 2530;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
networking = {
|
||||||
|
nftables = {
|
||||||
|
enable = true;
|
||||||
|
tables.nat = {
|
||||||
|
family = "ip";
|
||||||
|
content = ''
|
||||||
|
chain postrouting {
|
||||||
|
type nat hook postrouting priority 100;
|
||||||
|
ip saddr 10.3.161.0/24 snat to 129.199.146.230;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
firewall = {
|
||||||
|
allowedUDPPorts = [ 67 ];
|
||||||
|
extraInputRules = ''
|
||||||
|
ip protocol gre ip saddr 80.67.167.30 accept;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"net.ipv4.ip_forward" = true;
|
||||||
|
"net.ipv6.conf.all.forwarding" = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue