Centos 7: Настройка сети

Современный мир весь в облаках. И как правило в облаке сетевые настройки автоматизированы, исключением может быть ipv6 протокол.

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

Поехали…


Все настройки сети в Centos 7 проще делать через консоль.
Стоит сразу обратить внимание, в случае CentOS 7 minimall, у вас нет утилиты «ifconfig», которая была в CentOS 6.

Centos 7: Настройка сети ipv4

Включить/Выключить интерфейс можно командами:

ifdown eth0
ifup eth0 

Определяем какие сетевые интерфейсы у нас есть в наличии:

# ls /etc/sysconfig/network-scripts/ | grep ifcfg
ifcfg-eth0
ifcfg-lo

Нам нужен интерфейс «eth0»:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=none #Не использовать DHCP
DEFROUTE=yes
DEVICE=eth0 #Наименование интерфейса
HWADDR=82:e2:92:f9:0b:2d #MAC-адрес
IPADDR=82.196.8.59 #IP-адрес
NETMASK=255.255.255.0 #Маска подсети
GATEWAY=82.196.8.1 #Шлюз
IPADDR1=10.14.0.5 #Второй IP-адрес
NETMASK1=255.255.0.0 #Маска подсети для второго IP-адрес
IPV6ADDR=2A03:B0C0:0000:1010:0000:0000:0063:4001/64 #IPV6 адрес
IPV6INIT=yes
MTU=1500
ONBOOT=yes #Запускать интерфейс при загрузке
TYPE=Ethernet #Тип интерфейса
USERCTL=no

# какие параметры могут быть еще
UUID=e2f7b75a-ec49-4652-81cf-ff9530d8e5dd  #Идентификационный номер интерфейса, можно опустить если задан mac интерфейса
NM_CONTROLLED=no #Управление интерфейсом службой NetworkManager

Применяем настройки:

service network restart

service оставлен для совместимости, в реальности команда делает перенаправление на systemctl, «Systemd» которым был заменен «initd».

Для получения информации о текущем режиме работы сетевой карты выполним команду:

# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full

В digitalocean на интерфейсах висят по два ip ipv4 адреса:

# ip addr
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 82:e2:92:f9:0b:2d brd ff:ff:ff:ff:ff:ff
    inet 82.196.8.59/24 brd 82.196.8.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.14.0.5/16 brd 10.14.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a03:b0c0:0:1010::63:4001/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::80e2:92ff:fef9:b2d/64 scope link
       valid_lft forever preferred_lft forever

Не забываем прописать DNS в resolv.conf:

#vi /etc/resolv.conf
nameserver 8.8.8.8

Проверяем шлюз и внешний сайт:

# route -n -4
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         82.196.8.1      0.0.0.0         UG    0      0        0 eth0
10.14.0.0       0.0.0.0         255.255.0.0     U     0      0        0 eth0
82.196.8.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0

# ping 82.196.8.1
PING 82.196.8.1 (82.196.8.1) 56(84) bytes of data.
64 bytes from 82.196.8.1: icmp_seq=1 ttl=64 time=2.53 ms

# ping google.com
PING google.com (172.217.17.78) 56(84) bytes of data.
64 bytes from ams16s30-in-f78.1e100.net (172.217.17.78): icmp_seq=1 ttl=58 time=0.934 ms
64 bytes from ams16s30-in-f78.1e100.net (172.217.17.78): icmp_seq=2 ttl=58 time=0.733 ms

Centos 7: Настройка сети ipv6

Все примерно тоже самое, но следует обратить внимание на специфические параметры:

# vi /etc/sysconfig/network
NETWORKING_IPV6=yes

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=yes
IPV6ADDR= IPv6-IP-Address
IPV6_DEFAULTGW= IPv6-IP-Gateway-Address

Проверяем работу:

PING ipv6.google.com(2001:4860:b002::68) 56 data bytes
64 bytes from 2001:4860:b002::68: icmp_seq=1 ttl=59 time=93.2 ms

Как видите — ничего сложно.

Вы можете оставить комментарий ниже.
  • Igor

    А настройки ifcfg-eth0 делались с поддержкой NetworkManager или с отключенной?

    • NetworkManager был отключен сразу после установки системы. Об этом будет во второй статье.