Страница 1 из 1

Клиент и шлюз в разных подсетях

Добавлено: 2008-04-17 14:23:00
net_dummy
Здравствуйте!

Есть проблема следующего характера.
У провайдера есть локалка с несколькими подсетями 192.168.11.х и 192.168.12.х. У каждой свой шлюз 192.168.11.1 и 192.168.12.1 соответственно. У меня есть 4 компьютера, 3 из которых находятся в 192.168.12.х, а один (домашний) - в 192.168.11.х. С домашнего компьютера все мои компы в 192.168.12.х видно (пинги ходят, удаленное администрирование работает (vnc)).
Один из компьютеров (шлюз под Linux) в 192.168.12.х постоянно включен и имеет выход в Инет (Traffic Inspector Agent :evil: ).
Задача:
Как организовать ентот шлюз таким образом, чтобы домашний компьютер мог ходить в инет прозрачно (без авторизации).
Из сети 192.168.12.х все работает (организовано через IPTables MASQUERADE). В компах вместо шлюза провайдера прописан IP
моего компьютера.
На домашнем компьютере номер не проходит :(. Я в сетях новичок, но быстро учусь. Буду очень благодарен за ценные советы.

Re: Клиент и шлюз в разных подсетях

Добавлено: 2008-04-20 17:51:59
koffu
Учи матчасть основ TCP/IP, man iptables, о маршрутизации пакетов, о средствах наблюдения за ними. Начни iptables с этого

Re: Клиент и шлюз в разных подсетях

Добавлено: 2008-04-20 21:12:44
hzres
Если вы хотите без авторизации, то вам обязательно нужен свой шлюз (в смысле доступный для настройки) между сетями 192.168.11.0/24 и 192.168.12.0/24. Каждый хост имеет таблицу маршрутизации (каждая строка таблицы: АДРЕС НАЗНАЧЕНИЯ, МАСКА, ШЛЮЗ, ИНТЕРФЕЙС). Перед тем, как отослать пакет хост заглядывает в эту таблицу и находит все записи для которых

Код: Выделить всё

адрес назначения пакета & МАСКА == АДРЕС НАЗНАЧЕНИЯ в строке таблицы
Из найденных записей выбирается та, у которой наибольшая длина МАСКИ, далее определяется MAC-АДРЕС, принадлежащий хосту с адресом ШЛЮЗ. К пакету добавляется заголовок ethernet с адресом назначения MAC-АДРЕС. Пакет отправляется через сетевой интерфейс ИНТЕРФЕЙС.

Отсюда вывод вы не сможете разместить шлюз в другой подсети, поскольку протокол канального уровня не сможет определить его мак-адрес. Даже если вы пропишете мак статически, ethernet пакеты все-равно в другую сеть не пройдут. К тому же заметьте поиск в таблице для каждого пакета производится один раз, поэтому следующая таблица не поможет (это на домашнем компе, пусть его адрес 192.168.11.10, адрес вашего Linuxa 192.168.12.100)

Код: Выделить всё

Dest         Mask          Gateway        Iface
0.0.0.0      0.0.0.0       192.168.12.100 192.168.11.10
192.168.12.0 255.255.255.0 192.168.11.1   192.168.11.10
З.Ы. 0.0.0.0/0 - это строка для адреса по умолчанию (для шлюза)