forked from freifunk-franken/firmware
Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
Christian Dresel | e7fe6b4d89 |
|
@ -0,0 +1,31 @@
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=fff-layer3-snat
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/fff-layer3-snat
|
||||||
|
SECTION:=base
|
||||||
|
CATEGORY:=Freifunk
|
||||||
|
TITLE:=Freifunk-Franken layer3 configuration with SNAT
|
||||||
|
URL:=https://www.freifunk-franken.de
|
||||||
|
DEPENDS:= \
|
||||||
|
+fff-firewall \
|
||||||
|
+fff-layer3-config \
|
||||||
|
+kmod-ipt-nat
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/fff-layer3-snat/description
|
||||||
|
With this package it is possible to make SNAT with IPv4 on the router
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
# nothing
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/fff-layer3-snat/install
|
||||||
|
$(CP) ./files/* $(1)/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,fff-layer3-snat))
|
|
@ -0,0 +1,34 @@
|
||||||
|
configure() {
|
||||||
|
# first we delete the snat config
|
||||||
|
uci -q del network.client.fff_snat
|
||||||
|
uci -q del network.client.fff_snat_sourceip
|
||||||
|
if [ "$(uci -q get gateway.@client[0].snat)" = '1' ]; then
|
||||||
|
|
||||||
|
# first check the config is plausible
|
||||||
|
if ! routerip=$(uci -q get gateway.meta.router_ip); then
|
||||||
|
echo "ERROR: No router_ip set, which is required for SNAT!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if ! uci -q get gateway.@client[0].ipaddr >/dev/null; then
|
||||||
|
echo "ERROR: No ipaddr set, which is required for SNAT!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# keep only the first IP
|
||||||
|
routerip=${routerip%% *}
|
||||||
|
# keep only the IP without the CIDR
|
||||||
|
routerip=${routerip%%/*}
|
||||||
|
|
||||||
|
# We set the snat config
|
||||||
|
uci set network.client.fff_snat=1
|
||||||
|
uci set network.client.fff_snat_sourceip=$routerip
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
apply() {
|
||||||
|
uci commit network
|
||||||
|
}
|
||||||
|
|
||||||
|
revert() {
|
||||||
|
uci revert network
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
if [ "$(uci -q get network.client.fff_snat)" = '1' ]; then
|
||||||
|
iptables -t mangle -A PREROUTING -i br-client -j MARK --set-mark 0x736e6174
|
||||||
|
iptables -t nat -A POSTROUTING -m mark --mark 0x736e6174 -j SNAT --to-source $(uci -q get network.client.fff_snat_sourceip)
|
||||||
|
fi
|
|
@ -1,7 +1,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=fff-layer3
|
PKG_NAME:=fff-layer3
|
||||||
PKG_RELEASE:=9
|
PKG_RELEASE:=10
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ define Package/fff-layer3
|
||||||
+fff-boardname \
|
+fff-boardname \
|
||||||
+fff-dhcp \
|
+fff-dhcp \
|
||||||
+fff-layer3-config \
|
+fff-layer3-config \
|
||||||
|
+fff-layer3-snat \
|
||||||
+fff-mqtt-monitoring \
|
+fff-mqtt-monitoring \
|
||||||
+fff-network \
|
+fff-network \
|
||||||
+fff-ra \
|
+fff-ra \
|
||||||
|
|
Loading…
Reference in New Issue