ШПАРГАЛКИ
CI/CD
KUBERNETES
  • DOCKERFILE
  • DOCKER-COMPOSE
  • JENKINSFILE
  • JENKINS-PIPELINE
  • GITLAB CI/CD
  • GROOVIE
  • INSTALL
  • PODS
  • INGRESS

Настройка сети на Ubuntu

После перехода с древней Ubuntu на последний билд 20.04, после установки, встал вопрос - "Как тут сеть редактировать?". Оказалось все просто. Тут я оставлю себе напоминалку о том, как это сделать.

Настраивать сеть будем c помощью утилиты Netplan. [Netplan - впервые появилась в Ubuntu 17.10 для облегчения управления сетевыми настройками. Netplan хранит параметры сетевых интерфейсов в формате YAML, конфигурация в формате YAML в свою очередь поддерживается  сетевыми рендерами NetworkManager и systemd-networkd.

Для того чтобы посмотреть все сетевые интерфейсы введите команду:

sudo ip a

Выдаст что-то на подобии этого:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 54:80:28:4f:db:46 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global enp2s0f0
       valid_lft forever preferred_lft forever
    inet6 fe80::5680:28ff:fe4f:db46/64 scope link
       valid_lft forever preferred_lft forever
3: enp2s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 54:80:28:4f:db:47 brd ff:ff:ff:ff:ff:ff

Видим интерфейс "enp2s0f0" с IP-адресом - 192.168.1.2. Если у вас другое название интерфейса, то в конфигурациях не забудьте поменять его.

Прописывать конфигурацию интерфейсов будем в файле /etc/netplan/50-cloud-init.yaml, с помощью редактора nano, я так понимаю файл может называться по разному у разных пользователей [К примеру 01-netcfg.yaml], но сразу же после установки файл с расширением .yaml в этой папке один. Поэтому для того чтобы приступить к редактированию файла лучше воспользоваться универсальной командой.

sudo nano /etc/netplan/*.yaml

Самые распространенные параметры в файле /etc/netplan/*.yaml

Для начала разберемся какие самые распространенные параметры в этом файле могут быть.

network:
renderer: networkd - Выбор сетевого рендера. Выбран networkd
ethernets: - Блок с настройками сетевых интерфейсов.
enp2s0f0: - Имя первого сетевого интерфейса.
addresses: [192.168.1.2/24] - Статический IP-адрес сетевого интерфейса/Маска сети. На данный момент указан IPv4, можно также через запятую указать  IPv6(пишется в кавычках) - [192.168.3.13/24,“2001:1::1/64”] 
gateway4: 192.168.1.1 - Указание основного шлюза для IPv4.
gateway6: "2001:4::1"- Указание основного шлюза для IPv6.(пишется в кавычках)
dhcp4: yes/no - или true/false - включить/выключить получение сетевых настроек по DHCP для IPv4.
dhcp6: yes/no - или true/false - включить/выключить получение сетевых настроек по DHCP для IPv6.
macaddress: 52.54.00.6d.3c.59 - указание MAC-адреса.
nameservers:  - Блок с настройками DNS.
addresses: [8.8.8.8,8.8.4.4] - IP-адреса DNS-серверов, можно несколько через запятую.
ens2s0f1: - Имя второго сетевого интерфейса.
addresses: [10.1.0.5/24]
version: 2

Пример конфига:

network:
    version: 2
    ethernets:
        enp2s0f0:
            addresses:
            - 192.168.1.2/24
            dhcp4: false
            gateway4: 192.168.1.1
            nameservers:
                addresses:
                - 192.168.1.254
                - 192.168.1.1
                - 8.8.8.8
                search:
                - local
        enp2s0f1:
            addresses:
            - 192.168.1.3/24
            dhcp4: false
            gateway4: 192.168.1.254
            nameservers:
                addresses:
                - 192.168.0.1
                - 192.168.0.3
                - 8.8.8.8
                search:
                - workdomain

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

sudo netplan try

Ваши изменения будут приняты на 150 секунд. За это время их можно будет проверить. Или изменить. В общем - выдаст следующий текст:

Warning: Stopping systemd-networkd.service, but it can still be activated by:
systemd-networkd.socket
Do you want to keep these settings?

Press ENTER before the timeout to accept the new configuration

Changes will revert in   150 seconds

Если не нажать Enter, то все изменения сбросятся автоматом через некоторое время.

Если с настройками все в порядке, то вводим следующую комманду, для сохранения изменений.

sudo netplan apply

И все. Настройка завершена.

PS: Нашёл на просторах сети пример конфигурации, которая использует большинство доступных функций:

network:
 version: 2
 # if specified, can only realistically have that value, as networkd cannot
 # render wifi/3G.
 renderer: NetworkManager
 ethernets:
  # opaque ID for physical interfaces, only referred to by other stanzas
  wlp3s0:
    match:
     macaddress: 00:11:22:33:44:55
    wakeonlan: true
    dhcp4: true
    addresses:
     - 192.168.14.2/24
     - 192.168.14.3/24
     - "2001:1::1/64"
    gateway4: 192.168.14.1
    gateway6: "2001:1::2"
    nameservers:
     search: [foo.local, bar.local]
     addresses: [8.8.8.8]
    routes:
     - to: 0.0.0.0/0
      via: 11.0.0.1
      table: 70
      on-link: true
      metric: 3
    routing-policy:
     - to: 10.0.0.0/8
      from: 192.168.14.2/24
      table: 70
      priority: 100
     - to: 20.0.0.0/8
      from: 192.168.14.3/24
      table: 70
      priority: 50
    # only networkd can render on-link routes and routing policies
    renderer: networkd
   lom:
     match:
      driver: ixgbe
     # you are responsible for setting tight enough match rules
     # that only match one device if you use set-name
     set-name: lom1
     dhcp6: true
   switchports:
     # all cards on second PCI bus unconfigured by
     # themselves, will be added to br0 below
     # note: globbing is not supported by NetworkManager
     match:
      name: enp2*
     mtu: 1280
 wifis:
   all-wlans:
     # useful on a system where you know there is
     # only ever going to be one device
     match: {}
     access-points:
      "Joe's home":
       # mode defaults to "infrastructure" (client)
       password: "s3kr1t"
   # this creates an AP on wlp1s0 using hostapd
   # no match rules, thus the ID is the interface name
   wlp1s0:
    access-points:
     "guest":
      mode: ap
      # no WPA config implies default of open
 bridges:
  # the key name is the name for virtual (created) interfaces
  # no match: and set-name: allowed
  br0:
   # IDs of the components; switchports expands into multiple interfaces
   interfaces: [wlp1s0, switchports]
   dhcp4: true

Подробнее об использовании Netplan здесь.

Оцените статью

Еще никто не оставил комментарий. Будьте первым!