Архив метки: Network

Настройка резервного канала в MikroTik с уведомлением в Telegram

К подключению резервного интернет канала дома каждый приходит по своим причинам, но некоторые устройства в умном доме требуют постоянного подключения к сети интернет, оперативность получения важных уведомлений напрямую зависит от стабильности подключения к тому же, как же мы узнаем, что интернет пропал, не имея резервного канала 🙂




Какой тип подключения выбрать в качестве резервного зависит только от желания, финансовой и технической возможности. Требования к скорости не большие и зависит от того, каким устройствам необходим постоянный доступ к сети. Если не использовать постоянный доступ для торрент обмена, то в качестве резервного канала можно использовать USB LTE модем с лимитированным трафиком.




Входные данные




Имеется MikroTik RB4011 с настройками:




  • Основной интернет канал 100МБит, внешний IP, интерфейс ether1
  • Резервный интернет канал 10МБит, интерфейс ether2
  • OpenVPN подключение к внешней VPS, интерфейс vpn-ovpn
  • Туннель 6to4 для IPv6 трафика, v6to4-tunnel




Необходимо при разрыве основного канала пустить весь трафик по резервному, переподключить VPN, погасить туннель 6to4 и прислать уведомление в телеграмм.




Настройка




Для удобства переименовываем названия портов ether1 и ether2 в ether1-wan-main и ether2-wan-reserv




/interface ethernet set ether1 name="ether1-wan-main"
/interface ethernet set ether2 name="ether2-wan-reserv"




Если IP адреса для основного и/или резервного канала прилетают по DHCP, то в настройках DHCP Сlient’а необходимо для каждого интерфейса выставить параметр Add Default Route — no.







Добавляем маршруты по умолчанию, маршрут основного канала будет иметь дистанцию (distance) 1, резервного 2:




/ip route add dst-address=0.0.0.0/0 gateway=100.99.88.1 distance=1 comment="MAIN_CHAN"

/ip route add dst-address=0.0.0.0/0 gateway=10.9.8.1 distance=2 comment="RESERV_CHAN"




где: gateway=100.99.88.1 — шлюз для основного канала, gateway=10.9.8.1 — шлюз для резервного канала. Неактивный маршрут резервного канала будет выделен синим цветом.







Для мониторинга состояния каналов будет задействована утилита Netwatch (Tools -> Netwatch), в качестве хостов наблюдения будут использованы DNS сервера Яндекс, адрес 77.88.8.8 будет использоваться для проверки работоспособности основного канала, 77.88.8.1 — для резервного.




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




/ip route add dst-address=77.88.8.8 gateway=100.99.88.1 distance=1 comment="Yandex  DNS  -  Check  main  internet  channel"

/ip route add dst-address=77.88.8.1 gateway=10.9.8.1 distance=1 comment="Yandex  DNS  -  Check reserv internet channel"







В Firewall (IP -> Firewall) добавляем запрещающие правила на прохождение пакетов к проверяемым адресам не через свой канал, на случай, если канал отсохнет, то маршрут использующий этот канал станет не активным и будет задействован текущий маршрут по умолчанию. Эти правила необходимо расположить выше правил разрешающих доступ в интернет.




/ip firewall filter add chain=output dst-address=77.88.8.1 out-interface=ether1-wan-main action=reject

/ip firewall filter add chain=output dst-address=77.88.8.8 out-interface=ether2-wan-reserv action=reject







Мониторинг и переключение каналов




Как говорилось выше, в качестве мониторинга будет использоваться утилита Netwatch. Настройка этой утилиты крайне проста, задается хост наблюдения и интервал через какое время необходимо выполнять проверку, при переходе наблюдаемого хоста из состояния Down в состояние Up выполняются скрипты с вкладки UP, при переходе из состояния Up в состояние Down выполняются скрипты с вкладки DOWN.




Для отправки уведомлений в Telegram ботом будет задействована утилита fetch. Как известно боту может быть отправлено сообщение через URL вида https://api.telegram.org/bot[API_KEY]/sendMessage?chat_id=[CHAT_ID]&text=[TEXT]. Подробнее как настроить бота в Telegram описано здесь.




  • [API_KEY] — токен для доступа к HTTP API
  • [CHAT_ID] — ID вашего с ботом чата
  • [TEXT] — отправляемое сообщение




Для проверки основного канала в Netwatch добавляем (Tools -> Netwatch -> +).




Вкладка Host:




  • Host: 77.88.8.8
  • Interval: 00:01:00
  • Timeout: 1000




Вкладка UP:




/ip route enable [find comment="MAIN_CHAN"]
/interface enable v6to4-tunnel
/ip dns cache flush
/interface disable vpn-ovpn
:delay 3s
/interface enable vpn-ovpn
:delay 5s
/tool fetch url="https://api.telegram.org/bot123456789:ABCDEFGHIJKLMNOPQRabcdefghijklmnopq/sendMessage?chat_id=12345678&text=RB4011_Main_channel_is_UP!"
/file remove "sendMessage?chat_id=12345678&text=RB4011_Main_channel_is_UP!";




Вкладка DOWN:




/ip route disable [find comment="MAIN_CHAN"]
/interface disable v6to4-tunnel
/ip dns cache flush
/interface disable vpn-ovpn
:delay 3s
/interface enable vpn-ovpn
:delay 5s
/tool fetch url="https://api.telegram.org/bot123456789:ABCDEFGHIJKLMNOPQRabcdefghijklmnopq/sendMessage?chat_id=12345678&text=RB4011_Main_channel_is_DOWN!"
/file remove "sendMessage?chat_id=12345678&text=RB4011_Main_channel_is_DOWN!";




Каждую минуту происходит проверка хоста с IP адресом 77.88.8.8, как только происходит смена состояния из доступен в недоступен, то начинается обработка скрипта, описанного на вкладке DOWN. Комментарии:




  1. В таблице маршрутизации отключается маршрут с комментарием MAIN_CHAN, это наш основной маршрут с distance=1. Т.к. основной маршрут отключен, то активным становится маршрут с distance=2, у нас он отмечен комментарием RESERV_CHAN, весь трафик пойдет в резервный канал.
  2. Отключается туннель 6to4 т.к. он завязан на внешний IP адрес основного канала.
  3. Сбрасывается DNS cache, т.к. помимо IPv4 трафика используется IPv6 канал и на какие-то ресурсы в кэше будут записи на IPv6 адреса.
  4. Отключается и через 3 секунды включается OpenVPN соединение, перезагрузка сделана на случай более быстрого переключения и избежания подвисаний.
  5. Отправка сообщения в Telegram
  6. После отправки в папке Files создается файл, удаляем его




Аналогичная ситуация происходит на вкладке UP при переходе хоста с IP адресом 77.88.8.8 из состояния Down в состояние Up.




Для проверки резервного канала в Netwatch добавляем (Tools -> Netwatch -> +).




Вкладка Host:




  • Host: 77.88.8.1
  • Interval: 00:01:00
  • Timeout: 1000




Вкладка UP:




/ip route enable [find comment="RESERV_CHAN"]
/ip dns cache flush
/interface disable vpn-ovpn
:delay 3s
/interface enable vpn-ovpn
:delay 5s
/tool fetch url="https://api.telegram.org/bot123456789:ABCDEFGHIJKLMNOPQRabcdefghijklmnopq/sendMessage?chat_id=12345678&text=RB4011_Reserv_channel_is_UP!"
/file remove "sendMessage?chat_id=12345678&text=RB4011_Reserv_channel_is_UP!";




Вкладка DOWN:




/ip route disable [find comment="RESERV_CHAN"]
/ip dns cache flush
/interface disable vpn-ovpn
:delay 3s
/interface enable vpn-ovpn
:delay 5s
/tool fetch url="https://api.telegram.org/botbot123456789:ABCDEFGHIJKLMNOPQRabcdefghijklmnopq/sendMessage?chat_id=12345678&text=RB4011_Reserv_channel_is_DOWN!"
/file remove "sendMessage?chat_id=12345678&text=RB4011_Reserv_channel_is_DOWN!";




Действия в случае неполадок с резервным каналом аналогичные, как и для основного, не затрагивается только 6to4 туннель.




Источник: https://stupidhouse.info/node/18/



2021-03-07T12:46:36
Network

Использование VLAN между двумя марутизаторами MikroTik

В моей домашней сети все устройства, относящиеся к умному дому отселены в отдельную сеть, это не только шлюзы и лампы Xiaomi, а также телевизор, медиа проигрыватель, ресивер, различные Wi-Fi реле и розетки, и, конечно сервер Home Assistant. Это повышает безопасность, устройства локальной сети, кроме избранных, не будут иметь доступ к ресурсам умного дома и соответственно вероятность того, что кто-то случайно или специально выкрутит громкость ресивера на максимум со своего телефона не велика, а беря в руки пульт или прикасаясь к ручке громкости можно получить в лоб этим самым пультом.




Собственно, есть два устройства MikroTik, RB4011 и RB962, оба маршрутизаторы, первый работает как шлюз для доступа в интернет и switch, второй как switch и Wi-Fi точка доступа. В устройствах собрано по два бриджа, для домашней локальной сети и сети умного дома, Wi-Fi точка доступа домашней сети работает в диапазонах 2.4G и 5G, Wi-Fi точка для подключения устройств УД только в 2.4G. Устройства находятся в разных помещениях квартиры и соединены проводом. Что бы не тянуть второй провод и обеспечения передачи трафика обоих сетей между устройствами будут использоваться VLAN’ы, питание на второе устройство будет подаваться по этому же проводу посредствам PoE.







Наверно здесь должно быть описание что такое VLAN’ы, для чего они нужны и как это работает, но этого не будет, считаем, что читатель уже знает, что это такое. Единственное замечание, это то, что описанный ниже способ, является программной реализацией обработки VLAN и вся нагрузка ложится на ЦП.




Настройка первого роутера




Устройство RB4011 имеет десять ethernet портов плюс порт SFP-SFP+. Порт SFP мы рассматривать не будем, в итоге мы должны будем получить следующую конфигурацию:




  • Порт ether1 — интернет (WAN порт), считаем, что интернет на устройстве уже настроен
  • Bridge 18, IP адрес 192.168.18.1, ethernet порты 6 — 9, vlan18 untagged — сеть умного дома
  • Bridge 22, IP адрес 192.168.22.1, ethernet порты 2 — 5, vlan22 untagged — домашняя локальная сеть
  • Порт ether10 — trunk порт на второе устройство, vlan18 tagged, vlan22 tagged




Переименовываем порт ether10 в ether10-trunk, что бы было понятнее:




/interface ethernet set ether10 name="ether10-trunk"




Создаем vlan18 и vlan22 с соответствующими VLAN ID, оба вешаем на порт ether10-trunk, трафик на этом порту будет Tagged.




/interface vlan add name="vlan18" vlan-id=18 interface=ether10-trunk
/interface vlan add name="vlan22" vlan-id=22 interface=ether10-trunk




Создаем бриджи для двух сетей и назначаем им адреса, добавляем порты и VLAN’ы в соответствующие бриджи, трафик на портах бриджа будет Untagged.




/interface bridge add name="bridge18"
/interface bridge add name="bridge22"

/ip address add address=192.168.18.1 interface=bridge18
/ip address add address=192.168.22.1 interface=bridge22

/interface bridge port add bridge=bridge18 interface=ether6
/interface bridge port add bridge=bridge18 interface=ether7
/interface bridge port add bridge=bridge18 interface=ether8
/interface bridge port add bridge=bridge18 interface=ether9
/interface bridge port add bridge=bridge18 interface=vlan18

/interface bridge port add bridge=bridge22 interface=ether2
/interface bridge port add bridge=bridge22 interface=ether3
/interface bridge port add bridge=bridge22 interface=ether4
/interface bridge port add bridge=bridge22 interface=ether5
/interface bridge port add bridge=bridge22 interface=vlan22




Настройка второго роутера




Устройство RB962 имеет пять ethernet портов плюс порт SFP, два WLAN интерфейса, на wlan1 работает 2.4G, wlan2 на 5G, оба задействованы для локальной домашней сети, для сети УД создан дополнительный виртуальный WLAN интерфейс wlan-smarthome работающий на 2.4G. Порт SFP мы, как и ранее, рассматривать не будем, но по необходимости его можно задействовать в своих нуждах. В конечном итоге конфигурация должна быть следующей:




  • Порт ether1 — trunk порт на первое устройство, vlan18 tagged, vlan22 tagged
  • Bridge 18, IP адрес 192.168.18.2, ethernet порты 2 — 5, виртуальный интерфейс wlan 2.4G, vlan18 untagged — сеть умного дома
  • Bridge 22, IP адрес 192.168.22.2, основные wlan интерфейсы 2.4G и 5G, vlan22 untagged — домашняя локальная сеть




Переименовываем порт ether1 в ether1-trunk, что бы было понятнее:




/interface ethernet set ether1 name="ether1-trunk"




Создаем vlan18 и vlan22 с соответствующими VLAN ID, оба вешаем на порт ether1-trunk, трафик на этом порту будет Tagged.




/interface vlan add name="vlan18" vlan-id=18 interface=ether1-trunk
/interface vlan add name="vlan22" vlan-id=22 interface=ether1-trunk




Создаем бриджи для двух сетей и назначаем им адреса, добавляем порты и VLAN’ы в соответствующие бриджи, трафик на портах бриджа будет Untagged.




/interface bridge add name="bridge18"
/interface bridge add name="bridge22"

/ip address add address=192.168.18.2 interface=bridge18
/ip address add address=192.168.22.2 interface=bridge22

/interface bridge port add bridge=bridge18 interface=ether2
/interface bridge port add bridge=bridge18 interface=ether3
/interface bridge port add bridge=bridge18 interface=ether4
/interface bridge port add bridge=bridge18 interface=ether5
/interface bridge port add bridge=bridge18 interface=wlan-smarthome
/interface bridge port add bridge=bridge18 interface=vlan18

/interface bridge port add bridge=bridge22 interface=wlan1
/interface bridge port add bridge=bridge22 interface=wlan2
/interface bridge port add bridge=bridge22 interface=vlan22




Теперь весь трафик, исходящий с устройства подключенного к RB962 направленный на устройство, подключенное к RB4011 сначала попадает в бридж, далее в порт ether1-trunk, тегируется соответствующим VLAN ID, попадает в порт ether10-trunk на RB4011, снимается тег VLAN ID, попадает в соответствующий бридж и затем в устройство назначения.




Настройка Firewall описана не будет, т.к. это уже материал для отдельной статьи.




Источник: https://stupidhouse.info/node/15



2021-03-07T01:25:37
Network

Скрипт BASH проверяющий доступность сайта/ip-адреса.

Сегодня в статье разберем пример написания скрипта для проверки доступности ресурса при помощи BASH в Linux. Может кому то будет полезен :).






И так поехали:




Скрипт доступности ресурса




  1. Создадим текстовый файл ping_test.sh со следующим содержанием:




sudo nano ~/ping_test.sh




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1") # тут либо ip, либо FQDN вашего домена
for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                echo "$result"
            done
        else
             echo "$g is up"
        fi
done




Скрипт будет проверять доступность ресурса при помощи команды ping до тех пор пока данный ресурс не выйдет на связь. Для автоматизации давайте запишем задание в crontab. Задание будет срабатывать при перезагрузке системы.




@reboot /bin/bash /sbin/ping_test.sh




Также если вам необходимо чтобы еще отправлялось уведомление на почту, то скрипт примет такой вид:




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1")
for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                #отправим уведомление на почту
                sendmail -f "кому@yandex.ru" -t "от_кого@yandex.ru" -u "Проблема с доступностью сервера" -m "Сообщение от $(hostname) . $ADDR недоступен с $(date)" -xu "логин" -xp "пароль" -s "smtp.yandex.ru" -o "message-charset=utf-8"
                notify-send "Статус сервера $IP" "Offline, сообщение направлено на почту"
            done
        else
             echo "$g is up"
        fi
done
fi




  • IP=”10.5.5.1″ – IP-адрес для мониторинга. Через пробел можно указать несколько адресов.



  • ping -c 2 -W 1 – количество пакетов посылаемых на сервер



  • -f “кому@yandex.ru” – указываю свою почту



  • -t “от_кого@yandex.ru” – указываем почту от которой будем отправлять.



  • -u “Проблема с доступностью сервера” – тема сообщения



  • -m “Сообщение от $(hostname) . $ADDR недоступен с $(date)” – Содержание сообщения



  • -xu “логин” – Логин от вашей почты



  • -xp “пароль” – Пароль от вашей почты



  • -s “smtp.yandex.ru” – Адрес smtp сервера отправки почты, в моем случае это yandex



  • -o “message-charset=utf-8” – Кодировка сообщения, без нее будет крякозябры.




  1. Даем права на исполнение




chmod +x ping_test.sh




Для того чтобы сработала отправка почты нужно установить пакет sendmail




sudo apt install sendmail




  1. Радуемся, через заданный промежуток времени в событии будет высвечено сообщение о статусе.




Скрипт доступности ресурса каждые 10 секунд




Запускать задание через каждых 10 секунд:




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1")
while :;do
  for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                echo "$result"
            done
        else
             echo "$g is up"
        fi
  done
  sleep 10
done



[endtxt]




. . . .






2020-09-15T19:24:31
Network

Как посмотреть пароли Wi-Fi в MX Linux

Сегодня разберемся как можно посмотреть пароли от Wi-Fi в операционных системах Linux на примере MX Linux – Debian подобной системе.

Когда вы подключаетесь к какой либо сети по Wi-Fi, то обычно вводите от нее пароль. Данный пароль система сохраняет, чтобы в дальнейшим подключится к данной сети автоматически.

Рассмотрим, как посмотреть сохраненные пароли для Wi-Fi соединений в Ubuntu|Debian|LinuxMint. Читать

Как узнать и поменять значение MTU в Linux

Сегодня в статье поговорим Как узнать и поменять значение MTU в Linux/Ubuntu/Debian.




MTUmaximum transmission unit – максимальный размер пакет или фрейма в байтах, который может быть отправлен единовременно без фрагментации.




Узнать значение и поменять MTU в Linux




Узнать значение MTU для всех интерфейсов можно выполнив в консоли команду ip link




ip link | grep mtu




1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000




Чаще всего встречается 1500 — это значение по умолчанию для Ethernet интерфейсов.




Поменять MTU на сервере с Ubuntu/Debian можно так:




sudo ip link set dev eth0 mtu 1400




или так для старых систем:




sudo ifconfig eth0 mtu 1400




После данной команды начинает использоваться значение 1400, а вот после перезагрузки это значение MTU сбросится в дефолтное




Для постоянной смены MTU в Ubuntu




Открываем настройку сетевых интерфейсов:




sudo nano /etc/network/interfaces




К нужному адаптеру добавляем строчку со значением MTU. Вот пример настройки:




auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.5.5.2
netmask 255.255.255.0
gateway 10.5.5.1
mtu 1400




Перезапускаем сеть:




systemctl restart networking




Значение теперь будет применяться даже после перезагрузки.




Меняем значение MTU при помощи Netplan




Вот еще один пример как можно сменить значение MTU, но уже через утилиту Netplan на Ubuntu 18.04/20.04




network:
    ethernets:
        ens3:
            mtu: 1400
            addresses:
            - 198.18.12.15/24
            - 2a01:d0:c353:183::15/64
            dhcp4: false
            gateway4: 198.18.12.1
            gateway6: 2a01:d0:c353:183::1
            nameservers:
                addresses:
                - 198.18.12.3
                - 2a01:d0:c353:183::3
                search: []
    version: 2



[endtxt]




RSS



Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.


2020-05-28T08:33:30
Network

Настройка сети в Ubuntu Server 20.04 LTS

Сегодня в статье рассмотрим примеры по Настройки сети в Ubuntu Server 20.04 LTS. По сравнению с Ubuntu Server 16.04 LTS настройка осуществляется через утилиту Netplan.






NetPlan – это инструмент для управления настройками сети, представленный в Ubuntu начиная с версии 17.10 и выше.




Этот инструмент заменяет файл статических интерфейсов /etc/network/interfaces, который ранее использовался для настройки сетевых интерфейсов в Ubuntu. Теперь вы должны использовать /etc/netplan/*.yaml для ваших изменений в Ubuntu.




Новый файл конфигурации интерфейсов как вы поняли находится в каталоге /etc/netplan/*.yaml.
После чистой установки дистрибутива Ubuntu Server 20.04 в данной директории находится всего один файл. У меня он называется 50-cloud-init.yaml




Не забываем о синтаксисе данного файла. Табуляция не используется и количество пробелов должно быть одинаково для одноименных категорий.

Полезное.




Ещё стоит напомнить что для конфигурирования сети могут быть использованы рендера – NetworkManager и networkd.




NetworkManager в основном используется на настольных компьютерах, а networkd в серверных дистрибутивах, хотя никто не мешает использовать их и в обратном порядке.




При использовании NetworkManager в качестве средства визуализации для управления интерфейсами будет использоваться графический интерфейс NetworkManager.




Настройка сети в Ubuntu Server 20.04




Есть два пути настройки сетевых интерфейсов:




  1. Получение IP адресов при помощи DHCP – автоматическая настройка
  2. Настройка статических IP адресов




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




Да, на чистой системе данная утилита не установлена по умолчанию. Её необходимо будет установить. Ну или можно воспользоваться командой ip. Я же человек старых правил ))), мне все-таки по душе утилита ifconfig поэтому набираем:




sudo ifconfig -a




Вывод команды покажет все имеющиеся в системе сетевые интерфейсы. В моей системе команда выдает следующий результат:




enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 14:d6:4d:56:b8:5a  txqueuelen 1000  (Ethernet)
        RX packets 2087766  bytes 2768743733 (2.7 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1996135  bytes 201457120 (201.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 10:78:d2:76:39:b3  txqueuelen 1000  (Ethernet)
        RX packets 10585  bytes 2371990 (2.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16067  bytes 18280327 (18.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
enp0s9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 10:78:d2:76:39:b3  txqueuelen 1000  (Ethernet)
        RX packets 87766  bytes 68743733 (12.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13819  bytes 12743733 (12.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 242  bytes 35780 (35.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 242  bytes 35780 (35.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0




Как видим из вывода имеются три сетевых интерфейса: enp0s3; enp0s8; enp0s9.




Интерфейс enp0s3 выступает в качестве WAN интерфейса для системы. Остальные два enp0s8 и enp0s9 подключены к двум локальным сетям. В дальнейшем мы их объединим в сетевой мост.




Статья по настройке сетевого моста на Ubuntu Server 18.04  LTS




Настройка сети в Ubuntu Server используя автоматическую настройку по DHCP.




И так с интерфейсами определились, давайте теперь настроим наш интерфейс, который смотрит в инет, на получение автоматических настроек сети по DHCP




Открываем файл настроек Netplan




sudo nano /etc/netplan/*.yaml




Файл должен выглядеть следующим образом (если не так, то редактируем):




network:
  ethernets:
     enp0s3:
         dhcp4: true
         dhcp6: true
         optional: true
  version: 2




Далее применим изменения:




sudo netplan try




Если в синтаксисе нет ошибок, то изменения применятся через 120 секунд, ну или сразу если Вы нажмёте Enter




Настройка сети в Ubuntu Server используя статические маршруты.




Если Вы пошли вторым путем и хотите настроить все IP адреса сами, то вот пример для настройки статических адресов:




network:
  ethernets:
     enp0s3:
         addresses: [ 10.5.5.1/24, 'fe00:a:b:100::1/64']
         gateway4: 10.5.1.1
         nameservers: 
            addresses: [10.5.5.1, 'fe00:a:b:100::1']
            search:
            - lan
         optional: true
  version: 2




  • addresses – это ip адрес который будет назначен вашей сетевой карте.
  • gateway4 – ip адрес вашего роутера
  • nameservers – тут перечисляются DNS сервера. Первый опять же наш роутер.
  • search – тут указываем домен в котором будет произведен поиск. Домен можно настроить при помощи DNS сервера




Далее сохраняем изменения:




sudo netplan try




Проверка параметров сети




Для проверки работоспособности сети можно воспользоваться командой ping и nslookup:




ping 8.8.8.8




  • 8.8.8.8 – ip адрес dns сервера google.




ping 10.5.5.2




10.5.5.2 – ip адрес ПК из вашей сети.




nslookup ya.ru




Server:		127.0.0.53
Address:	127.0.0.53#53
Non-authoritative answer:
Name:	ya.ru
Address: 87.250.250.242
Name:	ya.ru
Address: 2a02:6b8::2:242




Как видим на запрос ответил systemd-resolver 127.0.0.53. Если у Вас настроен собственный DNS сервер и вы хотите его установить по умолчанию для сервера DHCP, то потребуется отредактировать файл настройки systemd-resolver.




Также можем еще посмотреть вывод команды:




systemd-resolve --status




Global
       LLMNR setting: no                  
MulticastDNS setting: no                  
  DNSOverTLS setting: no                  
      DNSSEC setting: no                  
    DNSSEC supported: no                  
          DNSSEC NTA: 10.in-addr.arpa     
                      16.172.in-addr.arpa 
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa 
                      18.172.in-addr.arpa 
                      19.172.in-addr.arpa 
                      20.172.in-addr.arpa 
                      21.172.in-addr.arpa 
                      22.172.in-addr.arpa 
                      23.172.in-addr.arpa 
                      24.172.in-addr.arpa 
                      25.172.in-addr.arpa 
                      26.172.in-addr.arpa 
                      27.172.in-addr.arpa 
                      28.172.in-addr.arpa 
                      29.172.in-addr.arpa 
                      30.172.in-addr.arpa 
                      31.172.in-addr.arpa 
                      corp                
                      d.f.ip6.arpa        
                      home                
                      internal            
                      intranet            
                      lan                 
                      local               
                      private             
                      test                
Link 22 (enp0s3)
      Current Scopes: DNS     
DefaultRoute setting: yes     
       LLMNR setting: yes     
MulticastDNS setting: no      
  DNSOverTLS setting: no      
      DNSSEC setting: no      
    DNSSEC supported: no      
  Current DNS Server: 10.5.5.1
         DNS Servers: 10.5.5.1
          DNS Domain: dom 




Из данного вывода DNS указан для нашего сетевого интерфейса enp0s3 его же IP адрес.




Но глобальная переменная DNS является 127.0.0.53.




Для изменения глобальной переменной необходимо проделать следующие действия:




  1. откройте и отредактируйте следующий файл:




sudo nano /etc/systemd/resolved.conf




[Resolve]
DNS=10.5.5.1
...




Примените изменения:




sudo systemctl restart systemd-resolved.service




Посмотрим еще раз на глобальные переменные DNS




sudo systemd-resolve --status




Global
       LLMNR setting: no                  
MulticastDNS setting: no                  
  DNSOverTLS setting: no                  
      DNSSEC setting: no                  
    DNSSEC supported: no                  
         DNS Servers: 10.5.5.1            
          DNSSEC NTA: 10.in-addr.arpa   
.....




Из вывода видно что наш DNS изменился на 10.5.5.1.




Если воспользуемся командой nslookup, то вывод также покажет что dns сервер 127.0.0.53. Для изменения необходим пакет resolvconf




  1. Устанавливаем resolvconf




sudo apt install resolvconf




Открываем файл и вносим изменения:




nano /etc/resolvconf/resolv.conf.d/head




# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 10.5.5.1




Применим наши изменения




sudo resolvconf -u




Теперь вывод nslookup покажет наш DNS сервер




nslookup ya.ru
Server:		10.5.5.1
Address:	10.5.5.1#53
Non-authoritative answer:
Name:	ya.ru
Address: 87.250.250.242
Name:	ya.ru
Address: 2a02:6b8::2:242




На этом Настройка сети в Ubuntu Server 20.04 LTS закончена.



[endtxt]




RSS




2020-05-22T08:39:05
Network