1

У меня немного странная ситуация. У меня есть доступ в интернет в моем доме через корпоративный WiFi. Я хочу установить локальную сеть с локальным WiFi в доме, соединяясь с корпоративным WiFi для доступа в интернет.

Поэтому я хочу что-то вроде роутера с двумя антеннами WiFi: внутренним (домашним) WiFi и внешним (корпоративным) WiFi-соединением. Затем я могу подключить ПК к моей домашней сети Ethernet /WiFi и получить доступ к локальным общим файлам, принтерам и т.д., А также к Интернету, как если бы корпоративный Wi-Fi был ADSL / волоконно-оптической линией связи.

Такое оборудование уже существует? Любые намеки, что я должен искать?

Возможно, я подумал о создании ПК для этого, используя несколько адаптеров WiFi /PCIe. Тем не менее, я действительно хочу двухдиапазонный 802.11ac с обратной совместимостью для поддержки любого другого оборудования, которое я хочу подключить, и я не уверен, что маленький ключ, выступающий в роли "сервера", может обеспечить то, что настоящий маршрутизатор может ...?

1 ответ1

0

Хорошо, теперь я могу ответить на свой вопрос.

Я использовал подсказки из комментария Тайсона, чтобы начать, но я должен был сделать еще кое-что. Тем более, что я не упомянул о корпоративной сети, к которой я подключался, проходила аутентификация WPA2-Enterprise PEAP MSCHAPv2 (eduroam).

У меня есть довольно дешевое оборудование: точка доступа TP-Link TL-WA801ND (Wireless N 300 МБ, однополосный, 2,4 ГГц); и маршрутизатор ASUS AC750 (беспроводной двухдиапазонный переменный ток).

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

Я обнаружил замену прошивки с открытым исходным кодом, OpenWrt, с некоторыми статьями вики и видео на YouTube, обещающими сделать возможным режим клиента с PEAP.

Я много читал о проблемах с доступным пространством для хранения на точке доступа WA801ND . Однако мне повезло. Мне поставили WA801ND V5, который имеет двойное хранилище (8 МБ) предыдущих версий.

Тем не менее, ничего не было сказано об установке на V5 в вики № 1 и страшных инструкциях по сборке в вики № 2 (почему на сайте OpenWrt есть две вики?).

Мне, однако, повезло вдвойне, потому что я нашел git commit, детализирующий поддержку V5, несмотря на то, что говорят вики, и с инструкциями о том, как прошить.

Прочитав некоторую документацию вместе с инструкциями в git commit, наконец-то установили OpenWrt на точку доступа WA801ND.

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

Итак, первый шаг - включить поддержку PEAP.

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

В конце концов я обнаружил, что есть два под-репозитория, один для "цели" (устройство) и один для арки (процессор).

Итак, как только я скачал и скопировал на устройство пакет wpad_2018-05-21-62566bc2-4_mipsel_24kc.ipk в /tmp , я мог бы opkg remove wpad-mini затем opkg install /tmp/wpad_2018-05-21-62566bc2-4_mipsel_24kc.ipk , включающий поддержку PEAP wpa_supplicant.

Я попытался настроить WA801ND с помощью файлов конфигурации, но сам по себе это большой проект. Я действительно хотел веб-интерфейс. Стандарт в OpenWrt - Luci, у которого есть куча зависимостей, которые нужно загрузить и передать на устройство через scp.

К счастью, я нашел вики-страницу со сценарием (внизу) для его автоматизации. К сожалению, сценарий был старым, отсутствовала одна или две зависимости и имел неправильный URL-адрес пакета. Я исправил это и вуаля, Люси установил!

Оттуда было легко установить соединение в режиме клиента с сетью PEAP через веб-интерфейс Luci на точке доступа WA801ND, а затем подключить локальную сеть точки доступа к порту WAN маршрутизатора AC750. Мне пришлось изменить подсеть маршрутизатора с 192.168.1.x на 192.168.2.x, чтобы она не конфликтовала с точкой доступа. Тогда все "просто сработало" (наконец-то!).

Исправленный скрипт добавлен ниже, для справки:

#!/bin/sh
#assumes the user has egrep, wget, ssh, and scp

# Change this to match your router
architecture="mipsel_24kc"
target="ramips/mt76x8"

# These should be fine unless you've changed something
user="root"
ip_address="192.168.1.1"


url="https://downloads.openwrt.org/snapshots/packages/${architecture}/"
target_url="http://downloads.openwrt.org/snapshots/targets/${target}/packages/"
tmpdir="/tmp/luci-offline"
packages_base="liblua lua libuci-lua libubus libubus-lua uhttpd rpcd"
packages_luci="luci-base luci-lib-ip luci-lib-nixio luci-theme-bootstrap luci-mod-admin-full luci-lib-jsonc liblucihttp liblucihttp-lua"
packages_target="libiwinfo-lua"

mkdir "$tmpdir"
cd "$tmpdir"

echo "Downloading base packages"
wget --quiet -N "${url}base/Packages" || echo "Failed to get base Packages"
for pkg in $packages_base; do
    pkgfile="$(egrep -oe " ${pkg}_.+" Packages | tail -c +2)"
    pkgurl="${url}base/${pkgfile}"
    wget --quiet -N "$pkgurl" || echo "Failed to fetch $pkg"
done

echo "Downloading Luci packages"
wget --quiet -N "${url}luci/Packages" || echo "Failed to get luci Packages"
for pkg in $packages_luci; do
    pkgfile="$(egrep -oe " ${pkg}_.+" Packages | tail -c +2)"
    pkgurl="${url}luci/${pkgfile}"
    wget --quiet -N "$pkgurl" || echo "Failed to fetch $pkg"
done

echo "Downloading target-specific packages"
wget --quiet -N "${target_url}/Packages" || echo "Failed to get target Packages"
for pkg in $packages_target; do
    pkgfile="$(egrep -oe " ${pkg}_.+" Packages | tail -c +2)"
    pkgurl="${target_url}/${pkgfile}"
    echo "Downloading $pkgurl"
    wget --quiet -N "$pkgurl" || echo "Failed to fetch $pkg"
done

echo "Copying packages to device"
ssh "${user}@${ip_address}" mkdir -p /tmp/luci-offline-packages
scp *.ipk "${user}@${ip_address}":/tmp/luci-offline-packages
echo "Installing pacakges"
ssh "${user}@${ip_address}" opkg install /tmp/luci-offline-packages/*.ipk
echo "Deleting packages from device"
ssh "${user}@${ip_address}" rm -rf /tmp/luci-offline-packages/

echo "Starting HTTP server and enabling on boot"
ssh "${user}@${ip_address}" /etc/init.d/uhttpd start
ssh "${user}@${ip_address}" /etc/init.d/uhttpd enable

echo "Deleting packages from PC"
cd
rm -rf "$tmpdir"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .