LINUX.ORG.RU
ФорумAdmin

маршрутизация двух и более сетей


0

1

Всем здравствуйте.

Есть проблема на маршрутизаторе поднятом на Linux.

Есть три сети.

  1. 192.168.0.0/24 (шлюз 192.168.0.111)
  2. 192.168.7.0/27 (шлюз 192.168.7.13)
  3. 10.0.0.0/8 (за NAT, шлюзом является 192.168.0.50)

Интерфейсы настроены таким образом:

/etc/network/interfaces auto lo iface lo inet loopback

iface eth0 inet static address 192.168.0.56 netmask 255.255.255.0

iface eth1 inet static address 192.168.7.2 netmask 255.255.255.224

(если что, к eth1 дописывал gateway 192.168.7.13 и к eth0 дописывал gateway 192.168.0.111, но это не помогало)

IP forward врубал: net.ipv4.ip_forward = 1

Настроил маршрутизацию, route -n показывает теперь такую таблицу:

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.7.0 192.168.7.13 255.255.255.224 UG 0 0 0 eth1

192.168.7.0 0.0.0.0 255.255.255.224 U 0 0 0 eth1

192.168.0.0 192.168.0.111 255.255.255.0 UG 0 0 0 eth0

192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

10.0.0.0 192.168.0.50 255.0.0.0 UG 0 0 0 eth0

Если пробовать из сети 192.168.0.0/24 пинговать другие две сети, то всё работает. Но если пробовать пинговать из сети 192.168.7.0/27 то работает только эта сама сеть, ни 192.168.0.0/24 ни 10.0.0.0/8 не видны. Где ошибка? Куда копать?

Более подробно о сети:

192.168.0.0/24 является сетью фирмы, машина 192.168.0.111 это шлюз на интернет.

192.168.7.0/27 является сетью удалённых офисов фирмы по городу, шлюзом на другие офисы машина 192.168.7.13

10.0.0.0/8 является сетью главного офиса в Москве. мы с ними «общаемся» через NAT на 192.168.0.50 машине.

Задача объединить сеть удалённых офисов фирмы и главную сеть фирмы в одну большую сеть (иными словами 192.168.7.0 и 192.168.0.0) без NAT, и дать возможность удалённым офисам заходить через NAT в сеть главного офиса в Москве. Для этого была поднята машина с IP: 192.168.0.65 , 192.168.7.2.


ИМХО, сформулировано мозголомно. Пояснение в конце слегка смягчает это. Но. Мне совсем не понятно, здесь:

Если пробовать из сети 192.168.0.0/24 пинговать другие две сети, то всё работает.

И как пингуется сеть за NAT'ом? Кроме шлюза ничего не должно быть доступно или это не NAT.
Так о чём же речь?

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

Позже разберёмся, сейчас я спать. Но в топологии где-то ошибка - у роутера 2 интерфейса, а от него 3 линии.

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

Что-то я не чего в твоеи схеме толком не чего не понял

1) Что за чудо сеть 10.0.0.0/8 у которого нет шлюза из 10.0.0.0/8 на «Linux router»? (токого не должно быть) или 10.0.0.0/8 == VPN соединением? 2) А если с 192.168.0.0/24 пинговать 192.168.7.0/27 то пинги есть ?

Tok ★★
()

10.0.0.0 192.168.0.50 255.0.0.0 UG 0 0 0 eth0

Это неправильно, уже сказали.

шлюзом на другие офисы машина 192.168.7.13

На 192.168.7.13 шлюзом до 192.168.0.0/24 должен быть 192.168.7.2, а на машинах в 192.168.7.0/24 соответственно должен быть маршрут до 192.168.0.0/24 через 192.168.7.13. Если все так, по идее между двумя сетями все должно работать в обе стороны.

И разбирайся с маршрутами до 10.0.0.0/8.

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

шлюзом на другие офисы машина 192.168.7.13

На 192.168.7.13 шлюзом до 192.168.0.0/24 должен быть 192.168.7.2

стоит.

В этом то вся и загвоздка, если я из 192.168.0.0/24 пингую 192.168.7.0/27 либо 10.0.0.0/8, то всё работает, Linux router свой хлеб отрабатывает. Но если я пытаюсь пинговать из сети 192.168.7.2/27 сеть 192.168.0.0/24 или 10.0.0.0/8 то ничего не работает, трассировка показывает:

1. 192.168.7.13

2. 192.168.7.2

3. *

4. *

и так до бесконечности.

Т.е. в одну сторону маршрутизатор работает (из сети 192.168.0.0/24) во все сети маршрутизирует, а вот из сети 192.168.7.0/27 он не пускает, будто маршруты не прописаны. Может я где-то в настройках или в маршрутах ошибся?

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

>Может я где-то в настройках или в маршрутах ошибся?
Что бы разораться, где ошибка, нужна правильная схема сети. Судя по адресам, должно быть так: http://ompldr.org/vODFwMA тогда маршруты надо прописывать на обоих роутерах.

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

Сделал как вы начертили, результат:

Трассировка с машины 192.168.0.2 на машину 192.168.0.3

1. 192.168.0.3 (т.е. даже к шлюзу не обращается идёт на прямую)

Трассировка с машины 192.168.0.2 на машину 10.25.0.25 (которая за NAT)

1. 192.168.0.56

2. 192.168.0.111

3. 192.168.0.50

4. 10.25.0.25

т.е. работает.

Трассировка с машины 192.168.0.2 на машину 192.168.7.40

1. 192.168.0.56

2. 192.168.7.13

3. 192.168.7.40

т.е. всё работает.

А теперь, всё тоже самое, но с машины 192.168.7.40.

Трассировка с машины 192.168.7.40 на машину 192.168.7.12

1. 192.168.7.13

2. 192.168.7.12

т.е. работает.

Трассировка с машины 192.168.7.40 на машину 192.168.0.2

1. 192.168.7.13

2. 192.168.7.2

3. *

4. *

5. *

и далее бесконечно, т.е. не работает.

Трассировка с машины 192.168.7.40 на машину 10.25.0.25

1. 192.168.7.13

2. 192.168.7.2

3. *

4. *

5. *

и далее бесконечно, т.е. не работает.

Получается ip_forwarding работает в одну сторону с сетевухи на роутере eth0 на eth1, а вот с eth1 на eth0, не работает.

Для сети 192.168.0.0/24 маршрутизация работает без нареканий во все другие сети, но для сети 192.168.7.0/27 не работает ip_forwarding (либо не правильно прописаны маршруты, так как сервер ничего не пробрасывает).

С IP маршрутизатора 192.168.7.2/27 не работает переброс на 192.168.0.0/24. А в топологи, большой разницы между вашей версией и тем как было не вижу, но сделал на всякий случай как вы сказали.

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

>А в топологи, большой разницы между вашей версией и тем как было не вижу
Дело не в том, как надо, а в том, как есть. Выше уже удивились по поводу сети без шлюза. Раз она хоть как-то работает, значит приведённая схема не соответствует действительности.

Трассировка с машины 192.168.7.40 на машину 192.168.0.2

Там полный бред. Нужно посмотреть на вывод ip route show
Рекомендую перед тем, как постить сюда вывод команды, очистить всю таблицу маршрутов и создать заново:
route add -net 192.168.7.0 -netmask 255.255.255.252 dev eth1 # с маской не ошибся?
route add -net 192.168.0.0 -netmask 255.255.255.0 dev eth0
route add default gw 192.168.0.111 # для выхода в инет

И сразу, потом нужно будет добавить подсеть командой
route add -net 192.57.66.0 netmask 255.255.255.0 gw 192.168.0.50
Но до этого пока далеко. А на 192.168.0.50 нужно выполнить аналогичную команду.

P.S. предлагаю общаться на «ты» тут так привычнее.

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

Упс, не сразу заметил:

Трассировка с машины 192.168.0.2 на машину 10.25.0.25 (которая за NAT)

1. 192.168.0.56

2. 192.168.0.111

3. 192.168.0.50

4. 10.25.0.25

т.е. работает.

Тоже не правильно. 192.168.0.111 тут лишний. Мы же в интернет не собираемся.

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

Стоп. 192.168.0.111 прописан как шлюз по умолчанию для сети 192.168.0.0/24? Или для всех сетей? Дайте, пожалуйста, нормальную информацию о сети. Полную и корректную.
Если моя догадка верна, то надо будет настраивать и маршрутизацию на 192.168.0.111.
Задача, конечно, не сильно усложняется, но я бы постарался продумать и переделать организацию сети. Можно ещё и премию под это дело выбить :)

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

отчистил всю таблицу маршрутов linux router и ввёл те, что ты предложил (/27 это 255.255.255.224), проверил клиентовские машины, чтобы в них не было лишних маршрутов, а только основной шлюз. Результат:

Трассировка с 192.168.0.2 на 192.168.7.40

1. 192.168.0.56

2. 192.168.7.13

3. 192.168.7.40

работает.

Трассировка с 192.168.7.40 на 192.168.0.2

1. 192.168.7.13

2. 192.168.7.2

3. *

4. *

далее бесконечно. Не работает.

Опять тот же результат :(

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

Покажи всё-таки ip route show.
Мы можем сейчас рассматривать сеть так: http://ompldr.org/vODFyaA
или что-то нам помешает?
Если да, то это значит, что пакеты идут в дефолтный маршрут. Что очень странно и где-то косяк.

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

Сорри, за много сообщений подряд, мысль медленно работает. Нашёл интересный момент:

Трассировка с 192.168.0.2 на 192.168.7.40

1. 192.168.0.56

2. 192.168.7.13

3. 192.168.7.40

работает.

Как он с 192.168.0.56 попадает на 192.168.7.13 сможешь объяснить? Я — нет. В маршруте-то будет сразу 192.168.7.40. Чудеса автоматики, чтоб им. Проанализируй сеть ещё раз. Что там за бридж, который отправил пакет на 192.168.0.13?

Думаю, подсеть надо добавлять так: route add -net 192.168.7.0 netmask 255.255.255.224 dev eth0 gw 192.168.7.13

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

s/отправил пакет на 192.168.0.13?/отправил пакет на 192.168.7.13?

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

Мне кажется, что адресат получает пакет, но кто-то рубит ответ с него. ТС явно плохо описывает структуру сети.

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

да, так и есть, 192.168.7.40 не входит в /27, шлюз 7.13, является шлюзом провайдера, мы у него каналы арендуем, всей маршрутизацией на 7 сети между офисами заведует провайдер и к этому нареканий нет, там всё работает, не работает соединение у меня, на 192.168.7.0/27 с 192.168.0.0/24

Как он с 192.168.0.56 попадает на 192.168.7.13 сможешь объяснить? Я — нет. В маршруте-то будет сразу 192.168.7.40. Чудеса автоматики, чтоб им. Проанализируй сеть ещё раз. Что там за бридж, который отправил пакет на 192.168.0.13?

А это извиняюсь, мне пришлось всё-равно после отчистки всех маршрутов добавить 7.13, так как сеть 192.168.7.0/27 перестала отвечать совсем.

ip route show выдаёт следующее:

192.168.7.0/27 via 192.168.7.13 dev eth1

192.168.7.0/27 dev eth1 proto kernel scope link src 192.168.7.2

192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.56

default via 192.168.0.111 dev eth0

а как вам выдать iptables-save 192.168.7.2 ?

xaoc57
() автор топика
Ответ на: комментарий от fractaler

да, кстати, я могу использовать с 192.168.7.1 по 192.168.7.31 IP и без шлюза 192.168.7.13/27, но если в них прописать мой шлюз 192.168.7.2/27

(при условии, что в шлюзе будут прописаны только те два маршрута, что посоветовали мне выше (192.168.7.0 > eth1 и 192.168.0.0 > eth0))

Всё-равно ничего не работает из сети 192.168.7.0, а вот из сети 192.168.0.0 всё работает.

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

А... ну тогда всё понятно. NAT-то кто настраивать будет?
iptables -t nat -A POSTROUTING -j MASQUERADE
И настоятельно рекомендую google://iptables+tutorial

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

А причём тут NAT? Если мне нужно реальное объединение двух сетей, настоящая маршрутизация, я же для этого и ip_forward врубил.

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

>А это извиняюсь, мне пришлось всё-равно после отчистки всех маршрутов добавить 7.13, так как сеть 192.168.7.0/27 перестала отвечать совсем.
А сказать об этом? Я, конечно, дипломированный телепат, но легче, когда всё известно.

да, кстати, я могу использовать с 192.168.7.1 по 192.168.7.31 IP и без шлюза 192.168.7.13/27, но если в них прописать мой шлюз 192.168.7.2/27

<sensored>, <sensored>, <sensored>!!!
Так за этим шлюзом подсеть /27 или /24??? Раз там нормально работает сороковая машина, значит не /27. Это важно.
Мне теперь непонятно, как пинг 192.168.7.40 попал на 192.168.7.13. Раз подсеть другая, должен был уйти в дефолт. Видимо, наоборот всё-таки попадает.

Если пинговать с 192.168.7.1 192.168.0.56 что получается? А если 192.168.0.111 ? Это так, интересно просто.

Нужно за 192.168.7.13 сделать сеть /24 (твоя сеть — твои правила, к провайдеру не относится), и на шлюзе прописать эту сеть. Должно заработать.

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

Так за этим шлюзом подсеть /27 или /24??? Раз там нормально работает сороковая машина, значит не /27. Это важно.

За этим шлюзом работает /27 сеть, а 192.168.7.40/27 IP работает, так как этим занимаются спецы провайдера, у которого мы взяли каналы в аренду (вся маршрутизация за шлюзом 7.13, нас беспокоить не должна, там работает всё без нас, и мы им там не указ, можем конечно попросить изменить какие-либо настройки, но ведь всё и так работает).

Между машиной с IP 192.168.7.40 и шлюзом 192.168.7.13 стоят маршрутизаторы провайдера, они от нас скрыты.

Если с 192.168.7.1 пинговать 192.168.0.56, то они пингуется (это единственный IP который пингуется из сети 192.168.7.0/27 в 192.168.0.0/24, я думаю, это потому-что он принадлежит самому Linux маршрутизатору).

А если с 192.168.7.1 пинговать 192.168.0.111 то пинг не проходит.

Если трассировать, то результат будет:

1. 192.168.7.2

2. *

3. *

и далее бесконечность.

Я кстати пробовал ставить на машину 192.168.7.1/24 (255.255.255.0) IP, и пробовать достучаться через Linux маршрутизатор до 192.168.0.0/24 сети (разумеется заранее настроив маршрутизатор, что сеть 192.168.7.0/27 стала /24) чтобы заранее избавиться от возможных ошибок из-за разных масок. Но результат тот же. Из сети 192.168.0.0/24 всё пингуется и проходит, а из сети 192.168.7.0/24 не проходит ничего.

А сказать об этом? Я, конечно, дипломированный телепат, но легче, когда всё известно.

Извинясь, виноват, сам не люблю когда что-то не договаривают или забывают, а потом нужно телепатить.

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

Понятно. Думаю, именно у провайдера нужно проконсультироваться по этой проблеме. Имея такой «черный ящик» на пути, наивно рассчитывать только на себя. Можно, конечно, создать VPN, но едва ли это будет рационально.

P.S. Спасибо за интересную тему.

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

А как же быть с ситуацией, когда я сижу с 192.168.7.1 ? Я могу использовать IP с 192.168.7.1 по 192.168.7.31 полностью без использования маршрутизации провайдера (все эти машины я спокойно завожу к себе в коммутатор, что стоит в ДЦ) и всё-равно ничего не работает.

Fractaler, если у вас есть возможность, выйдите в свой jabber, я уже отправил вам запрос на авторизацию :)

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

Это очень старый и давно заброшенный акк. Напиши свой, а то у меня он нынче совпадает с почтой - постить не хочу.

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