AGRAVIS Oldenburg/config: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Sk (Diskussion | Beiträge) |
Sk (Diskussion | Beiträge) (Multiood) |
||
Zeile 794: | Zeile 794: | ||
uci commit firewall | uci commit firewall | ||
</pre> | </pre> | ||
+ | |||
+ | == Multihood == | ||
+ | |||
+ | === /lib/netifd/proto/bat.sh === | ||
+ | Make executable | ||
+ | #!/bin/sh | ||
+ | |||
+ | . /lib/functions.sh | ||
+ | . ../netifd-proto.sh | ||
+ | init_proto "$@" | ||
+ | |||
+ | proto_bat_init_config() { | ||
+ | no_device=1 | ||
+ | available=1 | ||
+ | renew_handler=1 | ||
+ | |||
+ | proto_config_add_string 'gw_mode' | ||
+ | } | ||
+ | |||
+ | lookup_site() { | ||
+ | local path="$1" default="$2" | ||
+ | lua -e "print(require('gluon.site').$path('$default'))" | ||
+ | } | ||
+ | |||
+ | lookup_uci() { | ||
+ | local path="$1" default="$2" | ||
+ | uci -q get "$path" || echo "$default" | ||
+ | } | ||
+ | |||
+ | proto_bat_renew() { | ||
+ | local CONFIG="$1" | ||
+ | |||
+ | local ifname | ||
+ | json_get_vars ifname | ||
+ | |||
+ | local IFNAME="${ifname:-$CONFIG}" | ||
+ | |||
+ | lock /var/lock/"$IFNAME".bat.lock | ||
+ | |||
+ | ubus call network.interface dump | jsonfilter \ | ||
+ | -e "@.interface[@.proto='batif' && @.data.mesh='${IFNAME:4}' && @.up=true].device" \ | ||
+ | | xargs -r -n 1 batctl -m "$IFNAME" interface add | ||
+ | |||
+ | lock -u /var/lock/"$IFNAME".bat.lock | ||
+ | } | ||
+ | |||
+ | proto_bat_setup() { | ||
+ | local CONFIG="$1" | ||
+ | |||
+ | local routing_algo=$(lookup_site 'mesh.batman_adv.routing_algo' 'BATMAN_IV') | ||
+ | |||
+ | local gw_mode ifname | ||
+ | json_get_vars gw_mode ifname | ||
+ | |||
+ | local IFNAME="${ifname:-$CONFIG}" | ||
+ | |||
+ | batctl -m "$IFNAME" routing_algo "$routing_algo" | ||
+ | batctl -m "$IFNAME" interface create | ||
+ | |||
+ | batctl -m "$IFNAME" orig_interval 5000 | ||
+ | batctl -m "$IFNAME" hop_penalty "$(lookup_uci 'gluon.mesh_batman_adv.hop_penalty' 15)" | ||
+ | batctl -m "$IFNAME" multicast_mode 0 | ||
+ | |||
+ | case "$gw_mode" in | ||
+ | server) | ||
+ | batctl -m "$IFNAME" gw_mode "server" | ||
+ | ;; | ||
+ | client) | ||
+ | local gw_sel_class="$(lookup_site 'mesh.batman_adv.gw_sel_class')" | ||
+ | if [ -n "$gw_sel_class" ]; then | ||
+ | batctl -m "$IFNAME" gw_mode "client" "$gw_sel_class" | ||
+ | else | ||
+ | batctl -m "$IFNAME" gw_mode "client" | ||
+ | fi | ||
+ | ;; | ||
+ | *) | ||
+ | batctl -m "$IFNAME" gw_mode "off" | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | |||
+ | local primary0_mac="$(lua -e 'print(require("gluon.util").generate_mac(3))')" | ||
+ | |||
+ | ip link add "pri-${IFNAME:4}" type dummy | ||
+ | echo 1 > /proc/sys/net/ipv6/conf/"pri-${IFNAME:4}"/disable_ipv6 | ||
+ | ip link set "pri-${IFNAME:4}" address "$primary0_mac" mtu 1532 up | ||
+ | |||
+ | ip link set "$IFNAME" address "$(lua -e 'print(require("gluon.sysconfig").primary_mac)')" | ||
+ | |||
+ | batctl -m "$IFNAME" interface add "pri-${IFNAME:4}" | ||
+ | |||
+ | proto_init_update "pri-${IFNAME:4}" 1 | ||
+ | proto_init_update "$IFNAME" 1 | ||
+ | proto_send_update "$CONFIG" | ||
+ | |||
+ | proto_bat_renew "$1" | ||
+ | } | ||
+ | |||
+ | proto_bat_teardown() { | ||
+ | local CONFIG="$1" | ||
+ | local IFNAME="$2" | ||
+ | |||
+ | batctl -m "$IFNAME" interface destroy | ||
+ | ip link del "pri-${IFNAME:4}" | ||
+ | } | ||
+ | |||
+ | add_protocol bat | ||
+ | |||
+ | === /lib/netifd/proto/batif.sh === | ||
+ | Make executable | ||
+ | #!/bin/sh | ||
+ | |||
+ | . /lib/functions.sh | ||
+ | . ../netifd-proto.sh | ||
+ | init_proto "$@" | ||
+ | |||
+ | proto_batif_init_config() { | ||
+ | proto_config_add_string 'mesh' | ||
+ | } | ||
+ | |||
+ | proto_batif_setup() { | ||
+ | local CONFIG="$1" | ||
+ | local IFNAME="$2" | ||
+ | |||
+ | local mesh | ||
+ | json_get_vars mesh | ||
+ | |||
+ | ubus call network.interface."$CONFIG" set_data "{\"mesh\":\"$mesh\"}" | ||
+ | |||
+ | proto_init_update "$IFNAME" 1 | ||
+ | proto_send_update "$CONFIG" | ||
+ | |||
+ | ubus call network.interface."bat_${mesh}" renew | ||
+ | } | ||
+ | |||
+ | proto_batif_teardown() { | ||
+ | local CONFIG="$1" | ||
+ | local IFNAME="$2" | ||
+ | |||
+ | batctl -m "bat-${mesh}" interface -M del "$IFNAME" 2>/dev/null | ||
+ | } | ||
+ | |||
+ | add_protocol batif | ||
+ | |||
+ | === Beispiel Netzwerkkonfiguration === | ||
+ | config interface 'mesh_vlan123' | ||
+ | option ifname 'eth0.123' | ||
+ | option proto 'batif' | ||
+ | option mesh 'hood2' | ||
+ | |||
+ | config interface 'bat_hood2' | ||
+ | option ifname 'bat-hood2' | ||
+ | option gw_mode 'client' | ||
+ | option proto 'bat' |
Version vom 4. Februar 2021, 17:47 Uhr
Network
package network config switch_vlan option device 'switch0' option vlan '1' option ports '2 6t' config switch_vlan option device 'switch0' option vlan '2' option ports '6t' config switch_vlan option device 'switch0' option vlan '120' option ports '0t 1 3t 4t 6t' config switch_vlan option device 'switch0' option vlan '3' option ports '3 4 6t' config switch_vlan option device 'switch0' option vlan '10' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '11' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '12' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '13' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '14' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '15' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '16' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '17' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '18' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '19' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '20' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '21' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '22' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '23' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '24' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '25' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '26' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '27' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '28' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '29' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '30' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '31' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '32' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '33' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '34' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '35' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '36' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '37' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '38' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '39' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '40' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '41' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '42' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '43' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '44' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '45' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '46' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '47' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '48' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '49' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '50' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '51' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '52' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '53' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '54' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '55' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '56' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '57' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '58' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '59' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '60' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '61' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '62' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '63' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '64' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '65' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '66' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '67' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '68' option ports '0t 6t' config switch_vlan option device 'switch0' option vlan '69' option ports '0t 6t' config interface 'mesh_vlan3' option ifname 'eth0.3' option index '0' option proto 'gluon_wired' option disabled '0' option transitive '1' config interface 'mesh_vlan10' option ifname 'eth0.10' option index '0' option proto 'gluon_wired' option disabled '0' option transitive '1' config interface 'mesh_vlan11' option ifname 'eth0.11' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan12' option ifname 'eth0.12' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan13' option ifname 'eth0.13' option index '0' option proto 'gluon_wired' option disabled '0' option transitive '1' config interface 'mesh_vlan14' option ifname 'eth0.14' option index '0' option proto 'gluon_wired' option disabled '0' option transitive '1' config interface 'mesh_vlan15' option ifname 'eth0.15' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan16' option ifname 'eth0.16' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan17' option ifname 'eth0.17' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan18' option ifname 'eth0.18' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan19' option ifname 'eth0.19' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan20' option ifname 'eth0.20' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan21' option ifname 'eth0.21' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan22' option ifname 'eth0.22' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan23' option ifname 'eth0.23' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan24' option ifname 'eth0.24' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan25' option ifname 'eth0.25' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan26' option ifname 'eth0.26' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan27' option ifname 'eth0.27' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan28' option ifname 'eth0.28' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan29' option ifname 'eth0.29' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan30' option ifname 'eth0.30' option proto 'batif' option mesh 'rastede' config interface 'mesh_vlan31' option ifname 'eth0.31' option proto 'batif' option mesh 'ol2' config interface 'mesh_vlan32' option ifname 'eth0.32' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan33' option ifname 'eth0.33' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan34' option ifname 'eth0.34' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan35' option ifname 'eth0.35' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan36' option ifname 'eth0.36' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan37' option ifname 'eth0.37' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan38' option ifname 'eth0.38' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan39' option ifname 'eth0.39' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan40' option ifname 'eth0.40' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan41' option ifname 'eth0.41' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan42' option ifname 'eth0.42' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan43' option ifname 'eth0.43' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan44' option ifname 'eth0.44' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan45' option ifname 'eth0.45' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan46' option ifname 'eth0.46' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan47' option ifname 'eth0.47' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan48' option ifname 'eth0.48' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan49' option ifname 'eth0.49' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan50' option ifname 'eth0.50' option proto 'batif' option mesh 'ol2' config interface 'mesh_vlan51' option ifname 'eth0.51' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan52' option ifname 'eth0.52' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan53' option ifname 'eth0.53' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan54' option ifname 'eth0.54' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan55' option ifname 'eth0.55' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan56' option ifname 'eth0.56' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan57' option ifname 'eth0.57' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan58' option ifname 'eth0.58' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan59' option ifname 'eth0.59' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan60' option ifname 'eth0.60' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan61' option ifname 'eth0.61' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan62' option ifname 'eth0.62' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan63' option ifname 'eth0.63' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan64' option ifname 'eth0.64' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan65' option ifname 'eth0.65' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan66' option ifname 'eth0.66' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan67' option ifname 'eth0.67' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan68' option ifname 'eth0.68' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'mesh_vlan69' option ifname 'eth0.69' option index '0' option proto 'gluon_wired' option disabled '1' option transitive '1' config interface 'bat_ol2' option ifname 'bat-ol2' option gw_mode 'client' option proto 'bat' config interface 'bat_rastede' option ifname 'bat-rastede' option gw_mode 'client' option proto 'bat' config interface 'mgmt' option ifname 'eth0.120' option proto 'static' option ipaddr '172.20.0.2' option netmask '16' option ip4table '120' option ip6addr 'fe80::1' config interface 'client4' option ifname 'br-client' option auto '1' option proto 'dhcp' option ip4table '120' config rule option in 'mgmt' option lookup '120'
Firewall
config zone option name 'mgmt' list network 'mgmt' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' config forwarding option src 'mgmt' option dest 'mesh'
uci set firewall.mesh.masq='1' uci set firewall.mesh.mtu_fix='1' uci set firewall.mesh.masq_src='mgmt' uci commit firewall
Multihood
/lib/netifd/proto/bat.sh
Make executable
#!/bin/sh . /lib/functions.sh . ../netifd-proto.sh init_proto "$@" proto_bat_init_config() { no_device=1 available=1 renew_handler=1 proto_config_add_string 'gw_mode' } lookup_site() { local path="$1" default="$2" lua -e "print(require('gluon.site').$path('$default'))" } lookup_uci() { local path="$1" default="$2" uci -q get "$path" || echo "$default" } proto_bat_renew() { local CONFIG="$1" local ifname json_get_vars ifname local IFNAME="${ifname:-$CONFIG}" lock /var/lock/"$IFNAME".bat.lock ubus call network.interface dump | jsonfilter \ -e "@.interface[@.proto='batif' && @.data.mesh='${IFNAME:4}' && @.up=true].device" \ | xargs -r -n 1 batctl -m "$IFNAME" interface add lock -u /var/lock/"$IFNAME".bat.lock } proto_bat_setup() { local CONFIG="$1" local routing_algo=$(lookup_site 'mesh.batman_adv.routing_algo' 'BATMAN_IV') local gw_mode ifname json_get_vars gw_mode ifname local IFNAME="${ifname:-$CONFIG}" batctl -m "$IFNAME" routing_algo "$routing_algo" batctl -m "$IFNAME" interface create batctl -m "$IFNAME" orig_interval 5000 batctl -m "$IFNAME" hop_penalty "$(lookup_uci 'gluon.mesh_batman_adv.hop_penalty' 15)" batctl -m "$IFNAME" multicast_mode 0 case "$gw_mode" in server) batctl -m "$IFNAME" gw_mode "server" ;; client) local gw_sel_class="$(lookup_site 'mesh.batman_adv.gw_sel_class')" if [ -n "$gw_sel_class" ]; then batctl -m "$IFNAME" gw_mode "client" "$gw_sel_class" else batctl -m "$IFNAME" gw_mode "client" fi ;; *) batctl -m "$IFNAME" gw_mode "off" ;; esac local primary0_mac="$(lua -e 'print(require("gluon.util").generate_mac(3))')" ip link add "pri-${IFNAME:4}" type dummy echo 1 > /proc/sys/net/ipv6/conf/"pri-${IFNAME:4}"/disable_ipv6 ip link set "pri-${IFNAME:4}" address "$primary0_mac" mtu 1532 up ip link set "$IFNAME" address "$(lua -e 'print(require("gluon.sysconfig").primary_mac)')" batctl -m "$IFNAME" interface add "pri-${IFNAME:4}" proto_init_update "pri-${IFNAME:4}" 1 proto_init_update "$IFNAME" 1 proto_send_update "$CONFIG" proto_bat_renew "$1" } proto_bat_teardown() { local CONFIG="$1" local IFNAME="$2" batctl -m "$IFNAME" interface destroy ip link del "pri-${IFNAME:4}" } add_protocol bat
/lib/netifd/proto/batif.sh
Make executable
#!/bin/sh . /lib/functions.sh . ../netifd-proto.sh init_proto "$@" proto_batif_init_config() { proto_config_add_string 'mesh' } proto_batif_setup() { local CONFIG="$1" local IFNAME="$2" local mesh json_get_vars mesh ubus call network.interface."$CONFIG" set_data "{\"mesh\":\"$mesh\"}" proto_init_update "$IFNAME" 1 proto_send_update "$CONFIG" ubus call network.interface."bat_${mesh}" renew } proto_batif_teardown() { local CONFIG="$1" local IFNAME="$2" batctl -m "bat-${mesh}" interface -M del "$IFNAME" 2>/dev/null } add_protocol batif
Beispiel Netzwerkkonfiguration
config interface 'mesh_vlan123' option ifname 'eth0.123' option proto 'batif' option mesh 'hood2' config interface 'bat_hood2' option ifname 'bat-hood2' option gw_mode 'client' option proto 'bat'