LINUX.ORG.RU
ФорумAdmin

iproute


0

0

Доброе время суток!

Подскажите как разрешить вот такую ситуацию. Есть сервер используемый в качестве гейтвея. У него 2 интерфейса. Один в интернет один в локалку (192.168.10.0/24). Есть несколько vpn туннелей на базе ipsec с удаленными офисами. С vpn сетями проблем нет. В локалке есть две подсети 192.168.10.0/24 и 192.168.20.0/24. На гейтвее настроен виртуальный сетевой интерфейс eth0:1 с адресом во второй подсети (192.168.20.2). В сети 192.168.20.0/24 другой гейтвей с адресом 192.168.20.1, на нем прописан маршрут 192.168.10.0/24 через 192.168.20.2. Так вот пинги все ходят нормально, подключение к серверам и машинам с одним интерфейсом происходит нормально. Проблема возникает, когда есть сервер или машина с двумя интерфейсами в обоих сетях, т.е. если я иду на адрес сервера с ip из его подсети, то все ок, так только я пытаюсь соединится к этому же серверу, но по ip из другой подсети происходит коннект и потом отваливается по тайм ауту. Как решить проблему коннекта с адресом из другой подсети?

192.168.2.0/30 via 192.168.10.1 dev eth0 src 192.168.10.1 - VPN x.x.x.x/29 dev eth1 proto kernel scope link src x.x.x.x1 192.168.26.40/29 via 192.168.12.1 dev eth0 src 192.168.10.1 - VPN 192.168.8.0/27 via 192.168.10.1 dev eth0 src 192.168.10.1 - VPN 192.168.9.0/25 via 192.168.10.1 dev eth0 src 192.168.10.1 - VPN 192.168.7.0/24 via 192.168.10.1 dev eth0 src 192.168.10.1 - VPN 192.168.22.0/24 via 192.168.10.1 dev eth0 src 192.168.10.1 - VPN 192.168.19.0/24 via 192.168.10.1 dev eth0 src 192.168.10.1 - VPN 192.168.1.0/24 via 192.168.10.1 dev eth0 src 192.168.10.1 - VPN 192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.1 — вот с этим проблема 192.168.20.0/24 dev eth0 proto kernel scope link src 192.168.20.2 — вот с этим проблема 169.254.0.0/16 dev eth0 scope link default via x.x.x.x2 dev eth1

Всего хорошего.

anonymous

А теперь еще раз с нормальным форматированием.

>> Всего хорошего. Тебе тоже :)

anonymous
()

>Есть несколько vpn туннелей

При чём здесь vpn? Зачем вам в офисе 2 физически сосуществующих сети? Зачем ещё один гейт с 20.1? Зачем вам соединяться сразу со вторым интерфейсом главного гейта (он ведь существует только ради роуитнга, не так ли)? Таблицу маршрутов даже не пытался читать.

markevichus ★★★
()

Отправьте с нормальным форматированием (для этого при отправке внизу выпадающий список, вместо "TeX paragraphs w/quoting" выбрать "User line breaks". По поводу "гейтвей с адресом 192.168.20.1" я не понял, почему есть маршрут 192.168.20.0/24 на интерфейс? У вас похоже пакеты идут петлей, туда через 192.168.20.1, а обратно напрямую через интерфейс...

>так только я пытаюсь соединится к этому же серверу, но по ip из другой подсети происходит коннект и потом отваливается по тайм ауту.

Вы опишите с какой машины (ip-адреса, маршруты) вы устанавливаете соединение и какой командой.

Можно еще tcpdump'ом посмотреть какие пакеты приходят/уходят...

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

Ну зачем это нужно это другой разговор. В наследство досталось :)

                            +------+
		eth1(inet)  + GW1  + eth0 (192.168.10.1)
		            +      + eth0:1 (192.168.20.2)
			    +------+                                               

                  +-----+
eth1(192.168.10.3)+ SVR + eth0 (192.168.20.4)
	          +     +
		  +-----+
			
                        +------+
	eth1(inet)	+ GW2  + eth0 (192.168.20.1)
			+------+

На GW2 стоит маршрут для 192.168.10.0/24 идти через 192.168.20.2.
Пинги проходят нормально. Но пытаюсь соединится из сети 192.168.10.0 на сервер 192.168.20.4
проходит один пакет и все дальше тайм аут.

192.168.2.0/30 via 192.168.10.1 dev eth0  src 192.168.10.1
x.x.x.x/29 dev eth1  proto kernel  scope link  src x.x.x.x1
192.168.26.40/29 via 192.168.12.1 dev eth0  src 192.168.10.1
192.168.8.0/27 via 192.168.10.1 dev eth0  src 192.168.10.1
192.168.9.0/25 via 192.168.10.1 dev eth0  src 192.168.10.1
192.168.7.0/24 via 192.168.10.1 dev eth0  src 192.168.10.1
192.168.22.0/24 via 192.168.10.1 dev eth0  src 192.168.10.1
192.168.19.0/24 via 192.168.10.1 dev eth0  src 192.168.10.1
192.168.1.0/24 via 192.168.10.1 dev eth0  src 192.168.10.1
192.168.10.0/24 dev eth0  proto kernel  scope link  src 192.168.10.1
192.168.20.0/24 dev eth0  proto kernel  scope link  src 192.168.20.2
169.254.0.0/16 dev eth0  scope link
default via x.x.x.x2 dev eth1

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

А как сеть 192.168.10.0 должна идти в сеть 192.168.20.0 ? Куда написан маршрут на компьютере, с которого вы пытались установить содинение? Какие маршруты прописаны на сервере SRV? Какие операционные системы используются? Что значит "проходит один пакет" --- SYN пакет tcp содинения, или один пакет с данными? Какое коммутирующее оборудование используется --- неуправляемый switch или L3 switch или маршрутизатор?

Пока в у меня рисуется такая схема:

192.168.10.x -> 192.168.10.1 -> 192.168.20.4

192.168.20.4 -> 192.168.10.x (через eth1 на SRV)

и вроде GW2 тут вобще не участвует. И возможно на на SRV просто не правильно настроен firewall, допустим запрещены пакеты, уходящие через eth1 c src-ip адресом 192.168.20.4...

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

>eth0 (192.168.10.1) eth0:1 (192.168.20.2)

Из этого следует что обе сети присутствуют в одном физическом сегменте. На машине с двумя сетевыми интерфейсами в таком случае возможна проблема известная как arp flux.

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

Вот таблица SRV:
192.168.20.0/24 dev eth0  proto kernel  scope link  src 192.168.20.4
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.3
169.254.0.0/16 dev eth1  scope link
default via 192.168.10.1 dev eth1
Фаерволл на SRV отключен форвард пакетов включен.

По замыслу должно быть так:
Из 10.x
192.168.10.x -> 192.168.10.1 -> 192.168.20.2 -> 192.168.20.4
Из 20.x
192.168.20.x -> 192.168.20.1 -> 192.168.20.2 -> 192.168.10.3

Проходин один пакет SYN и все. Хотя пинги туда и обратно ходят влет.
192.168.20.1 - Dlink
192.168.10.1 - Linux

Сегменты на обычном свиче не управляемом.

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

Слово Dlink пугает, с ними какие только глюки не бывают...

Чтобы пакеты пошли так, как вы хотите, нужно включать маршрутизацию по src-ip адресу. Причем и на GW1 и на SRV...

Сейчас получается, что каждый GW находится в обоих сетях, может имеет смысл сделать так, чтобы каждый GW был только в одной сети (GW1 в 192.168.10.0, GW2 в 192.168.20.0), а для связи между ними выделить отдельную сеть, допустим 192.168.210.0. Хотя при этом все равно каждый сервер с двумя сетевыми интерфейсами будет отвечать по тому интерфейсу, где маршрут короче.

Пока можете запустить tcpdump на SRV, даже 2 штуки tcpdump'а --- один на eth0, другой на eth1. Убедитесь, что SYN пакет приходит через eth0, ответ на него уходит через eth1. Запустите перехватчик пакетов на клиенте, смотрите что уходит, что приходит...

Кстати, может SRV посылает ICMP redirect пакет и он как-то неправильно обрабатывается клентом...

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