LINUX.ORG.RU
решено ФорумAdmin

Два одинаковых IP в двух разных одинаковых сетях.

 , , ,


1

2

Надоел мне мой VPN и я сделал новый. Но старый все еще продолжает работать. Сегодня обнаружил что комп подключен сразу к двум VPN.

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.2  netmask 255.255.255.0  destination 10.8.0.2
        inet6 fe80::12b4:39c6:6569:8a23  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 1913061  bytes 2610591991 (2.6 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 977956  bytes 167211904 (167.2 MB)
        TX errors 0  dropped 943 overruns 0  carrier 0  collisions 0

tun1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.2  netmask 255.255.255.0  destination 10.8.0.2
        inet6 fe80::8bb8:312b:c03a:74ec  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 720  bytes 42932 (42.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1512  bytes 351472 (351.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Как-так то? Почему это вообще работает и у меня получается выходить в Интернет.

двух разных одинаковых

Черномырдин mode.

интерфейсы-то разные. ради интереса поднял у себя тоже два одинаковых впн до разных серваков. работает всё.

null123 ★★ ()

Как-так то? Почему это вообще работает и у меня получается выходить в Интернет.

Оно и должно работать. У меня, например, ноут на работе получает два адреса из одной сети по dhcp - один на проводную сетевую карту, второй на WiFi. Машина доступна по обоим IP.

Ну а для ответа на вопрос «почему» просто посмотрите свою таблицу маршрутизации, думаю, сразу же все поймете.

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

Оно и должно работать. У меня, например, ноут на работе получает два адреса из одной сети по dhcp - один на проводную сетевую карту, второй на WiFi. Машина доступна по обоим IP.

Когда два адреса в одной сети это ясно. Тут другая ситуация - одинаковые IP в одинаковых сетях.

Но в целом логику я понял.

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

А какой логикой руководствуется ядро при выборе маршрута?

У автора одна напрямую подключенная сеть к разным интерфейсам.

Нам необходимо направить пакет к устройству напрямую подключенному к этой сети. Какой маршрут и почему выбирает ядро?

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

одна напрямую подключенная сеть к разным интерфейсам.

Какой маршрут и почему выбирает ядро?

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

Serge10 ★★★★ ()
Последнее исправление: Serge10 (всего исправлений: 1)
Ответ на: комментарий от Suntechnic

Вопрос в том, какова мотивация такой конфигурации, RFC 1122 «Requirements for Internet Hosts - Communication Layers» гласит:

«Physical network interface
This is a physical interface to a connected network and has a (possibly unique) link-layer address. Multiple physical network interfaces on a single host may share the same link-layer address, but the address must be unique for different hosts on the same physical network.

Logical [network] interface
We define a logical [network] interface to be a logical path, distinguished by a unique IP address, to a connected network.»

Мне понятна мотивация по использованию одинаковых IP адресов для разных интерфейсов, когда они находятся в разных VRF (netns).

Но в ином случае данное поведение со стороны ядра Linux выглядит для меня странным и не в одной другой сетевой OS я не припомню случаев, когда бы такая конфигурация допускалось в одном Global VRF, кроме случая с IP Unnumbered Point-to-Point интерфейсами, которые строго говоря вообще не обладают собственным IP адресом, а используют адрес другого интерфейса.

ZANSWER ()
Последнее исправление: ZANSWER (всего исправлений: 1)
Ответ на: комментарий от ZANSWER

1. Не вижу противоречий, вы выделили не тот кусок.
2.

Но в ином случае данное поведение со стороны ядра Linux выглядит для меня странным и не в одной другой сетевой OS я не припомню случаев, когда бы такая конфигурация допускалось в одном Global VRF,

Гей ос, только что проверил, два интерфейса проводной и wifi, назначил им одинаковый ip/prefix gw все работает.

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

Гей ОС это OS X?

Да.

А какой кусок по вашему указывает, что такая конфигурация является правильной?

Полный. Слово интерфейс тут не случайно.
We define a logical [network] interface to be a logical path, distinguished by a unique IP address, to a connected network.
И на всякий случай, далее есть ссылочка на 3.3.4

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

Раздел 3.3.4 не содержит указание на ситуацию с одинаковым Network/Host для разных интерфейсов.

Укажите пожалуйста цитату из текста, где вы считаете Local Multihoming отписывает такую конфигурацию.

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

Я не понял, что вы хотели сказать, выделив цитату про логический интерфейс. Поясните пожалуйста свою мысль.

Интерфейс там действительно не случайно, с точки зрения архитектуры IPv4 протокола сети подключены к интерфейсам маршрутизатора. Не обязательно физическим интерфейсам, например Frame-Relay интерфейс может быть представлен множеством логических интерфейсов, по интерфейсу на virtual circuit.

Я проверил в IOS, IOS XE, ASA OS, JunOS и ещё паре OS, такая конфигурация не поддерживается.

В OS X работает да, но, как работает, конфигурация была принята, но это вовсе не привело к тому, что у нас используется оба интерфейса. Поведение схоже с тем, что мы имеем в Linux, активен фактически только один маршрут.

P/S/ Я не против такой возможности в целом, но хотелось бы понять какова мотивация её создания.

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

Я не понял, что вы хотели сказать, выделив цитату про логический интерфейс. Поясните пожалуйста свою мысль.

We define a logical [network] interface

to be a logical path

distinguished by a unique IP address, to a connected network.

Я не вижу откровенного противоречия.

Я проверил в IOS...

В данном случае скорее соглашусь, чем нет. Немного другое применение.

P/S/ Я не против такой возможности в целом, но хотелось бы понять какова мотивация её создания.

Мне кажется скорее "не создания" дополнительных ограничений.
Возможно я не прав в своих рассуждениях. Но очевидного препятствия для работы не вижу. Точнее вижу, однако может же быть среда позволяющее это. Поэтому почему бы и не использовать?

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

Конечно :) Но и я не совсем был прав, не правильно изначально понял вашу формулировку «не в одной другой сетевой OS» только после того как вы привели перечень осознал о чем вы написали :(

А теперь вернемся к топику. Чем мешает два одинаковых ip на разных tun интерфейсах? С точки зрения маршрутов кого выбрали через того и пойдет. Но можно усложнить же задачу. Клиент является роутером, у него поднято несколько ovpn с одинаковыми подсетями которые в целом не нужны, но роуты за поднятыми соединениями уже разные. Клиентам которые за роутером являющимся клиентом ovpn (чуть тафтологии получилось) ведь это не мешает.

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

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

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

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

Я уже пояснил один из примеров

Ну тот коммент писался одновременно с моим и я его не видел. Но, наверное, не выспался, честно говоря его не понял, что это в конечном счёте даёт. Особенно странно иметь доступ к подсетям, не зная будет ли он вообще.

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

Нечем наверное не мешают и если притянуть сюда за уши IP unnumbered, то так и делают во многих ситуациях. Не считая конечно того факта, что IP unnumbered не приводит к созданию host и directly connected маршрутов в RIB для каждого интерфейса, делящего IP с primary.

Меня смутило именно создание множественных directly connected маршрутов для одной и той же сети. Одно дело Equal Multi Path Routing для remote сети, а другое для directly connected.

Но, я тут случайно наткнулся несколько дней назад на реализацию IP unnumbered для multiaccess интерфейсов и больше уже нечему не удивляюсь. (:

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

Судя по практике - именно так. Работает та которая первая подключена. Вторая как будто отсутствует.

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

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

Давайте ещё по другому, ну есть на gw несколько подключений к разным серверам дающие выход в инет, клиенту в целом глубоко фиолетово какие там сети между «точками». Было два-три- соединения, одно отвалилось «пошло» через другое. Если это постоянное долговременное соединение то да, неприятно, но не более того. Такой же эффект получите и при условии 2-3-4-прова, отвалился пров1 пошло через пров2. Тут я не рассматриваю варианты бордеров и т.п. только самый простой вариант.

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

Давайте ещё по другому,

А, кажется понял. Одинаковые локальные адреса и разные внешние для разных маршрутов установления туннеля? Это как-то непрофессионально выглядит. Есть же bound с резервированием, если уж так хочется такой кейс.

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

Вам осталось самую малость решить что такое «отвалиться у провайдера» :) А с этого все и начинается.

а че тут решать? был интернет и нет интернета ) как будто я один такой. )

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

anc, имеет ввиду, что нарушение связанности между вами и удалённым узлом вовсе не означает, что ядро выберет запасной маршрут.

Для этого по меньшей мере интерфейс через который Интернет умер должен будет перейти в состояние Down, в ином случае маршрут будет оставаться в RIB, для directly connected маршрутов не каких других проверок не выполняется по умолчанию.

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

Полноценно вам выше ZANSWER уже объяснил.

а че тут решать? был интернет и нет интернета

Но на всякий случай накину по другому, что такое «нет интернета» ? Пример прошлой-позапрошлой недели. У меня дома два прова, через одного «потерялся» маршрут на тындыкс, всякие гули да и вообще много чего норм работали, мне-то по большому счету пофигу до тындыкса, это домашнии пожаловались, разборки вести было некогда, тупо перекинул всех на другого прова. И вот как теперь сказать со стороны пользователя «есть интернет» или «нет интернета» ? С их стороны привыкших к тындыксу «и вообще тындыкс это интернет» - «интернета нет» но это же не так.
ЗЫ Кстати спасибо за ваш комментарий, а то я уже и забыл про эту тему, вернул всю схему обратно, сейчас работает. :)

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Да я понимаю, разумеется, о чем вы. Я шутил (там на одно предложение 2 смайла)

Ы Кстати спасибо за ваш комментарий, а то я уже и забыл про эту тему, вернул всю схему обратно, сейчас работает. :)

Да пожааааалуйста, нам не сложно )

pihter ★★★ ()