Назад | Перейти на главную страницу

Вопрос о маршруте / IPtables

У меня следующая настройка -

Маршрутизатор Verizon Fios - WAN - Общедоступный IP-адрес Маршрутизатор Verizon Fios - LAN - 192.168.1.1

Это подключается напрямую к внутреннему маршрутизатору Linux -

Внутренний маршрутизатор Linux - eth0 - 192.168.1.2 Внутренний маршрутизатор Linux - eth1 - 10.10.10.1

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

Маршрутизатор linux находится в Интернете напрямую через функцию DMZ маршрутизатора Fios.

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

Причина, по которой все это имеет значение, заключается в том, что я пытаюсь запустить клиент VNC-Java на маршрутизаторе Linux для подключения к vncserver, который работает непосредственно на том же компьютере. Когда java-клиент подключается, он пытается подключиться к внешнему IP-адресу, о котором Linux-маршрутизатор действительно не знает, поскольку считает, что это 192.168.1.2.

Я предполагаю, что есть другое решение ... И это говорит java-клиенту tightvnc подключиться к хосту 192.168.1.2, но я тоже не могу найти, где именно это установить.

Обычный клиент VNC работает нормально, но мне бы не хотелось иметь клиентское программное обеспечение.

Мысли / предложения? Мне просто не повезло из-за один на один нац?

Что касается проблемы маршрутизации, поскольку ваша внутренняя сеть использует немаршрутизируемые IP-адреса (частные), ваш маршрутизатор Linux должен «замаскировать» их, когда они выходят через внешний IP-адрес (который также не маршрутизируется, но вашему маршрутизатору Linux требуется не знаю - Cisco может справиться с этой частью).

Что-то простое вроде

iptables -t nat -I 1 POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQURADE

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

Также убедитесь, что у вас есть ip_forwarding включен - проверить вывод sysctl net.ipv4.ip_forward : должно быть написано "1"

В дополнение к ответу Гусса (который является правильным) вам также необходимо убедиться, что на всех ваших компьютерах настроены правильные шлюзы по умолчанию. Для компьютеров в подсети 10.10.10.x это, вероятно, 10.10.10.1. Для всех компьютеров в подсети 192.168.1.x это, вероятно, 192.168.1.1 (по крайней мере, это то, что я читаю из вашего сообщения).

Обычно они устанавливаются через DHCP. Если вы не используете DHCP, вам придется установить эти значения (и соответствующие им маски подсети) вручную.