Linux notes #16 — Базовые команды для диагностики и управления сетью в Linux

Для того, чтобы узнать ip адрес вам понадобится команда 

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:ef:2a:1f brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 192.168.0.1/24 brd 192.168.0.255 scope global dynamic noprefixroute ens18
       valid_lft 543sec preferred_lft 543sec
    inet6 fe80::be24:11ff:feef:2a1f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

lo — это loopback интерфейс. Как пример, полезен, когда двум разным программам на вашем сервере, необходимо коннектиться друг с другом.

ens18 — это наш физический или в случае виртуальной машины, виртуальный интерфейс.

Во многом работа с сетью в Linux похожа на работу например в Cisco IOS, принципы те же, только разные команды. 

Чтобы выключить интерфейс (АККУРАТНЕЕ ЕСЛИ РАБОТАЕТЕ НА ВИРТУАЛКЕ ПО SSH)

sudo ip link set ens18 down

Если посмотрим ip a, то увидим, что интерфейс перешел в состояние DOWN

Чтобы включить

sudo ip link set ens18 up

Проверим еще раз ip a и увидим, что состояние вернулось в UP

Для проверки работоспособности сети, первое, что вы можете сделать

ping ya.ru

PING ya.ru (213.180.193.56) 56(84) bytes of data.
64 bytes from familysearch.yandex.ru (213.180.193.56): icmp_seq=1 ttl=55 time=9.10 ms
64 bytes from familysearch.yandex.ru (213.180.193.56): icmp_seq=2 ttl=55 time=9.06 ms
64 bytes from familysearch.yandex.ru (213.180.193.56): icmp_seq=3 ttl=55 time=9.10 ms

TTL (Time to Live) — время жизни пакета или максимальное количество прыжков (hops), сколько он сможет пройти, прежде, чем прекратит свое существование. Это предотвращает бесконечный цикл хождения пакетов в сети и способствует управлению трафиком.

Если мы сделаем пинг несуществующего устройства

ping 192.168.0.9

PING 192.168.0.9 (192.168.0.9) 56(84) bytes of data.
From 192.168.0.1 icmp_seq=1 Destination Host Unreachable
From 192.168.0.1 icmp_seq=2 Destination Host Unreachable
From 192.168.0.1 icmp_seq=3 Destination Host Unreachable

Если устройство в сети, включено, а пинг до него не проходит, проверьте антивирус и файрвол.

Чтобы посмотреть таблицу маршрутизации

ip route show

default via 192.168.0.10 dev ens18 proto dhcp src 192.168.0.1 metric 100 
192.168.0.0/24 dev ens18 proto kernel scope link src 192.168.0.1 metric 100 

Здесь мы видим дефолтный маршрут и маршрут до сети 192.168.0.0/24

Чтобы посмотреть как проходят пакеты до конкретного хоста

sudo yum install traceroute

traceroute ya.ru

Мы видим, как пакет проходит через наш роутер, сеть провайдера и далее до пункта назначения.

Когда жалуются на то, что не работает интернет, проверьте, нет ли проблем с DNS.

К примеру вы можете сделать пинг 1.1.1.1 и далее ping ya.ru. Если пинг по нескольким ip адресам пройдет, а по dns имени нет, как минимум это стоит проверить.

Чтобы посмотреть адрес вашего DNS сервера

cat /etc/resolv.conf

У DNS серверов есть полезная функция — DNS кэширование. Допустим вы запросили ip адрес сайта site.com, после резолва имени, сервер его запомнит и следующий пользователь с аналогичным запросом, получит ответ быстрее. В масштабах сети провайдера, это сокращает трафик и уменьшает нагрузку на сеть.

Полезная команда при решении проблем с DNS

nslookup ya.ru

Чтобы добавить статический маршрут

sudo ip route add 10.0.0.0/24 via 192.168.0.10

Чтобы удалить

sudo ip route del 10.0.0.0/24

Чтобы добавить IP адрес на сетевой интерфейс

sudo ip addr add 192.168.1.1/24 dev ens18

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

Чтобы перезагрузить сеть

sudo nmcli networking off
sudo nmcli networking on