#!/usr/bin/lua local site = require 'gluon.site_config' local uci = require 'luci.model.uci' local ip = require 'luci.ip' local c = uci.cursor() c:delete('network', 'local_node_dev') c:section('network', 'device', 'local_node_dev', { name = 'local-node', ifname = 'br-client', type = 'macvlan', macaddr = site.next_node.mac, } ) local ip4, netmask, ip6 if site.next_node.ip4 then ip4 = site.next_node.ip4 netmask = ip.IPv4(site.prefix4):mask():string() end if site.next_node.ip6 then ip6 = site.next_node.ip6 .. '/128' end c:delete('network', 'local_node') c:section('network', 'interface', 'local_node', { ifname = 'local-node', proto = 'static', ipaddr = ip4, netmask = netmask, ip6addr = ip6, } ) c:delete('network', 'local_node_route6') c:section('network', 'route6', 'local_node_route6', { interface = 'client', target = site.prefix6, gateway = '::', } ) c:save('network') c:delete('firewall', 'local_node') c:section('firewall', 'zone', 'local_node', { name = 'local_node', network = {'local_node'}, input = 'ACCEPT', output = 'ACCEPT', forward = 'REJECT', } ) c:save('firewall')