Що робити, якщо мережа недоступна у CentOS? Як отримати мережні налаштування по DHCP

У даному матеріалія торкнуся актуальну тему, з якої починається практично будь-яка початкова робота із сервером. Налаштування основних параметрів мережі в CentOS - ip адреса, dhcp, ipv6, dns, hostname, статичні маршрути, мережні карти та інші параметри мережі.

Рухатися по темі будемо крок за кроком від простого до складного, розбираючи всі нюанси по порядку та відповідаючи на найпопулярніші питання.

  1. Мережеві налаштування на сервері CentOS 7
  2. Як отримати мережеві налаштуванняпо DHCP
  3. Як налаштувати DNS у CentOS 7
  4. Як вимкнути ipv6 у CentOS 7
  5. Як змінити hostname у CentOS 7
  6. Встановити шлюз за замовчуванням у CentOS 7
  7. Network Managerу CentOS 7
  8. System config network tui у CentOS 7
  9. Як додати статичний маршруту CentOS 7
  10. Як настроїти 2 IP адреси на одному інтерфейсі
  11. Як зробити перезапуск мережі в CentOS 7
  12. Як дізнатися IP адресу в CentOS 7
  13. Що робити, якщо CentOS не бачить карту мережі?
  14. Що робити, якщо мережа недоступна у CentOS?
  15. Використання мережевих утиліт traceroute, dig у CentOS
  16. Налаштування 802.1Q VLAN у CentOS 7

Мережеві налаштування на сервері CentOS 7

Перший раз із мережевими налаштуваннями сервера CentOSми стикаємося, коли робимо установку. На екрані початкового налаштуванняє окремий пункт, що стосується налаштування мережевих інтерфейсів:

Зайшовши до нього бачимо список підключених мережевих карт. Кожну з них можна увімкнути відповідним повзунком (пункт 1 на зображенні). При активуванні інтерфейсу він автоматично отримує налаштування з dhcp. Результат роботи dhcpможна подивитися тут же. Якщо вас не влаштовують ці налаштування, їх можна відредагувати, натиснувши configure(Пункт 3 на зображенні). Тут же можна поставити hostname(Пункт 2 на зображенні):

Відкривши вікно додатковий налаштувань Ehernet, ви зможете змінити ім'я мережного інтерфейсу, вказати налаштування IP (пункт 1 на зображенні), вибрати ручні налаштування (пункт 2 на зображенні), призначити ip адреса(пункт 3 на зображенні), встановити dns сервер(пункт 4 на зображенні) та зберегти мережеві налаштування (пункт 5 на зображенні):

Після виконання інших налаштувань розпочнеться встановлення. Після встановлення у вас буде сервер із зазначеними вами мережевими налаштуваннями.

Тепер розглянемо іншу ситуацію. Сервер, а відповідно і конфігурацію мережі, робили не ви, а тепер вам треба її подивитися чи змінити. У вашому розпорядженні консоль сервера, в ній і працюватимемо. Якщо у вас установка проводилася з дистрибутивом minimal, то при спробі переглянути мережеві налаштування за допомогою команди ifconfigу консолі ви побачите наступне:

Bash: ifconfig: command not found

або в російській версії:

Bash: ifconfig команда не знайдена

Для роботи з ifconfig та іншими мережевими утилітами необхідно встановити пакет net-tools. Зробимо це:

# yum -y install net-tools.x86_64

Тепер можна побачити налаштування мережі:

# ifconfig

eno16777728: flags=4163 mtu 1500
inet 192.168.159.129


RX packets 319 bytes 36709 (35.8 KiB)

TX packets 256 bytes 148817 (145.3 KiB)

lo: flags=73 mtu 65536

inet6::1 prefixlen 128 scopeid 0x10

RX packets 6 bytes 624 (624.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 624 (624.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Якщо у вас немає бажання встановлювати додатковий пакет, то можна скористатися більш простою командою ipз параметрами:

# ip addr

1: lo: mtu 65536 qdisc noqueue state UNKNOWN

inet 127.0.0.1/8 scope host lo

inet6::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: mtu 1500 qdisc pfifo_fast state UP qlen 1000

inet 192.168.159.129 /24 brd 192.168.159.255 scope global dynamic eno16777728
valid_lft 1709sec preferred_lft 1709sec
inet6 fe80::20c:29ff:fe7d:593f/64 scope link
valid_lft forever preferred_lft forever

Ми побачили конфігурацію мережі, тепер її відредагуємо. Припустимо, нам потрібно змінити адресу ip. Для цього йдемо в директорію /etc/sysconfig/network-scripts та відкриваємо на редагування файл ifcfg-eth0. Цей файл має приблизно такий зміст:

За налаштуваннями цього файлу ми отримуємо ip адресу по dhcp. Щоб вручну прописати статичний IP, наводимо файл до наступного змісту:

Ми змінили параметри:

BOOTPROTO з dhcp на noneDNS1 вказали dns сервер IPADDR, налаштували статичну IP адресу PREFIX, вказали маску підмережі GATEWAY. налаштували шлюз за замовчуванням

Щоб зміни набули чинності, необхідно перечитати налаштування мережі:

Restarting network (via systemctl): [ OK ]

Перевіряємо, чи застосовалася нова конфігураціямережі:

# ifconfig:

eno16777728: flags=4163 mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 672 bytes 71841 (70.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 572 bytes 290861 (284.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Все гаразд, нові налаштування мережного інтерфейсу встановлені.

Як отримати мережні налаштування по DHCP

Тепер розглянемо протилежну ситуацію. Допустимо, у вас мережева картамає якісь параметри, встановлені вручну. Але ви хочете, щоб ваш комп'ютер отримував налаштування мережі по dhcp як клієнт. Для цього вам потрібно зробити операцію, обернену до тієї, що ми робили раніше. Тобто відкриваємо файл /etc/sysconfig/network-scripts/ifcfg-eth0 і видаляємо там рядки з параметрами DNS, IPADDR, PREFIX, GATEWAY, а в параметрі BOOTPROTO вказуємо значення "dhcp". Зберігаємо файл і перезапускаємо мережу:

# /etc/init.d/network restart

Потім перевіряємо, чи отримав наш client по dhcp налаштування.

Як налаштувати DNS у CentOS 7

Поточні налаштування dnsсервера в CentOS можна переглянути у двох місцях:

  • У файлі з налаштуваннями мережі ifcfg-eth0, яким ми раніше неодноразово редагували.
  • У файлі /etc/resolv.conf

Навіщо вони зараз у двох місцях, я не знаю, але раніше налаштування dns сервера в якихось дистрибутивах, не пам'ятаю вже точно якихось, вказувалися тільки в resolv.conf, але в якийсь момент це змінилося. І всі мережеві налаштування стали зберігатися в одному файлі разом з адресою, шлюзом, маскою та іншим. Якщо зараз відредагувати файл resolv.conf і внести туди якісь сервери dns, то після перезавантаження вони будуть замінені на значення з файлу ifcfg-eth0.

Тож для того, щоб встановити параметри dnsсервера, потрібно відредагувати файл мережевих налаштувань ifcfg-eth0, додавши туди стільки серверів, скільки потрібно.

Наприклад так:

DNS1="192.168.159.2"
DNS2="8.8.8.8"
DNS3="8.8.4.4"

Для застосування налаштувань зберігаємо файл і перезапускаємо мережу, як завжди. Після перезавантаження сервера налаштування dns будуть записані у файл resolv.conf

# cat /etc/resolv.conf

# Generated by NetworkManager
nameserver 192.168.159.2
nameserver 8.8.8.8
nameserver 8.8.4.4Як відключити ipv6 в CentOS 7

В даний час активного використанняпротоколу ipv6ні і в звичайній роботівін не потрібен. Хоча нас уже багато років лякають, що вільних ip адрес вже практично не залишилося, але насправді поки що всім вистачає. Так що з погляду практичних міркувань ipv6 в даний час на сервері не потрібний і його можна вимкнути.

Перед вимкненням ipv6 необхідно про всяк випадок перевірити, які програми його використовують у своїй роботі. Це потрібно для того, щоб уникнути помилок у їх роботі, попередньо відключивши ipv6 у конфігураціях. Щоб побачити, які програми висять на ipv6 інтерфейсі скористаємося командою netstat:

# netstat -tulnp



tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2317/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1333/sshd
tcp6 0 0::1:25:::* LISTEN 2317/master
tcp6 0 0:::22:::* LISTEN 1333/sshd
udp 0 0 0.0.0.0:49252 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 0.0.0.0:123 0.0.0.0:* 715/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 715/chronyd
udp6 0 0:::123:::* 715/chronyd
udp6 0 0::1:323:::* 715/chronyd

Всі рядки з:: це протокол ipv6. У моєму випадку це sshd, postfix та chronyd. Відключимо їм ipv6 і залишимо лише ipv4.

Почнемо з sshd. Відкриваємо файл налаштувань /etc/ssh/sshd_config та знаходимо рядки:

#AddressFamily any
#ListenAddress 0.0.0.0

Розкоментуємо їх та змінимо. Повинно вийти так:

AddressFamily inet
ListenAddress 0.0.0.0

Тепер відкриваємо файл налаштувань постфікс /etc/postfix/main.cf. Шукаємо там рядок:

#inet_protocols = all

Змінюємо на:

Inet_protocols = ipv4

Відключаємо ipv6 у chronyd. Для цього створюємо файл /etc/sysconfig/ chronydі додаємо рядок:

OPTIONS=-4

Тепер відключаємо ipv6 у CentOS. Відкриваємо файл /etc/ sysctl.confі додаємо туди рядки:

Net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Редагуємо файл /etc/sysconfig/ network, додаючи туди:

NETWORKING_IPV6=no
IPV6INIT=no

Перезавантажуємося та перевіряємо результат:

# reboot # ifconfig

eno16777728: flags=4163 mtu 1500

ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 2301 bytes 243024 (237.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2138 bytes 1327955 (1.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Ніде немає згадки про inet6 та адреси формату ipv6. Отже, все гаразд, ми відключили ipv6 в CentOS. Тепер перевіримо список відкритих портів:

# netstat -tulnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2291/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1322/sshd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 697/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:57259 0.0.0.0:* 697/avahi-daemon: r

Усі порти ipv4. Все гаразд, наше завдання виконане.

Як змінити hostname у CentOS 7

За замовчуванням, під час установки CentOSставить ім'я хоста localhost.localdomain. Якщо ви його не змінили, то можна це зробити пізніше. Для початку перевіримо, яке ім'я хоста у вас встановлено. Робиться це за допомогою команди у консолі hostname, або за допомогою uname:

# hostname

localhost.localdomain# uname -n

localhost.localdomain

Щоб змінити ім'я хоста в CentOS, необхідно відредагувати файл /etc/hostname. Перевіримо його вміст:

# cat /etc/hostname

localhost.localdomain

Відредагуємо цей файл, щоб змінити hostname:

# mcedit /etc/hostname

centos.localhost

Зберігаємо файл та перевіряємо:

# hostname

centos.localhost

Все добре, ми змінили ім'я хоста на centos.localhost

Встановити шлюз за замовчуванням у CentOS 7

Якщо з якихось причин при налаштуванні мережевих параметріву вас не встановився шлюз за замовчуванням, зробити це можна вручну. Для початку перевіримо, який шлюз за замовчуванням встановлений у системі Наразі:

# netstat -nr
Kernel IP routing table

0.0.0.0 149.154.71.254 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
149.154.70.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0

Рядок з Destination 0.0.0.0 визначає адресу шлюзу. Якщо її немає, або в полі Gateway встановлений неправильний шлюз, то можна це змінити. Встановлюємо шлюз за замовчуванням:

Route add default gw 192.168.0.1Network Manager в CentOS 7

У CentOS за замовчуванням є служба, яка керує всіма мережевими підключеннями. NetworkManager. Вона постійно контролює мережеві налаштування та за допомогою демона з управління конфігураціями вносить відповідні зміни до активних мережеві пристрої. Вона підтримує стандартні файликонфігурацій ifcfg.

Список мережевих утиліт та додатків:

NetworkManagerСтандартний networking daemon nmtui

Простий текстовий інтерфейс (TUI) для NetworkManager nmcli

Утиліта, що працює в командному рядку, яка дозволяє користувачам та скриптам взаємодіяти з NetworkManager control-center

Утиліта з графічним інтерфейсомоболонки GNONE nm-connection-editor GTK+ 3 програми, необхідні для деяких завдань, які не підтримуються control-center

Користувачі не взаємодіють із NetworkManager у CentOS безпосередньо, для цього використовуються графічні та утиліти командного рядка. Однією з таких утиліт є system config network tui.

System config network tui у CentOS 7

Для керування мережними налаштуваннями в CentOS можна скористатися графічною утилітою nmtui.

Перевірити її наявність у системі дуже просто.

Достатньо запустити її в консолі:

Якщо вона у вас не встановлена, виправити це дуже просто. Встановлюємо CentOS system config network tui:

# yum install NetworkManager-tui

За допомогою tuiможна вказати будь-які мережеві налаштування, які ми робили раніше через командний рядокта редагування конфігураційних файлів. Давайте зробимо це. Викликаємо програму:

Вибираємо перший пункт Edit a connection, потім вибираємо мережевий інтерфейс і тиснемо «Edit»:

Тут ми можемо змінити ім'я мережної картки, mac адреса, вказати тип мережевих налаштувань - ручний або dhcp, вказати вручну ip адресу, адресу шлюзу, днс сервера, додати маршрути та деякі інші налаштування:

Після завершення редагування зберігаємо налаштування, натискаючи OK.
Якщо у першому екрані утиліти вибрати пункт Set System Hostname, можна швидко вказати ім'я хоста. Результат буде таким самим, як ми робили раніше в консолі.

Як додати статичний маршрут до CentOS 7

Для керування маршрутизацією в CentOS може знадобитися додати статичний маршрут. Зробити це досить просто за допомогою консольної команди. Для початку перевіримо існуючі маршрути, використовуючи netstat:

# netstat -nr

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface

У даному випадкуу нас один маршрут для адреси 0.0.0.0/0.0.0.0 шлюз використовується 192.168.159.2, він шлюз за замовчуванням. Тобто, по суті, статичних маршрутів немає. Додамо один із них.

Допустимо, у нас є підмережа 192.168.8.0 маска 255.255.255.0, трафік в цю підмережу маршрутизує шлюз 192.168.159.5 Додаємо маршрут:

# route add-net 192.168.8.0/24 gw 192.168.159.5

Перевіряємо, чи з'явився доданий маршрут у таблицю маршрутизації:

# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728

192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

Все гаразд, маршрут доданий. Але після перезавантаження цей статичний маршрут буде видалено. Щоб цього не сталося та додані маршрути зберігалися, необхідно їх записати у спеціальний файл. У папці /etc/sysconfig/network-scripts створюємо файл з ім'ям route-eth0наступного змісту:

# mcedit /etc/sysconfig/network-scripts/route-eth0

192.168.8.0/24 via 192.168.159.5

Перезавантажуємося та перевіряємо, чи на місці маршрут:

# reboot # netstat -nr

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.8.0 192.168.159.5 255.255.255.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

Все гаразд, статичний маршрут доданий.

Як настроїти 2 IP адреси на одному інтерфейсі

Якщо у вас виникла потреба налаштувати 2 IPадреси на одному інтерфейсі в CentOS, то зробити це досить просто. Скористайтеся командою ifconfig. Для початку перевіримо список мережевих інтерфейсів:

# ifconfig

eno16777728: flags=4163 mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)

RX errors 0 dropped 0 overruns 0 frame 0

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)

RX errors 0 dropped 0 overruns 0 frame 0

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Додамо до інтерфейсу eno16777728 ще одну IP адресу 192.168.159.120:

# ifconfig eno16777728:1 192.168.159.120 up

Перевіримо, що вийшло:

#ifconfig
eno16777728: flags=4163 mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 254 bytes 30173 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 27658 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eno16777728:1: flags=4163 mtu 1500
inet 192.168.159.120 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 11 bytes 940 (940.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 940 (940.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Все гаразд, ми додали другий ip адресу на той самий інтерфейс. Але після перезавантаження додаткова адресане збережеться. Щоб зберегти його, необхідно створити файл налаштувань інтерфейсу в папці /etc/sysconfig/network-scripts

# mcedit /etc/sysconfig/network-scripts/ ifcfg-eno16777728:1

DEVICE=eno16777728:1
BOOTPROTO=static
IPADDR=192.168.159.120
NETMASK=255.255.255.0
ONBOOT=yes

Зберігаємо файл, перезавантажуємось та перевіряємо, що вийшло. Друга ip адреса має бути на місці.

Як зробити перезапуск мережі в CentOS 7

Раніше я вже стосувався цього питання, але про всяк випадок повторимо окремо. Допустимо, ви внесли деякі зміни до конфігурації мережі. Як застосувати ці установки, не перезавантажуючи сервер? Дуже просто. Для перезапуску мережі в CentOS достатньо скористатися командою:

# /etc/init.d/network restart

Служба NetworkManager перечитає всі параметри мережі та застосовує зміни.

Як дізнатися IP адресу в CentOS 7

Для того, щоб швидко дізнатися поточну IP-адресу в CentOS необхідно скористатися такими командами:

# ifconfig | grep inet

inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet 127.0.0.1 netmask 255.0.0.0

Або другий варіант визначення локальної IP адреси:

# ip addr | grep inet

inet 127.0.0.1/8 scope host lo
inet 192.168.159.129 /24 brd 192.168.159.255 scope global eno16777728

Обидві команди дозволяють швидко дізнатися свою IP адресу.

Що робити, якщо CentOS не бачить карту мережі?

Ви встановили сервер, завантажилися та виявили, що в системі немає жодної мережної карти. Що в такому разі робити? Насамперед подивіться висновок команди dmesg і пошукайте там спогад про свою карту. Можливо, вона в системі є просто не активована. Активувати її можна за допомогою nmtui, А котрому я розповідав вище.

Там є пункт меню Activate connection, потрібно до нього зайти та активувати вашу мережеву картку. Після цього її можна буде налаштовувати.

Якщо вашої мережевої карти немає в системі, то потрібно пошукати в інтернеті за моделлю інформацію про цю мережеву картку. Можливо, в репозиторіях будуть драйвера для неї. Це досить поширена ситуація. Найчастіше драйвера знайдуться і їх потрібно буде правильно встановити.

Є ще можливість, що ви не побачите своєї картки при виведенні команди ifconfig, якщо в цю карту не встромлять мережний провід. Щоб напевно переглянути всі інтерфейси, необхідно використовувати ключ -a:

# ifconfig -a

Є ще один спосіб пошукати мережну картку в системі. Встановіть пакет pciutils:

# yum -y install pciutils

І подивіться висновок команди:

# lspci | grep Ethernet

Якщо мережева карта бачиться системою, то має бути щось таке:

02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

Якщо у виведенні порожньо, то мережева карта не визначена.

Що робити, якщо мережа недоступна у CentOS?

Допустимо, ви намагаєтеся пінгувати якусь адресу, наприклад 8.8.8.8 і отримуєте відповідь, що мережа недоступна:

# ping 8.8.8.8

А у відповідь отримуєте:

Connect: Network is unreachable

Така ситуація може виникнути, якщо у вас не встановлено шлюз за замовчуванням. Додати його можна за допомогою команди:

# route add default gw 192.168.0.1

Якщо справа не в шлюзі, потрібно перевірити налаштування мережевих адаптерів. Якщо немає жодного активного адаптера, то ви так само отримуватимете повідомлення про те, що мережа не працює. Необхідно, щоб у системі був правильно налаштований хоча б один мережевий адаптер. Як це зробити, написано вище.

Використання мережевих утиліт traceroute, dig у CentOS

Для діагностики мережевих підключеньу CentOS корисно використовувати спеціальні утиліти. Але якщо ви використовували установку minimal, їх швидше за все в системі не буде. Наприклад, популярна утиліта tracerouteпри спробі її запуску видасть повідомлення:

# traceroute ya.ru
bash: traceroute: command not found

Її потрібно встановити окремо з репозиторію:

# yum -y install traceroute

Те ж саме з популярною програмою digдля роботи з dns серверамита записами:

#dig ya.ru
bash: dig: command not found

Щоб ця мережева утилітазапрацювала, необхідно встановити пакет bind-utils:

# yum -y install bind-utilsНалаштування 802.1Q VLAN в CentOS 7

Для підняття тегованого інтерфейсу на CentOS потрібно насамперед перевірити підтримку ядром 8021q:

# modprobe 8021q

Якщо повідомлень про помилку немає, то все гаразд. Якщо модуль не знайдено, необхідно перезбирати модулі ядра, включивши підтримку необхідного модуля.

Тепер створюємо файл конфігурації для vlan у /etc/sysconfig/network-scripts:

# mcedit ifcfg-vlan4000

VLAN=yes
DEVICE=eno16777728.2000
BOOTPROTO=static
ONBOOT=yes
TYPE=Vlan
IPADDR=192.168.100.2
NETMASK=255.255.255.0

Звертаю увагу на виділене жирним. У всіх інструкціях в інтернеті, що мені попалися, цей параметр був вказаний як TYPE=Ethernet, але з таким налаштуванням інтерфейс з vlan не піднімався, з'являлася помилка:

Error: no device found for connection 'System vlan4000'.

Тільки після того, як я виправив, все запрацювало як слід. Так що зберігаємо та активуємо інтерфейс:

# ifup vlan4000

Connection успішно activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

Перевіряємо наш vlan:

# ip l ls

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777728: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ff
3: vlan4000@eno16777728: mtu 1500 qdisc noqueue state UP mode DEFAULT
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ff

Все гаразд, тегований інтерфейс піднятий. За аналогією можна створити ще кілька подібних інтерфейсів, не забуваючи змінювати їм імена та адреси.

На цьому мій об'ємний матеріал на тему налаштування мережі CentOS закінчено.

Буду дуже радий коментарям, зауваженням, поправкам. Вони, напевно, будуть. Створюючи подібні матеріали я в першу чергу вчуся сам і підтягую свої знання у предметної області. Тут можуть бути десь помилки та описки, хоча я і перевіряю все на живих системах під час написання посібників, але все одно можливі неточності та друкарські помилки.

За статтю величезне спасибі: http://serveradmin.ru

У цьому матеріалі я торкнуся актуальної теми, з якої починається практично будь-яка початкова робота з сервером. Налаштування основних параметрів мережі в CentOS - ip адреса, dhcp, ipv6, dns, hostname, статичні маршрути, мережні карти та інші параметри мережі. Рухатися по темі будемо крок за кроком від простого до складного, розбираючи всі нюанси по порядку та відповідаючи на найпопулярніші питання.

Мережеві налаштування на сервері CentOS 7

Перший раз з мережевими налаштуваннями сервера CentOS ми стикаємося, коли виконуємо інсталяцію. На екрані початкового налаштування є окремий пункт щодо налаштування мережевих інтерфейсів:

Зайшовши до нього бачимо список підключених мережевих карт. Кожну з них можна увімкнути відповідним повзунком (пункт 1 на зображенні). При активуванні інтерфейсу він автоматично отримує налаштування з dhcp. Результат роботи dhcp можна побачити відразу. Якщо вас не влаштовують ці налаштування, їх можна відредагувати, натиснувши configure(Пункт 3 на зображенні). Тут же можна поставити hostname(Пункт 2 на зображенні):


Відкривши вікно додаткових налаштувань Ehernet, ви зможете змінити ім'я мережного інтерфейсу, вказати налаштування IP (пункт 1 на зображенні), вибрати ручні налаштування(пункт 2 на зображенні), призначити ip адреса(пункт 3 на зображенні), встановити dns сервер(пункт 4 на зображенні) та зберегти мережеві налаштування (пункт 5 на зображенні):


Після виконання інших налаштувань розпочнеться встановлення. Після встановлення у вас буде сервер із зазначеними вами мережевими налаштуваннями.

Тепер розглянемо іншу ситуацію. Сервер, а відповідно і конфігурацію мережі, робили не ви, а тепер вам треба її подивитися чи змінити. У вашому розпорядженні консоль сервера, в ній і працюватимемо. Якщо у вас установка проводилася з дистрибутивом minimal, то при спробі переглянути мережеві налаштування за допомогою команди ifconfigу консолі ви побачите наступне:

Bash: ifconfig: command not found

або в російській версії:

Bash: ifconfig команда не знайдена

Для роботи з ifconfig та іншими мережевими утилітами необхідно встановити пакет net-tools. Зробимо це:

# yum -y install net-tools.x86_64

Тепер можна побачити налаштування мережі:

mtu 1500 inet 192.168.159.129 ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet) RX packets 319 bytes 36709 (35.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX пакетів 256 bytes 148. 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX пакетів 6 bytes 624 (624.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX Packets 6 bytes 624 (624.0 B) TX errors 0 dropped 0 overruns 0 carrier

Якщо у вас немає бажання встановлювати додатковий пакет, то можна скористатися більш простою командою ipз параметрами:

# ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 128 scope host valid_lft forever preferred_lft forever 2: eno16777728: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff inet 192.168.159.129 /24 brd 192.168.159.255 scope global dynamic eno16777728 valid_lft 1709sec preferred_lft 1709sec inet6 fe80::20c:29ff:fe7d:593f/64 scopelink

Ми побачили конфігурацію мережі, тепер її відредагуємо. Припустимо, нам потрібно змінити адресу ip. Для цього йдемо в директорію /etc/sysconfig/network-scripts та відкриваємо на редагування файл ifcfg-eth0. Цей файл має приблизно такий зміст:

За налаштуваннями цього файлу ми отримуємо ip адресу по dhcp. Щоб вручну прописати статичний IP, наводимо файл до наступного змісту:

Ми змінили параметри:

Щоб зміни набули чинності, необхідно перечитати налаштування мережі:

Restarting network (via systemctl): [ OK ]

Перевіряємо, чи застосовано нову конфігурацію мережі:

# ifconfig: eno16777728: flags=4163 mtu 1500 inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255 inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20 ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet) RX packets 672 bytes 71841 (70.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX пакетів 570 bytes 2808 0 carrier 0 collisions 0

Все гаразд, нові налаштування мережного інтерфейсу встановлені.

Як отримати мережні налаштування по DHCP

Тепер розглянемо протилежну ситуацію. Допустимо, у вас мережева карта має якісь налаштування, встановлені вручну. Але ви хочете, щоб ваш комп'ютер отримував налаштування мережі по dhcp як клієнт. Для цього вам потрібно зробити операцію, обернену до тієї, що ми робили раніше. Тобто відкриваємо файл /etc/sysconfig/network-scripts/ifcfg-eth0 і видаляємо там рядки з параметрами DNS, IPADDR, PREFIX, GATEWAY, а в параметрі BOOTPROTO вказуємо значення "dhcp". Зберігаємо файл і перезапускаємо мережу:

# /etc/init.d/network restart

Потім перевіряємо, чи отримав наш client по dhcp налаштування.

Як налаштувати DNS у CentOS 7

Поточні налаштування dns сервера в CentOS можна переглянути у двох місцях:

  1. У файлі з налаштуваннями мережі ifcfg-eth0, яким ми раніше неодноразово редагували.
  2. У файлі /etc/resolv.conf

Навіщо вони зараз у двох місцях, я не знаю, але раніше налаштування dns сервера в якихось дистрибутивах, не пам'ятаю вже точно якихось, вказувалися тільки в resolv.conf, але в якийсь момент це змінилося. І всі мережеві налаштування стали зберігатися в одному файлі разом з адресою, шлюзом, маскою та іншим. Якщо зараз відредагувати файл resolv.conf і внести туди якісь сервери dns, то після перезавантаження вони будуть замінені на значення з файлу ifcfg-eth0.

Так що для того, щоб встановити параметри сервера dns, потрібно відредагувати файл мережевих налаштувань ifcfg-eth0, додавши туди стільки серверів, скільки потрібно. Наприклад так:

DNS1="192.168.159.2" DNS2="8.8.8.8" DNS3="8.8.4.4"

Для застосування налаштувань зберігаємо файл і перезапускаємо мережу, як завжди. Після перезавантаження сервера налаштування dns будуть записані у файл resolv.conf

# cat /etc/resolv.conf # Generated by NetworkManager nameserver 192.168.159.2 nameserver 8.8.8.8 nameserver 8.8.4.4

Як вимкнути ipv6 у CentOS 7

В даний час активного використання протоколу ipv6немає й у звичайній роботі не потрібен. Хоча нас уже багато років лякають, що вільних ip адрес вже практично не залишилося, але насправді поки що всім вистачає. Так що з погляду практичних міркувань ipv6 в даний час на сервері не потрібний і його можна вимкнути.

Перед вимкненням ipv6 необхідно про всяк випадок перевірити, які програми його використовують у своїй роботі. Це потрібно для того, щоб уникнути помилок у їх роботі, попередньо відключивши ipv6 у конфігураціях. Щоб побачити, які програми висять на ipv6 інтерфейсі скористаємося командою netstat:

# netstat -tulnp Active Internet connections (одні сервери) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2317/master tcp0 0. :22 0.0.0.0:* LISTEN 1333/sshd tcp6 0 0::1:25:::* LISTEN 2317/master tcp6 0 0:::22:::* LISTEN 1333/sshd udp 0 0 0.0.0. 0.0.0.0:* 694/avahi-daemon: r udp 0 0 0.0.0.0:123 0.0.0.0:* 715/chronyd udp 0 0 0.0.0.0:5353 0.0.0.0:* 694/ava 0 127.0.0.1:323 0.0.0.0:* 715/chronyd udp6 0 0:::123:::* 715/chronyd udp6 0 0::1:323:::* 715/chronyd

Всі рядки з:: це протокол ipv6. У моєму випадку це sshd, postfix та chronyd. Відключимо їм ipv6 і залишимо лише ipv4.

Почнемо з sshd. Відкриваємо файл налаштувань /etc/ssh/sshd_config та знаходимо рядки:

#AddressFamily any #ListenAddress 0.0.0.0

Розкоментуємо їх та змінимо. Повинно вийти так:

AddressFamily inet ListenAddress 0.0.0.0

Тепер відкриваємо файл налаштувань постфікс /etc/postfix/main.cf. Шукаємо там рядок:

#inet_protocols = all

Змінюємо на:

Inet_protocols = ipv4

Відключаємо ipv6 у chronyd. Для цього створюємо файл /etc/sysconfig/ chronydі додаємо рядок:

OPTIONS=-4

Тепер відключаємо ipv6 у CentOS. Відкриваємо файл /etc/ sysctl.confі додаємо туди рядки:

Net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1

Редагуємо файл /etc/sysconfig/ network, додаючи туди:

NETWORKING_IPV6=no IPV6INIT=no

Перезавантажуємося та перевіряємо результат:

# reboot # ifconfig eno16777728: flags=4163 mtu 1500 inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255 ether 00:0c:29:7d:59:3f txqueuelen 1002 .3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2138 bytes 1327955 (1.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 0 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 by 0 0 carrier 0 collisions 0

Ніде немає згадки про inet6 та адреси формату ipv6. Отже, все гаразд, ми відключили ipv6 в CentOS. Тепер перевіримо список відкритих портів:

# netstat -tulnp Active Internet connections (одні сервери) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2291/master tcp0 0. :22 0.0.0.0:* LISTEN 1322/sshd udp 0 0 0.0.0.0:123 0.0.0.0:* 2453/chronyd udp 0 0 0.0.0.0:5353 0.0.0.0:0 0 127.0.0.1:323 0.0.0.0:* 2453/chronyd udp 0 0 0.0.0.0:57259 0.0.0.0:* 697/avahi-daemon: r

Усі порти ipv4. Все гаразд, наше завдання виконане.

Як змінити hostname у CentOS 7

За замовчуванням під час встановлення CentOS ставить ім'я хоста localhost.localdomain. Якщо ви його не змінили, то можна це зробити пізніше. Для початку перевіримо, яке ім'я хоста у вас встановлено. Робиться це за допомогою команди у консолі hostname, або за допомогою uname:

# hostname localhost.localdomain # uname -n localhost.localdomain

Щоб змінити ім'я хоста в CentOS, необхідно відредагувати файл /etc/hostname. Перевіримо його вміст:

# cat /etc/hostname localhost.localdomain

Відредагуємо цей файл, щоб змінити hostname:

# mcedit /etc/hostname centos.localhost

Зберігаємо файл та перевіряємо:

# hostname centos.localhost

Є готова команда, яка одразу встановлює необхідне ім'ясервера:

# hostnamectl set-hostname centos.localhost

Все добре, ми змінили ім'я хоста на centos.localhost

Встановити шлюз за замовчуванням у CentOS 7

Якщо з якихось причин при налаштуванні мережевих параметрів у вас не встановився шлюз за замовчуванням, зробити це можна вручну. Для початку перевіримо, який шлюз за промовчанням встановлений у системі в даний момент:

# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 149.154.71.254 0.0.0.0 UG 0 0 0 eth0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 149.150.5.5.5.2.5. 0 0 0 eth0 192.168.1.0 10.8.0.2 255.255. 255.0 UG 0 0 0 tun0

Рядок з Destination 0.0.0.0 визначає адресу шлюзу. Якщо її немає, або в полі Gateway встановлений неправильний шлюз, то можна це змінити. Встановлюємо шлюз за замовчуванням:

route add default gw 192.168.0.1

Network Manager у CentOS 7

У CentOS за замовчуванням є служба, яка керує всіма мережевими підключеннями. NetworkManager. Вона постійно контролює мережеві налаштування і за допомогою демона управління конфігураціями вносить відповідні зміни до активних мережевих пристроїв. Вона підтримує стандартні конфігураційні файли ifcfg.

Список мережевих утиліт та додатків:

Користувачі не взаємодіють із NetworkManager у CentOS безпосередньо, для цього використовуються графічні та утиліти командного рядка. Однією з таких утиліт є system config network tui.

System config network tui у CentOS 7

Для керування мережними налаштуваннями в CentOS можна скористатися графічною утилітою nmtui. Перевірити її наявність у системі дуже просто. Достатньо запустити її в консолі:

Якщо вона у вас не встановлена, виправити це дуже просто. Встановлюємо CentOS system config network tui:

# yum install NetworkManager-tui

За допомогою tuiможна вказати будь-які налаштування мережі, які ми робили раніше через командний рядок і редагування конфігураційних файлів. Давайте зробимо це. Викликаємо програму:

Вибираємо перший пункт Edit a connection, потім вибираємо мережевий інтерфейс і тиснемо «Edit»:

Тут ми можемо змінити ім'я мережної карти, mac адресу, вказати тип мережевих налаштувань — ручну або dhcp, вказати вручну ip адресу, адресу шлюзу, днс сервера, додати маршрути та деякі інші налаштування:


Після завершення редагування зберігаємо налаштування, натискаючи OK.
Якщо у першому екрані утиліти вибрати пункт Set System Hostname, можна швидко вказати ім'я хоста. Результат буде таким самим, як ми робили раніше в консолі.

Як додати статичний маршрут до CentOS 7

Для керування маршрутизацією в CentOS може знадобитися додати статичний маршрут. Зробити це досить просто за допомогою консольної команди. Для початку перевіримо існуючі маршрути, використовуючи netstat:

# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728 192.160.5.5.5.5.5.5.2 0 0 0 eno16777728

В даному випадку у нас один маршрут для адреси 0.0.0.0/0.0.0.0 шлюз використовується 192.168.159.2, він шлюз за замовчуванням. Тобто, по суті, статичних маршрутів немає. Додамо один із них.

Допустимо, у нас є підмережа 192.168.8.0 маска 255.255.255.0, трафік в цю підмережу маршрутизує шлюз 192.168.159.5 Додаємо маршрут:

# route add-net 192.168.8.0/24 gw 192.168.159.5

Перевіряємо, чи з'явився доданий маршрут у таблицю маршрутизації:

# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728 192.1692.5.5.5.5.5.5.5.5. .0 UG 0 0 0 eno16777728 192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

Все гаразд, маршрут доданий. Але після перезавантаження цей статичний маршрут буде видалено. Щоб цього не сталося, і додані маршрути зберігалися, необхідно їх записати у спеціальний файл. У папці /etc/sysconfig/network-scripts створюємо файл з ім'ям route-eth0наступного змісту:

# mcedit /etc/sysconfig/network-scripts/route-eth0 192.168.8.0/24 via 192.168.159.5

Перезавантажуємося та перевіряємо, чи на місці маршрут:

# reboot # netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Windw irtt Iface 0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728 192.5.5 5.2. .255.0 UG 0 0 0 eno16777728 192.168.159.0 0.0 .0.0 255.255.255.0 U 0 0 0 eno16777728

Все гаразд, статичний маршрут доданий.

Як настроїти 2 IP адреси на одному інтерфейсі

Якщо у вас виникла потреба налаштувати 2 IPадреси на одному інтерфейсі в CentOS, то зробити це досить просто. Скористайтеся командою ifconfig. Для початку перевіримо список мережевих інтерфейсів:

# ifconfig eno16777728: flags=4163 mtu 1500 inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255 ether 00:0c:29:7d:59:3f txqueuelen 1004 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 204 bytes 27658 (27.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73

Додамо до інтерфейсу eno16777728 ще одну IP адресу 192.168.159.120:

# ifconfig eno16777728:1 192.168.159.120 up

Перевіримо, що вийшло:

# ifconfig eno16777728: flags=4163 mtu 1500 inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255 ether 00:0c:29:7d:59:3f txqueuelen 1004 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 204 bytes 27658 (27.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eno16777728:1: flags=4163 mtu 1500 inet 192.168.159.120 netmask 255.255.255.0 broadcast 192.168.159.255 ether 00:0c:29:7d:59:3f txqueuelen 1000 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 0 (Local Loopback) RX пакети 11 bytes 940 (940.0 B) ped 0 overruns 0 carrier 0 collisions 0

Все гаразд, ми додали другий ip адресу на той самий інтерфейс. Але після перезавантаження додаткова адреса не збережеться. Щоб зберегти його, необхідно створити файл налаштувань інтерфейсу в папці /etc/sysconfig/network-scripts

# mcedit /etc/sysconfig/network-scripts/ ifcfg-eno16777728:1 DEVICE=eno16777728:1 BOOTPROTO=static IPADDR=192.168.159.120 NETMASK=255.255.255.0 ONBOOT=yes

Зберігаємо файл, перезавантажуємось та перевіряємо, що вийшло. Друга ip адреса має бути на місці.

Як зробити перезапуск мережі в CentOS 7

Раніше я вже стосувався цього питання, але про всяк випадок повторимо окремо. Допустимо, ви внесли деякі зміни до конфігурації мережі. Як застосувати ці установки, не перезавантажуючи сервер? Дуже просто. Для перезапуску мережі в CentOS достатньо скористатися командою:

# /etc/init.d/network restart

Служба NetworkManager перечитає всі параметри мережі та застосовує зміни.

Як дізнатися IP адресу в CentOS 7

Для того, щоб швидко дізнатися поточну IP-адресу в CentOS необхідно скористатися такими командами:

# ifconfig | grep inet inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255 inet 127.0.0.1 netmask 255.0.0.0

Або другий варіант визначення локальної IP адреси:

# ip addr | grep inet inet 127.0.0.1/8 scope host lo inet 192.168.159.129 /24 brd 192.168.159.255 scope global eno16777728

Обидві команди дозволяють швидко дізнатися свою IP адресу.

Що робити, якщо CentOS не бачить карту мережі?

Ви встановили сервер, завантажилися та виявили, що в системі немає жодної мережної карти. Що в такому разі робити? Насамперед подивіться висновок команди dmesg і пошукайте там спогад про свою карту. Можливо, вона в системі є просто не активована. Активувати її можна за допомогою nmtui, А котрому я розповідав вище.

Там є пункт меню Activate connection, потрібно до нього зайти та активувати вашу мережеву картку. Після цього її можна буде налаштовувати.

Якщо вашої мережевої карти немає в системі, то потрібно пошукати в інтернеті за моделлю інформацію про цю мережеву картку. Можливо, в репозиторіях будуть драйвера для неї. Це досить поширена ситуація. Найчастіше драйвера знайдуться і їх потрібно буде правильно встановити.

Є ще ймовірність, що ви не побачите своєї картки при виведенні команди ifconfig, якщо в цю карту не встромлять мережний провід. Щоб напевно переглянути всі інтерфейси, необхідно використовувати ключ -a:

# ifconfig -a

Є ще один спосіб пошукати мережну картку в системі. Встановіть пакет pciutils:

# yum -y install pciutils

І подивіться висновок команди:

# lspci | grep Ethernet

Якщо мережева карта бачиться системою, то має бути щось таке:

02:00.0 Ethernet Controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

Якщо у виведенні порожньо, то мережева карта не визначена.

Що робити, якщо мережа недоступна у CentOS?

Допустимо, ви намагаєтеся пінгувати якусь адресу, наприклад 8.8.8.8 і отримуєте відповідь, що мережа недоступна:

# ping 8.8.8.8

А у відповідь отримуєте:

Connect: Network is unreachable

Така ситуація може виникнути, якщо у вас не встановлено шлюз за замовчуванням. Додати його можна за допомогою команди:

# route add default gw 192.168.0.1

Якщо справа не в шлюзі, потрібно перевірити налаштування мережевих адаптерів. Якщо немає жодного активного адаптера, то ви так само отримуватимете повідомлення про те, що мережа не працює. Необхідно, щоб у системі був правильно налаштований хоча б один адаптер мережі. Як це зробити, написано вище.

Використання мережевих утиліт traceroute, dig у CentOS

Для діагностики мережевих підключень у CentOS корисно використовувати спеціальні утиліти. Але якщо ви використовували установку minimal, їх швидше за все в системі не буде. Наприклад, популярна утиліта traceroute при спробі її запуску видасть повідомлення:

# traceroute ya.ru bash: traceroute: command not found

Її потрібно встановити окремо з репозиторію:

# yum -y install traceroute

Те саме з популярною програмою digдля роботи з dns серверами та записами:

# dig ya.ru bash: dig: command not found

Щоб ця мережна утиліта запрацювала, необхідно встановити пакет bind-utils:

# yum -y install bind-utils

Налаштування 802.1Q VLAN у CentOS 7

Для підняття тегованого інтерфейсу на CentOS потрібно насамперед перевірити підтримку ядром 8021q:

# modprobe 8021q

Якщо повідомлень про помилку немає, то все гаразд, модуль завантажився. Якщо модуль не знайдено, необхідно перезбирати модулі ядра, включивши підтримку необхідного модуля. Перевіримо про всяк випадок, чи завантажився модуль:

# lsmod | grep 8021q 8021q 29022 0 garp 14384 1 8021q mrp 18542 1 8021q

Все в порядку, модуль 8021q завантажений, додамо його до автозавантаження:

# echo 8021q >> /etc/modules-load.d/8021q.conf

Тепер створюємо файл конфігурації для vlan у /etc/sysconfig/network-scripts:

# mcedit ifcfg-eth0.2000 VLAN=yes DEVICE=eth0.2000 BOOTPROTO=static ONBOOT=yes TYPE=Vlan IPADDR=192.168.100.2 NETMASK=255.255.255.0

Звертаю увагу на виділене жирним. У всіх інструкціях в інтернеті, що мені попалися, цей параметр був вказаний як TYPE=Ethernet, але з таким налаштуванням інтерфейс з vlan не піднімався, з'являлася помилка:

Error: no device found for connection "System eth0.2000".

Тільки після того, як я виправив, все запрацювало як слід. Так що зберігаємо та активуємо інтерфейс:

# ifup eth0.2000 Connection успішно activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

Перевіряємо наш vlan:

# ip l ls 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:15:5d:01:0f:06 brd ff:ff:ff:ff:ff:ff 3: eth0.2000@eth0: mtu 1500 qdisc noqueue state UP mode DEFAULT link/ether 00:15:5d:01:0f:06 brd ff:ff:ff:ff:ff:ff

Все гаразд, тегований інтерфейс піднятий. За аналогією можна створити ще кілька подібних інтерфейсів, не забуваючи змінювати їм імена та адреси.

На цьому мій об'ємний матеріал на тему налаштування мережі CentOS закінчено. Буду дуже радий коментарям, зауваженням, поправкам. Вони, напевно, будуть. Створюючи подібні матеріали я в першу чергу вчуся сам і підтягую свої знання у предметній галузі. Тут можуть бути десь помилки та описки, хоча я і перевіряю все на живих системах під час написання посібників, але все одно можливі неточності та друкарські помилки.

Онлайн курс "Адміністратор Linux"

Якщо у вас є бажання навчитися будувати та підтримувати високодоступні та надійні системи, рекомендую познайомитись з онлайн-курсом «Адміністратор Linux»в OTUS. Курс не для новачків, для вступу потрібні базові знанняпо мережах та встановлення Linuxна віртуалку. Навчання триває 5 місяців, після чого успішні випускники курсу зможуть пройти співбесіду у партнерів. Перевірте себе на вступному тесті і дивіться програму детальніше.