Дано:
Две дружественные организации, обозначим их А и В, находятся в одном адресном пространстве, 192.168.0.0/24, со статическими адресами. Все сервера в сети принадлежат организации А, выход в интернет происходит через организацию А. Компьютеры организации В неподконтрольны организации А.
Было принято решение, по ряду причин, отделить сеть организации В.
Задание:
Необходимо установить шлюз. На шлюзе должны работать следующие сервисы - dhcp, dns. Вся сеть делится на подсети:
- А: рабочие машины организации А
- В: рабочие машины организации В
- С: внутренние сервера организации А
- D: общие сервера организации А.
Через шлюз должна работать управляемая маршрутизация:
- все компьютеры из сети В имеют доступ в сеть D
- отдельные пользователи сети В имеют доступ в сеть С
- сеть А имеет доступ в сети C и D
- сети А и В не имеют доступа друг к другу.
Выбранные средства:
DebianEtch, iproute (20061002-3)
Сделано:
При настройке опирался на LARTC.
Шлюз:
Код: Выделить всё
ip r
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.254
default via 192.168.0.250 dev eth0
cat /proc/sys/net/ipv4/ip_forward
0Правила роутинга:
Код: Выделить всё
ip rule list
0: from all lookup 255
32765: from 192.168.1.132 lookup test
32766: from all lookup main
32767: from all lookup default
ip route list table test
default via 192.168.0.254 dev eth0Удаленной машине, выступающей в качестве подопытной:
Код: Выделить всё
IP-адрес . . . . . . . . . . . . : 192.168.0.200
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.0.254Локальная машина - принимает адреса 192.168.1.13{2,3}/24 с шлюзом 192.168.1.1.
Проблемы:
При отключенным форвардинге ничего не ходит, при включенным - не следует правилам.
Хождение пакетов проверяю ping-ом и tcpdump-ом на интерфейсах шлюза.
При отключенном форвардинге:
Код: Выделить всё
ip route get 192.168.0.200 from 192.168.1.132 iif eth1 oif eth0
RTNETLINK answers: No route to hostПри включенном форвардинге:
Код: Выделить всё
echo 1 > /proc/sys/net/ipv4/ip_forward
ip route get 192.168.0.200 from 192.168.1.132 iif eth1 oif eth0
192.168.0.200 from 192.168.1.132 dev eth0 src 192.168.1.1
cache <src-direct> mtu 1500 advmss 1460 hoplimit 64 iif eth1Дополнительные данные:
Будут устанавливаться управляемые свитчи DES-3526. Решение с шлюзом выбрано из соображений размещения на нем dns и dhcp-серверов, доступ к которым должен быть из всех подсетей.
Буду признателен за наводку, что я не учел или сделал неверно.
Думаю эту проблему я могу решить средствами iptables, но интересно именно средствами iproute.
Спасибо.
P.S. Признаюсь сразу, подобный вопрос я уже задавал в iproute. Но, возможно в силу неверной постановки вопроса ответа не получил. Поэтому прошу прощения за вынужденное повторение вопроса.