Главная страница

Задача linux. Задача Проверить состояние жестких дисков на выделенном сервере, наличие сбойных блоков на hdd, анализ S. M. A. R. T


Скачать 108.54 Kb.
НазваниеЗадача Проверить состояние жестких дисков на выделенном сервере, наличие сбойных блоков на hdd, анализ S. M. A. R. T
Дата24.01.2019
Размер108.54 Kb.
Формат файлаdocx
Имя файлаЗадача linux.docx
ТипДокументы
#65015
страница6 из 7
1   2   3   4   5   6   7

Настройка сети в Linux, диагностика и мониторинг


Содержание

  • Настройка сети в Linux, диагностика и мониторинг

    • Настройка TCP/IP в Linux для работы в сети Ethernet

      • Параметры сети

    • Файлы настроек сети в Linux (конфигурационные файлы)

    • Настройка сети

    • Диагностика сети Linux

      • ping

      • traceroute

      • dig

      • Другие утилиты диагностики

    • Подключение новой сетевой карты

    • Резюме

    • Что еще почитать по теме?

Доброго времени, уважаемые читатели. Публикую вторую часть статьи о сетевой подсистеме Linux. В текущей части основной упор сделан нареализацию сети в Linux (как настроить сеть в Linux, как продиагностировать сеть в Linux и поддерживать в рабочем состоянии сетевую подсистему в Linux).

Настройка TCP/IP в Linux для работы в сети Ethernet


Для работы с сетевыми протоколами TCP/IP в Linux достаточно наличие только петлевого интерфейса, но если необходимо объединить хосты между собой, естественно, необходимо наличие сетевого интерфейса, каналов передачи данных (например витая пара), возможно, какого-либо сетевого оборудования. Так же, необходимо наличие установленных утилит для настройки сети (/sbin/ifconfig, /sbin/route и др.), обычно поставляемые в пакете net-tools. Так же необходимо наличие конфигурационных файлов для сети (например /etc/hosts) и поддержку сети ядром Linux.http://help.ubuntu.ru/_media/wiki/network-300x181.jpg

Параметры сети


Начнем понимание сетевых механизмов Linux с ручного конфигурирования сети, то есть со случая, когда IP адрес сетевого интерфейсастатичен. Итак, при настройке сети, необходимо учесть и настроить следующие параметры:

IP-адрес - как уже говорилось в первой части статьи - это уникальный адрес машины, в формате четырех десятичных чисел, разделенных точками. Обычно, при работе в локальной сети, выбирается из частных диапазонов, например: 192.168.0.1

Маска подсети - так же, 4 десятичных числа, определяющие, какая часть адреса относиться к адресу сети/подсети, а какая к адресу хоста. Маска подсети является числом, которое складывается (в двоичной форме) при помощи логического И, с IP-адресом и в результате чего выясняется, к какой подсети принадлежит адрес. Например адрес 192.168.0.2 с  маской 255.255.255.0 принадлежит подсети 192.168.0.

Адрес подсети - определяется маской подсети. При этом, для петлевых интерфейсов не существует подсетей.

Широковещательный адрес - адрес, используемый для отправки широковещательных пакетов, которые получат все хосты подсети. Обычно, он равен адресу подсети со значением хоста 255, то есть для подсети 192.168.0 широковещательным будет 192.168.0.255, аналогично, для подсети 192.168 широковещательным будет 192.168.255.255. Для петлевых интерфейсов не существует широковещательного адреса.

IP адрес шлюза - это адрес машины, являющейся шлюзом по-умолчанию для связи с внешним миром. Шлюзов может быть несколько, если компьютер подключен к нескольким сетям одновременно. Адрес шлюза не используется в изолированных сетях (не подключенных к глобальной сети), потому что данным сетям некуда отправлять пакеты вне сети, то же самое относиться и к петлевым интерфейсам.

IP-адрес сервера имен (DNS- сервера) - адрес сервера преобразующего имена хостов в IP адреса. Обычно, предоставляется провайдером.

Файлы настроек сети в Linux (конфигурационные файлы)


Для понимания работы сети в Linux, я бы обязательно посоветовал ознакомиться со статьей »Этапы загрузки Linux». В целом, вся работа Linux основана на процессе init, который рождается при загрузке ОС и плодит своих потомков, которые в свою очередь и выполняют всю необходимую работу, будь то запуск bash или демона. Да, и вся загрузка Linux основана на скриптах bash, в которых прописана вся последовательность запуска мелких утилит с различными параметрами, которые последовательно запускаются/останавливаются при запуске/остановке системы. Аналогично запускается и сетевая подсистема Linux. Каждый дистрибутив Linux имеет слегка отличающийся от других механизм инициализации сети, но общая картина, думаю, после прочтения будет ясна. Если просмотреть стартовые скрипты сетевой подсистемы какого-либо дистрибутива Linux, то, как настроить конфигурацию сети с помощью конфигурационных файлов, станет более-менее понятно, например у Debian/Ubuntu (за основу возьмем эту ветвь дистрибутивов) за инициализацию сети отвечает скрипт /etc/init.d/networking, просмотрев содержимое которого:

net-server:#cat /etc/init.d/networking

#!/bin/sh -e

### BEGIN INIT INFO

# Provides:          networking

# Required-Start:    mountkernfs $local_fs

# Required-Stop:     $local_fs

# Should-Start:      ifupdown

# Should-Stop:       ifupdown

# Default-Start:     S

# Default-Stop:      0 6

# Short-Description: Raise network interfaces.

### END INIT INFO

 

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

 

[ -x /sbin/ifup ] || exit 0

 

. /lib/lsb/init-functions

 

process_options() {

    [ -e /etc/network/options ] || return 0

    log_warning_msg "/etc/network/options still exists and it will be IGNORED! Read README.Debian of netbase."

}

 

check_network_file_systems() {

    [ -e /proc/mounts ] || return 0

 

    if [ -e /etc/iscsi/iscsi.initramfs ]; then

        log_warning_msg "not deconfiguring network interfaces: iSCSI root is mounted."

        exit 0

    fi

 

    exec 9<&0 < /proc/mounts

    while read DEV MTPT FSTYPE REST; do

        case $DEV in

        /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)

            log_warning_msg "not deconfiguring network interfaces: network devices still mounted."

            exit 0

            ;;

        esac

        case $FSTYPE in

        nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs)

            log_warning_msg "not deconfiguring network interfaces: network file systems still mounted."

            exit 0

            ;;

        esac

    done

    exec 0<&9 9<&-

}

 

check_network_swap() {

    [ -e /proc/swaps ] || return 0

 

    exec 9<&0 < /proc/swaps

    while read DEV MTPT FSTYPE REST; do

        case $DEV in

        /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)

            log_warning_msg "not deconfiguring network interfaces: network swap still mounted."

            exit 0

            ;;

        esac

    done

    exec 0<&9 9<&-

}

 

case "$1" in

start)

        process_options

 

        log_action_begin_msg "Configuring network interfaces"

        if ifup -a; then

            log_action_end_msg $?

        else

            log_action_end_msg $?

        fi

        ;;

 

stop)

        check_network_file_systems

        check_network_swap

 

        log_action_begin_msg "Deconfiguring network interfaces"

        if ifdown -a --exclude=lo; then

            log_action_end_msg $?

        else

            log_action_end_msg $?

        fi

        ;;

 

force-reload|restart)

        process_options

 

        log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces"

        log_action_begin_msg "Reconfiguring network interfaces"

        ifdown -a --exclude=lo || true

        if ifup -a --exclude=lo; then

            log_action_end_msg $?

        else

            log_action_end_msg $?

        fi

        ;;

 

*)

        echo "Usage: /etc/init.d/networking {start|stop}"

        exit 1

        ;;

esac

 

exit 0

можно найти несколько функций, проверяющих наличие подключенных сетевых файловых систем (check_network_file_systems(), check_network_swap()), а так же проверку существования какого-то пока непонятного конфига /etc/network/options (функция process_options()),  а в самом низу, конструкцией case «$1» in проверяется первый параметр переданный скрипту и в соответствии с введенным параметром (start/stop/force-reload|restart или любое дугое) производит определенные действия. Из этих самых »определенных действий», на примере аргумента start видно, что сначала запускается функция process_options, далее отправляется в лог фраза Configuring network interfaces, и запускается команда ifup -a. Если посмотреть man ifup, то видно что данная команда читает конфиг из файла /etc/network/interfaces и согласно ключу -a запускает все интерфейсы имеющие параметр auto.

The ifup and ifdown commands may be used to configure (or, respectively, deconfigure) network interfaces based on interface definitions in the file /etc/network/interfaces.

-a, --all

If given to ifup, affect all interfaces marked auto. Interfaces are brought up in the order in which they are defined in /etc/network/interfaces. If given to ifdown, affect all defined interfaces. Interfaces are brought down in the order in which they are currently listed in the state file. Only interfaces defined in /etc/network/interfaces will be brought down.

Соответственно, прочитав man interfaces (rus) или man interfaces (eng), становиться ясно, как же в Debian/Ubuntu настроить какой-либо сетевой интерфейс с помощью конфига/etc/network/interfaces. Ниже, пример данного конфигурационного файла для 3х интерфейсов: петлевой (lo), со статичным IP (eth2) и IP получаемым по dhcp (eth0):

ip-server:# cat /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).
# The loopback network interface

auto lo

iface lo inet loopback
# The primary network interface

allow-hotplug eth0

iface eth0 inet dhcp
allow-hotplug eth2

iface eth2 inet static

address 192.168.1.1

netmask 255.255.255.0

gateway 192.168.1.254

broadcast 192.168.1.255

В данном конфиге строки allow-hotplug и auto - это синонимы и интерфейсы будут подняты по команде ifup -a. Вот, собственно, и вся цепь работы сетевой подсистемы. Аналогично, в других дистрибутивах: в RedHat и SUSE сеть запускается скриптом /etc/init.d/network. Рассматрев его, аналогично можно найти, где лежит конфигурация сети.

/etc/hosts

Данный файл хранит перечень IP адресов и соответствующих им (адресам) имен хостов.Формат файла ничем не отличается от мастдайного:

ip-server:# cat /etc/hosts

# ip        host.in.domain host

127.0.0.1       localhost

127.0.1.1       ip-server.domain.local  ip-server

192.168.1.1     ip-server.domain.local  ip-server

Исторически, данный файл использовался вместо службы DNS. В настоящее время, файл так же может использоваться вместо службы DNS, но только при условии, что в вашей сети количество машин измеряется в единицах, а не в десятках или сотнях, потому что в таком случае, придется контролировать корректность данного файла на каждой машине.

/etc/networks

Данный файл хранит имена и адреса локальной и других сетей. Пример:

ip-server:# cat /etc/networks

default         0.0.0.0

loopback        127.0.0.0

link-local      169.254.0.0

home-network 192.168.1.0

При использовании данного файла, сетями можно управлять по имени. Например добавить маршрут не route add192.168.1.12, а route addhome-network.

/etc/nsswitch.conf

Файл определяет порядок поиска имени хоста/сети, за данную настройку отвечают строки:

Для хостов:

hosts:          files dns

Для сетей:

networks:       files

Параметр files указывает использовать указанные файлы (/etc/hosts и /etc/networks соответственно), параметр dns указывает использовать службу dns.

/etc/resolv.conf

Этот файл определяет параметры механизма преобразования сетевых имен в IP адреса. Пример:

ip-server:# cat /etc/resolv.conf

nameserver 10.0.0.4

nameserver 10.0.0.1

search domain.local

Первые 2 строчки указывают сервераDNS. Третья строка указывает домены поиска. Если при разрешении имени, имя не будет FQDN-именем, то данный домен подставиться в виде «окончания». Например при выполнении команды ping host, прингуемый адрес преобразуется в host.domain.local. Остальные параметры можно почитать в man resolv.conf. 

В современных дистрибутивах Linux используется динамическая генерация данного файла, с помощью утилиты resolvconf. Она является посредником между службами, динамически предоставляющими сервера имен (например DHCPclient) и службами, использующими данные сервера имен. Статические адреса DNS серверов, в случае использования resolvconf, задаются внутри /etc/network/interfaces (подробнее об этом - в разделе настройки).
1   2   3   4   5   6   7


написать администратору сайта