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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. }
  24. )
  25. uci:delete('network', 'local_node_route6')
  26. uci:section('network', 'route6', 'local_node_route6',
  27. {
  28. interface = 'local-node',
  29. target = site.prefix6,
  30. gateway = '::',
  31. }
  32. )
  33. uci:save('network')
  34. uci:delete('firewall', 'local_node')
  35. uci:section('firewall', 'zone', 'local_node',
  36. {
  37. name = 'local_node',
  38. network = {'local_node'},
  39. input = 'ACCEPT',
  40. output = 'ACCEPT',
  41. forward = 'REJECT',
  42. }
  43. )
  44. uci:section('firewall', 'rule', 'local_node_dns',
  45. {
  46. name = 'local_node_dns',
  47. src = 'local_node',
  48. dest_port = '53',
  49. target = 'REJECT',
  50. }
  51. )
  52. uci:save('firewall')
  53. uci:delete('dhcp', 'local_node')
  54. uci:section('dhcp', 'dhcp', 'local_node',
  55. {
  56. interface = 'local_node',
  57. ignore = 1,
  58. }
  59. )
  60. uci:save('dhcp')
  61. sysctl.set('net.ipv6.conf.local_node.forwarding', 0)