[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: nat не натит сеть, которая недоступна напрямую



On Wed, May 29, 2013 at 01:41:11PM +0400, Mikhail A Antonov wrote:
> 29.05.2013 10:50, Eugene Berdnikov пишет:
> >
> >  Проверьте tcpdump'ом с обеих сторон и трассировкой правил iptables,
> >  может быть, там всё-таки есть ошибка конфигурации.
> 
> iptables приводил в первом письме.

 Я сказал "трассировку": iptables -t raw <selector> -j TRACE.

> tcpdump тоже смотрел:
> root@klon-gw:~# tcpdump -pni any -vvv host 213.79.76.3

 Здесь непонятно, через какие интерфейсы ходят пакеты. Вы думаете, что
 знаете их точно, но постороннему человеку нужны доказательства.
 К тому же с бриджами всё непросто, там можно отдельно слушать brX,
 а можно те интерфейсы, которые к бриджу подключены, и получать
 разные результаты.

> на GW - пакет пришёл, пакет ушёл
> на HN - пакет пришёл на физику, ушёл в бридж, вернулся в vnet, прошёл
> через hn на выход на другую физику
> Всё работает, кроме ната.

 Да, похоже на баг. Но таки проверьте, что что все интерфейсы и цепочки
 проходятся в нужной последовательности.

> >> Если я нарвался на ядерный баг - куда мне писать?
> >  В netdev@vger.kernel.org. Но если нет готовности собирать у себя ядро
> >  из свежего git'а и делать бисекты, а также пробовать патчи от тамошних
> >  хакеров, то лучше туда не соваться, а искать обходной путь... IMHO.
> Эта конфигурация легко собирается на любой машине, на которой сможет
> работать kvm. Не думаю что тамошним хакерам будет удобно играть в
> испорченный телефон. Быстрее, проще и удобнее у себя такое же сделать.

 Наивный человек, :) никто не будет городить такое страшилище с kvm,
 а собирать ядро придётся Вам, если вообще кого-то эта тема заинтересует.
 Причём заинтересовать может лишь если ситуация воспроизводится на самом
 свежем ядре из git'а, которое сейчас под рукой у девелоперов.

 Нужен простой и понятный тесткейс: два интерфейса, одно правило, ничего
 лишнего. Не пишите "! -d 172.16.2.44/32" в правиле SNAT, оно там излишне
 потому что пакет с локальным dst_ip в POSTROUTING не попадёт. Но эта
 мелочь режет глаз, а с чайниками в netdev никто разговаривать не хочет.
-- 
 Eugene Berdnikov


Reply to: