Работа с сетью

Наименование NIC

  • IP адрес должен быть присоединен к определенному сетевому устройству

  • ip link show показывает текущие устройства

  • ip addr show показывает их настройки

  • В каждой системе есть lo интерфейс (loopback) для внутренних коммуникаций

  • Классически устройства именовались как eth0, eth1 и т.д.

    • Но данная нотация не отражала информации о физическом положении устройства

  • BIOS-имена основаны уже на свойствах устройства

    • em[1-N] - для встроенных NIC

    • eno[nn] - для встроенных NIC

    • p<slot>p<port> - для NIC на PCI шине

  • Если драйвер не позволяет получить свойства девайса, для него используется стандартная нотация

[root@centos8 home]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:61:08:90 brd ff:ff:ff:ff:ff:ff
3: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:9e:76:44 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:9e:76:44 brd ff:ff:ff:ff:ff:ff
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 02:42:aa:cd:9b:1f brd ff:ff:ff:ff:ff:ff
root@centos8 /]# ip add show
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:61:08:90 brd ff:ff:ff:ff:ff:ff
    inet 172.16.249.128/24 brd 172.16.249.255 scope global dynamic noprefixroute ens160
       valid_lft 1665sec preferred_lft 1665sec
    inet6 fe80::6235:5dcc:dfe0:2c4a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:9e:76:44 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:9e:76:44 brd ff:ff:ff:ff:ff:ff
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:aa:cd:9b:1f brd ff:ff:ff:ff:ff:ff

Настройка IP в Runtime

  • Утилита ip используется для настройки всех аспектов сети

    • Она заменила устаревшую утилиту ifconfig, которая не рекомендуется к использованию

  • ip addr настраивает параметры адреса

  • ip link отображает свойства линка

  • ip route управляет маршрутами

[root@centos8 /]# ip route show
default via 172.16.249.2 dev ens160 proto dhcp metric 100 
172.16.249.0/24 dev ens160 proto kernel scope link src 172.16.249.128 metric 100 
[root@centos8 /]# ip -s link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    40408967   29479    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    40408967   29479    0       0       0       0       
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:61:08:90 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    161808331  107929   0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    2139126    39139    0       0       0       0       
3: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:9e:76:44 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0       
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:9e:76:44 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0       
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 02:42:aa:cd:9b:1f brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    26498      688      0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    2434588    792      0       0       0       0 
  • Все эти настройки не сохраняются при перезагрузке как системы, так и интерфейса

  • DNS параметры хранятся в /etc/resolv.conf

    • Файл перезаписывается при перезагрузке

[root@centos8 /]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 172.16.249.2

Структура работы сети в RHEL

  • Параметры для интерфейса хранятся в /etc/sysconfig/network-scripts/<interface>

  • Этим файлом управляет Network Manager

  • Настраивать параметры можно через:

    • nmcli - Network Manager Command Line Interface

    • nmtui - Network Manager Text User Interface

    • Вручную изменять параметры network-scripts

  • Для того, чтобы изменения вступили в силу, необходимо обновить этот файл

    • В nmcli - через conn up

    • В nmtui - через активацию\деактивацию интерфейса

    • Перезапустить Network Manager

  • Параметры network-scripts обеспечивают работу для утилиты ip в режиме runtime

Работа с nmcli

  • Соединение в nmcli есть конфигурация, которая добавляется к сетевому устройству

  • Соединения хранятся в конфигурационных файлах

  • NetworkManager сервис должен быть запущен для управления этими файлами

  • Также для работы с nmcli должен быть установлен RPM пакет bash-completion

[root@centos8 /]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled>
   Active: active (running) since Fri 2020-02-14 20:35:45 MSK; 1 weeks 4 d>
     Docs: man:NetworkManager(8)
 Main PID: 1165 (NetworkManager)
    Tasks: 3
   Memory: 5.9M
   CGroup: /system.slice/NetworkManager.service
           └─1165 /usr/sbin/NetworkManager --no-daemon
[root@centos8 /]# rpm -qa | grep bash-completion
bash-completion-2.7-5.el8.noarch
[root@centos8 /]# man nmcli-examples
  • Добавление соединения с ручной настройкой IP:

$ nmcli con add con-name my-con-em1 ifname em1 type ethernet \
             ip4 192.168.100.100/24 gw4 192.168.100.1 ip4 1.2.3.4 ip6 abbe::cafe
$ nmcli con mod my-con-em1 ipv4.dns "8.8.8.8 8.8.4.4"
$ nmcli con mod my-con-em1 +ipv4.dns 1.2.3.4
$ nmcli con mod my-con-em1 ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
$ nmcli -p con show my-con-em1
  • Отобразить доступные Wi-Fi сети:

$ nmcli device wifi list
  • Отобразить соединения:

[root@centos8 /]# nmcli conne show
NAME    UUID                                  TYPE      DEVICE 
ens160  51efa2e4-f7e4-46c6-b388-1cc5ea7bb7d0  ethernet  ens160 
  • Активировать соединение:

[root@centos8 /]# nmcli conne up ens160
Connection successfully activated 
    (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/25)

Работа с nmtui

Сетевые конфигурационные файлы

[root@centos8 /]# cd /etc/sysconfig/network-scripts/
[root@centos8 network-scripts]# ls
ifcfg-ens160
[root@centos8 network-scripts]# cat ifcfg-ens160 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens160"
UUID="51efa2e4-f7e4-46c6-b388-1cc5ea7bb7d0"
DEVICE="ens160"
ONBOOT="yes"
  • После изменений вручную в данном файле - переподнять соединение через nmcli connection up <интерфейс>

Проверка сетевого соединения

  • ping - проверка сетевой связности

    • утилита не останавливается сама до соответствующей команды

    • "-с" - количество пакетов

    • "-f" - ping flood

    • "-D" - вывод временной метки

    • "-s" - размер пакета

[root@centos8 ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=8.55 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=6.92 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=6.57 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=7.02 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=128 time=6.79 ms
^C
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 15ms
rtt min/avg/max/mdev = 6.565/7.169/8.550/0.708 ms
  • dig - проверка работы DNS

[root@centos8 ~]# dig google.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3425
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 65494
;; QUESTION SECTION:
;google.com.			IN	A

;; ANSWER SECTION:
google.com.		5	IN	A	64.233.164.139
google.com.		5	IN	A	64.233.164.113
google.com.		5	IN	A	64.233.164.101
google.com.		5	IN	A	64.233.164.102
google.com.		5	IN	A	64.233.164.138
google.com.		5	IN	A	64.233.164.100

;; Query time: 4 msec
;; SERVER: 172.16.249.2#53(172.16.249.2)
;; WHEN: Wed Feb 26 02:42:49 MSK 2020
;; MSG SIZE  rcvd: 135
  • traceroute - трассировка маршрута

[root@centos8 ~]# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  _gateway (172.16.249.2)  8.370 ms  7.919 ms  7.421 ms
 2  NAT (192.168.1.1)  2.241 ms  1.956 ms  1.760 ms
 3  193.100.100.1.pool.isp.ru (193.100.100.1)  2.764 ms  3.187 ms  2.817 ms
 4  185.37.128.86 (185.37.128.86)  2.491 ms  2.147 ms  3.562 ms
 5  185.37.128.107 (185.37.128.107)  2.807 ms  2.503 ms  2.309 ms
 6  74.125.147.28 (74.125.147.28)  2.998 ms  3.374 ms  2.982 ms
 7  74.125.244.133 (74.125.244.133)  2.613 ms 74.125.244.132 (74.125.244.132)  2.322 ms 74.125.244.180 (74.125.244.180)  3.478 ms
 8  216.239.51.249 (216.239.51.249)  7.622 ms  7.341 ms  6.897 ms
 9  72.14.232.195 (72.14.232.195)  7.174 ms 74.125.253.231 (74.125.253.231)  6.181 ms 72.14.232.195 (72.14.232.195)  7.166 ms
10  74.125.253.109 (74.125.253.109)  15.887 ms 216.239.43.20 (216.239.43.20)  15.549 ms 108.170.235.204 (108.170.235.204)  16.197 ms
11  72.14.236.73 (72.14.236.73)  7.754 ms 216.239.47.201 (216.239.47.201)  8.431 ms *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * dns.google (8.8.8.8)  8.754 ms

Last updated