Цель занятия: изучение инструментов конфигурирования сети в 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 ~]#