Цель занятия: изучение инструментов конфигурирования сети в UNIX, включающего настройку параметров TCP/IP-сети.
Изучаемые команды: «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы»
Сценарий посвящен сетевым интерфейсам — прослойке между канальным и сетевым уровнем в UNIX. В сценарии показано, как получать информацию о настроенных в системе сетевых интерфейсах и как производить их диагностику и конфигурирование.
Начальные условия: Командная строка суперпользователя после входа в систему.
Получить сведения обо всех настроенных сетевых интерфейсах с помощью команды ifconfig -a:
[root@localhost ~]# 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.
[root@localhost ~]# 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.
[root@localhost ~]# ifconfig eth0 down [root@localhost ~]# 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.
[root@localhost ~]# ifconfig eth0 192.168.1.1 up [root@localhost ~]# 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.
[root@localhost ~]# ifconfig eth0 10.10.1.1 netmask 255.0.0.0 up [root@localhost ~]# 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-адресам). Таблица автоматически поддерживается операционной системой в процессе сетевого обмена.
[root@localhost ~]# arp Address HWtype HWaddress Flags Mask Iface gate.localnet ether 00:02:44:8F:16:B7 C eth0
В сценарии производится изучение и настройка таблицы маршрутизации IP. С помощью программы производится изучение маршрута следования пакетов.
Начальные условия: Командная строка суперпользователя, сетевой интерфейс настроен на статический IP-адрес.
Для просмотра таблицы маршрутизации воспользуемся командой route -n:
[root@localhost ~]# 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
для всех
имён будут использоваться символьные значения:
[root@localhost ~]# 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.
[root@localhost ~]# route add -host 10.10.2.1 dev eth0 [root@localhost ~]# 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.
[root@localhost ~]# route add -host 10.10.2.1 dev eth0 [root@localhost ~]# 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.
[root@localhost ~]# route add -net 192.168.1.0 gw 10.10.1.253 [root@localhost ~]# 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:
[root@localhost ~]# 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
[root@localhost ~]# cat /etc/hosts # 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:
[root@localhost ~]# 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:
[root@localhost ~]# cat /etc/resolv.conf domain localnet nameserver 10.10.1.17
С помощью команды host ya.ru узнаем информацию DNS о хосте в Internet:
[root@localhost ~]# 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-сервера, с которого необходимо получить информацию:
[root@localhost ~]# 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):
[root@localhost ~]# 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
:
[root@localhost ~]# netstat -t Active Internet connections (servers and established) tcp 0 0 192.168.0.22:42639 ya.ru:http ESTABLISHED
Информацию обо всех соединениях в системе можно получить с помощью команды netstat -a. В этом случае будет выводиться информация обо всех TCP-, UDP- и локальных сокетах:
[root@localhost ~]# 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 192.168.0.22: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 подключимся к удаленному хосту:
[root@localhost ~]# ssh user@10.10.1.222 Password: Last login: Sat Nov 21 15:56:20 2005 from 10.10.1.5 [user@localhost ~]$ [user@localhost ~]$ exit
Выполним команду who, чтобы убедиться, что находимся на удалённой машине. Для всех пользователей, работающий удалённо, указывается IP-адрес.
[user@localhost ~]$ who user vc/1 Nov 14 14:04 user pts/0 Nov 22 10:55 (10.10.1.5)
Для завершение сеанса удалённого терминала нужно выйти из командной оболочки с помощью команды exit.
[user@localhost ~]$ exit logout Connection to 10.10.1.5 closed. [root@localhost ~]#