Маршрутизация (Объединение двух сетей и расширение канала интернет)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Маршрутизация

Сообщение sergeyvp »

Здравствуйте!

Возник вопрос как правильно настроить шлюз для объединения двух локальных сетей и расширения канала интернет для одной из сети 192.168.1.0/24.
Также необходимо пробросить www сервер через 10.150.4.1

Все адреса и явки вымышлены все совпадения случайны.
Помогите кто чем может :)

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Маршрутизация

Сообщение Alex2ndr »

sergeyvp писал(а):
16.08.2009 20:05
Здравствуйте!

Возник вопрос как правильно настроить шлюз для объединения двух локальных сетей и расширения канала интернет для одной из сети 192.168.1.0/24.
Также необходимо пробросить www сервер через 10.150.4.1

Все адреса и явки вымышлены все совпадения случайны.
Помогите кто чем может :)

Требуются уточнения:
1. Какие локальные сети хотим объединять 10.150.4.0/24 и 192.168.1.0/24 или 10.150.10.0/24 и 192.168.1.0/24 а то из вашего сообщения и картинки не ясно.
2. Что значит расширение канала интернет для 192.168.1.0/24 - опишите подробнее чего хотите а то мне не ясно.
3. Вы осознаете что пробрасывать www сервер придется не только через 10.150.4.1 но и через 10.150.4.250 или же просто через 192.168.1.1. Вам выгоднее пробросить именно на канал на котором сидит 10.150.4.1?
4. Средства вас тоже интересуют (в смысле програмные) или вам принцип нужен?
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Маршрутизация

Сообщение sergeyvp »

Alex2ndr писал(а):
16.08.2009 20:53
Требуются уточнения:
1. Какие локальные сети хотим объединять 10.150.4.0/24 и 192.168.1.0/24 или 10.150.10.0/24 и 192.168.1.0/24 а то из вашего сообщения и картинки не ясно.
2. Что значит расширение канала интернет для 192.168.1.0/24 - опишите подробнее чего хотите а то мне не ясно.
3. Вы осознаете что пробрасывать www сервер придется не только через 10.150.4.1 но и через 10.150.4.250 или же просто через 192.168.1.1. Вам выгоднее пробросить именно на канал на котором сидит 10.150.4.1?
4. Средства вас тоже интересуют (в смысле програмные) или вам принцип нужен?


1. Объединить нужно 10.150.4.0/24 и 192.168.1.0/2, думаю 10.150.10.0/24 автоматом подключится так как её уже видно из 10.150.4.0/24
2. В инете видел инструкцию как из двух каналов сделать один широкий, но у меня та инструкция не заработала, то есть нужно чтобы инет поступал по двум картам на шлюз а в сеть одним толcтым каналом.
3. через 10.150.4.1 меня провайдер пробросит
4. Нужна любая помощь, я в принципе понимаю как это всё сделать, но много голов лучше чем одна, может кто-то подскажет что-то новое и интересное, с iptables в принципе знаком на начальном уровне, про route add тоже вроде читал.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Маршрутизация

Сообщение Alex2ndr »

sergeyvp писал(а):
16.08.2009 22:37
1. Объединить нужно 10.150.4.0/24 и 192.168.1.0/2, думаю 10.150.10.0/24 автоматом подключится так как её уже видно из 10.150.4.0/24
2. В инете видел инструкцию как из двух каналов сделать один широкий, но у меня та инструкция не заработала, то есть нужно чтобы инет поступал по двум картам на шлюз а в сеть одним толcтым каналом.
3. через 10.150.4.1 меня провайдер пробросит
4. Нужна любая помощь, я в принципе понимаю как это всё сделать, но много голов лучше чем одна, может кто-то подскажет что-то новое и интересное, с iptables в принципе знаком на начальном уровне, про route add тоже вроде читал.

1. Теоретически сети 10.150.4.0/24 и 192.168.1.0/24 должны уже быть объединены ибо ваш шлюз смотрит в обе и соотв в его таблице маршрутизации должны быть записи как добраться до обоих( можно проверить набрав route -n ). Если еще не работает то возможно просто выключена пересылка пакетов между интерфейсами (включается командой echo 1 > /proc/sys/net/ipv4/ip_forward) или что-то с настройкам фаера.
Думаю что автоматом сети 10.150.10.0/24 и 192.168.1.0/24 не соединяться если не настроена какая-нить динамическая маршрутизация. Предлагаю постепенно разбираться.
2. Боюсь что не знаю как это сделать программными средствами. Слышал о том что такой фокус можно реализовать на cisco с помощью load balancing (цена вопроса от 10000 енотов) но поскольку не имею даже ccna то пас. Может еще кто поможет.
3. Тогда все просто - добавляете в iptables на вашем шлюзе след команду

Код: Выделить всё

iptables -t nat -A PREROUTING -p tcp --dport 80 -d 10.150.4.250 -j DNAT --to-destination 192.168.1.4

таким способом вы перебрасываете все запросы приходящие на 80 порт адреса 10.150.4.250 на ваш веб сервер с адресом 192.168.1.4
Только не забудьте про echo 1 > /proc/sys/net/ipv4/ip_forward
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Маршрутизация

Сообщение sergeyvp »

Alex2ndr писал(а):
16.08.2009 23:04
sergeyvp писал(а):
16.08.2009 22:37
1. Объединить нужно 10.150.4.0/24 и 192.168.1.0/2, думаю 10.150.10.0/24 автоматом подключится так как её уже видно из 10.150.4.0/24
2. В инете видел инструкцию как из двух каналов сделать один широкий, но у меня та инструкция не заработала, то есть нужно чтобы инет поступал по двум картам на шлюз а в сеть одним толcтым каналом.
3. через 10.150.4.1 меня провайдер пробросит
4. Нужна любая помощь, я в принципе понимаю как это всё сделать, но много голов лучше чем одна, может кто-то подскажет что-то новое и интересное, с iptables в принципе знаком на начальном уровне, про route add тоже вроде читал.

1. Теоретически сети 10.150.4.0/24 и 192.168.1.0/24 должны уже быть объединены ибо ваш шлюз смотрит в обе и соотв в его таблице маршрутизации должны быть записи как добраться до обоих( можно проверить набрав route -n ). Если еще не работает то возможно просто выключена пересылка пакетов между интерфейсами (включается командой echo 1 > /proc/sys/net/ipv4/ip_forward) или что-то с настройкам фаера.
Думаю что автоматом сети 10.150.10.0/24 и 192.168.1.0/24 не соединяться если не настроена какая-нить динамическая маршрутизация. Предлагаю постепенно разбираться.
2. Боюсь что не знаю как это сделать программными средствами. Слышал о том что такой фокус можно реализовать на cisco с помощью load balancing (цена вопроса от 10000 енотов) но поскольку не имею даже ccna то пас. Может еще кто поможет.
3. Тогда все просто - добавляете в iptables на вашем шлюзе след команду

Код: Выделить всё

iptables -t nat -A PREROUTING -p tcp --dport 80 -d 10.150.4.250 -j DNAT --to-destination 192.168.1.4

таким способом вы перебрасываете все запросы приходящие на 80 порт адреса 10.150.4.250 на ваш веб сервер с адресом 192.168.1.4
Только не забудьте про echo 1 > /proc/sys/net/ipv4/ip_forward


1. Вывод команды route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
10.150.4.248 0.0.0.0 255.255.255.248 U 1 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
0.0.0.0 10.150.4.249 0.0.0.0 UG 0 0 0 eth1

2. ip route add default nexthop via шлюз1 nexthop via шлюз2
У меня эта команда выдаёт
RTNETLINK answers: File exists
что это значит я не понял

3. Попробую в понедельник, когда реальный ИП дадут
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Маршрутизация

Сообщение Alex2ndr »

sergeyvp писал(а):
16.08.2009 23:29
1. Вывод команды route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
10.150.4.248 0.0.0.0 255.255.255.248 U 1 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
0.0.0.0 10.150.4.249 0.0.0.0 UG 0 0 0 eth1

2. ip route add default nexthop via шлюз1 nexthop via шлюз2
У меня эта команда выдаёт
RTNETLINK answers: File exists
что это значит я не понял

3. Попробую в понедельник, когда реальный ИП дадут

1. Ну да маршруты до обех сетей есть - вот
10.150.4.248 0.0.0.0 255.255.255.248 U 1 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
соотв в 10.150.4.248/255.255.255.248 через eth1
и в 192.168.1.0/255.255.255.0 через eth0
вывод cat /proc/sys/net/ipv4/ip_forward дайте
2. Идею понимаю но опыта использования ее у меня нету. Ушел курить BGP
3. Ждемс
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Маршрутизация

Сообщение sergeyvp »

Alex2ndr писал(а):
17.08.2009 11:06
2. Идею понимаю но опыта использования ее у меня нету. Ушел курить BGP
3. Ждемс

Вот и у меня идея есть а опыта нет :)

cat /proc/sys/net/ipv4/ip_forward
0
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: Маршрутизация

Сообщение danger08 »

Alex2ndr писал(а):
17.08.2009 11:06
2. Идею понимаю но опыта использования ее у меня нету. Ушел курить BGP

[OFFTOPIC]
Зачем, если не секрет?
Я к тому, что задумка похвальная, но для начала надо четко разобраться со статическим роутингом - а потом браться за bgp.
[OFFTOPIC]
Блогосайт - http://www.fateyev.com
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Маршрутизация

Сообщение sergeyvp »

Кажется провайдер мне облегчил жизнь :)
Теперь на eth1 висит внешний интернет ip
Соответственно сервер я уже пробросил, но вопрос по объединению двух каналов в один остался открытым :)
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Маршрутизация

Сообщение sergeyvp »

Сейчас скачал firefox скорость была 1 мб/с
Может у меня уже по умолчанию оба канала объединились, кто знает как это можно проверить?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Маршрутизация

Сообщение Alex2ndr »

sergeyvp писал(а):
17.08.2009 15:25
cat /proc/sys/net/ipv4/ip_forward
0
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied

Это говорит о том что у вас запрещена пересылка между интерфейсами. Маршрутизатор из него не получиться если не включить ее.
Можно попробовать так

Код: Выделить всё

su -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

только нужно знать пароль рута. Ну или просто от рута
Соответственно сервер я уже пробросил

Вы его пробросили(в смысле применили данное мной правило) с /proc/sys/net/ipv4/ip_forward=0 ????
это работать не должно бы.
Сейчас скачал firefox скорость была 1 мб/с
Может у меня уже по умолчанию оба канала объединились, кто знает как это можно проверить?

tcpdump запустить на обоих шлюзах/каналах и посмотреть куда пакеты идут.

[OFFTOPIC]
Зачем, если не секрет?
Я к тому, что задумка похвальная, но для начала надо четко разобраться со статическим роутингом - а потом браться за bgp
[OFFTOPIC]

Ну статическую маршрутизацию я себе более-менее представляю. Но как можно добиться балансировки нагрузки без динамической я не что-то не могу представить. Разве что пакетным фильтром типа этого - http://www.opennet.ru/base/net/linux_link_balance.txt.html. Но к маршрутизации это не имеет отношения.
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Маршрутизация

Сообщение sergeyvp »

Alex2ndr писал(а):
17.08.2009 21:06
Вы его пробросили(в смысле применили данное мной правило) с /proc/sys/net/ipv4/ip_forward=0 ????
это работать не должно бы.

нет, я сначала выполнил команду по пробросу 80 порта, а потом просто открыл в текстовом редакторе /proc/sys/net/ipv4/ip_forward с правами рута и вписал туда 1 :)
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Маршрутизация

Сообщение sergeyvp »

Проверил сеть утилитой Wireshark интернет трафик идёт только через eth1, так что вопрос по объединению кналов через две сетевые карты по прежнему открыт.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Маршрутизация

Сообщение Alex2ndr »

sergeyvp писал(а):
17.08.2009 21:12
нет, я сначала выполнил команду по пробросу 80 порта, а потом просто открыл в текстовом редакторе /proc/sys/net/ipv4/ip_forward с правами рута и вписал туда 1 :)

можно и так но имхо неудобно. Обычно пишется скриптик в который все это засовывается а он суется в автозагрузку соотв. Типа такого:

Код: Выделить всё

#!/bin/sh

# Переменная, задающая путь к файлу запуска iptables.
IPT="/sbin/iptables"

start_fw()
{
    # Включить перенаправление пакетов через ядро.
    echo 1 > /proc/sys/net/ipv4/ip_forward

    # Проброс порта к внутреннему серверу.
    $IPT -t nat -A PREROUTING -p tcp --dport 80 -d 10.150.4.250 -j DNAT --to-destination 192.168.1.4
}

stop_fw()
{
    $IPT -F
    $IPT -X
    $IPT -t nat -F
    $IPT -t nat -X
    $IPT -t mangle -F
    $IPT -t mangle -X
    $IPT -P INPUT ACCEPT
    $IPT -P FORWARD ACCEPT
    $IPT -P OUTPUT ACCEPT
    echo 0 > /proc/sys/net/ipv4/ip_forward
}

case "$1" in
start)    echo -n "Starting firewall: iptables"
    start_fw
        echo "."
;;
stop)    echo -n "Stopping firewall: iptables"
    stop_fw
        echo "."
     ;;
save)    echo -n "Saving firewall: iptables"
    iptables-save > /etc/rules-save
    echo "."
;;
restart) echo -n "Restarting firewall: iptables"
        stop_fw
        start_fw
    echo "."
     ;;
*)    echo "Usage: $0 start|stop|restart"
        exit 1
     ;;
esac
exit 0

Это конечно чуть более чем нужно - но в качестве заготовки для дальнейшего заполнения пойдет.

Проверил сеть утилитой Wireshark интернет трафик идёт только через eth1, так что вопрос по объединению кналов через две сетевые карты по прежнему открыт.

А вы вообще как хотите чтоб пакеты ходили? Нарисуйте себе что-ли. И вот вам статейка - http://www.opennet.ru/base/net/linux_link_balance.txt.html . Можно попробовать сделать как там вот только наверно это будет сильно грузить сервер - у вас трафик то большой будет?

А с маршрутизацией между сетями разобрались?
Спасибо сказали:
alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Re: Маршрутизация

Сообщение alternativshik »

Хм...а есл попробовать объединить 2 инет интерфейса в 1 виртуальный, попробовать настроить шейпер..пока я себе это смутно представляю, и даже считаю немного бредом =) но мож че выйдет...
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Маршрутизация

Сообщение sergeyvp »

Alex2ndr писал(а):
17.08.2009 22:06
А вы вообще как хотите чтоб пакеты ходили? Нарисуйте себе что-ли. И вот вам статейка - http://www.opennet.ru/base/net/linux_link_balance.txt.html . Можно попробовать сделать как там вот только наверно это будет сильно грузить сервер - у вас трафик то большой будет?

А с маршрутизацией между сетями разобрались?


За скрипт огромное спасибо!

С маршрутизацией пока вроде всё в порядке.
Трафик у меня не большой, просто есть возможность подключить несколько провайдеров по низкой цене, вот я и подумал а нельзя ли сделать из нескольких каналов один толстый, в принципе это не так уж и важно, просто ради любопытства.

alternativshik писал(а):
17.08.2009 22:07
Хм...а есл попробовать объединить 2 инет интерфейса в 1 виртуальный, попробовать настроить шейпер..пока я себе это смутно представляю, и даже считаю немного бредом =) но мож че выйдет...


На слове "шейпер" мой мозг взорвался :)
Спасибо сказали:
o6s
Сообщения: 187

Re: Маршрутизация

Сообщение o6s »

Я знаю как сделать на cisco. Завтра попробую собрать стенд на nix*.... вдруг что получиться.
http://www.cisco.com/en/US/tech/tk648/tk36...0808d2b72.shtml вот это посмотреть в качестве понимания теории, хотя и не зная возможно ли такое на nix.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Маршрутизация

Сообщение Alex2ndr »

sergeyvp писал(а):
17.08.2009 22:23
Трафик у меня не большой, просто есть возможность подключить несколько провайдеров по низкой цене, вот я и подумал а нельзя ли сделать из нескольких каналов один толстый, в принципе это не так уж и важно, просто ради любопытства.

Ну тогда вот вам мой совет - забудьте об этой идее. Аргументы:
1. Чем проще система тем меньше вероятность отказа одного из компонентов. Если у вас будет обычный нат то к серверу можно не подходить годами.
2. Уровень сложности этой задачи на порядок выше чем для остальных озвученных вами задач. Знаний она соотв тоже требует на порядок больше.(Например моих недостаточно в то время как остальные задачи меня бы не затруднили)
3. Еслиб все в таком решении было просто никто бы циски не покупал :)
4. Можно несколько подключений использовать и по другому. Например в качестве резервного канала. Или по ip раскидать. Эти по этому каналу - те по другому. Это будет гораздо легче.

o6s писал(а):
17.08.2009 22:32
Я знаю как сделать на cisco. Завтра попробую собрать стенд на nix*.... вдруг что получиться.
http://www.cisco.com/en/US/tech/tk648/tk36...0808d2b72.shtml вот это посмотреть в качестве понимания теории, хотя и не зная возможно ли такое на nix.

Ага - в 4-м сообщении темы я это и имел в виду. Вы еще цену на это озвучьте а то я с потолка взял - как то не в курсе цен на продукцию cisco. А вот насчет стенда и теоретической разработки интересно - я тоже уже подумал о стенде (в вирт сети 4-5 машин) тока пока руки не доходят. Поделитесь результатами?
Спасибо сказали:
Аватара пользователя
Hero
Сообщения: 7
ОС: SLES, IOS

Re: Маршрутизация

Сообщение Hero »

Друзья! Чтение документации по BGP, Вам не сильно поможет. При помощи BGP вы сможете конечно рулить входящим трафиком, при условии, что операторы связи будут готовы отдавать вам BGP, а это бывает далеко не всегда. Перед использованием BGP Вам следует зарегистрировать свою AS, получить объект LIR\ORG + провайдера независимые IP и только тогда включать BGP. По русски говоря, у Вас нет технической возможности рулить входящим трафиком. Только исходящим, а это обычный LSB\LB.
SLES\IOS\CCIE\WWW.MTT.SU
Характер скверный. Не женат.
Спасибо сказали:
expdot
Сообщения: 176
ОС: Fedora 13, Win Vista

Re: Маршрутизация

Сообщение expdot »

sergeyvp, есть вариант пустить одну подсеть через один шлюз, а другую соответственно через другой
ip и разные таблицы маршрутизации
lartc.org/howto
Спасибо сказали:
Аватара пользователя
Encore
Сообщения: 656
Статус: loading..............
ОС: Debian

Re: Маршрутизация

Сообщение Encore »

не уверен что точно в тему, но посмотрите:
объединение двух каналов в один
Спасибо сказали: