Назад | Перейти на главную страницу

Несколько VPN-устройств с одним и тем же IP-адресом

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

Сценарий:
Сервер, подключающийся к нескольким конечным точкам VPN, делает все что угодно.

Эта проблема:
Один и тот же IP-адрес может быть назначен нескольким устройствам.

Соревнование:
Уметь успешно маршрутизировать трафик через каждое из этих устройств с одним и тем же IP-адресом.

По следующему сценарию:

    tun0: 192.168.200.10  192.168.200.1
    tun1: 192.168.200.11  192.168.200.1
    tun2: 192.168.200.12  192.168.200.1

Без проблем. Использование маршрутизации на основе исходных кодов Linux работает как шарм. Однако, поскольку я не контролирую со стороны клиента IP-адрес, который мне нужно назначить, я могу получить:

    tun0: 192.168.200.10  192.168.200.1
    tun1: 192.168.200.10  192.168.200.1
    tun2: 192.168.200.10  192.168.200.1

И здесь возникает проблема. Есть ли способ контролировать таблицы маршрутизации для каждого интерфейса независимо от IP?

В настоящее время каждый интерфейс, который поднимается, получает еще одну запись в / и т.д. / iproute2 / rt_tables Такие как:

    100 tun0
    101 tun1
    102 tun2

Затем для каждого устройства следующее:

    ip rule add from 192.168.200.X iif tunX table tunX
    ip route add default via 192.168.200.1 table tunX

Чтобы проверить это, я использую curl --interface tunX.
Первый интерфейс более-менее «выигрывает» в решении о маршрутизации.
Я хочу, чтобы правильный интерфейс победил.
Теоретически я прекрасно понимаю, что делаю то, что многие сочтут неправильным. Однако я хотел бы знать, есть ли способ обойти это, потому что я думаю, что он есть.
Есть идеи по этому поводу? Может быть, iptables fwmark поможет, если вообще поможет?

Вы не можете использовать один и тот же IP-адрес на двух разных интерфейсах без что-то ломаются, и хороших "обходных путей" нет. Одну или несколько сетей придется перенумеровать.

(О, а теперь пора обзавестись IPv6, у которого нет этой проблемы.)