Современный мир весь в облаках. И как правило в облаке сетевые настройки автоматизированы, исключением может быть 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
Как видите — ничего сложно.