LINUX.ORG.RU
ФорумAdmin

маршрутизация с алиасов


0

0

Добрый день! Бьюсь над проблемой уже неделю.

Есть такая схема:

сеть один провайдер один сеть х.х.х.16/28 шлюз х.х.х.17

физический интерфейс eth0

на нем навешены два IP eth0 х.х.х.19 и eth0:0 х.х.х.20

прописанны роуты route add -host х.х.х.19 dev eth0 route add -host х.х.х.20 dev eth0:0 route defaulte х.х.х.17

есть на другой стороне сервак с Фряхой настроенный на разных

првайдеров:

eth0 y.y.y.2

eth1 z.z.z.2

и осуществляющий маршрутизацию пакетов от источника с роутами eth0 y.y.y.2 -> х.х.х.19

eth1 z.z.z.2 -> х.х.х.20

с фряхой все нормалек все работает как надо Для чего все это делается между этими адрессми прокинуты туннели IPIP Со стороны фряхи нареканий нет .

Со стороны Линуха проблема такая тунель с основного интерфейса IP х.х.х.19 поднимаеться всегда отлично . А вот с Алиаса через Раз. Посмотрев таблицу маршрутизации netstat -rn вижу

Destination Gateway Genmask Flags MSS Window irtt Iface

x.x.x.19 0.0.0.0 255.255.255.255 UH 0 0 0 eth0

x.x.x.20 0.0.0.0 255.255.255.255 UH 0 0 0 eth0

тоесть никакого Алиаса eth0:0 нету в таблице вот такая вот запарка. Подскажите плиз как быть с этой проблемой с какого конца подступиться ?

Для чего будут использоватся эти два тоннеля?

SlavikSS ★★
()

> тоесть никакого Алиаса eth0:0 нету в таблице вот такая вот запарка.

к сожалению, алиасы в линухе не являеются полноценными сетевухами, поэтому надо задавать srcaddr и dstadr в таблице маршрутизации, iptables итп.

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

iptables -A PREROUTING -s y.y.y.1 -t mangle -j MARK --set-mark 1 ip rule add fwmark 1 table T1 ip route add y.y.y.1/32 via x.x.x.17 dev eth0 table T1

iptables -A PREROUTING -s z.z.z.1 -t mangle -j MARK --set-mark 2 ip rule add fwmark 2 table T2 ip route add z.z.z.1/32 via x.x.x.17 dev eth0:1 table T2

пробовал такую схему тоже пашет криво . может что не так сделал ?

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

Если два VPN соединения к одному серверу, то можно попробовать так:
каждое соединение поднимать от конкретного пользователя и добавить два правила:
iptables -t nat -A POSTROUTING -m owner --uid-owner user1 -o eth0 -j SNAT --to x.x.x.1
iptables -t nat -A POSTROUTING -m owner --uid-owner user2 -o eth0 -j SNAT --to x.x.x.2

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

туннель вобщем то IPIP без протоколов типа GRE . без аутентификации по пользователю и паролю . но как вариант если ничего не поможет этот вариант попробуем.

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

мне покаоя не дает то что все таки через раз но схема моя которую описал вначае работает. лучше бы она вообще не работала или работала стабильно. так как вся эта нестабильность дает какие то надежды на то что можно чтото подкрутить что бы добиться результата.

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

У меня когда-то тоже было два VPN соединения к одному серванту, второй интерфейс поднимался, но не работал! Что я только не пробовал, заставить работать второй канал я так и не смог. Провайдер дал мне айпишку второго VPN сервера, и я поднимал два соединения через одну физическую линию но к разним сервантам.

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

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

можно алиасы и без псевдоинтерфейсов поднять через ip addr add ...

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

>пробовал такую схему тоже пашет криво . может что не так сделал ?

Неверно выбрали тип форматирования сообщения :)

А так "-j MARK" здесь лишнее, тут проще:

ip rule add src y.y.y.1 table T1
ip rule add src z.z.z.1 table T2

Ну и алиасы, как уже сказали, выкинуть, и писать нормальные маршруты, типа:

ip route add default via x.x.x.17 dev eth0 table T1

хотя если y.y.y.1 это адрес тунеля, то почему вы пытаетесь отправить такие пакеты через Ethernet?

Какой командой поднимается тунель? Какие ip-адреса назначены тунелю? И какие адреса назначены интерфейсам? В общем дайте вывод команд "ip addr" и "ip route". Забудьте про команды "ifconfig" и "route". А по поводу ненадежность, пока только одно предположение --- кеш маршрутов. Можете попробовать сравнить выводы команд "ip route show cache" в случаях, когда второй тунель поднимается, и когда нет.

mky ★★★★★
()

Пользуй туннельный протокол на основе udp-протокола. openvpn это умеет, если не ошибаюсь. У протокола gre нет портов, из-за этого сложности.

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