|
Petr Šabata |
d9a596 |
#!/bin/bash
|
|
Petr Šabata |
d9a596 |
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
Petr Šabata |
d9a596 |
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Petr Šabata |
d9a596 |
#
|
|
Petr Šabata |
d9a596 |
# runtest.sh of /CoreOS/iproute/Sanity/ip-rule-sanity-test
|
|
Petr Šabata |
d9a596 |
# Description: Test basic ip rule funcionality
|
|
Petr Šabata |
d9a596 |
# Author: Jaroslav Aster <jaster@redhat.com>
|
|
Petr Šabata |
d9a596 |
#
|
|
Petr Šabata |
d9a596 |
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Petr Šabata |
d9a596 |
#
|
|
Petr Šabata |
d9a596 |
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
|
|
Petr Šabata |
d9a596 |
#
|
|
Petr Šabata |
d9a596 |
# This copyrighted material is made available to anyone wishing
|
|
Petr Šabata |
d9a596 |
# to use, modify, copy, or redistribute it subject to the terms
|
|
Petr Šabata |
d9a596 |
# and conditions of the GNU General Public License version 2.
|
|
Petr Šabata |
d9a596 |
#
|
|
Petr Šabata |
d9a596 |
# This program is distributed in the hope that it will be
|
|
Petr Šabata |
d9a596 |
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
Petr Šabata |
d9a596 |
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Petr Šabata |
d9a596 |
# PURPOSE. See the GNU General Public License for more details.
|
|
Petr Šabata |
d9a596 |
#
|
|
Petr Šabata |
d9a596 |
# You should have received a copy of the GNU General Public
|
|
Petr Šabata |
d9a596 |
# License along with this program; if not, write to the Free
|
|
Petr Šabata |
d9a596 |
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Petr Šabata |
d9a596 |
# Boston, MA 02110-1301, USA.
|
|
Petr Šabata |
d9a596 |
#
|
|
Petr Šabata |
d9a596 |
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
# Include Beaker environment
|
|
Petr Šabata |
d9a596 |
. /usr/bin/rhts-environment.sh || exit 1
|
|
Petr Šabata |
d9a596 |
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
PACKAGE="iproute"
|
|
Petr Šabata |
d9a596 |
DEFAULT_IFACE="$(ip route show | grep default | sed 's/.*dev \([^ ]\+\) .*/\1/' | head -n 1)"
|
|
Petr Šabata |
d9a596 |
rlIsRHEL '>=7' && IP_RULE_MANPAGE="ip-rule" || IP_RULE_MANPAGE="ip"
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlJournalStart
|
|
Petr Šabata |
d9a596 |
rlPhaseStartSetup
|
|
Petr Šabata |
d9a596 |
rlCheckRpm "$PACKAGE"
|
|
Petr Šabata |
d9a596 |
rlPhaseEnd
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlPhaseStartTest "Basic sanity test"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list"
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add from 172.29.0.0/24 to 172.29.1.0/24 table 1110"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add not from 172.29.0.0/24 to 172.29.1.0/24 table 1111"
|
|
Petr Šabata |
d9a596 |
rlRun "ip -6 rule add from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32 table 1111"
|
|
Petr Šabata |
d9a596 |
rlIsRHEL '>=7' && rlRun "ip rule add oif ${DEFAULT_IFACE} table 1111"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add iif ${DEFAULT_IFACE} tos 10 table 1112"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add fwmark 123 pref 100 table 1112"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add not fwmark 124 pref 101 unreachable"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add fwmark 125 pref 102 prohibit"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add fwmark 126 pref 103 unicast"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add from 172.29.2.0/24 tos 10 blackhole"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add from 172.29.0.0/24 tos 6 prio 99 goto 103"
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list"
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list | grep 'from 172.29.0.0/24 to 172.29.1.0/24'"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list | grep 'not from 172.29.0.0/24 to 172.29.1.0/24'"
|
|
Petr Šabata |
d9a596 |
rlRun "ip -6 rule list | grep 'from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32'"
|
|
Petr Šabata |
d9a596 |
rlIsRHEL '>=7' && rlRun "ip rule list | grep 'oif ${DEFAULT_IFACE}'"
|
|
Petr Šabata |
d9a596 |
! rlIsFedora && rlRun "ip rule list | grep 'tos lowdelay iif ${DEFAULT_IFACE}'"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list | grep 'from all fwmark 0x7b'"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list | grep 'not from all fwmark 0x7c unreachable'"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list | grep 'from all fwmark 0x7d prohibit'"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list | grep 'from all fwmark 0x7e'"
|
|
Petr Šabata |
d9a596 |
! rlIsFedora && rlRun "ip rule list | grep 'from 172.29.2.0/24 tos lowdelay blackhole'"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list | grep 'from 172.29.0.0/24 tos 0x06 goto 103'"
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list"
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del from 172.29.0.0/24 to 172.29.1.0/24"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del not from 172.29.0.0/24 to 172.29.1.0/24"
|
|
Petr Šabata |
d9a596 |
rlRun "ip -6 rule del from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32"
|
|
Petr Šabata |
d9a596 |
rlIsRHEL '>=7' && rlRun "ip rule del oif ${DEFAULT_IFACE}"
|
|
Petr Šabata |
d9a596 |
! rlIsFedora && rlRun "ip rule del iif ${DEFAULT_IFACE} tos lowdelay"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del fwmark 123 pref 100"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del not fwmark 124 pref 101 unreachable"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del fwmark 125 pref 102 prohibit"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del fwmark 126 pref 103 unicast"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del from 172.29.2.0/24 tos 10 blackhole"
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del from 172.29.0.0/24 tos 6 prio 99 goto 103"
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule list"
|
|
Petr Šabata |
d9a596 |
rlPhaseEnd
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
if rlIsRHEL '>=7'; then
|
|
Petr Šabata |
d9a596 |
rlPhaseStartTest
|
|
Petr Šabata |
d9a596 |
saved_rule=$(ip rule list | grep '^0' | cut -d : -f 2 | head -n 1)
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule del prio 0" 0 "Removing rule with prio 0."
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule add prio 0 ${saved_rule}" 0 "Re-creating rule with prio 0."
|
|
Petr Šabata |
d9a596 |
rlRun "man ${IP_RULE_MANPAGE} | col -b | grep 'Rule 0 is special. It cannot be deleted or overridden.'" 1
|
|
Petr Šabata |
d9a596 |
rlPhaseEnd
|
|
Petr Šabata |
d9a596 |
fi
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlPhaseStartTest
|
|
Petr Šabata |
d9a596 |
rlRun "man ${IP_RULE_MANPAGE} | col -b | grep 'reject'" 1
|
|
Petr Šabata |
d9a596 |
rlRun "ip rule help 2>&1 | grep 'reject'" 1
|
|
Petr Šabata |
d9a596 |
rlPhaseEnd
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlPhaseStartCleanup
|
|
Petr Šabata |
d9a596 |
rlPhaseEnd
|
|
Petr Šabata |
d9a596 |
|
|
Petr Šabata |
d9a596 |
rlJournalPrintText
|
|
Petr Šabata |
d9a596 |
rlJournalEnd
|