Ubuntu перешела на Netplan для конфигурации сетевых интерфейсов. Netplan основан на системе конфигурации на базе YAML, что делает процесс настройки очень простым. Netplan заменил старый файл конфигурации /etc/network/interfaces, который мы использовали для настройки сетевых интерфейсов в Ubuntu.
Конфигурация сети с помощью Netplan
Вы можете найти новые файлы конфигурации в /etc/netplan/*.yaml. Сервер Ubuntu генерирует конфигурационный файл Netplan для system-networkd под названием 01-netcfg.yaml, а рабочий стол Ubuntu генерирует конфигурационный файл Netplan для Network-Manager под названием 01-network-manager-all.yaml.
Если у вас несколько интерфейсов, используйте 02-network-manager-all.yaml для второго интерфейса. Netplan применяет конфигурацию в числовом порядке. Это означает, что 01 файл будет применен раньше 02 файла.
Теперь перейдем к конфигурации сети. Чтобы настроить статическую или динамическую IP-адресацию в Ubuntu, выполните следующие шаги:
Ubuntu настройка сети
Сначала найдите имя активного сетевого интерфейса, который вы хотите настроить. Для этого выполните следующую команду:
ip a
Файл конфигурации Netplan по умолчанию находится в каталоге /etc/netplan. Вы можете найти его с помощью следующей команды:
ls /etc/netplan/
Чтобы просмотреть содержимое файла сетевой конфигурации Netplan, выполните следующую команду:
cat /etc/netplan/*.yaml
Теперь вам нужно открыть файл конфигурации в любом редакторе:
nano /etc/netplan/*.yaml
Обновите файл конфигурации в соответствии с вашими сетевыми потребностями. Для статической IP-адресации добавьте IP-адрес, шлюз, информацию DNS, а для динамической IP-адресации нет необходимости добавлять эту информацию, так как она будет получена от DHCP-сервера. Для редактирования файла конфигурации используйте следующий синтаксис.
network: Version: 2 Renderer: NetworkManager/ networkd ethernets: DEVICE_NAME: Dhcp4: yes/no Addresses: [IP_ADDRESS/NETMASK] Gateway: GATEWAY Nameservers: Addresses: [NAMESERVER_1, NAMESERVER_2]
- DEVICE_NAME — Имя интерфейса.
- Dhcp4 — да или нет в зависимости от динамической или статической IP-адресации
- Addresses — IP-адрес устройства в префиксной нотации. Не используйте маску сети.
- Gateway — IP-адрес шлюза для подключения к внешней сети.
- Nameservers — Адреса серверов имен DNS.
Обратите внимание, что файлы YAML довольно строго относятся к отступам. Используйте для отступов пробелы, а не табуляцию. В противном случае вы столкнетесь с ошибкой.
Настройка статического IP-адреса в Ubuntu
Чтобы вручную настроить IP-адрес, используйте приведенный выше синтаксис конфигурационного файла и добавьте IP-адрес, шлюз и информацию о DNS-сервере. Здесь вы можете увидеть пример конфигурации для статической IP-адресации:
network: version: 2 renderer: NetworkManager ethernets: ens33: dhcp4: false addresses: — 192.168.1.25/24 nameservers: addresses: — 192.168.1.1 gateway4: 192.168.1.1
Так же возможен вариант с перечислением, визуально он проще воспринимается:
Настройка сети в Ubuntu 20.04
network: version: 2 renderer: NetworkManager ethernets: ens33: dhcp4: false addresses: [192.168.122.250/24] nameservers: addresses: [192.168.122.1,192.168.122.2] gateway4: 192.168.122.1
Настройка динамического IP-адреса в Ubuntu
Чтобы получить IP-адресацию от DHCP-сервера, используйте тот же вышеприведенный синтаксис конфигурационного файла. Но не добавляйте IP-адрес, шлюз и информацию о DNS-сервере.
Здесь вы можете увидеть пример конфигурации для динамической IP-адресации:
network: version: 2 renderer: NetworkManager ethernets: ens33: dhcp4: true
После завершения настройки статического или динамического IP, сохраните и выйдите из файла конфигурации.
Тестирование конфигурации
Прежде чем применять какие-либо изменения, мы протестируем конфигурационный файл. Выполните следующую команду от имени sudo для тестирования конфигурации:
netplan try
Если проблем нет, то будет выдано сообщение о принятии конфигурации. Если конфигурационный файл не пройдет проверку, он будет возвращен к предыдущей рабочей конфигурации
Применение конфигурации
Теперь примените новые конфигурации, выполнив следующую команду от имени sudo:
netplan apply
Если вы видите какую-либо ошибку, попробуйте выполнить отладку, чтобы выяснить проблему. Чтобы запустить отладку, выполните следующую команду от имени sudo:
netplan -d apply
Перезапуск сетевой службы
После успешного применения всех конфигураций перезапустите службу Network-Manager, выполнив следующую команду:
systemctl restart network-manager
Если вы используете Ubuntu Server, вместо этого выполните следующую команду:
systemctl restart system-networkd
Теперь, чтобы проверить, успешно ли применены новые конфигурации, выполните следующую команду для проверки IP-адреса:
ip a
Независимо от того, есть ли у вас сервер Ubuntu или настольный компьютер, вы можете просто использовать Netplan для настройки статической или динамической IP-адресации без необходимости сложной конфигурации.
Похожие записи:
- Как установить приложение Viber Messenger в Ubuntu 20.04 LTS
- Ubuntu Установка драйвера Nvidia
- Удаление программ из системы Ubuntu
- Установка Wine в Ubuntu 20.04 LTS
- Как установить и использовать язык программирования R в Ubuntu
- Резервное копирование системы с помощью backup-manager в Linux
- Linux: Измерение производительности дисков (IOPS)
Источник: g-soft.info
Как настроить сеть в Ubuntu 18.04
В статье мы расскажем, как выполняется настройка сети в операционной системе Ubuntu Server 18.04 при помощи Netplan.
Что такое Netplan
Netplan — это утилита для конфигурации сети. Настройка сети через Netplan выполняется в конфигурационном файле, который находится в папке /etc/netplan/. Это текстовый файл с расширением .yaml.
YAML — это формат данных с простым синтаксисом. YAML использует систему отступов, в качестве которых выступают пробелы. При создании и редактировании конфигурационного файла такого формата легко ошибиться — указать неверное количество пробелов. Из-за этого возникнет ошибка “expected mapping” и файл будет невозможно прочитать.
Чтобы найти строку, в которой была допущена ошибка, можно использовать онлайн-валидатор YAML:
В более ранних версиях Ubuntu для настройки сети использовался пакет ifupdown с конфигурационным файлом /etc/network/interfaces. Начиная с Ubuntu версии 18.04 по умолчанию для настройки используется утилита Netplan.
Настроить сеть Ubuntu 18.04 можно при помощи графического интерфейса, однако он не всегда бывает доступен. Поэтому рассмотрим, как выполняется настройка сети в консоли.
Как открыть конфигурационный файл Netplan
1. Сначала узнаем название конфигурационного файла. Для этого через консоль введите команду:
ls -la /etc/netplan/
Команда выведет на экран список файлов, которые находятся в директории /etc/netplan/. В директории будет один файл, который и является конфигурационным:
2. Откройте этот файл при помощи команды:
sudo nano /etc/netplan/config.yaml
Вместо config введите имя файла конфигурации. На экране появится текстовый редактор:
Включить сетевой интерфейс
Примеры настройки конфигурационного файла Netplan
Содержимое файла в дистрибутиве Ubuntu 18.04 по умолчанию:
network:
version: 2
renderer: NetworkManager
Рассмотрим, что означают эти параметры:
- network — начало конфигурационного блока,
- version: 2 — версия YAML,
- renderer: NetworkManager — программа с графическим интерфейсом, которой передаётся управление сетью. Кроме NetworkManager существует systemd-networkd, которая выполняет те же функции, но не имеет графической оболочки.
Такая конфигурация Netplan позволяет передать управление сетью программе NetworkManager.
Обратите внимание: вложенные параметры (2 и 3 строки) имеют отступы в 2 пробела. Лишний пробел приведёт к ошибке.
Как настроить динамический адрес
Разберём другой пример, в котором устройство будет получать IP-адрес автоматически через DHCP:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: true
- renderer: networkd — демон, управляющий сетью вместо NetworkManager,
- ethernets: — указывает, что конфигурируем интерфейс Ethernet,
- enp0s3: — название конфигурируемого адаптера,
- dhcp4: true — используемый DHCP-протокол для получения IP-адреса.
Обратите внимание! Название адаптера сети (в примере это enp0s3) на вашем веб-сервере или компьютере может быть другим. Чтобы узнать его, введите:
Используйте название, которое будет указано в выводе команды:
Ubuntu сетевые интерфейсы
Как настроить DNS
Чтобы вручную указать DNS-серверы, пропишите:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: true
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
- nameservers: — начало блока с настройками DNS,
- addresses: [8.8.8.8, 8.8.4.4] — IP-адрес DNS-серверов.
Как применить настройки Netplan
Общий вид команды netplan:
netplan опции команда
Netplan позволяет проверить корректность конфигурации перед применением. Для этого введите команду:
sudo netplan try
Если с новой конфигурацией в Ubuntu сеть перестанет работать, через 2 минуты будут восстановлены предыдущие настройки и сетевые подключения восстановятся:
Чтобы применить настройки без проверки, введите команду:
sudo netplan apply
Чтобы увидеть подробную информацию об ошибках, запустите Netplan в режиме отладки:
sudo netplan -d generate
Возможные ошибки
При запуске команды Netplan вы можете столкнуться с ошибкой «netplan: fatal error: cannot bind to port 2983, is another daemon running?, exiting.”. Эта ошибка связана с тем, что на вашем компьютере или VDS не установлен пакет netplan.io. Чтобы исправить проблему, установите его при помощи команды:
sudo apt install netplan.io
Затем снова выполните команду, после которой возникала ошибка.
В Ubuntu сетевые настройки можно выполнить несколькими способами. В этой инструкции мы показали, как сделать базовую настройку сети.
Популярные статьи
- Как указать (изменить) DNS-серверы для домена
- Я зарегистрировал домен, что дальше
- Как добавить запись типа A, AAAA, CNAME, MX, TXT, SRV для своего домена
- Что такое редирект: виды и возможности настройки
- Как создать почту со своим доменом
Источник: 2domains.ru
netplan в Ubuntu
Ниже приведен набор примеров конфигураций netplan для распространенных сценариев.
Конфигурация
Чтобы настроить netplan нужно сохранить .yaml файл с конфигурацией в директорию
Например: /etc/netplan/config.yaml
А затем выполнить
sudo netplan apply
Эта команда анализирует и применяет конфигурацию к системе.
Конфигурация, записанная на диск в /etc/netplan/, будет сохраняться между перезагрузками.
Изучить конфигурацию
Чтобы изучить текущую конфиграцию выполните
Я установил Ubuntu 18.04 на VirtualBox и файл с конфигурацией назывется 00-installer-config.yaml
# This is the network config written by ‘subiquity’ network: ethernets: enp0s3: dhcp4: true enp0s8: dhcp4: true version: 2
DHCP
network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: true
Статический IP
Чтобы установить статический IP воспользуйтесь ключевым словом addresses после которого можно указать список адресов (IPv4 или IPv6), и префикс подсети (например /24).
Также можно укзать данные о DNS . Шлюз можно задать через default route:
network: version: 2 renderer: networkd ethernets: enp3s0: addresses: — 10.10.10.2/24 nameservers: search: [mydomain, otherdomain] addresses: [10.10.10.1, 1.1.1.1] routes: — to: default via: 10.10.10.1
Например, вы установили Ubuntu на VirtualBox и выполнив ip a получили следюущий результат
… 3: enp0s8:
mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:cd:f9:da brd ff:ff:ff:ff:ff:ff inet 192.168.56.184/24 brd 192.168.56.255 scope global dynamic noprefixroute enp0s8 valid_lft 363sec preferred_lft 363sec inet6 fe80::fa6c:493d:b485:d778/64 scope link noprefixroute valid_lft forever preferred_lft forever …
Специально для простоты выбран интерфейс Host-only его обычно можно узнать по адресам вида 192.168.56.XXX
Допустим, 192.168.56.184/24 вам нужно заменить на 192.168.56.200/24
Изучить файл с текущей конфигурацией можно выполнив
sudo vi /etc/netplan/01-network-manager-all.yaml
По умолчанию никаких настроек в файле не прописано
# Let NetworkManager manage all devices on this system network : version : 2 renderer : NetworkManager ~
Нужно внести в файл изменения
# Let NetworkManager manage all devices on this system network : version : 2 renderer : NetworkManager ethernets : enp0s8 : addresses : — 192.168.56.200/24 nameservers : addresses : [ 8.8.8.8, 1.1.1.1 ] routes : — to : default via : 192.168.56.1
Connecting multiple interfaces with DHCP
Many systems now include more than one network interface. Servers will commonly need to connect to multiple networks, and may require that traffic to the Internet goes through a specific interface despite all of them providing a valid gateway.
One can achieve the exact routing desired over DHCP by specifying a metric for the routes retrieved over DHCP, which will ensure some routes are preferred over others. In this example, ‘enred’ is preferred over ‘engreen’, as it has a lower route metric:
network: version: 2 ethernets: enred: dhcp4: yes dhcp4-overrides: route-metric: 100 engreen: dhcp4: yes dhcp4-overrides: route-metric: 200
Connecting to an open wireless network
Netplan easily supports connecting to an open wireless network (one that is not secured by a password), only requiring that the access point is defined:
network: version: 2 wifis: wl0: access-points: opennetwork: <> dhcp4: yes
Connecting to a WPA Personal wireless network
Wireless devices use the ‘wifis’ key and share the same configuration options with wired ethernet devices. The wireless access point name and password should also be specified:
network: version: 2 renderer: networkd wifis: wlp2s0b1: dhcp4: no dhcp6: no addresses: [192.168.0.21/24] nameservers: addresses: [192.168.0.1, 8.8.8.8] access-points: «network_ssid_name»: password: «**********» routes: — to: default via: 192.168.0.1
Connecting to WPA Enterprise wireless networks
It is also common to find wireless networks secured using WPA or WPA2 Enterprise, which requires additional authentication parameters.
For example, if the network is secured using WPA-EAP and TTLS:
Or, if the network is secured using WPA-EAP and TLS:
Many different modes of encryption are supported. See the Netplan reference page.
Using multiple addresses on a single interface
The addresses key can take a list of addresses to assign to an interface:
network: version: 2 renderer: networkd ethernets: enp3s0: addresses: — 10.100.1.38/24 — 10.100.1.39/24 routes: — to: default via: 10.100.1.1
Interface aliases (e.g. eth0:0) are not supported.
Using multiple addresses with multiple gateways
Similar to the example above, interfaces with multiple addresses can be configured with multiple gateways.
network: version: 2 renderer: networkd ethernets: enp3s0: addresses: — 10.0.0.10/24 — 11.0.0.11/24 routes: — to: default via: 10.0.0.1 metric: 200 — to: default via: 11.0.0.1 metric: 300 We configure individual routes to default (or 0.0.0.0/0) using the address of the gateway for the subnet. The metric value should be adjusted so the routing happens as expected. DHCP can be used to receive one of the IP addresses for the interface. In this case, the default route for that address will be automatically configured with a metric value of 100. Using Network Manager as a renderer Netplan supports both networkd and Network Manager as backends.
You can specify which network backend should be used to configure particular devices by using the renderer key. You can also delegate all configuration of the network to Network Manager itself by specifying only the renderer key:
network: version: 2 renderer: NetworkManager Configuring interface bonding Bonding is configured by declaring a bond interface with a list of physical interfaces and a bonding mode. Below is an example of an active-backup bond that uses DHCP to obtain an address:
network: version: 2 renderer: networkd bonds: bond0: dhcp4: yes interfaces: — enp3s0 — enp4s0 parameters: mode: active-backup primary: enp3s0 Below is an example of a system acting as a router with various bonded interfaces and different types. Note the ‘optional: true’ key declarations that allow booting to occur without waiting for those interfaces to activate fully.
network: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: no enp2s0: dhcp4: no enp3s0: dhcp4: no optional: true enp4s0: dhcp4: no optional: true enp5s0: dhcp4: no optional: true enp6s0: dhcp4: no optional: true bonds: bond-lan: interfaces: [enp2s0, enp3s0] addresses: [192.168.93.2/24] parameters: mode: 802.3ad mii-monitor-interval: 1 bond-wan: interfaces: [enp1s0, enp4s0] addresses: [192.168.1.252/24] nameservers: search: [local] addresses: [8.8.8.8, 8.8.4.4] parameters: mode: active-backup mii-monitor-interval: 1 gratuitious-arp: 5 routes: — to: default via: 192.168.1.1 bond-conntrack: interfaces: [enp5s0, enp6s0] addresses: [192.168.254.2/24] parameters: mode: balance-rr mii-monitor-interval: 1 Configuring network bridges To create a very simple bridge consisting of a single device that uses DHCP, write:
network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: no bridges: br0: dhcp4: yes interfaces: — enp3s0 A more complex example, to get libvirtd to use a specific bridge with a tagged vlan, while continuing to provide an untagged interface as well would involve:
network: version: 2 renderer: networkd ethernets: enp0s25: dhcp4: true bridges: br0: addresses: [ 10.3.99.25/24 ] interfaces: [ vlan15 ] vlans: vlan15: accept-ra: no id: 15 link: enp0s25 Then libvirtd would be configured to use this bridge by adding the following content to a new XML file under /etc/libvirtd/qemu/networks/. The name of the bridge in the tag as well as in need to match the name of the bridge device configured using netplan:
br0 Attaching VLANs to network interfaces To configure multiple VLANs with renamed interfaces:
network: version: 2 renderer: networkd ethernets: mainif: match: macaddress: «de:ad:be:ef:ca:fe» set-name: mainif addresses: [ «10.3.0.5/23» ] nameservers: addresses: [ «8.8.8.8», «8.8.4.4» ] search: [ example.com ] routes: — to: default via: 10.3.0.1 vlans: vlan15: id: 15 link: mainif addresses: [ «10.3.99.5/24» ] vlan10: id: 10 link: mainif addresses: [ «10.3.98.5/24» ] nameservers: addresses: [ «127.0.0.1» ] search: [ domain1.example.com, domain2.example.com ] Reaching a directly connected gateway This allows setting up a default route, or any route, using the “on-link” keyword where the gateway is an IP address that is directly connected to the network even if the address does not match the subnet configured on the interface.
network: version: 2 renderer: networkd ethernets: ens3: addresses: [ «10.10.10.1/24» ] routes: — to: default # or 0.0.0.0/0 via: 9.9.9.9 on-link: true For IPv6 the config would be very similar, with the notable difference being an additional scope: link host route to the router’s address required:
network: version: 2 renderer: networkd ethernets: ens3: addresses: [ «2001:cafe:face:beef::dead:dead/64» ] routes: — to: «2001:cafe:face::1/128» scope: link — to: default # or «::/0» via: «2001:cafe:face::1» on-link: true Configuring source routing Route tables can be added to particular interfaces to allow routing between two networks: In the example below, ens3 is on the 192.168.3.0/24 network and ens5 is on the 192.168.5.0/24 network. This enables clients on either network to connect to the other and allow the response to come from the correct interface. Furthermore, the default route is still assigned to ens5 allowing any other traffic to go through it.
network: version: 2 renderer: networkd ethernets: ens3: addresses: — 192.168.3.30/24 dhcp4: no routes: — to: 192.168.3.0/24 via: 192.168.3.1 table: 101 routing-policy: — from: 192.168.3.0/24 table: 101 ens5: addresses: — 192.168.5.24/24 dhcp4: no routes: — to: default via: 192.168.5.1 — to: 192.168.5.0/24 via: 192.168.5.1 table: 102 routing-policy: — from: 192.168.5.0/24 table: 102 Configuring a loopback interface Networkd does not allow creating new loopback devices, but a user can add new addresses to the standard loopback interface, lo, in order to have it considered a valid address on the machine as well as for custom routing:
network: version: 2 renderer: networkd ethernets: lo: match: name: lo addresses: [ 7.7.7.7/32 ] Integration with a Windows DHCP Server For networks where DHCP is provided by a Windows Server using the dhcp-identifier key allows for interoperability:
network: version: 2 ethernets: enp3s0: dhcp4: yes dhcp-identifier: mac Connecting an IP tunnel Tunnels allow an administrator to extend networks across the Internet by configuring two endpoints that will connect a special tunnel interface and do the routing required. Netplan supports SIT, GRE, IP-in-IP (ipip, ipip6, ip6ip6), IP6GRE, VTI and VTI6 tunnels. A common use of tunnels is to enable IPv6 connectivity on networks that only support IPv4. The example below show how such a tunnel might be configured. Here, 1.1.1.1 is the client’s own IP address; 2.2.2.2 is the remote server’s IPv4 address, “2001:dead:beef::2/64” is the client’s IPv6 address as defined by the tunnel, and “2001:dead:beef::1” is the remote server’s IPv6 address. Finally, “2001:cafe:face::1/64” is an address for the client within the routed IPv6 prefix:
network: version: 2 ethernets: eth0: addresses: — 1.1.1.1/24 — «2001:cafe:face::1/64» routes: — to: default via: 1.1.1.254 tunnels: he-ipv6: mode: sit remote: 2.2.2.2 local: 1.1.1.1 addresses: — «2001:dead:beef::2/64» routes: — to: default via: «2001:dead:beef::1» Configuring SR-IOV Virtual Functions For SR-IOV network cards, it is possible to dynamically allocate Virtual Function interfaces for every configured Physical Function. In netplan, a VF is defined by having a link: property pointing to the parent PF.
network: version: 2 ethernets: eno1: mtu: 9000 enp1s16f1: link: eno1 addresses : [ «10.15.98.25/24» ] vf1: match: name: enp1s16f[2-3] link: eno1 addresses : [ «10.15.99.25/24» ]
Источник: urn.su