400-next-node 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/lua
  2. local site = require 'gluon.site_config'
  3. local uci = require 'luci.model.uci'
  4. local ip = require 'luci.ip'
  5. local c = uci.cursor()
  6. c:delete('network', 'local_node_dev')
  7. c:section('network', 'device', 'local_node_dev',
  8. {
  9. name = 'local-node',
  10. ifname = 'br-client',
  11. type = 'macvlan',
  12. macaddr = site.next_node.mac,
  13. }
  14. )
  15. c:delete('network', 'local_node')
  16. c:section('network', 'interface', 'local_node',
  17. {
  18. ifname = 'local-node',
  19. proto = 'static',
  20. ipaddr = site.next_node.ip4,
  21. netmask = '255.255.255.255',
  22. ip6addr = site.next_node.ip6 .. '/128',
  23. }
  24. )
  25. local prefix4 = ip.IPv4(site.prefix4)
  26. c:delete('network', 'local_node_route4')
  27. c:section('network', 'route', 'local_node_route4',
  28. {
  29. interface = 'client',
  30. target = prefix4:network():string(),
  31. netmask = prefix4:mask():string(),
  32. gateway = '0.0.0.0',
  33. }
  34. )
  35. c:delete('network', 'local_node_route6')
  36. c:section('network', 'route6', 'local_node_route6',
  37. {
  38. interface = 'client',
  39. target = site.prefix6,
  40. gateway = '::',
  41. }
  42. )
  43. c:save('network')
  44. c:commit('network')
  45. c:delete('firewall', 'local_node')
  46. c:section('firewall', 'zone', 'local_node',
  47. {
  48. name = 'local_node',
  49. network = {'local_node'},
  50. input = 'ACCEPT',
  51. output = 'ACCEPT',
  52. forward = 'REJECT',
  53. }
  54. )
  55. c:save('firewall')
  56. c:commit('firewall')