Настройка OPENWRT на x86
В данной статье рассказывается о настройке выхода хост-машины Windows 10 в интернет с помощью OpenWRT установленной на Virtual Box.
Найти гайд о том как развернуть openwrt труда никакого не составит, гуглится без проблем.
И так, мы имеем уже развернутую openwrt на виртуальной машине. Перед запуском заходим в настройки вм и в разделе сеть включаем 2 сетевых адаптера. Так как определение интерфейсов со стороны openwrt последовательное, сначала определяется lan интерфейс, в моём случае это eth0, затем wan интерфейс, у меня это eth1. Нам требуется в качестве 1 интерфейса выбрать "виртуальный адаптер хоста" (если у вас его нет, необходимо создать его. Выбираем в главном окне инструменты - сеть - вкладка виртуальные сети хоста, нажимаем сверху кнопку "создать" и выключаем у созданного подключения dhcp сервер), и во вкладке "дополнительно" включить неразборчивый режим "разрешить ВМ", галочка подключить кабель активна. Включаем 2 интерфейс и выбираем на нём режим "сетевой мост", во вкладке дополнительно разрешаем неразборчивый режим "разрешить всё" и проверяем стоит ли галочка "подключить" кабель.
Запускаем виртуальную машину, дожидаемся загрузки.
Пишем прям в окне виртуалки команду:
vi /etc/config/network
Откроется окно сетевых интерфейсов openWRT.
В нём нам следует настроить некоторые параметры.
Снизу уже готовый конфиг который работает у меня, возможно в вашем случае будут немного другие параметры.
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdbd:60cf:0e5d::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.5.1'
option netmask '255.255.255.0'
option delegate '0'
config interface 'wan'
option device 'eth1'
option proto 'static'
option ipaddr '192.168.0.248'
option netmask '255.255.255.0'
option gateway '192.168.0.1'
list dns '192.168.0.1'
list dns '8.8.8.8'
list dns '1.1.1.1'
option delegate '0'Обоим интерфейсам назначены статические адреса.
Для интерфейс lan назначаем любой айпи со свободной подсетью, можно стандартный 192.168.1.1. В моём случае это 192.168.5.1.
Главное чтоб он не конфликтовал с подсетью вашего физического роутера, в моём случае основной роутер имеет сеть 192.168.0.1. Хоть интерфейс lan и не видим извне для внешних устройств, но всё-же имейте это в виду.
Далее настраиваем интерфейс wan. Указываем режим ip "static". И тут уже нужно указать любой свободный ip из диапазона вашего физического роутера, не виртуального. В моём случае это 192.168.0.248.
Для того чтоб не ошибиться, заходим на веб-морду вашего физического роутера, смотрим все активные dhcp аренды устройств и заодно смотрим какой диапазон для выдачи адресов. В моём случае физический роутер выдаёт по dhcp ip в диапазоне от 192.168.0.100 до 192.168.0.249. Указываю адрес 192.168.0.248, в вашем случае выбирайте абсолютно любой свободный из диапазона.
Лично я зарезервировал на физическом роутере адрес для wan подключения с виртуалки. Как это сделать, можно найти информацию без проблем, там всё интуитивно понятно. В целом это не обязательно, но я люблю во всём порядок.
Как всё отредактировали, сохраняем файл и выходим.
Вводим команду
halt
Следующим шагом заходим в настройки сетевых адаптеров на хостовой windows. Видим два нужных нам адаптера. Первый это наша физическая сетевая карта с именем Ethernet, вторая карта Ethernet 2 это виртуальная карта созданная Virtualbox. Нам нужно убедиться что на обоих картах включена служба "VirtualBox NDIS6 Bridged Networking Driver". Для этого щёлкаем правой кнопкой по Ethernet - свойства. Вы увидите все запущенные службы и протоколы, проверяем есть ли в списке "VirtualBox NDIS6 Bridged Networking Driver" и стоит ли у неё галочка, заодно выключаем IPv6 от греха подальше c: Проворачиваем то-же самое с виртуальным адаптером Ethernet 2.
Если вдруг каким-то образом у вас нет этой службы, в свойствах любого адаптера нажимаем кнопку "установить", выбираем "служба", нажимаем "добавить", в открывшемся окне есть два поля "изготовитель" и "сетевая служба", выбираем в поле с изготовителем "Oracle Corporation" и в правом поле должна быть та самая "VirtualBox NDIS6 Bridged Networking Driver", выбираем её, нажимаем ок, служба сама установится. Если вдруг у вас не будет никаких Oracle в поле изготовителя, нажимаем установить с диска и гуглим где она там лежит в папке с программой virtualbox.
Если всё ок, двигаемся дальше. Заходим опять в свойства Ethernet 2, открываем свойства IPv4 и выставляем параметры ip и dns автоматически. Не знаю почему, но при прописывании здесь каких-либо параметров виртуальный lan отваливается, поэтому обязательно выставить автоматические ip и dns.
Теперь запускаем виртуалку с openwrt и дожидаемся загрузки.
Открываем любой браузер, заходим на указанный вами ранее ip для lan виртуалки, в моём случае это 192.168.5.1. Если всё сделано правильно, вы попадёте в веб-интерфейс luci openwrt. Заходим, и сразу видим страницу Status, прокручиваем страницу вниз и видим в dhcp арендах свой хост. Копируем ip который вам выдал openwrt, в моём случае это 192.168.5.217. Можно ещё нажать кнопку "set static" чуть правее, что-бы арендовать адрес на постоянку.
Оставляем спокойно себе работать виртуалку. Открываем в винде свойства Ethernet (та которая физическая) заходим в свойства IPv4 выбираем вариант "использовать следующий ip-адрес", вписываем ранее скопированный ip, в моём случае 192.168.5.217, маска стандартная 255.255.255.0, основной шлюз разумеется должен соответсвовать lan адресу виртуального openwrt, в моём случае 192.168.5.1. Нажимаем ок, винда чё-то там поругается о том что сети перепутались и запутались, нажимаем да, сохраняем выходим. И тут смотрим в правый нижний угол где у нас отображается статус сети, а там страшный значок отсутсвующего интернета. Но не пугаемся, всё хорошо. Открываем браузер и видим что всё прекрасно работает, скачивается, грузится.
Осталось создать скрипт автоматического запуска виртуалки с openwrt при загрузке винды, но это к теме уже не относится.
Что-бы отключиться от виртуального роутера и запустить обычное соединение, в настройках Ethernet на винде выставьте автоматическое получение ip или пропишите нужные вам настройки. Кстати, когда вы зайдёте в настройки ip у Ethernet вы увидите что ip и маска не указаны, а указан только шлюз. Мне не хватает знаний что-бы найти объективные причины этому, но учитывая что сеть при подключении через openwrt по сути скручивается в баранку для хоста, я считаю что это и не так важно.
Возможно это можно сделать как-то более изящно, но инфы по этому поводу такие крохи, что пришлось всё это настраивать опытным путём. Но это очень интересно)