Сетевая маршрутизация Linux к виртуальным IP-адресам от другой подсети

В соответствии с Linux, с помощью rename от утилит Linux (rename.ul под Debian и Ubuntu):

rename src dst src/1 src/2/3     # dst/2 must exist

С rename Сценарий Perl, который Debian и Ubuntu устанавливают как prename или rename:

rename 's!^src!dst!' src/1 src/2/3    # dst/2 must exist
rename 'use File::Basename; use File::Path;
        s!^src!dst! && mkpath(dirname($_))' src/1 src/2/3

Вот функция оболочки, которая делает то, что Вы спрашиваете за исключением порядка аргументов:

mv-preserving-structure () {
  s=${1%/} t=${2%/}; shift 2
  for x; do
    case $x in
      $s/*)
        y=$t${x#$s}
        mkdir -p -- "${y%/*}"
        mv -- "$x" "$t${x#$s}";;
    esac
  done
}
mv-preserving-structure src dst src/1 src/2/3
6
26.07.2012, 20:49
2 ответа

Простое решение создает туннель между этими двумя серверами, например:

На сервере A:

ip tunnel add tunnel mode ipip remote 10.10.60.10
ip addr add 10.1.1.1/24 dev tunnel
sysctl -w net.ipv4.ip_forward=1

Последняя команда к передачам пакетов с Вашего недавно созданного туннельного устройства на Ваши виртуальные устройства Ethernet.

На сервере C

ip tunnel add tunnel mode ipip remote 10.10.51.182
ip addr add 10.1.1.2/24 dev tunnel
ip route add 192.168.0.0/16 via 10.1.1.1

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

Explenation: Server A и Server B находятся на общем сетевом сегменте, например, они могут отправить пакеты друг другу без потребности отправить пакеты на их шлюз. Это означает Server B просто попытки непосредственно для разрешения адреса 192.168.1.1 через ARP и Server A ответы им.

Server A и Server C находятся на различных сегментах сети, например, если Server C просто просит 192.168.1.1 (это было бы Вашей командой маршрута для Server C) это не получит ответа. Для решения этой проблемы, обычно можно указывать, как можно достигнуть определенной системы через таблицы маршрутизации, но можно только указать следующий транзитный участок. Как router Z кажется, не знает о 192.168.0.0/24 необходимо создать туннель между этими двумя системами.

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

for first in {1..4} ; do
   for second in {1..255} ; do
     ip addr add 192.168.$first.$second/16 dev eth0
    done
done
5
27.01.2020, 20:27
  • 1
    Спасибо, это было точно, в чем я нуждался. При следовании инструкциям, почти дословно, и я могу соединиться со всеми своими виртуальными камерами. –  Saad Malik 27.07.2012, 05:34
  • 2
    Единственное дополнение, чтобы заставить все это работать: IP ссылка установила туннель dev –  Saad Malik 27.07.2012, 05:35
  • 3
    я читал тонну о ipip, gre, и сижу; некоторые очень интересные протоколы. Из любопытства, если у меня было 20 серверов, которые должны подключить к серверу туннелирование использования, был бы я потребоваться, чтобы создавать 20 отдельных туннелей на A, или могу я указывать 'удаленный любой' для туннельной конфигурации на сервере A. Прежде чем я спущусь голосование, я уже попробовал и перестал работать, но возможно существует путь, или разве это не возможно? –  Saad Malik 27.07.2012, 22:41
  • 4
    @SimFox3, который Вы должны, запуская говорящий с Вашими сетевыми людьми, таким образом, они могут распространить необходимые маршруты к Вашим маршрутизаторам. Но да Вам нужны 20 различных туннелей (каждый с различным IP на A) или поскольку альтернатива, если эти 20 серверов находятся на том же сегменте сети, создает один туннель и использует этот сервер в качестве маршрутизатора для 192.168.0.0/16 сеть. –  Ulrich Dangel 27.07.2012, 22:50

У Вас есть несколько опций:

  • Компьютеру C нужна ссылка на ту же физическую сеть как A, и B идут.
  • Маршрутизатор Y должен иметь адрес в 192.168.0.0/16, и маршрутизатор Z нужен маршрут для 192.168.0.0/16 через маршрутизатор Y.
  • Создайте IP IP (или VPN) туннель между компьютером C и компьютером A; трафик маршрута для 192.168.0.0/16 через туннельный интерфейс.

Создание туннеля является, вероятно, Вашим лучшим выбором для изменения только компьютеров A и C. См. практическое руководство IP IP для шагов.

2
27.01.2020, 20:27

Теги

Похожие вопросы