LINUX.ORG.RU
ФорумAdmin

подскажите plz по маршрутизации дополнительной ip подсети


0

0

Есть шлюз на linux с 2 интерфейсами
eth1 - 212.92.xx.xx/30
eth0 - 192.168.1.1/24 (lan)
На eth0 висит бриджем adsl модем (dlink 500g). Роутинг включен.

Провайдер выдает подсеть из 8 адресов (195.92.15.хх) и нужно научить linux роутить эту подсеть. Организовать нечто вроде DMZ, но в том же физическом сегменте что и LAN, потому хочется обойтись без доп. сетевухи. Достаточно ли будет просто поднять на linux алиас с ip адресом из новой выдаваемой подсети (eth0:1)?

И еще возник вопрос по iptables. Сейчас работает немного модифицированный скрипт, взятый из iptables tutorial 1.1.19  (который называется rc.firewall.txt и обозначен как "Initial SIMPLE Firewall script for Linux 2.4.x and iptables"). Поменял там несколько открытых портов и прокинул внутрь локальной сети пару портов через DNAT. Iptables вроде бы не умеет работать с алиасами. Потребуется ли как-то менять настройки iptables или правила для eth0 будут применяться так же и к eth0:1? Или если eth0:1 никак не обозначен в разрешающих правилах, то пакеты на него  будут просто отбрасываться?

Я наверное еще просто многих подводных камней не вижу, потому что первый раз сталкиваюсь с такой задачей. Если кто может поделиться готовым решением (конфигами) подобной задачи, был бы очень благодарен!
anonymous

Дубль 2. форматирование подвело :( Надеюсь сейчас будет более читаемо.

"Есть linux с 2 интерфейсами eth1 - 212.92.xx.xx/30 eth0 - 192.168.1.1/24 На eth0 висит бриджем adsl модем (dlink 500g). Роутинг включен.

Провайдер выдает подсеть из 8 адресов (195.92.1.хх) и нужно научить linux роутить эту подсеть. Достаточно ли будет просто поднять на linux алиас с ip адресом из новой выдаваемой подсети (eth0:1)? Просто новая подсеть будет жить в том же физическом сегменте что и LAN, потому хочется обойтись без доп. сетевухи.

И еще возник вопрос по iptables при новой конфигурации интерфейсов. Сейчас работает немного модифицированный скрипт, взятый из iptables tutorial 1.1.19 (который называется rc.firewall.txt и обозначен как "Initial SIMPLE Firewall script for Linux 2.4.x and iptables"). Поменял там несколько открытых портов и прокинуль внутрь локальной сети пару портов через DNAT. Iptables вроде бы не умеет работать с алиасами. Потребуется ли как-то менять настройки iptables или правила для eth0 будут применяться так же и к eth0:1? Или если eth0:1 никак не обозначен в разрешающих правилах, то пакеты на него будут просто отбрасываться? Я наверное еще просто многих подводных камней не вижу, потому что первый раз сталкиваюсь с такой задачей. Если кто может поделиться готовым решением (конфигами) подобной задачи, был бы очень благодарен."

anonymous
()
Ответ на: комментарий от anonymous

Ничё не понятно.
Почему на eth1 реальный адрес?
Какой IP выдается ppp0 (если модем в режиме бриджа, то должен подниматься PPPoE)?
Если вы хотите, чтобы вам помогли, вам придётся расписать всё подробнее.

По поводу алиасов: можно создавать правила для ip-адресов без указания интерфейсов, по крайней мере некоторые.

archont ★★★
()
Ответ на: комментарий от archont

Модем настраивался в соответствии с этой инструкцией: http://www.d-link.ru/technical/faq_xdsl_35.php режим N1 - bridging.

Там не pppoe, там IP over ATM (вроде так называется статический adsl). Сетевуха и d-link связаны кросс-кабелем. Я так понимаю что в режиме моста d-link общается с сетевухой по Ethernet, а с мультиплексором провайдера уже по АТМ. Собственно поэтому на 2 сетевухе реальный ip. (Если накосячил в терминологии сильно не пинайте).

На linux 2 сетевые карты. 1 - линк к провайдеру (eth1) через adsl модем, 2 - в локальную сеть (eth0, воткнут в свич). На linux включен роутинг.

Понадобилось завести voip шлюз и вынести часть сервисов на реальные адреса (а не за NAT как сейчас) поэтому к нам будет маршрутизироваться со стороны провайдера еще одна подсеть с реальными ip.

Соответственно этот voip-шлюз (с реальным IP) будет за linux-роутером и также включен в свич. Т.е. доступен он будет для линукса через eth0. Вот теперь стоит задача научить linux маршрутизировать эту новую подсеть в обе стороны (из инета в локалку и наоборот). Я подумал, что лучший вариант - поднять алиас eth0:1. Тогда не надо будет писать команды типа route add. Linux и так будет знать, что входящий пакет с адресом назначения 195.92.1.хх нужно будет кидать через eth0 (точнее через eth0:1).

Надеюсь теперь исходные данные получилось описать по-человечески.... Как правильно это организовать? А iptables смущает тем, что как бы он не начал убивать транзитные пакеты до подсети 195.92.1.xx.

anonymous
()
Ответ на: комментарий от anonymous

1) Если вы используете именно bridged режим, то вам просто не обойтись без PPPoE
2) Для общения через модем и с самим модемом ваш eth интерфейс и интерфейс модема (в разных режимах подымаются разные LAN интерфейсы) должны быть в одной подсети. Судя по тому, что вы тут написали, у вас вообще ничего работать не должно (или я ошибаюсь, и у вас всё работает?).
3) Какой именно режим работы модема и инкапсуляцию рекомендовал провайдер?
4) Далеко не всегда для нормальной работы VoIP необходима трансляция адресов. При работе с gnugk вполне можно обойтись без этого.

archont ★★★
()
Ответ на: комментарий от archont

> то вам просто не обойтись без PPPoE
И зачем оно надо на самой тачиле ? Для шлюза модем - это просто как hub/switch.

> Для общения через модем... должны быть в одной подсети
Какая подсеть ? Модем работает как мост, а не как маршрутизатор !!!

На счет gnugk - можно конечно попробовать и его, вполне возможно, что все получится без дополнительных внешних адресов. Если же все таки вы хотите сделать именно с кучей внешних адресов в локальной сети, тогда будет достаточно указать на шлюзе провайдера, что путь к этим адресам идет через ваш шлюз (а не напрямую), если же это делать не хочется/нельзя, тогда можно на eth1 сделать для этих адресов proxy arp: arp -Ds x.x.x.x eth1 pub
Далее просто не запрещать forward пакетов через шлюз, ну и конечно прописать маршруты (на шлюзе - route add -net/host ... dev eth0, на тачилах - route add default gw x.x.x.x).

spirit ★★★★★
()
Ответ на: комментарий от archont

2 archont

1) ppp не используется вообще.

2) все работает. на сетевухе прописан реальный ip.

3) используется bridged режим. Ethernet over ATM. RFC 1483.

4) вот как раз от NAT я и хочу уйти. Хочется балансировать нагрузку по ip, чтобы сделать voip трафик более приоритетным. Насколько я понял с помощью iproute2 это реально

2 spirit

Допустим (гипотетические адреса) route add -net 195.92.1.96 netmask 255.255.255.248 dev eth0 я на шлюзе пропишу и внутрь локалки он трафик зарулит, а на той же voip железке с адресом 195.92.1.100/29 шлюзом какой IP в этом случае прописывается? Я так понимаю что шлюзом у них всех должен быть адрес из той же подсети, а если алиас не поднимать, то такого адреса в сети не будет?

p.s. по поводу gnugk. Я так понял это программный шлюз и подразумевает что юзеры будут звонить с ip-телефонов? Тогда видимо это не подходит. У нас другая ситация: провайдер предоставляет voip шлюз в аренду (бесплатную) и этот шлюз одним шнурком втыкается в свич, а 4 другими - в мини-АТС. Юзеры звонят с обычных телефонов. Главное, как я понимаю, после установки voip отрезать часть полосы под телефонию и сделать этот трафик более приоритетным. Буду курить Linux advanced routing howto, там вроде примеры похожие описаны. Или я не прав и можно зарезервировать полосу и пробрасывать voip "вне очереди" другими программными средствами и как то проще чем через iproute2?

anonymous
()
Ответ на: комментарий от anonymous

gnugk - это GNU гейткипер с возможность проксирования VoIP по h323 протоколу, т.е. для терминалов/шлюзов, работающих по h323. Если у вас используются SIP девайсы, то он вам не поможет, или придётся еще надстраивать конвертер SIP-H323 от Asterix. gnugk можно запустить либо на вашем интернет-шлюзе в режиме прокси, либо можно зарегистрировать ваши терминалы/шлюзы на gnugk провайдера, и он сможет корректно работать с терминалами/шлюзами за NAT. Это чуть ли не единственный гейткипер для h323, имеющий подобную функциональность.

archont ★★★
()
Ответ на: комментарий от archont

Вроде разобрался с маршрутизацией и iptables. Получилось, что на шлюзе лучше всего использовать команду ip addr add xxx.xxx.xxx.xxx/yy dev eth0 вместо алиасинга через eth0:zzz. Тогда шлюз можно прописать везде и всегда и никакие eth0:zzz не создаются. Пинги уже бегают в обе стороны, всем спасибо.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.