AllInfo
Main: Info Blog Temp Mail


unix 2012-01-02 22-15-45

Практическое занятие. Управление сетью


Цель занятия: изучение инструментов конфигурирования сети в UNIX, включающих настроку параметров TCP/IP-сети.

Изучаемые команды: arp, ifconfig, netstat, ping, route, ssh, telnet, traceroute

Сценарий: Настройка сетевого интерфейса

Сценарий посвящен сетевым интерфейсам – прослойке между канальным и сетевым уровнем в UNIX. В сценарии показано, как получать информацию о настроенных в системе сетевых интерфейсах и как производится их диагностика и конфигурирование.

Начальные условия: Командная строка суперпользователя после входа в систему.

Получить сведения обо всех настроенных сетевых интерфейсах с помощью команды ifconfig -a:

desktop ~ # ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0D:60:8D:42:AA
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:204779 errors:0 dropped:0 overruns:0 frame:0
TX packets:107606 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:302429520 (288.4 Mb) TX bytes:9177476 (8.7 Mb)
Base address:0x8000 Memory:c0220000-c0240000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:228 errors:0 dropped:0 overruns:0 frame:0
TX packets:228 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17724 (17.3 Kb) TX bytes:17724 (17.3 Kb)
Проверить возможность соединения с локальной машиной с помощью команды ping 127.0.0.1.

desktop ~ # ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.051 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.055 ms
Перед конфигурированием интерфейса eth0 необходимо убедиться, что он отключен. Отключение сетевого интерфейса eth0 производится командой ifconfig eth0 down.

desktop ~ # ifconfig eth0 down
desktop ~ # ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:228 errors:0 dropped:0 overruns:0 frame:0
TX packets:228 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17724 (17.3 Kb) TX bytes:17724 (17.3 Kb)
Для связи сетевого интерфейса eth0 с IP-адресом 192.168.1.1 выполним команду ifconfig eth0 192.168.1.1 up.

desktop ~ # ifconfig eth0 192.168.1.1 up
desktop ~ # ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:F1:2E:0E:F9
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:11 Base address:0x2000 Memory:c0210000-c0210fff

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:228 errors:0 dropped:0 overruns:0 frame:0
TX packets:228 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17724 (17.3 Kb) TX bytes:17724 (17.3 Kb)
При этом по умолчанию используется сеть класса C, т.е. маска сети «255.255.255.0».

Для задания специфической маски подсети используется параметр netmask. Например, данная команда задаёт параметры сети класса A: ifconfig eth0 10.10.1.1 netmask 255.0.0.0 up.

desktop ~ # ifconfig eth0 10.10.1.1 netmask 255.0.0.0 up
desktop ~ # ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:F1:2E:0E:F9
inet addr:10.10.1.1 Bcast:10.255.255.255 Mask:255.0.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:11 Base address:0x2000 Memory:c0210000-c0210fff

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:228 errors:0 dropped:0 overruns:0 frame:0
TX packets:228 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17724 (17.3 Kb) TX bytes:17724 (17.3 Kb)
С помощью команды arp можно узнать текущую ARP-таблицу операционной системы (соответствие MAC-адресов канального уровня IP-адресам). Таблица автоматически поддерживается операционной системой в процессе сетевого обмена.

desktop ~ # arp
Address HWtype HWaddress Flags Mask Iface
gate.localnet ether 00:02:44:8F:16:B7 C eth0
Сценарий: Настройка таблицы маршрутизации

В сценарии производится изучение и настройка таблицы маршрутизации IP. С помощью специальной программы производится изучение маршрута следования пакетов.

Начальные условия: Командная строка суперпользователя, сетевой интерфейс настроен на статический IP-адрес.

Для просмотра таблицы маршрутизации воспользуемся командой route -n:

desktop ~ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.10.1.254 0.0.0.0 UG 0 0 0 eth0
Без использования ключа -n для всех имён будут использоваться символьные значения: route

desktop ~ # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
localnet * 255.0.0.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default gate.localnet 0.0.0.0 UG 0 0 0 eth0
Для добавления новой строки в таблицу нужно воспользоваться параметром add: route add -host 10.10.2.1 dev eth0.

desktop ~ # route add -host 10.10.2.1 dev eth0
desktop ~ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.2.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.10.1.254 0.0.0.0 UG 0 0 0 eth0
Эта команда добавляет явный маршрут до отдельного хоста с указанным IP-адресом через интерфейс eth0.

Аналогичным образом маршрут удаляется, используется параметр del: route del -host 10.10.2.1.

desktop ~ # route add -host 10.10.2.1 dev eth0
desktop ~ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.10.1.254 0.0.0.0 UG 0 0 0 eth0
В качестве назначения маршрута можно указывать также целую сеть (парамеметр -net. Рассмотрим команду, которая задаёт маршрут в сеть «192.168.1.0» через шлюз «10.10.1.253»: route add -net 192.168.1.0 gw 10.10.1.253.

desktop ~ # route add -net 192.168.1.0 gw 10.10.1.253
desktop ~ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 10.10.1.253 255.255.255.255 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.10.1.254 0.0.0.0 UG 0 0 0 eth0
Рассмотрим простой маршрут движения пакетов до хоста в Internet с помощью программы traceroute ya.ru:

desktop ~ # traceroute ya.ru
traceroute to ya.ru (213.180.204.8), 64 hops max, 40 byte packets
1 10.10.1.254 (10.10.1.254) 3.418 ms 2.67 ms 0.719 ms
2 cs7206.rinet.ru (195.54.192.28) 1.34 ms 1.378 ms 0.647 ms
3 ix2-m9.yandex.net (193.232.244.93) 1.554 ms 1.457 ms 1.420 ms
4 c3-vlan4.yandex.net (213.180.210.146) 2.137 ms 2.154 ms 1.842 ms
5 ya.ru (213.180.204.8) 2.646 ms 2.183 ms 2.220 ms
Сценарий: Изучение службы доменных имён

Сценарий посвящен изучению службы доменных имён – её использованию и конфигурированию.

Начальные условия: Командная строка суперпользователя, сетевой интерфейс настроен на статический IP-адрес.

Просмотрим содержимое файла /etc/hosts, содержащего имена локальных хостов: cat /etc/hosts

desktop ~ # cat /etc/hosts
#
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server. Just add the names, addresses
# and any aliases to this file...
#

# Localhost
127.0.0.1 localhost

# Home LAN
10.10.1.254 gate.localnet gate
10.10.1.20 boss.localnet boss
Проверим работоспособность DNS с помощью команды обращения к хосту в Internet по имени ping ya.ru:

desktop ~ # ping ya.ru
PING ya.ru (213.180.204.8) 56(84) bytes of data.
64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=54 time=3.56 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=2 ttl=54 time=2.22 ms
Для корректной работы службы доменных имен необходимо прописать используемые серверы DNS в файле /etc/resolv.conf. Просмотрим его содержимое cat /etc/resolv.conf:

desktop ~ # cat /etc/resolv.conf
domain localnet
nameserver 10.10.1.17
С помощью команды host ya.ru узнаем информацию DNS о хосте в Internet:

desktop ~ # host ya.ru
ya.ru has address 213.180.204.8
ya.ru mail is handled by 10 cmail.yandex.ru.
Вторым аргументом команды host ya.ru ns1.yandex.ru имя DNS-сервера, с которого необходимо получить инормацию:

desktop ~ # host ya.ru ns1.yandex.ru
ya.ru has address 213.180.204.8
Using domain server:
Name: ns1.yandex.ru
Address: 213.180.193.1#53
Aliases:

Using domain server:
Name: ns1.yandex.ru
Address: 213.180.193.1#53
Aliases:

ya.ru mail is handled by 10 cmail.yandex.ru.
Сценарий: Простая диагностика работы сети

Сценарий рассматривает самые простые способы диагностики работы сети.

Начальные условия: Командная строка суперпользователя, сетевой интерфейс настроен на статический IP-адрес.

Для проверки работоспособности сетевых служб воспользуемся командой удалённого терминала: telnet ya.ru 80. В данном случае будет установлено соединение с хостом в Internet по порту 80 (HTTP):

desktop ~ # telnet ya.ru 80
Trying 213.180.204.8...
Connected to ya.ru.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.0 200 OK
Server: thttpd/2.25b 29dec2003
Content-Type: text/html; charset=windows-1251
Date: Wed, 23 Nov 2005 05:40:33 GMT
Last-Modified: Mon, 07 Nov 2005 15:13:14 GMT
Accept-Ranges: bytes
Connection: close
Content-Length: 2005

<html>
<head>
...
Если во время соединения с удалённым узлом ввести команду netstat -t, то можно увидеть, что состояние этого соединения – «ESTABLISHED»:

desktop ~ # netstat -t
Active Internet connections (servers and established)
tcp 0 0 desktop:42639 ya.ru:http ESTABLISHED
Информацию обо всех соединениях в системе можно получить с помощью команды netstat -a. В этом случае будет выводиться информация обо всех TCP-, UDP- и локальных сокетах:

desktop ~ # netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:32769 *:* LISTEN
tcp 0 0 *:32770 *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 desktop:42639 ya.ru:http ESTABLISHED
udp 0 0 *:32768 *:*
udp 0 0 *:32769 *:*
udp 0 0 *:sunrpc *:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 8344 /var/run/acpid.socket
unix 2 [ ACC ] STREAM LISTENING 8866 /var/run/sdp
...
Сценарий: Работа по удалённому терминалу

Сценарий рассматривает работу по удалённому сетевому терминалу с использованием программы ssh.

Начальные условия: Командная строка суперпользователя, сетевой интерфейс настроен на статический IP-адрес.

С помощью команды ssh user@10.10.1.222

desktop ~ # ssh user@10.10.1.222
Password:
Last login: Sat Nov 21 15:56:20 2005 from 10.10.1.5
user@remote ~ $
user@remote ~ $ exit
Выполним команду who, чтобы убедиться, что находимся на удалённой машине. Для всех пользователей, работающий удалённо, указывается IP-адрес.

user@remote ~ $ who
user vc/1 Nov 14 14:04
user pts/0 Nov 22 10:55 (10.10.1.5)
Для завершение сеанса удалённого терминала нужно выйти из командной оболочки с помощью команды exit.

user@remote ~ $ exit
logout
Connection to 10.10.1.5 closed.
desktop ~ #

44.222.134.250 / 2024-10-15_11-42-14 UTC.