Маршрутизатор за маршрутизатором

1

Мое здание кондо предоставляет Wi-Fi. Однако у них есть глупое окно условий обслуживания, которое вы должны принять, прежде чем получить доступ. Я написал скрипт, который может автоматически публиковать в этом окне условия предоставления услуг и предоставлять доступ. Моя проблема в том, что я не могу подключить свой Apple TV, так как у него нет веб-браузера, чтобы принять условия обслуживания.

Поэтому я взял Raspberry Pi и сделал его маршрутизатором NAT. Я подключил Wi-Fi PI к Wi-Fi кондо. Я поставил задачу cron, чтобы запустить скрипт для публикации на маршрутизаторе кондо, чтобы сохранить условия обслуживания. Все отлично работает, пока я не подключил AirPort к Ethernet. Я планирую создать свою собственную сеть Wi-Fi, используя Raspberry Pi в качестве маршрутизатора и AirPort в качестве вторичного маршрутизатора (частная сеть Wi-Fi).

Таким образом, более или менее происходит двойной NAT. Кондо-роутер делает NAT. AirPort использует NAT.

Примерно через минуту использования все отключается. Я думаю, что кондо-роутер блокирует нас. Кондо-маршрутизатор не будет направлять пакеты в Интернет. Это не даст мне IP от DHCP. Кондо-роутер является продуктом WatchGuard.

Возможно ли, что кондо-роутер обнаруживает частную сеть (AirPort) и блокирует мой доступ. Я предполагаю, что они обнаруживают это через двойной NAT, который продолжается. Есть ли способ обмануть маршрутизатор, чтобы он не обнаружил AirPort и не позволил всему этому работать?

Благодарю.

~ Спайсер

Спайсер
источник
1
Вы уверены, что делаете не против ToS?
Гроностай
Какой маршрутизатор дает вашим устройствам ip? Если вы настроили свой raspberry pi в качестве маршрутизатора, это устройство, которое должно раздавать новые номера ip вашим сервисам. И если вы можете отключить dhcp (и NAT) в аэропорту и использовать его только в качестве точки доступа, у вас будет только один NAT. Кроме того, после того, как у вас больше нет доступа ... Малина Пи тоже заблокирована ??
Рик
Когда я читаю TOS, я не вижу ничего, что запрещало бы это. Плюс я владелец в здании кондо. Я считаю это "моим". Я пытался поработать с платой кондо, чтобы убрать окно условий обслуживания с наших роутеров, но плата довольно тупая и меня не слушает.
spicer
Кондо-маршрутизатор дает IP-адрес беспроводной карте на Raspberry Pi. Затем у меня есть статическая настройка сети между Ethernet Raspberry Pi и AirPort. Затем AirPort раздает IP-адреса устройствам через DHCP. Таким образом, устройства получают IP-адрес от AirPort, Airport направляет через NAT через Wi-Fi соединение Raspberry Pi с маршрутизатором кондо. Я проверил все это работает правильно. Кажется, маршрутизатор кондо блокирует наше соединение. Я думаю, что это какая-то защита, встроенная в маршрутизатор.
spicer
Я не уверен, как можно обнаружить маршрутизатор за маршрутизатором. Я знаю, что некоторые вещи делают, но я не совсем понимаю, что они делают, чтобы обнаружить использование двойного NAT. Кроме того, Pi использует какой-то мостовой интерфейс между своим Wi-Fi и Ethernet? Наконец, вы можете использовать другое устройство, скажем, одно, на котором работает OpenWRT? Может быть проще отладить одно устройство, чем два.
Майкл Графф

Ответы:

2

Если ваш Raspberry Pi выполняет NAT, то вам не нужно, чтобы ваша базовая станция AirPort выполняла NAT. Отключить NAT на базовой станции AirPort; на вкладке «Сеть» установите для «Режим маршрутизатора» значение «Выкл. (режим моста)».

Spiff
источник
Отличная идея. Казалось бы, я делал слишком много NAT. Я настроил его как мост и получил тот же результат. :(
spicer
1

Об использовании прокси:
Да, я думал, что Прокси тоже не будет работать с Apple TV ... но ... это возможно .


Для iptablesкоманды ... вы можете попробовать:

iptables -t mangle -A POSTROUTING -o <wifi> -j TTL --ttl-set 128

(где <wifi>ваш исходящий интерфейс WiFi.)

POSTROUTINGдля трафика, выходящего. ( PREROUTINGтолько для входящего трафика)

Причина этого заключается в том, что вы хотите, чтобы трафик от самого Raspberry PI также был установлен на 127. И если вы сделаете это, ping 127.0.0.1вы можете увидеть, что он может быть установлен на 64.

И если вы установите трафик из вашей сети на 127, а Raspberry PI через некоторое время также использует некоторый трафик (с TTL 64), вы будете пойманы :) (может быть, поэтому это занимает час)

Я еще не смотрел на форсирование более низких портов (и других методов).

ТТЛ-трюк все еще работает целый час (каждый раз)?

В любом случае, я бы также следовал инструкциям Спиффа, чтобы установить (и сохранить) Аэропорт в качестве моста. (двойной NAT не нужен в любом случае)

Rik
источник
Прежде всего большое спасибо за вашу помощь в этом. Без твоего руководства я бы давно сдался.
spicer
Поэтому я попробовал то, что вы предложили. Те же результаты :(. Вот мой скрипт для настройки брандмауэра gist.github.com/cloudmanic/8175534 . Видите ли вы что-то не так? Как только маршрутизатор блокирует меня, кажется, он блокирует меня в течение часа. Я собираюсь попробовать идея прокси следующая. Спасибо за ссылки.
spicer
@spicer Прошло много времени с тех пор, как я баловался с iptables;) Насколько я вижу (и тестировал его на виртуальной машине), скрипт должен работать нормально. Я использовал виртуальную машину с Ubuntu, и после выполнения сценария ping (с другой машины) имел TTL 128. Так что есть еще одна проверка. Я искал WatchGuard, но не нашел ничего технического в том, что он проверяет дальше. Самое интересное в Linux - вы можете написать скрипт для изменения вашего MAC и восстановить соединение, когда вы обнаружите потерю интернета (если это все еще час хорошего соединения). Интересно, сколько времени им понадобится, чтобы обнаружить это;)
Рик
@spicer Также, если вы тестируете прокси, возможно, вы могли бы сначала протестировать его в простом формате (через компьютер и squid на PI), и если это работает, вы можете установить «прозрачный прокси». С помощью iptables вы можете перенаправить трафик на этот прокси-сервер, работающий на вашем PI. Смотрите здесь . Таким образом, вам не нужно настраивать всю машину с прокси. (iptables делает это невидимым для вас.) Не уверен (пока), если это работает для всего трафика, но если это работает для порта 80, это начало.
Рик