qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1261450] [NEW] libvirtd reload and hooks problem route


From: Chris Weltzien
Subject: [Qemu-devel] [Bug 1261450] [NEW] libvirtd reload and hooks problem routed-net
Date: Mon, 16 Dec 2013 17:00:51 -0000

Public bug reported:

if we do a reload of libvirt, some iptables rules, which are created through 
/etc/libvirt/hooks/qemu are not working anymore.
Every time a other (one or two,thee) vm is affected. 


our qemu file:

#!/bin/bash


do_net() {
        local status=$2
        local ip=$3
        local in=$4
        local out=$5

        if [[ ! $status || ! $ip || ! $in || ! $out ]]; then
                echo "Not all parameters were passed!"
                exit 1
        fi

        if [ "$status" = "stopped" -o "$status" = "reconnect" ]; then
                ip route del $ip via 191.255.255.1 dev $out
                ip neigh del proxy $ip dev $in
                iptables -D FORWARD -i $in -o $out -s 0.0.0.0/0 -d $ip/32 -j 
ACCEPT
                iptables -D FORWARD -i $out -o $in -s $ip/32 -d 0.0.0.0/0 -j 
ACCEPT
        fi

        if [ "$status" = "start" -o "$status" = "reconnect" ]; then
                ip route add $ip via 191.255.255.1 dev $out
                ip neigh add proxy $ip dev $in
                iptables -I FORWARD 4 -i $in -o $out -s 0.0.0.0/0 -d $ip/32 -j 
ACCEPT
                iptables -I FORWARD 4 -i $out -o $in -s $ip/32 -d 0.0.0.0/0 -j 
ACCEPT
                fi
}

CONF=//etc/libvirt/hooks/vms/*
for file in $CONF
do
        guest_ipaddr=""
        guest_name=""
        type=""
        destination="0.0.0.0/0"

  while read line;    do
    eval $line
  done < $file
        guest_ipaddrnet=$guest_ipaddr"/32"
      for dest in ${destination}
      do
                if [ "${1}" = "${guest_name}" ]; then
                        echo "SRC-IP="$guest_ipaddr " " $guest_ipaddrnet " 
VM="$guest_name " Dest="$dest
                        if [ "${2}" = "stopped" ]; then
                                        ip route del $guest_ipaddr via 
191.255.255.1 dev virbr1
                                       ip neigh del proxy $guest_ipaddr dev 
bond0
                               iptables -D FORWARD -i bond0 -o virbr1 -s $dest 
-d $guest_ipaddrnet -j ACCEPT
                               iptables -D FORWARD -i virbr1 -o bond0 -s 
$guest_ipaddrnet -d $dest -j ACCEPT
                        fi
                        if [ "${2}" = "start" ]; then
                                 ip route add $guest_ipaddr via 191.255.255.1 
dev virbr1
                                 ip neigh add proxy $guest_ipaddr dev bond0
                                 iptables -I FORWARD 4 -i bond0 -o virbr1 -s 
$dest -d $guest_ipaddrnet -j ACCEPT
                                 iptables -I FORWARD 4 -i virbr1 -o bond0 -s 
$guest_ipaddrnet -d $dest -j ACCEPT
                        fi
                        if [ "${2}" = "reconnect" ]; then
                                       ip route del $guest_ipaddr via 
191.255.255.1 dev virbr1
                                       ip neigh del proxy $guest_ipaddr dev 
bond0
                               iptables -D FORWARD -i bond0 -o virbr1 -s $dest 
-d $guest_ipaddrnet -j ACCEPT
                               iptables -D FORWARD -i virbr1 -o bond0 -s 
$guest_ipaddrnet -d $dest -j ACCEPT
                               sleep 1
                                 ip route add $guest_ipaddr via 191.255.255.1 
dev virbr1
                                 ip neigh add proxy $guest_ipaddr dev bond0
                               iptables -I FORWARD 4 -i bond0 -o virbr1 -s 
$dest -d $guest_ipaddrnet -j ACCEPT
                               iptables -I FORWARD 4 -i virbr1 -o bond0 -s 
$guest_ipaddrnet -d $dest -j ACCEPT
                        fi
                fi
        done
done

** Affects: qemu
     Importance: Undecided
         Status: New


** Tags: libvirtd reload

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1261450

Title:
  libvirtd reload and hooks problem routed-net

Status in QEMU:
  New

Bug description:
  if we do a reload of libvirt, some iptables rules, which are created through 
/etc/libvirt/hooks/qemu are not working anymore.
  Every time a other (one or two,thee) vm is affected. 

  
  our qemu file:

  #!/bin/bash

  
  do_net() {
          local status=$2
          local ip=$3
          local in=$4
          local out=$5

          if [[ ! $status || ! $ip || ! $in || ! $out ]]; then
                  echo "Not all parameters were passed!"
                  exit 1
          fi

          if [ "$status" = "stopped" -o "$status" = "reconnect" ]; then
                  ip route del $ip via 191.255.255.1 dev $out
                  ip neigh del proxy $ip dev $in
                  iptables -D FORWARD -i $in -o $out -s 0.0.0.0/0 -d $ip/32 -j 
ACCEPT
                  iptables -D FORWARD -i $out -o $in -s $ip/32 -d 0.0.0.0/0 -j 
ACCEPT
          fi

          if [ "$status" = "start" -o "$status" = "reconnect" ]; then
                  ip route add $ip via 191.255.255.1 dev $out
                  ip neigh add proxy $ip dev $in
                  iptables -I FORWARD 4 -i $in -o $out -s 0.0.0.0/0 -d $ip/32 
-j ACCEPT
                  iptables -I FORWARD 4 -i $out -o $in -s $ip/32 -d 0.0.0.0/0 
-j ACCEPT
                  fi
  }

  CONF=//etc/libvirt/hooks/vms/*
  for file in $CONF
  do
          guest_ipaddr=""
          guest_name=""
          type=""
          destination="0.0.0.0/0"

    while read line;    do
      eval $line
    done < $file
          guest_ipaddrnet=$guest_ipaddr"/32"
        for dest in ${destination}
        do
                  if [ "${1}" = "${guest_name}" ]; then
                          echo "SRC-IP="$guest_ipaddr " " $guest_ipaddrnet " 
VM="$guest_name " Dest="$dest
                          if [ "${2}" = "stopped" ]; then
                                          ip route del $guest_ipaddr via 
191.255.255.1 dev virbr1
                                         ip neigh del proxy $guest_ipaddr dev 
bond0
                                 iptables -D FORWARD -i bond0 -o virbr1 -s 
$dest -d $guest_ipaddrnet -j ACCEPT
                                 iptables -D FORWARD -i virbr1 -o bond0 -s 
$guest_ipaddrnet -d $dest -j ACCEPT
                          fi
                          if [ "${2}" = "start" ]; then
                                   ip route add $guest_ipaddr via 191.255.255.1 
dev virbr1
                                   ip neigh add proxy $guest_ipaddr dev bond0
                                   iptables -I FORWARD 4 -i bond0 -o virbr1 -s 
$dest -d $guest_ipaddrnet -j ACCEPT
                                   iptables -I FORWARD 4 -i virbr1 -o bond0 -s 
$guest_ipaddrnet -d $dest -j ACCEPT
                          fi
                          if [ "${2}" = "reconnect" ]; then
                                         ip route del $guest_ipaddr via 
191.255.255.1 dev virbr1
                                         ip neigh del proxy $guest_ipaddr dev 
bond0
                                 iptables -D FORWARD -i bond0 -o virbr1 -s 
$dest -d $guest_ipaddrnet -j ACCEPT
                                 iptables -D FORWARD -i virbr1 -o bond0 -s 
$guest_ipaddrnet -d $dest -j ACCEPT
                                 sleep 1
                                   ip route add $guest_ipaddr via 191.255.255.1 
dev virbr1
                                   ip neigh add proxy $guest_ipaddr dev bond0
                                 iptables -I FORWARD 4 -i bond0 -o virbr1 -s 
$dest -d $guest_ipaddrnet -j ACCEPT
                                 iptables -I FORWARD 4 -i virbr1 -o bond0 -s 
$guest_ipaddrnet -d $dest -j ACCEPT
                          fi
                  fi
          done
  done

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1261450/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]