From 7aa44dd1eff96a341cec4484eb541484592f29bb Mon Sep 17 00:00:00 2001 From: MJB <mjb@it-innovation.soton.ac.uk> Date: Mon, 4 Jun 2018 21:09:05 +0100 Subject: [PATCH] persistent ip tables --- Vagrantfile | 8 ++++++++ Vagrantfile.libvirt | 8 ++++++++ scripts/test/fixture.sh | 41 ++++++++++++++++++++++++----------------- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index fcf7b38..0a9a853 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,9 +1,17 @@ $lxc_script = <<-SCRIPT apt-get update + +# install util for persistent ip tables +echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections +echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections +sudo apt-get -y install iptables-persistent + +# install lxc apt-get install lxc lxc-templates wget bridge-utils jq -y lxc-checkconfig +# configure lxc for specific CIDR network touch /etc/lxc/dnsmasq.conf sed -i s/10.0.3/172.40.231/g /etc/default/lxc-net sed -i s/#LXC_DHCP_CONFILE/LXC_DHCP_CONFILE/g /etc/default/lxc-net diff --git a/Vagrantfile.libvirt b/Vagrantfile.libvirt index 5a3bae4..c7ac8b9 100644 --- a/Vagrantfile.libvirt +++ b/Vagrantfile.libvirt @@ -1,9 +1,17 @@ $lxc_script = <<-SCRIPT apt-get update + +# install util for persistent ip tables +echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections +echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections +sudo apt-get -y install iptables-persistent + +# install lxc apt-get install lxc lxc-templates wget bridge-utils jq -y lxc-checkconfig +# configure lxc for specific CIDR network touch /etc/lxc/dnsmasq.conf sed -i s/10.0.3/172.40.231/g /etc/default/lxc-net sed -i s/#LXC_DHCP_CONFILE/LXC_DHCP_CONFILE/g /etc/default/lxc-net diff --git a/scripts/test/fixture.sh b/scripts/test/fixture.sh index 8796983..26a5058 100755 --- a/scripts/test/fixture.sh +++ b/scripts/test/fixture.sh @@ -87,14 +87,16 @@ create() { # set forward ports ports=$(echo $SERVICE | jq -r '.forward_ports') - for row in $(echo "${ports}" | jq -r '.[] | @base64'); do - _jq() { - echo ${row} | base64 --decode | jq -r ${1} - } - guest_port=$(_jq '.guest') - host_port=$(_jq '.host') - iptables -t nat -A PREROUTING -p tcp -i enp0s3 --dport ${host_port} -j DNAT --to-destination ${ip}:${guest_port} - done + if [ "$ports" != "null" ]; then + for row in $(echo "${ports}" | jq -r '.[] | @base64'); do + _jq() { + echo ${row} | base64 --decode | jq -r ${1} + } + guest_port=$(_jq '.guest') + host_port=$(_jq '.host') + iptables -t nat -A PREROUTING -p tcp -i enp0s3 --dport ${host_port} -j DNAT --to-destination ${ip}:${guest_port} + done + fi fi } @@ -130,14 +132,17 @@ destroy() { # remove forward ports ports=$(echo $SERVICE | jq -r '.forward_ports') - for row in $(echo "${ports}" | jq -r '.[] | @base64'); do - _jq() { - echo ${row} | base64 --decode | jq -r ${1} - } - guest_port=$(_jq '.guest') - host_port=$(_jq '.host') - iptables -t nat -D PREROUTING -p tcp -i enp0s3 --dport ${host_port} -j DNAT --to-destination ${ip}:${guest_port} - done + if [ "$ports" != "null" ]; then + echo "destroy ports" + for row in $(echo "${ports}" | jq -r '.[] | @base64'); do + _jq() { + echo ${row} | base64 --decode | jq -r ${1} + } + guest_port=$(_jq '.guest') + host_port=$(_jq '.host') + iptables -t nat -D PREROUTING -p tcp -i enp0s3 --dport ${host_port} -j DNAT --to-destination ${ip}:${guest_port} + done + fi fi } @@ -200,6 +205,8 @@ for service_name in $service_names; do fi done + + echo "------>Create iptables summary" iptables -t nat -L -n -v -iptables-save +iptables-save > /etc/iptables/rules.v4 -- GitLab