| #!/bin/bash |
| |
| RETVAL=0 |
| |
| initialize() { |
| |
| echo -n $" $TYPE tables: " |
| if [ -r /etc/sysconfig/ebtables.$TYPE ]; then |
| /sbin/ebtables -t $TYPE --atomic-file /etc/sysconfig/ebtables.$TYPE --atomic-commit > /dev/null || RETVAL=1 |
| else |
| echo -n "not configured" |
| fi |
| if [ $RETVAL -eq 0 ]; then |
| echo -n $"[ OK ]" |
| echo -ne "\r" |
| else |
| echo -n $"[FAILED]" |
| echo -ne "\r" |
| fi |
| } |
| |
| case $1 in |
| start) |
| |
| TYPE=filter |
| initialize |
| |
| |
| echo |
| TYPE=nat |
| initialize |
| |
| |
| echo |
| TYPE=broute |
| initialize |
| ;; |
| stop) |
| /sbin/ebtables -t filter --init-table || RETVAL=1 |
| /sbin/ebtables -t nat --init-table || RETVAL=1 |
| /sbin/ebtables -t broute --init-table || RETVAL=1 |
| |
| for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -f1 -d' ') ebtables; do |
| /sbin/rmmod $mod || RETVAL=1 |
| done |
| |
| if [ $RETVAL -eq 0 ]; then |
| echo -n $"[ OK ]" |
| echo -ne "\r" |
| else |
| echo -n $"[FAILED]" |
| echo -ne "\r" |
| fi |
| ;; |
| save) |
| echo -n $"Saving Ethernet bridge filtering (ebtables): " |
| /sbin/ebtables -t filter --atomic-file /etc/sysconfig/ebtables.filter --atomic-save || RETVAL=1 |
| /sbin/ebtables -t nat --atomic-file /etc/sysconfig/ebtables.nat --atomic-save || RETVAL=1 |
| /sbin/ebtables -t broute --atomic-file /etc/sysconfig/ebtables.broute --atomic-save || RETVAL=1 |
| if [ $RETVAL -eq 0 ]; then |
| echo -n $"[ OK ]" |
| echo -ne "\r" |
| else |
| echo -n $"[FAILED]" |
| echo -ne "\r" |
| fi |
| ;; |
| *) |
| echo "usage: ${0##*/} {start|stop|save}" >&2 |
| exit 1 |
| ;; |
| esac |
| |
| |