From 3086205f0222a4c71e24a7c670c266dd61add069 Mon Sep 17 00:00:00 2001 From: "Arnaud G. GIBERT" Date: Thu, 5 Jun 2025 11:22:52 +0200 Subject: [PATCH] - Add missing files. --- ReadMe.txt | 1 + usr/local/sbin/ip_host_update | 19 ++++++++ usr/local/sbin/ns-launch | 86 +++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100755 usr/local/sbin/ip_host_update create mode 100755 usr/local/sbin/ns-launch diff --git a/ReadMe.txt b/ReadMe.txt index fa612af..b0b5137 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -12,6 +12,7 @@ The following topics are tageted: - VPN, - Proxy, - Port forwarding, + - Dynamic DNS. This release support IPTables and OpenVPN. diff --git a/usr/local/sbin/ip_host_update b/usr/local/sbin/ip_host_update new file mode 100755 index 0000000..5620bb4 --- /dev/null +++ b/usr/local/sbin/ip_host_update @@ -0,0 +1,19 @@ +#!/bin/bash + +host=$1 +zone=$2 +ip=$3 +ttl=$4 + + + +date="$(date --rfc-3339 seconds)" + +( + echo "prereq yxrrset ${host}.${zone}. A" + echo "update delete ${host}.${zone}. A" + echo "update add ${host}.${zone}. ${ttl} A ${ip}" + echo "update delete ${host}.${zone}. TXT" + echo "update add ${host}.${zone}. ${ttl} TXT ${date}" + echo "" +) | nsupdate diff --git a/usr/local/sbin/ns-launch b/usr/local/sbin/ns-launch new file mode 100755 index 0000000..3491a37 --- /dev/null +++ b/usr/local/sbin/ns-launch @@ -0,0 +1,86 @@ +#!/bin/bash + +[ -e /etc/sysconfig/rx3-net ] && . /etc/sysconfig/rx3-net + + + id=$1 +table=$2 +shift +shift + cmd="$(printf " %q" "$@")" + + prefix=10.2 + + eth_dev="v-eth${id}" + peer_dev="v-peer${id}" +peer_addr="${prefix}.${id}.1" + eth_addr="${prefix}.${id}.254" + eth_mask="255.255.255.0" +peer_mask="${eth_mask}" + ns_name="darkstar${id}" + +export PATH=$PATH:/usr/local/sbin:/usr/local/bin + + + +# Create Net-NS + +ip netns del ${ns_name} 2>/dev/null +sleep 3 + +ip netns add ${ns_name} + + + +# Create v-eth / v-peer + +ip link del ${eth_dev} 2>/dev/null +ip link add ${eth_dev} type veth peer name ${peer_dev} + + + +# Add v-peer to Net-NS + +ip link set ${peer_dev} netns ${ns_name} + + + +# Configure v-eth + +#ip link set ${eth_dev} up +#ip link set ${peer_dev} up +ifconfig ${eth_dev} ${eth_addr} netmask ${eth_mask} up + + + +# Configure lo, v-peer & default route + +ip netns exec ${ns_name} ip link set lo up +ip netns exec ${ns_name} ifconfig ${peer_dev} ${peer_addr} netmask ${peer_mask} up +ip netns exec ${ns_name} route add default gw ${eth_addr} dev ${peer_dev} + + + +# Add rule to table + +ip rule del from ${peer_addr} 2>/dev/null +ip rule add from ${peer_addr} table ${table} + + + +# Add new route in vpn tables + +route="$(ip route list table main | grep -e ${eth_dev} | grep -e ${eth_addr} | sed 's/ proto.*//')" +for tab in ${TABLE_LIST} +do + ip route del ${route} table ${tab} 2>/dev/null + ip route add ${route} table ${tab} +done + + + + + +# Run the cmd + +ip netns exec ${ns_name} "$@"