Сегодня поговорим, что после того как развернули виртуальную машину с осью OpenWRT на связке Debian 10 + Proxmox 6.4-13 опираясь на заметки

"Как установить OpenWRT on Proxmox 6.4-13"

затем расширили диск по заметке "Resize disk on OpenWRT в Proxmox 6.4-13"

сейчас на очереди какие последующие действия нужно проделать, к примеру, настроить OpenWRT как шлюз для локальной сети.

Для чего это? Хочу настроить WireGuard клиент на OpenWRT дабы уйти от использования Mikrotik CHR, т.к. я использую бесплатный ключ на 60 дней и обычно, когда что-то нужно протестировать ключ то истек и все делать заново, а тут все бесплатно.

Вот так сразу особо и не понятно, как на OpenWRT развернуть шлюз для локальной сети, поэтому нужно все задокумментировать, покуда буду расписывать что-то да прояснится.

Шаг №1: Сейчас виртуальная машина VM ID: 700 (srv-openwrt) выключена, но может быть и включена, я делаю акцент, что выключена.

Шаг №2: Добавляю в контейнер виртуальной машины еще одну сетевую карту:

https://IP&DNS:8006 - user&pass&pam - (Server View) Datacenter - srv-proxmox - VM ID: 700 - Hardware - Add - Network Device

  • Bridge: vmbr1
  • VLAN Tag: ничего не указываю
  • Model: VirtIO (paravirtualized)
  • MAC address: auto
  • Firewall: галочку не снимаю

и нажимаю Add

ниже скриншот настроек Hardware для виртуальной машины VM ID: 700

В контейнер VM ID: 700 добавил еще одну сетевую карту.

Шаг №3: Запускаю виртуальную машину VM ID:700 (srv-openwrt):

https://IP&DNS:8006 - user&pass&pam - (Server View) Datacenter - srv-proxmox - VM ID: 700 - Start

Шаг №4: Т.к. у меня активирована возможность работы с консолью виртуальной машины через xterm.js, то открываю ее:

https://IP&DNS:8006 - user&pass&pam - (Server View) Datacenter - srv-proxmox - VM ID: 700 >_ Console - xterm.js

Шаг №5: Открываю Webинтерфейс OpenWRT и смотрю появилась ли добавленная сетевая карта:

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - Interfaces – вкладка Devices и вижу

  • Device: eth1
  • Type: Network device
  • MAC Address: 2C:D3:18:75:0C:8C

Добавленная сетевая карта появилась в Devices Web-интерфейса OpenWRT

Шаг №6: Теперь нужно создать интерфейс на основе добавленной сетевой карты (eth1):

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - Interfaces – вкладка Interfaces – нажимаю Add new interface…

  • Name: lan90
  • Protocol: Static address
  • Device: Ethernet Adapter: "eth1"

В Web-интерфейсе OpenWRT создаю интерфейс на основе добавленного устройства, т.е. сетевой карты.

и нажимаю Create Interface

После открываются настройки добавленного интерфейса и привожу настройки интерфейса к виду:

вкладка "General Settings"

  • Protocol: Static address
  • Device: eth1
  • Bring up on boot: отмечаю галочкой
  • IPv4 address: 10.90.90.2
  • IPv4 netmask: 255.255.255.0
  • IPv4 gateway: 10.90.90.1
  • IPv4 broadcast: 10.90.90.255
  • IPv6 address: ничего не указываю
  • IPv6 gateway: ничего не указываю
  • IPv6 routed prefix: ничего не указываю

вкладка "Advanced Settings"

  • Force link: Отмечаю галочкой
  • Use default gateway: галочкой не отмечаю
  • Use custom DNS servers: ничего не указываю
  • DNS search domains: ничего не указываю
  • DNS weight: 0
  • Use gateway metric: 0
  • Override IPv4 routing table: указываю main(254)
  • override IPv6 routing table: оставляю, как есть "unspecified"
  • Delegate IPv6 prefixes: ничего не указываю
  • IPv6 assignment length: disabled
  • IPv6 prefix filter: ничего не указываю
  • IPv6 suffix: ::1
  • IPv6 preference: 0

и нажимаю Save

На заметку: IP адрес 10.90.90.1 обозначен на самом хосте Proxmox

root@srv-proxmox:~# cat /etc/network/interfaces
auto vmbr1
iface vmbr1 inet static
        address 10.90.90.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.90.90.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.90.90.0/24' -o vmbr0 -j MASQUERADE

Шаг №7: Создаю правило в Firewall для интерфейса lan90:

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - Firewall – вкладка "General Settings" - Add – вкладка "General Settings"

  • Name: ZoneLAN90
  • Input: accept
  • Output: accept
  • Forward: accept
  • Masquerading: не отмечаю галочкой
  • MSS clamping: не отмечаю галочкой
  • Covered networks: выбираю интерфейс lan90

и нажимаю Save

получается так:

Создаю правило в Firewall для интерфейса lan90:

Шаг №8: Проверяю что для интерфейса lan90 во вкладке "Firewall Settings" привязана зона ZoneLAN90:

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - Interfaces – вкладка Interfaces – в интерфейсе lan90 нажимаем Edit - вкладка "Firewall Settings"

Проверяю что для интерфейса lan90 во вкладке "Firewall Settings" привязана зона ZoneLAN90:

все есть, нажимаю Save

Шаг №9: Создаю/Прописываю маршрут для сети, которую обслуживает интерфейс lan90:

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - Routing – вкладка "Static IPv4 Routes" - Add – вкладка "General Settings"

  • Interface: lan90
  • Route type: unicast
  • Target: 0.0.0.0/0
  • Gateway: 10.90.90.1

Создаю/Прописываю маршрут для сети, которую обслуживает интерфейс lan90

и нажимаю Save

Шаг №10: Поднимаю на созданном интерфейсе lan90 DHCPсервис:

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - Interfaces – вкладка Interfaces – в интерфейсе lan90 нажимаю Edit -

вкладка "DHCP Server" – нажимаю на "Set up DHCP Server"

Поднимаю на созданном интерфейсе lan90 DHCP-сервис:

открываю дополнительные настройки сервиса DHCP для этого интерфейса:

вкладка "General Setup"

  • Ignore interface: снимаю галочку
  • Start: 100
  • Limit: 150
  • Lease time: 12h

вкладка "DHCP Server" – вкладка "Advanced Settings"

  • Dynamic DHCP: отмечаю галочкой
  • Force: отмечаю галочкой
  • IPv4-Netmask: 255.255.255.0
  • DHCP-Options: 6,8.8.8.8

Дополнительные настройки сервиса DHCP для этого интерфейса

и нажимаю Save

На заметку: Опции DHCP-Options можно уточнить из справки, к примеру вывод первый 10 из большого списка.

root@OpenWrt:~# dnsmasq --help dhcp | head -n 10
Known DHCP options:
  1 netmask
  2 time-offset
  3 router
  6 dns-server
  7 log-server
  9 lpr-server
 13 boot-file-size
 15 domain-name
 16 swap-server
root@OpenWrt:~#

Шаг №11: Чтобы изменения применились нужно нажать Save & Apply.

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - Interfaces

Чтобы изменения применились нужно нажать Save & Apply

и нажимаю Save & Apply.

Шаг №12: Создаю виртуальную машину в Proxmox, к примеру, srv-w10x64a с осью Windows 10 Pro и проверяю, что при назначенном сетевом интерфейсе Bridge: vmbr1

ipconfig /all

Проверяю на Windows 10 Pro что настройки от DHCP получены.

Если обратить внимание на вывод ipconfig /all, то видно что DNS-суффикс подключения равен lan, изменить его можно в http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - DHCP and DNS – вкладка "General Settings" параметр

  • Local domain: lan

Вообще советую разобрать как настраивается dnsmasq применительно в OpenWrt, это DNS сервис.

Отлично, Windows 10 Pro получила сетевой адрес и шлюзом является 10.90.90.2 – это как раз система OpenWRT

проверяю, что из Windows 10 Pro вижу интернет:

Интернет за OpenWRT есть

Шаг №13: Проверяю, что видится в интерфейсе OpenWRT на предмет работы DHCP сервиса на интерфейсе lan90:

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Network - DHCP and DNS – вкладка "Static Leases"

Проверяю, что видится в интерфейсе OpenWRT на предмет работы DHCP сервиса на интерфейсе lan90:

Шаг №14: Чтобы у устройства, которое получило сетевой адрес от DHCP сервиса на интерфейсе vmbr1, т.е. lan90 нужно:

http://<OpenWRT> (http://172.33.33.139) - Login:Pass (Login: root Pass: 712mbddr@) - Status - Overview – прокручиваю бегунок страницы вниз и вижу:

(Active DHCP Leases)

выданный IP адрес для моей Windows 10 Pro системе и справа от него кнопку, нажимаю Set Static

Выданный IP адрес для моей Windows 10 Pro системе и справа от него кнопку, нажимаю Set Static

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

# /etc/config/dhcp
uci add dhcp host # =cfg06fe63
uci set dhcp.@host[-1].name='EKZORCH-11LKRD2'
uci set dhcp.@host[-1].ip='10.90.90.128'
uci set dhcp.@host[-1].mac='12:42:32:0F:8A:2F'

и нажимаю Save & Apply

Шаг №15: Итого мои настройки для DHCP сервиса:

root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        option ra_slaac '1'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

config dhcp 'lan90'
        option interface 'lan90'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option force '1'
        option netmask '255.255.255.0'
        list dhcp_option '6,8.8.8.8'

config host
        option name 'EKZORCH-11LKRD2'
        option ip '10.90.90.128'
        option mac '12:42:32:0F:8A:2F'

На заметку: Нужно все что я сделал выше через Web-интерфейс сделать через командную строку с применением утилиты uci, но об этом чуть позже.

Итого у меня получилось разобрать порядок действий что в Web-интерфейсе OpenWRT нужно проделать дабы поднять систему как шлюз для локальной сети, если система OpenWRT создана как виртуальная машина и последующие за ней. Мне это нужно дабы оттестировать различный функционал что мне хотелось бы иметь возможность сделать, т.е. я охочусь за навыками настройки.

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

На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.