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

Dynamic Host Configuration Protocol є мережним протоколом, що застосовується до динамічно розповсюдженої мережі налаштування параметрів, так само як IP-адреси, Gateway, і DNS для мережевого обміну. DHCP Server обчислює IP-адреси автоматично до всіх систем, з системою admin необхідна не підписувати IP-адреси автоматично до клієнтських машин в мережі. DHCP є величезною опцією для великих навколишніх середовищ, складають тисячі систем.

Environment

Make sure to have only DHCP server in your environment. Якщо ви маєте router/switch, який забезпечує функціонування DHCP, то вам потрібно, щоб запобігти йому.

  1. CentOS 7 64bit Minimal Server (DHCP Server) OR Ubuntu 18.04 /16.04 / Debian 9 64bit (DHCP Server)
  2. CentOS 7 64bit Minimal Server (DHCP Client) OR Ubuntu 18.04 / 16.04 Desktop (DHCP Client)

Note: Ви повинні визначати статичну IP-адресу до вашого DHCP-сервера.

Install and configure DHCP server on CentOS 7

Перший, як ви думаєте, щоб встановити і configure DHCP server на CentOS 7 64bit. Вони повинні працювати на CentOS 6.x і інших попередніх версіях.

# yum install dhcp

Після того, як пакети будуть налагоджені, завантажити файл config configuration to /etc/dhcp directory.

# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

Now, edit dhcpd.conf file.

# vi /etc/dhcp/dhcpd.conf

[...] # Specify Domain Name# Default Gateway

192.168.12.110

# systemctl restart dhcpd # systemctl enable dhcpd

Якщо ви face any issues in restarting the DHCP service, then consider updating the SELinux context or .

/sbin/restorecon -v /etc/dhcp/dhcpd.conf

That's it. Now, skip to ' ' section and configure your clients to get IP адреси автоматично від DHCP server.

Install and configure DHCP server on Ubuntu 18.04 / 16.04 / Debian 9

Перший, як ви думаєте про встановлення і configure DHCP server on Ubuntu 14.04. Вони повинні працювати на Ubuntu 15.04 / 14.10 / 13.04 / 13.10 та інші попередні версії.

Install DHCP server and client using the below command.

$ sudo apt-get install isc-dhcp-server

Після того, як пакети будуть налаштовані, ми повинні відобразити, на яких interfaces слід встановити DHCP server ( dhcpd) serve DHCP requests. В нашому випадку, має лише один Interface on my system ( eth0), so we will assign eth0.

Edit file /etc/default/isc-dhcp-server.

$ sudo nano /etc/default/isc-dhcp-server

Mention eth0в файлі.

# Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="eth0"

Now, edit dhcpd.conf file,

$ sudo nano /etc/dhcp/dhcpd.conf

Do the changes as shown below.

Define subnet, range of IP address, domain and domain name servers as below:

[...] # Configuring subnet and iprange subnet 192.168.12.0 netmask 255.255.255.0 (range 192.168.12.100 192.168.12.200; # Specify DNS server ip and additional DNS server ip option domain-name-servers 8.8.8.8, 8.8.4.4; # Specify Domain Name option domain-name "itzgeek.local"; # Default Gateway option routers 192.168.12.2; option broadcast-address 192.168.12.255; # Specify Default and Max lease time default-lease-time 600; max-lease-time 7200; ) [...]

Якщо ви хочете встановити fixed IP-адреси до вашого клієнта, ви повинні надати його MAC ID і IP-адресу в following stanza. Для того, щоб відобразити fixed IP address 192.168.12.110 to the client, stanza will look like below.

[...] host mywindows-client ( hardware ethernet 00:0C:29:05:A7:CB; fixed-address 192.168.12.110; ) [...]

Now, start the dhcpd service and make it start automatically on system reboot.

# sudo service isc-dhcp-server restart

Configure DHCP Clients

Нині, вам потрібно налаштувати клієнтські машини на отримання IP-адреси автоматично від DHCP-сервер. Ви можете go через below articles.

Налаштування мережі в CentOS 7

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

У початківців Linuxможуть виникнути труднощі на першому етапі — не вдасться перевірити поточний стан мережі командою ifconfig(видаватиметься повідомлення — команда не знайдена). Це не проблема, це особливість роботи CentOS, тому цю командунеобхідно запускати від суперкористувача (адміністратора) командою:

Причина полягає в тому, що звичайні користувачі системи та root користувач мають різні змінні оточення PATH (ви можете переглянути PATH користувача за допомогою echo $PATH). Після введення команди Linux, оболонка буде шукати PATH користувача, щоб спробувати знайти команду для запуску. Вона починає пошук у кожній директорії, зазначеній у PATH, поки мета не буде знайдена. Команди звичайних користувачівзазвичай розташовані в /usr/local/bin, /usr/bin та /bin. А команди користувача rootрозташовуються в основному /usr/local/sbin, /usr/sbin, /sbin і кореневий PATH це відображає. Тому, коли ви стаєте суперкористувачем за допомогою "su -", то ви також приймаєте і новий шлях PATH до основних команд. А використовуючи тільки 'su', зберігається шлях користувача PATH за умовчанням, отже, при спробі виконати програму розташовану в /usr/local/sbin, /usr/sbin, /sbin видасть результат: 'command not found' error. Для більш детального пояснення дивіться довідкову сторінку (man bash), особливо розділ login shells. Таким чином, ви або повинні вказувати повний шляхдо команди (приклад - /sbin/ifconfig) при використанні 'su', або використовувати 'su -', коли стаєте root-ом.

Для перевірки поточних мережевих установок варто використовувати команду:

При роботі в ОС сімейства Linux, необхідно знати і розуміти, що всі апаратні та програмні пристрої, а також різні параметри самої операційної системита програм зберігаються у конфігураційних файлах. Таким чином, конфігураційні файли інтерфейсів управляють програмними інтерфейсамиокремих мережевих пристроїв. При завантаженні ОС відбувається зчитування цих файлів та інформації в ній, на основі якої відбувається визначення необхідних (використовуваних і налаштованих) інтерфейсів, а також їх запуск.

Такі файли зазвичай називаються ifcfg-<имя> , де<имя>відноситься до імені пристрою, яке керується цим файлом конфігурації. Як було сказано вище - всі інтерфейси та параметри ОС зберігаються в різних спеціалізованих файлах, що дає адміністратору зручну та гнучку можливість налаштування параметрів ОС та обладнання.

Налаштування мережного інтерфейсу

Налаштуємо мережний інтерфейс шляхом редагування конфігураційного файлу, який розташований у директорії /etc/sysconfig/network-scripts/

У моєму випадку кабель підключений до першого (і єдиного) мережного адаптера, який називається в системі eth0. Виконаємо редагування відповідного файлу:

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

Нагадую, щоб внести зміни до змісту файлу в редакторі vi- Необхідно:

  • натиснути клавішу "i" або "Insert"
  • для виходу з режиму редагування - "esc"
  • для збереження внесених змін - Shift+: потім wq і натиснути Enter

Для мережі зі статичною IP адресою:

DEVICE="eth0"
BOOTPROTO="none"
ONBOOT="yes"
IPADDR="192.168.1.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"

Для мережі з використанням DHCP:

DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"

Коментарі виконаних дій:

Налаштування мережі

Виконуємо редагування мережного конфігураційного файлу:

# vi /etc/sysconfig/network

Вводимо такі дані:

NETWORKING="yes"
HOSTNAME="Ім'я.Вашого.Сервера" або робочої станції

Для коректного застосування налаштувань (щоб вони набули чинності) виконуємо перезапуск мережі:

# /etc/init.d/network restart

Якщо зміни у файлі /etc/sysconfig/network не потрібні, тоді можна відновити лише інтерфейс:

# ifdown eth0 && ifup eth0

Також варто знати, що налаштування мережі можна виконати швидше, Виконаємо дані команди:

ifconfig eth0 192.168.Х.Х netmask 255.255.255.0

Щоб вимкнути мережний інтерфейс, виконайте:

Якщо ж ви хочете, щоб налаштування були отримані автоматично по DHCP, виконайте таку команду:

В даному випадку, щоб припинити роботу мережного інтерфейсу, необхідно буде завершити роботу програми dhclient:

АЛЕ!При налаштуванні мережі подібним чином після перезавантаження конфігурування доведеться проводити заново.

Налаштування DNS

Відкриваємо файл 'resolv.conf':

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

  1. Розповісти, як виконати базові мережеві налаштуванняна сервері centos версій 7 та 8.
  2. Показати додаткові можливості налаштування мережі.
  3. На кількох прикладах розповісти, як вирішувати типові проблемиз мережею.
  4. Показати деякі корисні мережеві утиліти.

Ця стаття є частиною єдиного циклу статтею про сервер.

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

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

Зайшовши до нього бачимо список підключених мережевих карт. Кожну з них можна увімкнути відповідним повзунком (пункт 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 install net-tools

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

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 packets 256 bytes 148817 (145.3 KiB) 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 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 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. Для цього йдемо до директорії та відкриваємо на редагування файл ifcfg-eth0або ifcfg-ens18. Назва файлу залежатиме від імені мережного інтерфейсу. У Centos 8 за промовчанням прибрали підтримку налаштування мережі через конфігураційні скрипти, тому встановіть окремо пакет network-scripts.

# yum install network-scripts

Файл ifcfg-eth0 має приблизно такий зміст:

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

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

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

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

# ifconfig eth0: 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-ens18і видаляємо там рядки з параметрами DNS, IPADDR, PREFIX, GATEWAY, а в параметрі BOOTPROTO вказуємо значення "dhcp".

Зберігаємо файл і перезапускаємо мережу:

# systemctl restart network

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

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

Поточні налаштування 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

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

Перед відключенням ipv6 в centos необхідно про всяк випадок перевірити, які програми його використовують у своїй роботі. Це потрібно для того, щоб уникнути помилок у їх роботі, попередньо відключивши 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

Додаємо заборону на роботу ipv6 у конфігурацію grub. Відкриваємо конфіг /etc/default/grub та додаємо до параметра GRUB_CMDLINE_LINUX ще одне значення ipv6.disable=1. Повинно вийти приблизно так:

GRUB_CMDLINE_LINUX="rd.lvm.lv=cl_centos8/root rhgb quiet ipv6.disable=1"

Після цього оновлюємо конфіг завантажувача.

# grub2-mkconfig -o /boot/grub2/grub.cfg

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

# 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 7.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

За замовчуванням, під час установки 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

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

# 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.5.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

Або те саме за допомогою команди ip.

# ip r default via 10.20.1.1 dev ens18 proto dhcp metric 100 10.20.1.0/24 dev ens18 proto kernel scope link src 10.20.1.23 metric 100 # ip route add default 10.20.1.0/24 dev ens18

# ip route add default via 10.20.1.1

Network Manager у CentOS

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

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

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

System config network tui

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

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

# yum install NetworkManager-tui

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

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

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

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

Якщо ви готуватиметеся до здачі сертифікації за RHEL, то скрізь бачитимете рекомендацію використовувати nmtui для налаштування мережі. Суть у тому, що на іспиті час обмежений, а за допомогою network manager його можна і потрібно заощаджувати. Вважається, що так налаштовувати мережу швидше.

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

Для керування маршрутизацією в 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.5.5 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.169.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

Все гаразд, маршрут доданий. Робимо те саме за допомогою утиліти ip.

# ip r # ip route add 192.168.8.0/24 via 192.168.159.5

Але після перезавантаження цей статичний маршрут буде видалено. Щоб цього не сталося, і додані маршрути зберігалися, необхідно їх записати у спеціальний файл. В папці /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.5.5 5 5.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 1024 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 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 1024 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 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) ropped 0 overruns 0 carrier 0 collisions 0

Те саме, за допомогою ip.

# ip a add 192.168.159.120/24 dev eno16777728:1

Все гаразд, ми додали другий 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

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

# systemctl restart network

Якщо побачите помилку:

Failed to restart network.service: Unit network.service не працює.

Значить, у вас не встановлено пакет network-scripts, а керування мережею виконується за допомогою NetworkManager, який сам перезапускає мережу після зміни налаштувань.

Якщо у вас стара версія Centos без systemd, а це 6-а версія і молодша, то мережа перезапускається ось так.

# /etc/init.d/network restart

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

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

Для того, щоб швидко дізнатися поточну 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 install traceroute

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

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

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

# yum install bind-utils

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

Для підняття тегованого інтерфейсу на 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 місяців, після чого успішні випускники курсу зможуть пройти співбесіду у партнерів. Що дасть вам цей курс:
  • Знання архітектури Linux.
  • Освоєння сучасних методівта інструментів аналізу та обробки даних.
  • Вміння підбирати конфігурацію під необхідні завдання, керувати процесами та забезпечувати безпеку системи.
  • Володіння основними робочими інструментами системного адміністратора.
  • Розуміння особливостей розгортання, настроювання та обслуговування мереж, побудованих на базі Linux.
  • Здатність швидко вирішувати проблеми, що виникають, і забезпечувати стабільну і безперебійну роботу системи.
Перевірте себе на вступному тесті і дивіться докладніше програму.

) is a network protocol used for assigning IP address to network clients dynamically from a predefined IP pool. Це використовується для мережі LAN, але не в основному використовується для створення серверів. Ця стаття буде доступна для Configuring DHCP Server на CentOS, Red Hat System. Докладніше про dhcp .

Install DHCP Package

First install DHCP packages using yum package manager on CentOS, Red Hat systems. DHCP rpms є наявними під основними репозиторіями, тому що не потрібна до іншого реpository.

Yum install dhcp

Update /etc/sysconfig/dhcpd File

Перш за все необхідно до set ethernet interface name as DHCPDARGS in /etc/sysconfig/dhcpdфайл. Еdit this configuration file and update the ethernet name.

DHCPDARGS=eth1

Configure DHCP Server

DHCP creates an empty configuration file /etc/dhcp/dhcpd.conf. Also it provides a sample configuration file at /usr/share/doc/dhcp*/dhcpd.conf.sample, Який є дуже корисним для configuring the DHCP server.

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

# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

3.1 - Parameter Configuration

Першим configure the basic options which is common to all supported networks.

Сайт, ns2.сайт; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7;

3.2 – IP Subnet Declaration

Перший, edit DHCP configuration file і update subnet details as per your network. Для цього прикладу ми configuring DHCP for 192.168.1.0/24 LAN мережі.

Subnet 192.168.1.0 netmask 255.255.255.0 ( option routers 192.168.1.254; option subnet-mask 255.255.255..168.1.1; Option time-offset -18000; 1; 92.168.1.100;

3.3 -Assign Static IP Address to Host

У деяких випадках, нам потрібно скористатися IP-адресою, щоб розповсюдити їх час, який він потребує від dhcp. Ви можете також встановити fixed IP на базі MAC address (hardware ethernet) of that interface. Setup host-name є опційним до set up.

Host station1 ( option host-name "station1.example.com"; hardware ethernet 00:11:1A:2B:3C:AB; fixed-address 192.168.1.100; )

Start DHCP Service

Після виконання всіх змін, let's start dhcp service using following commands as for your operating system version.

For CentOS/RHEL 7 systemctl start dhcp For CentOS/RHEL 6/5 service dhcp start

Схоже на перемикання і реstart dhcp service use following commands.

For CentOS/RHEL 7 systemctl stop dhcp ystemctl restart dhcp For CentOS/RHEL 6/5 service dhcp stop service dhcp restart

Step 5: Setup Client System

На цьому етапі ми будемо керувати dhcp-сервером, який ready for accepting requests and assign them a proper ip. but to verify I another CentOS machine running on same LAN. Нижче наведено, що клієнтський інструмент і edit Ethernet configuration file.

Vim /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=dhcp TYPE=Ethernet ONBOOT=yes

Make sure BOOTPROTO is set to dhcp.

Let's restart network services on the client machine. Ви повинні отримати те, що dhcp server визначений ip-адресою від визначеного subnet. Якщо ви маєте з'єднаний до клієнта комп'ютера з remote login, Ваше повідомлення може бути роз'єднане.

For CentOS/RHEL 7 systemctl restart network For CentOS/RHEL 6/5 service network restart

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

Ця стаття є частиною єдиного циклу статтею про сервер.

Вступ

У нашому розпорядженні буде наступний сервер для налаштування шлюзу:

# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core)

Попереднє налаштування сервера

# yum -y update

Після цього я встановлюю mc, тому що звик до нього і постійно користуюся:

# mcedit /etc/sysconfig/selinux

Наводимо рядок з відповідним параметром до такого виду:

SELINUX=disabled

Щоб застосувати зміни, перезавантажуємо сервер:

# reboot # yum -y install epel-release

Встановлюємо iftop на CentOS 7:

# yum -y install iftop

Тепер ми можемо дивитися завантаження мережі на шлюзі у реальному часі. Щоб побачити активність мережі, достатньо запустити iftop:

За промовчанням вона слухає інтерфейс eth0. Це зовнішній інтерфейс шлюзу, на ньому всі підключення будуть відображені від імені самого шлюзу та визначити, хто ж у мережі займає канал, ми не зможемо. Щоб це побачити, необхідно запустити перегляд активності мережі на локальному інтерфейсі. Зробити це не складно, достатньо запустити iftop із параметром:

# iftop -i eth1 -P

У моєму випадку це користувач з IP 192.168.10.98, на якому я запустив перевірку швидкості інтернету з серверів Яндекса.

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

Висновок

За допомогою безкоштовного дистрибутива Linux ми змогли за лічені хвилини налаштувати шлюз для організації доступу до Інтернету комп'ютерів з локальної мережі. У мене пішло хвилин 10 на налаштування шлюзу за цією інструкцією. Якщо ви робите це вперше, то звичайно у вас піде набагато більше часу. Потрібно розібратися в нюансах, до того ж я дав багато посилань на додатковий матеріал.

Давайте розберемося в тому, що ми зробили:

  1. Виконали попереднє налаштування сервера, підготували його до роботи.
  2. Увімкнули маршрутизацію.
  3. Налаштували firewall.
  4. Увімкнули NAT.
  5. Встановили та налаштували dnsmasq для організації служб dnsта dhcp.
  6. Проаналізували мережеву активність шлюзу, дізналися, хто завантажує канал інтернету.

Це мінімально необхідний функціонал для організації роботи шлюзу на CentOS 7. Наступним етапом може бути налаштування проксі сервера, шейпера трафіку, налаштування 2-х і більше провайдерів та багато іншого. Щось із цього я розгляну у своїх майбутніх статтях.

Нагадую, що ця стаття є частиною єдиного циклу статтею про сервер .

Онлайн курс з Linux

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


Top