Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Коммуникации и сетевые технологии »
Маршрутизация

Версия для печати (настроить)

Новая тема | Написать ответ

Подписаться

Автор Тема:   Маршрутизация
bars
unregistered
написано 23 Сентября 2005 15:08  ПравкаОтветитьIP

Как-то не приходилось дробить сети, а тут возникла необходимость - посему такой вопрос.
Имеется сеть 192.168.10.0/255.255.255.0
В нее есть несколько шлюзов.
На пример: 172.17.1.59, 172.17.1.71
На машинах: 192.168.10.30, 192.168.10.46 соответственно
Необходимо организовать хождение групп адресов внутри этой сети через определенные шлюзы не трогая маску этой сети.
Как я себе представил это должно выглядеть примерно так:
На роутере:
ip route 192.168.10.16 255.255.255.240 FastEthernet1/0 172.17.1.59
ip route 192.168.10.32 255.255.255.240 FastEthernet1/0 172.17.1.71
Сответственно через 172.17.1.59 на 192.168.10.30 будет маршрут для адресов 192.168.10.17-30.
А через 172.17.1.71 на 192.168.10.46 будет маршрут для адресов 192.168.10.33-46.
Теперь если на машинах диапазона 192.168.10.17-29 установить шлюз по умолчанию 192.168.10.30, а на машинах 192.168.10.33-45 - 192.168.10.46 будет ли все нормально работать не устанавливая на машинах из сети 192.168.10.0/255.255.255.0 маску 255.255.255.240?
Вот собственно такой вопрос потому как эксперементировать возможности нет.

ZAlex
демагог и циркач (с)

Сообщений: 1424
Откуда: Питер
Регистрация: Июнь 2001

написано 23 Сентября 2005 17:01ИнфоПравкаОтветитьIP

Имеется сеть 192.168.10.0/255.255.255.0
В нее есть несколько шлюзов.
На пример: 172.17.1.59, 172.17.1.71

Это уже в принципе не возможно.
Шлюз (любой) ДОЛЖЕН быть в данной подсети.

Теперь если на машинах диапазона 192.168.10.17-29 установить шлюз по умолчанию 192.168.10.30, а на машинах 192.168.10.33-45 - 192.168.10.46 будет ли все нормально работать не устанавливая на машинах из сети 192.168.10.0/255.255.255.0 маску 255.255.255.240?
нет. не будет. маска 255.255.255.0 это сеть с 192.168.10.1 по 192.168.10.244
Вообще, см. ссылка? непример

Добавление от 23 Сентября 2005 17:02:

Вообще, опиши-ка подробнее. А то непонятки сплошные пока что.

P. Skif
Member

Сообщений: 363
Регистрация: Декабрь 2000

написано 23 Сентября 2005 23:59ИнфоПравкаОтветитьIP

ZAlex
На машинах: 192.168.10.30, 192.168.10.46 соответственно - формально все правильно. Просто он еще и адреса внешние нам сообщил... а не надо было!

Меня смущает другое.

ip route 192.168.10.16 255.255.255.240 FastEthernet1/0 172.17.1.59
ip route 192.168.10.32 255.255.255.240 FastEthernet1/0 172.17.1.71

- это ведь для "наружного" админа (который в сети 172.17.1), а не того, кто сеть 192.168.10 админит.

DJ Junk
HerrEthik

Сообщений: 1438
Откуда: Санкт-Петербург
Регистрация: Январь 2003

написано 26 Сентября 2005 20:25ИнфоПравкаОтветитьIP

Две группы рабочих станций с адресами 192.168.10.17-192.168.10.29 (группа А) и 192.168.10.33-192.168.10.45 (группа Б) и масками размера класса С (255.255.255.0) будут нормально работать (и между собой, и с хостами в других сетях через свои [прописанные на них] шлюзы: 192.168.10.30 для группы А и 192.168.10.46 для группы Б), если не будут использоваться другие адреса в сети 192.168.10.0/24 (особенно 192.168.10.16, 192.168.10.31, 192.168.10.32 и 192.168.10.47).

...теоритически...

А для чего такие сложности? Если для ограничения доступа к группам хостов без ползанья по станциям, то отсутствие проблем не гарантирую.

[Это сообщение изменил DJ Junk (изменение 26 Сентября 2005 21:04).]

mva26
Junior Member

Сообщений: 1
Регистрация: Октябрь 2005

написано 01 Октября 2005 03:32ИнфоПравкаОтветитьIP

А вот с такой конфигурацией кто-нибудь встречался?
Есть сервер с тремя платами:
1 плата (1 провайдер, сеть aaa.bbb.ccc.28/30) (дает мне диапазон aaa.bbb.ddd.0/24)
2 плата (2 провайдер, сеть eee.fff.hhh.216/30) (дает мне диапазон eee.fff.ggg.0/24)
3 плата (локальная сеть)
Задача: поднять Vlanы с маской /29 и направить соответственно:
диапазон eee.fff.ggg. в eee.fff.hhh.216
диапазон aaa.bbb.ddd. в aaa.bbb.ccc.28

В данный момент с задачей: диапазон eee.fff.ggg. в eee.fff.hhh.216
все работает,
а вот как добавить - диапазон aaa.bbb.ddd. в aaa.bbb.ccc.28
Вроде можно сделать подтаблицы маршрутизации, но как не знаю.

ZAlex
демагог и циркач (с)

Сообщений: 1428
Откуда: Питер
Регистрация: Июнь 2001

написано 03 Октября 2005 09:31ИнфоПравкаОтветитьIP

сеть aaa.bbb.ccc.28/30 (дает мне диапазон aaa.bbb.ddd.0/24)
Заблуждение. :-)
Сеть aaa.bbb.ccc.28/30 дает всего 2 хоста aaa.bbb.ccc.29 и aaa.bbb.ccc.30 (бродкаст aaa.bbb.ccc.31).
Аналогично eee.fff.hhh.216/30.

Задача: поднять Vlanы с маской /29 и направить соответственно:
диапазон eee.fff.ggg. в eee.fff.hhh.216
диапазон aaa.bbb.ddd. в aaa.bbb.ccc.28

См. п.1

В данный момент с задачей: диапазон eee.fff.ggg. в eee.fff.hhh.216
все работает,
а вот как добавить - диапазон aaa.bbb.ddd. в aaa.bbb.ccc.28
Вроде можно сделать подтаблицы маршрутизации, но как не знаю.

Ты бы задачу подрасписал подробнее....
А вообще, см. статью ссылка

mva26
Junior Member

Сообщений: 2
Регистрация: Октябрь 2005

написано 03 Октября 2005 15:15ИнфоПравкаОтветитьIP

Да. Это я ошибся при написании. Верить /29.
Еще раз по задаче.
Сделать Vlanы в предоставляемых диапазонах в локальной сети:
1 провайдер - aaa.bbb.ddd.0/24 (это aaa.bbb.ddd.0/29, aaa.bbb.ddd.8/29 и т.д)
2 провайдер - eee.fff.ggg.0/24 (это eee.fff.ggg.0/29, eee.fff.ggg.8/29 и т.д)
После этого направить Vlanы соответственно:
aaa.bbb.ddd.0/29, aaa.bbb.ddd.8/29 и т.д на 1 провайдера aaa.bbb.ccc.28/30
eee.fff.ggg.0/29, eee.fff.ggg.8/29 и т.д на 2 провайдера eee.fff.hhh.216/30

Добавление от 03 Октября 2005 15:23:

И все-таки поспешил сказать да.
Все правильно было первоначально.
Провайдер дает один адрес на внешнюю сеть. Поэтому сеть aaa.bbb.ccc.28/30, а вот дает он мне дипапазон aaa.bbb.ddd.0/24 на внутреннюю сеть.

ZAlex
демагог и циркач (с)

Сообщений: 1430
Откуда: Питер
Регистрация: Июнь 2001

написано 03 Октября 2005 16:01ИнфоПравкаОтветитьIP

Ну так и шуруй по ссылке выше. Там все подробно раcписано.
Сделать VLAN-ы - это в мануал к свичам.

DJ Junk
HerrEthik

Сообщений: 1441
Откуда: Санкт-Петербург
Регистрация: Январь 2003

написано 06 Октября 2005 01:29ИнфоПравкаОтветитьIP

Лично я так и не понял задачу. Хоть какой-никакой рисуночек бы...
VLANы кто потом разруливать будет?

mva26
Junior Member

Сообщений: 3
Регистрация: Октябрь 2005

написано 06 Октября 2005 02:06ИнфоПравкаОтветитьIP

Можно еще раз.
На машине 3 платы.
1 плата (1 провайдер, сеть aaa.bbb.ccc.28/30, дает один адрес для выхода в Интерент) (дает мне диапазон aaa.bbb.ddd.0/24 для внутренней сети)
2 плата (2 провайдер, сеть eee.fff.hhh.216/30, дает один адрес для выхода в Интерент) (дает мне диапазон eee.fff.ggg.0/24 для внутренней сети)
3 плата (локальная сеть)
В данный момент поднято несколько Vlanов (eee.fff.ggg.0/29, eee.fff.ggg.8/29 и т.д) и роздано клиентам. Они выходят в Интерент через eee.fff.hhh.216/30.
Хочу еще поднять несколько Vlanов, это то не проблема (aaa.bbb.ddd.0/29, aaa.bbb.ddd.8/29 и т.д). Надо чтобы они выходили в Интерент через aaa.bbb.ccc.28/30

Статью ссылка посмотрел. Но хотелось бы для Линукса статью с iptables.

Добавление от 06 Октября 2005 02:08:

Рисунок могу в Visio нарисовать, если и теперь не понятно.

DJ Junk
HerrEthik

Сообщений: 1443
Откуда: Санкт-Петербург
Регистрация: Январь 2003

написано 06 Октября 2005 20:11ИнфоПравкаОтветитьIP

mva26
Я объясню откуда у меня проблема с пониманием.
1) Итак, имеется Linux-сервер с тремя сетевыми картами:
2) На первой поднят IP-интерфейс с адресом aaa.bbb.ccc.28/30 в двуххостовую сетку в сторону провайдера №1. Этот провайдер считает, что за этим интерфейсом находится сеть aaa.bbb.ddd.0/24 и прописывает соответствующий статический маршрут от себя в Вашу сторону.
3) На второй поднят IP-интерфейс с адресом eee.fff.hhh.216/30 в двуххостовую сетку в сторону провайдера №2. Этот провайдер считает, что за этим интерфейсом находится сеть eee.fff.ggg.0/24 и прописывает соответствующий статический маршрут от себя в Вашу сторону.
4) На третьей карте (внутренней) сколько прописано IP-интерфейсов? Я так понимаю, что на ней должно быть поднято по одному IP-интерфейсу в каждом из VLANов (подсети eee.fff.ggg.0/29, eee.fff.ggg.8/29 и т.д; и в будущем подсети aaa.bbb.ddd.0/29, aaa.bbb.ddd.8/29 и т.д).
5) Третья сетевая карта поддерживает стандарт 802.1q?
6) Сколько VLANов (из описания карты и версии Linux) можно поднять на ней? И сколько Вы хотите поднять VLANов?
7) Вы хотите сделать фильтрацию с помощью IPTables?
8) С провайдерами Вы хотите общаться тоже с помощью статических маршрутов?
9) Как будет выглядеть схема выше сетевого уровня? Будет ли проксирование или что-нибудь еще/другое? Куда и как (зачем) клиенты будут слать пакеты?
10) Планируешь ли использовать NAT?

[Это сообщение изменил DJ Junk (изменение 06 Октября 2005 20:25).]

mva26
Junior Member

Сообщений: 6
Регистрация: Октябрь 2005

написано 07 Октября 2005 02:12ИнфоПравкаОтветитьIP

На всякий случай вот netstat с работающего сервера:

eee.fff.hhh.216 0.0.0.0 255.255.255.252 U 0 0 0 eth2
eee.fff.ggg.24 0.0.0.0 255.255.255.248 U 0 0 0 vlan0021
eee.fff.ggg.16 0.0.0.0 255.255.255.248 U 0 0 0 vlan0020
eee.fff.ggg.40 0.0.0.0 255.255.255.248 U 0 0 0 vlan0023
eee.fff.ggg.32 0.0.0.0 255.255.255.248 U 0 0 0 vlan0022
eee.fff.ggg.48 0.0.0.0 255.255.255.248 U 0 0 0 vlan0024
eee.fff.ggg.88 0.0.0.0 255.255.255.248 U 0 0 0 vlan0029
eee.fff.ggg.80 0.0.0.0 255.255.255.248 U 0 0 0 vlan0028
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 eee.fff.hhh.218 0.0.0.0 UG 0 0 0 eth2


5) Vlanы уже работают
6) 256/4=64, 64*2=128. Это максимальное кол-во. Все зависит от кол-ва адресов в Vlanе.
7) Да. Или что-то другое.
8) Я думаю что будет проще. см. netstat.
9) Они выходят в Интернет. Есть свои web-сервера.
10) Нет.


Вот статья. Первый кусок подошел бы мне, только непонятно как "Создадим две дополнительные таблицы маршрутизации, скажем T1 и T2".


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

код:

___________ __
| | __/ \__
__________| Провайдер |__________/ \_
___ | if1 | 1 | _/ \_
___/ \__ _______|_______ |___________| / \
_/ \__ | | / \
/ \ | Linux | | |
| Локальная сеть |____| маршрутизатор| | INTERNET |
\_ __/ if3 | | | |
\__ __/ | | \ /
\___/ |_______________| ____________ \_ _/
| if2 | | \_ _/
|__________| Провайдер |___________\__ __/
| 2 | \_/
|____________|

Первый вопрос заключается в том, как организовать маршрутизацию таким образом, чтобы ответы на запросы, приходящие через определенного провайдера, скажем ровайдера 1, уходили через того же провайдера.
Давайте определим некоторые переменные. Пусть $IF1 будет именем первого интерфейса (if1 на рисунке), а $IF2 -- именем второго. Тогда $IP1 будет IP адресом $IF1 , а $IP2 -- IP адресом $IF2 . Далее, $P1 это IP-адрес шлюза провайдера 1, а $P2 -- IP адрес шлюза провайдера 2. Наконец, $P1_NET это IP сеть, к которой принадлежит $P1 , а $P2_NET -- сеть, к которой принадлежит $P2 .
Создадим две дополнительные таблицы маршрутизации, скажем T1 и T2. Добавим их в файл /etc/iproute2/rt_tables. Теперь можно настроить эти таблицы следующими командами:
ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2

Ничего особо эффектного, маршрут к шлюзу и маршрут по-умолчанию через этот шлюз. Точно так же, как и в случае одного провайдера, но по таблице на каждого провайдера. Заметьте, что маршрута к сети, в которой находится шлюз достаточно, потому что он определяет как найти все хосты в этой сети, включая сам шлюз.
Теперь нужно настроить главную таблицу маршрутизации. Хорошо бы маршрутизировать пакеты для сетей провайдеров через соответствующие интерфейсы. Обратите внимание на аргумент `src', который обеспечивает правильный выбор исходного IP-адреса.
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

Теперь задаем маршрут по умолчанию:
ip route add default via $P1

Зададим правила маршрутизации. Они будут отвечать за то, какая таблица будет использоваться при маршрутизации. Вы хотите, чтобы пакет с определенным адресом источника маршрутизировался через соответствующий интерфейс:
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2

Этот набор команд обеспечивает маршрутизацию ответов через интерфейс, на котором был получен запрос.
Заметка читателя Рода Роака (Rod Roark): ' если $P0_NET это локальная сеть, а $IF0 -- соответствующий ей интерфейс, желательно задать следующие команды:
ip route add $P0_NET dev $IF0 table T1
ip route add $P2_NET dev $IF2 table T1
ip route add 127.0.0.0/8 dev lo table T1
ip route add $P0_NET dev $IF0 table T2
ip route add $P1_NET dev $IF1 table T2
ip route add 127.0.0.0/8 dev lo table T2
Итак, мы рассмотрели очень простой пример. Он будет работать для всех процессов, выполняющихся на маршрутизаторе и для локальной сети, если настроено преобразование адресов (NAT/masquerading). В противном случае, вам будет необходим диапазон IP адресов обоих провайдеров, или выполнять маскирование для одного из провайдеров. В любом случае, вы можете задать правила выбора провайдера для каждого конкретного адреса вашей локальной сети.

4.2.2. Распределение нагрузки.

Второй вопрос заключается в балансировке нагрузки между двумя провайдерами. Это не сложно, если у вас уже настроен раздельный доступ, описанный в предыдущем разделе.
Вместо выбора одного из провайдеров в качестве маршрута по-умолчанию, вы настраиваете т.н. многолучевой (multipath) маршрут. В стандартном ядре это обеспечит балансировку нагрузки между двумя провайдерами. Делается это следующим образом (повторюсь, мы основываемся на примере из раздела Раздельный доступ):
ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
nexthop via $P2 dev $IF2 weight 1

Результатом команды будет попеременный выбор маршрута по-умолчанию. Вы можете изменить параметр weight, так чтобы один из провайдеров получал большую нагрузку.
Обратите внимание, что балансировка не будет идеальной, так как она основывается на маршрутах, а маршруты кэшируются. Это означает, что маршруты к часто посещаемым сайтам не будут проходить через разных провайдеров.
Если вы действительно интересуетесь этим, вам стоит посмотреть на патчи Юлиана Анастасова (Julian Anastasov), расположеные по адресу ссылка . Они могут вам помочь.

[Это сообщение изменил Junk (изменение 10 Октября 2005 09:11).]

mva26
Junior Member

Сообщений: 7
Регистрация: Октябрь 2005

написано 07 Октября 2005 02:15ИнфоПравкаОтветитьIP

код:

___________ __
| | __/ \__
__________| Провайдер |__________/ \_
___ | if1 | 1 | _/ \_
___/ \__ _______|_______ |___________| / \
_/ \__ | | / \
/ \ | Linux | | |
| Локальная сеть |____| маршрутизатор| | INTERNET |
\_ __/ if3 | | | |
\__ __/ | | \ /
\___/ |_______________| ____________ \_ _/
| if2 | | \_ _/
|__________| Провайдер |___________\__ __/
| 2 | \_/
|____________|

Добавление от 07 Октября 2005 02:17:

Что-то не получается рисунок поместить.
Я думаю смысл понятен.

[Это сообщение изменил Junk (изменение 07 Октября 2005 21:39).]

ZAlex
демагог и циркач (с)

Сообщений: 1433
Откуда: Питер
Регистрация: Июнь 2001

написано 07 Октября 2005 09:18ИнфоПравкаОтветитьIP

Используй тег [ code ]

Добавление от 07 Октября 2005 10:34:

Но хотелось бы для Линукса статью с iptables.
ссылка
Не подойдет?

[Это сообщение изменил Junk (изменение 07 Октября 2005 21:40).]

mva26
Junior Member

Сообщений: 8
Регистрация: Октябрь 2005

написано 07 Октября 2005 15:52ИнфоПравкаОтветитьIP

Вечером почитаю.

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика