ifupdown helper scripts for network namespaces
Based on https://github.com/m0kct/debian-netns
				
			
		| if-down.d | ||
| if-pre-up.d | ||
| if-up.d | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
ifupdown-netns
Some simple scripts to simplify configuring network namespaces on Debian-like
systems.  Copy them into the corresponding directories under /etc/network.
To configure an interface in a namespace:
auto eth1
iface eth1 inet manual
  netns myns
On invocation of ifup:
- if the namespace doesn't exist it will be created
 - if the folders 
if-down.d,if-post-down.d,if-pre-up.dandif-up.dunder/etc/netns/<namespace>/networkdon't exist, they will be created - if the 
/etc/netns/<namespace>/network/interfacesfile doesn't exist a blank one will be created - if it does and the interface is configured, the script will invoke 
ifupfor this interface inside the namespace. 
zsh functions to run commands and start a shell in a namespace with a custom prompt
nse () {
  if [ $# -lt 2 ]; then
    echo "Please specify a network namespace and a command"
    echo "Usage: $0 <namespace> <command>"
    return
  fi
  NS=${1}
  shift
  ARGS=${@}
  ip netns exec ${NS} unshare -m /bin/sh -c "mount --make-rprivate /;mount --bind /run/network.${NS} /run/network; ${ARGS}"
}
nss () {
  if [ $# -ne 1 ]; then
    echo "Please specify a network namespace"
    echo "Usage: $0 <namespace>"
    return
  fi
  nse $1 zsh -i
}
alias nsr="nsenter -t 1 -n"
NS=`ip netns identify $$`
if [ "$NS" ]; then;
  NS="/$NS"
fi
if [ "`id -u`" -eq 0 ]; then
  export PS1="%{[33;36;1m%}%T%{[0m%} %{[33;34;1m%}%n%{[0m[33;33;1m%}@%{[33;37;1m%}%m${NS} %{[33;32;1m%}%~%{[0m[33;33;1m%}%#%{[0m%} "
else
  export PS1="%{[33;36;1m%}%T%{[0m%} %{[33;31;1m%}%n%{[0m[33;33;1m%}@%{[33;37;1m%}%m${NS} %{[33;32;1m%}%~%{[0m[33;33;1m%}%#%{[0m%} "
fi