320-gluon-mesh-batman-adv-client-bridge 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/lua
  2. -- This script must be ordered after 300-gluon-client-bridge-network, as
  3. -- it overrides parts of network.client
  4. local site = require 'gluon.site'
  5. local sysconfig = require 'gluon.sysconfig'
  6. local sysctl = require 'gluon.sysctl'
  7. local uci = require('simple-uci').cursor()
  8. uci:section('network', 'interface', 'client', {
  9. ipv6 = true,
  10. proto = 'dhcpv6',
  11. reqprefix = 'no',
  12. peerdns = not site.dns.servers(),
  13. sourcefilter = false,
  14. keep_ra_dnslifetime = true,
  15. robustness = 3,
  16. query_interval = 2000,
  17. query_response_interval = 500,
  18. })
  19. uci:delete('network', 'client_lan')
  20. uci:delete('network', 'local_node_route6')
  21. uci:section('network', 'route6', 'local_node_route6', {
  22. interface = 'client',
  23. target = site.prefix6(),
  24. gateway = '::',
  25. })
  26. uci:save('network')
  27. uci:section('firewall', 'zone', 'client', {
  28. input = 'ACCEPT',
  29. output = 'ACCEPT',
  30. forward = 'REJECT',
  31. })
  32. uci:section('firewall', 'rule', 'client_dns', {
  33. name = 'client_dns',
  34. src = 'client',
  35. dest_port = '53',
  36. target = 'REJECT',
  37. })
  38. uci:delete('firewall', 'local_node')
  39. uci:section('firewall', 'zone', 'local_node', {
  40. name = 'local_node',
  41. network = {'local_node'},
  42. input = 'ACCEPT',
  43. output = 'ACCEPT',
  44. forward = 'REJECT',
  45. })
  46. uci:delete('firewall', 'local_node_dns')
  47. uci:save('firewall')
  48. sysctl.set('net.ipv6.conf.local-node.forwarding', 0)