- Настройка сети в Linux с помощью netplan
- Конфигурационный файл
- Простая настройка сети
- Применение настроек
- Статический маршрут
- Объединение интерфейсов (bonds)
- Сетевой мост (bridge)
- Отключение netplan и возврат к interfaces
- Возможные ошибки
- 1. Error in network definition *.yaml line xxx column yyy: expected mapping
- Настройка локальной сети в Linux
- Содержание
- Настройка DNS-сервера.
- Смена MAC-адреса сетевой карты.
- Смены скорости сетевого интерфейса.
Настройка сети в Linux с помощью netplan
Начиная с Ubuntu 18.04 конфигурирование сети выполняется с помощью утилиты netplan. В других системах на базе deb, например, Debian, она может быть установлена командой:
apt-get install netplan
В данной статье рассмотрим принцип и примеры настройки сети с помощью netplan.
Конфигурационный файл
Файл для настройки сети находится в каталоге /etc/netplan/. Имя файла может быть любым, на конце должно быть расширение yaml, например:
* чаще всего, это файл 50-cloud-init.yaml или 01-netcfg.yaml.
YAML представляет из себя текстовый формат файла. Вложенные параметры должны иметь отступы табуляциями или пробелами, количество которых имеет важное значение (если поставить лишний пробел у одного из нескольких параметров, мы получим сообщение об ошибке «expected mapping»).
Простая настройка сети
Разберем пример настройки 3-х сетевых интерфейсов. Два из них будут с IP-адресами назначенными вручную (static IP), один — по DHCP.
Приводим файл к следующему виду:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
ens7:
dhcp4: no
addresses: [192.168.122.195/24]
gateway4: 192.168.122.1
mtu: 1500
nameservers:
addresses: [8.8.8.8, 77.88.8.8]
search: [ dmosk.local ]
ens9:
dhcp4: no
addresses: [192.168.1.10/24, 192.168.1.20/24]
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
search: [ dmosk.local, dmosk.ru ]
- version — версия YAML. На момент обновления статьи, была 2.
- renderer — менеджер сети (networkd или NetworkManager).
- ethernets — настройка сетевых адаптеров ethernet.
- ens3, ens7, ens9 — настройки для соответствующих сетевых адаптеров. В данном примере мы настраиваем 3 сетевых адаптера.
- dhcp4 — будет ли получать сетевой адаптер IP-адрес автоматически. Возможны варианты yes/true — получать адрес автоматически; no/false — адрес должен быть назначен вручную.
- addresses — задает IP-адреса через запятую.
- gateway4 — шлюз по умолчанию. В данном примере указывается только для интерфейса ens7.
- mtu — при желании, можно задать значение MTU.
- nameservers — настройка серверов имен (DNS).
- nameservers addresses — указываем серверы DNS. Обратите внимание на разный формат записи для ens7 и ens9. Приемлемы оба варианта.
- nameservers search — дописывает окончание домена, если мы обращаемся к узлу сети только по его имени. Стоит обратить внимание, что мы можем указать несколько доменов через запятую.
Применение настроек
Для применения настроек необходимо запустить команду netplan. Ее синтаксис:
Для проверки нашего конфигурационного файла вводим:
netplan —debug generate
Для применения настроек вводим:
* данную команду мы вводим также для перечитывания настроек и перезапуска сети (вместо привычных restart и reload).
Статический маршрут
Статический маршрут задается для конкретного интерфейса, также в конфигурационном файле netplan, например:
network:
version: 2
renderer: networkd
ethernets:
ens9:
dhcp4: no
addresses: 192.168.1.10/24
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
routes:
— to: 192.168.0.0/24
via: 192.168.1.1
on-link: true
* в данном примере мы настроили маршрут для сетевого интерфейса ens9. Данная настройка задается параметром routes:
- to — направление маршрута (в какую сеть мы должны попадать). В данном примере, 192.168.0.0/24.
- via — через какой шлюз мы попадаем в сеть to.
- on-link — активация маршрута при поднятии линка на сетевом интерфейсе.
Объединение интерфейсов (bonds)
С помощью bonds мы можем объединить интерфейсы с целью обеспечения отказоустойчивости и/или повышения пропускной способности.
network:
version: 2
renderer: networkd
ethernets:
ens2f0: <>
ens2f1: <>
bonds:
bond0:
dhcp4: no
interfaces:
— ens2f0
— ens2f1
parameters:
mode: active-backup
addresses:
— 192.168.122.195/24
gateway4: 192.168.122.1
mtu: 1500
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
* в данном примере мы объединяем физические интерфейсы ens2f0 и ens2f1; настройка parameters mode указываем на тип объединения — доступны варианты:
- balance-rr (задействуются оба интерфейса по очереди, распределение пакетов по принципу Round Robin).
- active-backup (используется только один интерфейс, второй активируется в случае неработоспособности первого).
- balance-xor (задействуются оба интерфейса по очереди, распределение пакетов на основе политики хеширования xmit_hash_policy).
- broadcast (задействуются оба интерфейса одновременно, пакеты передаются все интерфейсы).
- 802.3ad (задействуются оба интерфейса по очереди, распределение пакетов на основе политики хеширования xmit_hash_policy)
- balance-tlb (задействуются оба интерфейса по очереди, пакеты распределяются в соответствии с текущей нагрузкой)
Сетевой мост (bridge)
Сетевой мост позволяет пропускать сетевой трафик через другой сетевой адаптер. Это можно применить, например, для организации хоста виртуальных машин (для трансфера трафика к виртуальным машинам KVM через единственный сетевой интерфейс сервера).
network:
version: 2
renderer: networkd
ethernets:
ens2f0: <>
bridges:
br0:
macaddress: ce:ce:ce:45:45:45
interfaces:
— ens2f0
addresses:
— 192.168.1.15/24
gateway4:
nameservers:
addresses:
— 77.88.8.8
— 8.8.8.8
mtu: 1500
parameters:
stp: true
forward-delay: 4
dhcp4: false
dhcp6: false
- bridges — настройки для интерфейсов bridge.
- bridges br0 — настройка интерфейса br0.
- macaddress — физический адрес (MAC) интерфейса. Настройка важна для некоторых провайдеров VPS — без нее бридж может не заработать.
- interfaces — перечисление интерфейсов, из которых собираем мост. В данном примере ens2f0.
- addresses, gateway4, nameservers — сетевые настройки (IP-адрес, шлюз, сервер имен).
- mtu — одноименный параметр. Для сетей ethernet обычно равен 1500.
- parameters stp — включает или отключает устранение петель в сети. В данном примере включено.
- parameters forward-delay — время в секундах в течение которого мост будет оставаться в состояниях «Listening» и «Learning».
- dhcp4, dhcp6 — включает или отключает автоматическое получение IP-адреса. В нашем случае, отключает.
Подробнее про настройку сетвого моста для KVM в инструкции Настройка KVM на Ubuntu Server.
Также мы можем настроить тегированный интерфейс vlan:
network:
version: 2
renderer: networkd
ethernets:
ens3: <>
vlans:
vlan5:
id: 5
link: ens3
dhcp4: no
addresses: [10.0.0.15/24]
gateway: 10.0.0.1
* в данном примере мы настроили интерфейс с тегом 5 на физическом адаптере ens3.
Для подключения к беспроводной сети задаем следующие настройки:
network:
version: 2
renderer: networkd
wifis:
wlp2s0b1:
dhcp4: no
dhcp6: no
addresses: [192.168.2.10/24]
gateway4: 192.168.2.1
nameservers:
addresses: [192.168.2.1, 77.88.8.8]
access-points:
:
password: wifi_password
- wifis — определяет настойки для WiFi.
- wlp2s0b1 — настройка для беспроводного сетевого адаптера.
- dhcp4, dhcp6 — включает или отключает автоматическое получение IP-адреса.
- addresses, gateway4, nameservers — настройка сети (IP-адрес, шлюз, сервер DNS).
- access-points — настройка для подключения к беспроводной сети.
- — имя беспроводной сети, к которой будем подключаться.
- password — пароль для подключения к беспроводной сети.
Отключение netplan и возврат к interfaces
При желании, мы можем вернуть привычный принцип настройки сети. Для этого выполним несколько шагов.
1. Открываем настройку grub:
2. Находим опцию GRUB_CMDLINE_LINUX и дописываем в нее параметр:
* если GRUB_CMDLINE_LINUX содержит другие настройки, то наш параметр добавляем через пробел.
3. Устанавливаем пакет ifupdown:
apt-get install ifupdown
4. Настраиваем сеть в файле:
auto lo
iface lo inet loopback
auto ens5
iface ens5 inet dhcp
* в данном примере мы настраиваем сетевой интерфейс ens5 на автоматическое получение IP-адреса.
5. Применяем настройки загрузчика:
И перезагружаем систему:
Возможные ошибки
1. Error in network definition *.yaml line xxx column yyy: expected mapping
Ошибка появляется при проверке (generate) или применении (apply) настроек сети.
Причина: ошибка синтаксиса YAML.
Решение: внимательно смотрим на количество отступов, которое сделано для строки xxx. Количество пробелов должно точно соответствовать количеству в других строках. Если параметр вложенный, он также должен отделяться от родителя нужным количеством пробелов. Пример неправильной настройки:
network:
version: 2
renderer: networkd
* обратите внимание, что version имеет 4 пробела для отступа, а renderer — 2. Так как version и renderer равнозначные параметры для родителя network, они должны иметь одинаковое количество пробелов.
Источник
Настройка локальной сети в Linux
Для систематизирования информации по настройке сети в ОС Linux было решено написать эту заметку. Здесь в доступной форме описан процесс настройки сетевого интерфейса на примере ОС Ubuntu. Также данное руководство поможет «поднять» локальную сеть и на любом другом дистрибутиве Linux.
Содержание
Для просмотра текущих параметров сети и состояния сетевых интерфейсов в ОС Линукс существует команда:
Для просмотра абсолютно всех сетевых интерфейсов запускаем команду с ключом -a:
Из приведенного примера видно, что на компьютере используется два сетевых интерфейса: eth0 и lo.
Интерфейс lo — это локальная петля, которая имеет IP-адрес 127.0.0.1 и предназначена для сетевого доступа к своему же компьютеру. Далее этот интерфейс рассматриваться не будет, так как для эффективной работы не требует дополнительной настройки.
Интерфейс eth0 — это Ethernet сетевая карта, которая имеет сетевые параметры: IP-адрес — 192.168.1.18, маску сети — 255.255.0.0 и MAC-адрес — 00:11:5b:91:25:3e. Значение RUNNING показывает, что в данный момент сетевой интерфейс eth0 работает.
Для просмотра типа соединения, скорости и поддерживаемых параметров сетевым интерфейсом eth0 набираем команду:
Из вывода видно, что сетевой интерфейс eth0 работает на скорости 100Мб/с с включенным полным дуплексом (Full Duplex). Полный дуплекс от полудуплекса (Half Duplex) отличается тем, что первый обеспечивает передачу данных в обе стороны одновременно, а второй осуществляет передачу входящих и исходящих данных поочередно.
Команду легко запомнить, так как после названия самой команды идет имя интерфейса и после действие, которое нужно произвести над ним (down или up).
Для возобновления работы сетевого интерфейса eth0:
Эта строка запускает bash-скрипт networking, перезапускающий сетевые интерфейсы системы.
Так же по аналогии производится остановка всех интерфейсов:
Настроить сеть можно одним из вышеприведенных способов. Эти два способа абсолютно взаимозаменяемые. Кому как привычнее.
- Настройка сети с помощью команд.
Чтобы настроить сетевой интерфейс, не влезая в дебри конфигурационного файла, нужно воспользоваться специальными командами.
Чтобы задать основной IP-адрес и маску сети для интерфейса eth0:
Редактировать будем конфигурационный файл /etc/network/interfaces. Чтобы вывести на экран содержимое конфига, набираем команду:
Если локальная сеть, к которой подключаемся, подразумевает ручную настройку IP-адреса, то содержимое конфигурационного файла должно выглядеть примерно так:
Первые строки оставляем как есть, так как их дополнительная настройка не требуется.
Строка auto eth0 говорит, что сетевой интерфейс eth0 должен стартовать при загрузке ОС.
Вторая строка iface eth0 inet static говорит, что сетевому интерфейсу eth0 IP-адрес задается вручную.
Строка address 192.168.1.18 говорит, что сетевому интерфейсу eth0 назначен IP-адрес 192.168.1.18 (этот сетевой адрес взят для примера и на его месте может быть любой другой).
Строка netmask 255.255.0.0 говорит, что маска сети является 255.255.0.0.
Последняя строчка gateway 192.168.1.253 показывает, что сетевым шлюзом является компьютер с IP-адресом 192.168.1.253. Эта строка может отсутствовать, так как ее наличие в конфигурационном файле зависит от параметров локальной сети, к которой подключается настраиваемый компьютер.
Если в подключаемой локальной сети используется автоматическая раздача сетевых настроек DHCP-сервером, то конфигурационный файл /etc/network/interfaces должен быть приведен к виду:
Настройка DNS-сервера.
Так же во многих случаях для правильной работы локальной сети на настраиваемом компьютере потребуется ввести IP-адрес используемого DNS-сервера.
Для этого нужно открыть конфигурационный файл командой:
Строка nameserver 192.168.1.253 говорит, что в качестве DNS-сервера используется компьютер с IP-адресом 192.168.1.253.
Смена MAC-адреса сетевой карты.
Чтобы временно поменять MAC-адрес сетевой карты eth0 нужно воспользоваться командой:
Для смена MAC-адреса навсегда нужно в конфигурационном файле /etc/network/interfaces к настройкам сетевого интерфейса добавить строку с новым MAC-адресом:
Смены скорости сетевого интерфейса.
- sergo #
1 ноября, 23:27
огромное спасибо за статью! в линукс недавно, оч помогло, не подскажете, если сетевых в компьютере две, у одной сетевой dns-server 192.168.0.9, а у другой например 192.168.1.9, корректно будет в одном файле resolv.conf написать
nameserver 192.168.0.9
nameserver 192.168.1.9
Поймут сетевухи кому какой dns?
И можно ли в линукс назначить сетевой карточке какое-то имя, например eth0 это loc, а eth1 это prov?
1. DNS можно указать оба, но сетевым следует указать маски сети 255.255.255.0. Тогда они будут ходить по своим DNS `ам.
2. Про названия сетевых не знаю. Думаю, что можно, это же Linux!!
выключаем интерфейс
ifconfig eth0 down
даем команду
ifrename -i eth0 -n новое_имя (например local)
ifconfig local up
потом в вашем линуксе наверно надо будет в файле /etc/network/interfaces некоторые eth0 поменять на local, у меня просто альт, и этого файла вообще нет, у меня /etc/net/ifaces/папки_с_интерфейсами, и вот у меня надо папку eth0 переименовать в local, ну и потом
service network restart 🙂
Нужно будет добавить в статью, спасибо))
Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0
у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255)
В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32
gpns: Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0 у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255) В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32
Черт, Вы перевернули все мое сознание. Придется переделывать настройки сетевого интерфейса на компьютере, которые работали уже почти 2 года.
Почему тогда командой ifconfig показывается та маска, которую я установил?
Простым языком! Ясно и понятно! Огромное спасибо!
P.S. Только в листингах ввода команд хорошо бы шрифт сделать такой, где 0 от О визуально отличается.
GydruS: P.S. Только в листингах ввода команд хорошо бы шрифт сделать такой, где 0 от О визуально отличается.
Спасибо, приму к сведенью. Хотя вроде отличие есть, в точке )
спасибо за ваш сайт. мне нравится! все доходчиво и понятно
у меня к вам такой вопрос. если можно подскажите пожалуйста как настроить сеть чтобы работала локалка и DSL соединение одновременно.
не могу понять как это сделать.
andrey: спасибо за ваш сайт. мне нравится! все доходчиво и понятно у меня к вам такой вопрос. если можно подскажите пожалуйста как настроить сеть чтобы работала локалка и DSL соединение одновременно.
Если честно давно не сталкивался с DSL -соединениями. Расскажите по потробнее:
1. Какая локальная сеть? За модемом или на другой сетевой?
соединение самое обычное – городская сеть
компьютер подключен через сетевую карту
выход в интернет подключается через соединение DSL
andrey: соединение самое обычное – городская сеть компьютер подключен через сетевую карту выход в интернет подключается через соединение DSL
По-моему Вам нужно настраивать сам модем. Посмотрите в сторону Dual PPPOE
Я что-то подобное делал на роутере D-Link DIR -320, но на модеме не разу.
спасибо. буду искать!
К словам о DSL через локальную сеть: очень много парился, перерыл кучу манов (у меня Debian Lenny) и чтобы избавить других людей от тех же граблей скажу – pppoeconf помогает не всем, у меня например, инет появлялся на пару секунд и пропадал чудным образом. Конфиги, логи не помогли. Но спустя две недели и нару клочьев вырванных волос, наткнулся на простенькую команду ifconfig ppp0 mtu 1372. Надеюсь комуто это поможет. Выговорился, аж легче стало)))
помогите пожалуйста.
только начинаю осваивать Linux.
стоит на машине Ubuntu 10.10. подключено 2 сетевые карты. по одной виндовая сеть с доменом. во второй воткнут адсл модем с подключением PPPoE. как сделать так, чтоб и в сети работать можно было и в инете?! по отдельности все работает норм, а вместе только виндовая сеть.
виндовая сеть – eth0, модем – eth1
молодец автор!!огромный респект!
а я вот бьюсь…какой Lin выбрать для конторы которая ранее в глаза его не видела….а виндовую сеть суся 12.1 вскрыл за 5 мин))))))))
Я тоже написал подробную заметку про настройка сети, но она больше ориентированная на debian – based дистрибутивы http://www.artcom-ufa.ru/posts/2011/07/20/nastroika-seti-v-linux
Добрый день,у меня в папке etc нет ни папки network,ни папки net,стоит centos 5.7,что делать подскажите
Здравствуйте, такая проблема случилась. К интернету комп подключен через роутер.. Проблема в том, что некоторые сайты не открываются- пишет ошибка преобразования dns .. Что нужно сделать. чтобы все нормально работало?? Заранее спасибо!!
Артем: 2 сетевые карты. по одной виндовая сеть с доменом. во второй воткнут адсл модем с подключением PPPoE. как сделать так, чтоб и в сети работать можно было и в инете?!
например прописать правила маршрутизации на машине таким образом чтобы пакеты предназначенные для локальной сети отправлялись в етн0 , а все остальные в етн1
но эта тема выходит за рамки данной статьи.
Вполне годная статья. Спасибо огромное
я всего 3-й мес на linux но уже штук 17 перепробовал но никто не хочет dsl подкл\сразу обрывает локалку\ оставил zorin и вот поставил ALT -работаю как домашние а для сети ХРюша\7 -снес как и все остальные\.если-бы сеть на ALT то до конца жизни… я всего лет 7 как освоил комп – стар ужо.
Источник