330-gluon-mesh-batman-adv-core-local-node 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/usr/bin/lua
  2. local site = require 'gluon.site_config'
  3. local sysconfig = require 'gluon.sysconfig'
  4. local sysctl = require 'gluon.sysctl'
  5. local uci = require('luci.model.uci').cursor()
  6. uci:delete('network', 'local_node_dev')
  7. uci:section('network', 'device', 'local_node_dev',
  8. {
  9. name = 'local-node',
  10. ifname = 'br-client',
  11. type = 'macvlan',
  12. macaddr = sysconfig.primary_mac,
  13. }
  14. )
  15. uci:delete('network', 'local_node')
  16. uci:section('network', 'interface', 'local_node',
  17. {
  18. ifname = 'local-node',
  19. proto = 'dhcpv6',
  20. reqprefix = 'no',
  21. peerdns = 1,
  22. sourcefilter = 0,
  23. keep_ra_dnslifetime = 1,
  24. }
  25. )
  26. uci:delete('network', 'local_node_route6')
  27. uci:section('network', 'route6', 'local_node_route6',
  28. {
  29. interface = 'local-node',
  30. target = site.prefix6,
  31. gateway = '::',
  32. }
  33. )
  34. uci:save('network')
  35. uci:delete('firewall', 'local_node')
  36. uci:section('firewall', 'zone', 'local_node',
  37. {
  38. name = 'local_node',
  39. network = {'local_node'},
  40. input = 'ACCEPT',
  41. output = 'ACCEPT',
  42. forward = 'REJECT',
  43. }
  44. )
  45. uci:section('firewall', 'rule', 'local_node_dns',
  46. {
  47. name = 'local_node_dns',
  48. src = 'local_node',
  49. dest_port = '53',
  50. target = 'REJECT',
  51. }
  52. )
  53. uci:save('firewall')
  54. uci:delete('dhcp', 'local_node')
  55. uci:section('dhcp', 'dhcp', 'local_node',
  56. {
  57. interface = 'local_node',
  58. ignore = 1,
  59. }
  60. )
  61. uci:save('dhcp')
  62. sysctl.set('net.ipv6.conf.local_node.forwarding', 0)