Дано: маленькая одноранговая виндовая локальная сеть. Доменный контроллер, 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 попасть было нельзя.
Оригинал этой записи. Комментировать можно тут или там.
no subject
no subject
no subject