AlexBorcat Опубликовано 2 декабря, 2010 · Жалоба bgp+nat+2 uplink Уже голову сломал: Есть сервер (gentoo) с 3 сетевыми: eth0 - uplink1 основной eth1 - uplink2 резерв и перегруз 1 линка eth3 - local Поднят BGP и маршруты получаются. Мысль тупит на моменте: есть нат и обычное правило: -A POSTROUTING -s x.x.x.x/y -o iface -j SNAT --to-source z.z.z.z но т.к. интерфейсов 2 или более - что указывать в качестве iface? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GFORGX Опубликовано 2 декабря, 2010 · Жалоба Сделать два таких правила, для каждого из аплинковых интерфейсов, -o просто указывает выходной интерфейс, а он будет зависеть от текущей таблицы маршрутов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlexBorcat Опубликовано 2 декабря, 2010 · Жалоба мысль интересная, но ведь надо поднять z.z.z.z на каком-либо интерфейсе... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GFORGX Опубликовано 2 декабря, 2010 · Жалоба Ну а сейчас ведь на них какие-то адреса уже есть? -o - это просто критерий мэтчинга пакета, не аргумент цели SNAT. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 2 декабря, 2010 · Жалоба надо поднять z.z.z.z на каком-либо интерфейсе...Если это адрес из анонсируемой AS, то необязательно.Всё равно аплинк пришлёт ответ на BGP-бордер. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GFORGX Опубликовано 2 декабря, 2010 · Жалоба надо поднять z.z.z.z на каком-либо интерфейсе...Если это адрес из анонсируемой AS, то необязательно.Всё равно аплинк пришлёт ответ на BGP-бордер. Насколько мне кажется, Linux в таком случае просто не будет знать, куда его роутить дальше. Можно просто поднять алиас. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlexBorcat Опубликовано 2 декабря, 2010 · Жалоба Ну а сейчас ведь на них какие-то адреса уже есть?адреса есть, но адреса прова из сетки 30 для связи с ним...вопрос больше на каком интерфейсе поднимать адреса своей автономки. -o - это просто критерий мэтчинга пакета, не аргумент цели SNAT.A POSTROUTING -s x.x.x.x/y ! -o local_iface -j SNAT --to-source z.z.z.z Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 2 декабря, 2010 · Жалоба Ну а сейчас ведь на них какие-то адреса уже есть?Скорее всего, у товарища на них адреса не из AS, а из двухточечных сетей взаимодействия, выданных аплинками. надо поднять z.z.z.z на каком-либо интерфейсе...Если это адрес из анонсируемой AS, то необязательно.Всё равно аплинк пришлёт ответ на BGP-бордер. Насколько мне кажется, Linux в таком случае просто не будет знать, куда его роутить дальше. Можно просто поднять алиас. Linux и не будет его маршрутизировать, т.к. IP-адрес назначения в ответахсначала пройдёт через обратный NAT в postrouting'e, превратится в приватный, и уже после этого попадёт в маршрутизацию. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GFORGX Опубликовано 2 декабря, 2010 · Жалоба Linux и не будет его маршрутизировать, т.к. IP-адрес назначения в ответахсначала пройдёт через обратный NAT в postrouting'e, превратится в приватный, и уже после этого попадёт в маршрутизацию. Таки да, логично. Не задумывался, ибо у нас border и NAT - два разных роутера. Почему-то думал, что в нелокальные адреса Linux NAT-ить не захочет, проверил - таки да, работает (: Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlexBorcat Опубликовано 2 декабря, 2010 · Жалоба Скорее всего, у товарища на них адреса не из AS, а из двухточечных сетей взаимодействия, выданных аплинками.Именно! Linux и не будет его маршрутизировать, т.к. IP-адрес назначения в ответахсначала пройдёт через обратный NAT в postrouting'e, превратится в приватный, и уже после этого попадёт в маршрутизацию. Так понимаю - мне эти адреса вообще поднимать не надо? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlexBorcat Опубликовано 2 декабря, 2010 · Жалоба однакож... работает! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 2 декабря, 2010 · Жалоба Так понимаю - мне эти адреса вообще поднимать не надо?Для того, чтобы работал SNAT, это не требуется.Для чего-то другого - может быть. Например, если повесить публичник с маской /32 алиасом на внутренний интерфейс, то можно будет трассировать бордер из Интернета, указывая данный IP в качестве цели. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlexBorcat Опубликовано 2 декабря, 2010 · Жалоба Например, если повесить публичник с маской /32 алиасом на внутренний интерфейс,то можно будет трассировать бордер из Интернета, указывая данный IP в качестве цели. В этом и тупил - поднимал IP на ifb|dummy|lo и NAT не работал... но до IP извне доступ был. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Diatel Опубликовано 2 декабря, 2010 (изменено) · Жалоба У меня такая конфигурация uplink'ов и пирингов: eth0.10--\ eth0.20------>BGP+NAT -eth0.100<------>FastEth 0/0.100 - BRAS<--->Много-серых-IP eth0.30--/ eth0.10 uplink, адрес на интерфейсе 1.1.1.1/29 eth0.20 uplink, адрес на интерфейсе 2.2.2.2/29 eth0.30 пиринг, адрес на интерфейсе 3.3.3.3/24 eth0.100 VLAN между Border и BRAS, адрес на интерфейсе x.x.x.1/24 FastEth 0/0.100 VLAN между Border и BRAS, адрес на интерфейсе x.x.x.254/24 x.x.x.x/24, y.y.y.y/24, z.z.z.z/24 сети белых IP из моей AS. Каждому uplink'у и в пиринг анонсирую свой набор подсетей белых IP, поэтому NAT зависит от выходного интерфейса. В iptables это разруливается так, как писали выше: $IPT -t nat -A POSTROUTING -o eth0.10 -s 10.0.0.0/24 -j SNAT --to-source x.x.x.1 $IPT -t nat -A POSTROUTING -o eth0.20 -s 10.0.0.0/24 -j SNAT --to-source y.y.y.1 $IPT -t nat -A POSTROUTING -o eth0.30 -s 10.0.0.0/24 -j SNAT --to-source z.z.z.1 Чтобы NAT на linux нормально работал нужно, чтобы в качестве адресов для SNAT, использовались адреса из непосредственно подключенных сетей ( C - connected - в терминологии cisco ). Я выполнил это условие, написав все мои белые подсети как alias'ы на eth0.100. Сейчас суммарный трафик ~200 Мбит в максимуме, работает хорошо. Изменено 2 декабря, 2010 пользователем Diatel Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Diatel Опубликовано 2 декабря, 2010 · Жалоба А еще нужно не забыть маршрутик с border на фейковые адреса через BRAS добавить: ip route add 10.0.0.0/8 via x.x.x.254 dev eth0.100 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlexBorcat Опубликовано 2 декабря, 2010 · Жалоба речь шла о бордере и брасе на одной машине. с двумя даже и вопросов не возникает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Diatel Опубликовано 2 декабря, 2010 · Жалоба Если убрать брас, то мало что изменится: eth0.10--\ eth0.20------>BGP+NAT -eth0.xxxx<--->Много-серых-IP eth0.30--/ Для нормальной работы NAT на любом из локальных интерфейсоф напишите Ваши белые IP в качестве alias'ов , можно оставить на каком-то из eth, можно попробовать на lo. И маршрутиков никаких дополнительных не надо, если конечно с софтом BRAS всё правильно и он сам при поднятии итерфейса добавляет на него маршрут. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
[-Alt-] Опубликовано 3 декабря, 2010 · Жалоба Да не надо никаких алиасов прописывать, у меня замечательно работает НАТ, причем натится в адреса которых в системе нет, и находятся они за 2 хопа, т.е. к connected тоже не относятся. Главное, чтобы трафик на адреса ната приходил на эту машину. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...