Инструменты для отладки таблиц маршрутизации на машине Linux?

Во время ssh-сессии сессия оболочки будет дочерним процессом. Тот дочерний процесс будет иметь другой дочерний процесс: ztail. После закрытия оболочки ztail освободит своих родителей. Как со всеми этими процессами, они будут adoped init с PID 1.

К если родительский pid ztail1, это - по всей вероятности один из Ваших "зомби".

18
23.03.2015, 17:37
2 ответа

Используйте ip маршрут get. Из Configuring Network Routing :

Команда ip route get является полезной функцией, которая позволяет вам запросить маршрут, по которому система будет посылать пакеты для достижения указанного IP-адреса, например:

# ip route get 23. 6.118.140
23.6.118.140 через 10.0.2.2 dev eth0 src 10.0.2.15
cache mtu 1500 advmss 1460 hoplimit 64

В этом примере пакеты на 23.6.118.140 отправляются из интерфейса eth0 через шлюз 10.0.2.2.

37
27.01.2020, 19:45

Сохранить следующий скрипт где-то полезным. Назовите это с IP-адресом, который вы хотите проверить, и он скажет вам соответствующий маршрут.

#!/bin/bash
#
# Find the appropriate routing entry for a given IP address
########################################################################

########################################################################
# Calculate the base network address for a given addres and netmask
#
baseNet() {
    local ADDRESS="$1" NETMASK="$2"
    ipcalc -nb "$ADDRESS" "$NETMASK" | awk '$1=="Network:"{print $2}'
}

########################################################################
# Go
#
for IPADDRESS in "$@"
do
    netstat -rn |
        tac |
        while read DESTINATION GATEWAY GENMASK FLAGS MSS WINDOW IRTT IFACE
        do
            NSBASENET=$(baseNet "$DESTINATION" "$GENMASK")
            IPBASENET=$(baseNet "$IPADDRESS" "$GENMASK")
            if test "X$NSBASENET" = "X$IPBASENET"
            then
                if test '0.0.0.0' = "$GATEWAY"
                then
                    echo "Matches $DESTINATION with netmask $GENMASK directly on $IFACE"
                else
                    echo "Matches $DESTINATION with netmask $GENMASK via $GATEWAY on $IFACE"
                fi
                break
            fi
        done
done

# All done
#
exit 0

Пример использования

./what-route.sh 10.0.5.6
Matches 0.0.0.0 with netmask 0.0.0.0 via 10.0.2.2 on eth0
./what-route.sh 10.0.2.6
Matches 10.0.2.0 with netmask 255.255.255.0 directly on eth0
2
27.01.2020, 19:45

Теги

Похожие вопросы