Каверзный вопросик для системных администраторов

Дано: маленькая одноранговая виндовая локальная сеть. Доменный контроллер, WINS, DHCP, всё как обычно. Всё подключено через одни общий неуправляемый коммутатор. IP-адреса из блока 10.0.0.0/24.

Шлюзом в интернет работает юниксовая машина. Она же по совместительству работает VPN-концентратором (PPTP) для внешних клиентов. Адреса выдаёт из той же сети 10.0.0.0/24, чтобы подключившиеся клиенты прозрачно видели локальную сеть.

Никакой фильтрации трафика для локальных IP-адресов ни на самом шлюзе, ни на внутренних серверах нет.

Проблема: клиент успешно подключается по PPTP, получает адрес, но из всей локальной сети видит только сам шлюз. Все остальные попытки соединиться с любыми серверами в локальной сети или даже запустить traceroute натыкаются на таймауты со следующего хопа после шлюза.

В то же время соединения с самогО шлюза на те же внутренние серверы успешно устанавливаются.

Форвардинг на шлюзе, естественно, включён. Анализ с помощью tcpdump на шлюзе показывает, что пакеты из VPN успешно форвардятся в локальную сеть, но ответы на них не приходят. proxyarp включён.

Вопрос: кто виноват, что делать?

Upd: ответ под катомА дело в том, что добрые администраторы при переносе PPTP-сервера с доменного контроллера на юникс скопировали туда и пул динамических адресов. В результате DHCP-сервер в локалке и PPTP-сервер выдавали адреса из одного диапазона. И когда pptp-клиент получал адрес, уже имеющийся в локалке, оно нифига и не работало, поскольку локальная машина успевала отвечать на ARP-запросы раньше, и все ответы уходили в неё.

Увидеть это со шлюза затруднительно, потому что для него на этот динамический адрес был явный маршрут через ppp*, и искать его через ARP шлюз даже и не пытался. А посмотреть что-либо с других машин в локалке тоже было затруднительно, потому что на них из VPN попасть было нельзя.

This entry was posted in Uncategorized and tagged . Bookmark the permalink.

Leave a Reply