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

Рецепт приготовления туннеля между сетями?

 , , tuntap


2

1

Задача: Cоединить две сети.
Решение:

  • Создать tap интерфейс без ip адреса;
  • Создать на tap интерфейс некоторый маршрут.
  • Накинуть на этот интерфейс openvpn туннель;
nano /etc/network/interfaces
...
auto tap0
iface tap0 inet manual
   up ip tuntap add dev $IFACE mode tap
   up ifconfig $IFACE up
   up route add -host 192.168.206.175 dev $IFACE
   up route add -net 192.168.206.0/24 gw 192.168.206.175
   down route del -net 192.168.206.0/24 gw 192.168.206.175
   down route del -host 192.168.206.175 dev $IFACE
   down ifconfig $IFACE down
   down ip tuntap del dev $IFACE mode tap
...
# /etc/init.d/networking restart
[warn] Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
[ ok ] Reconfiguring network interfaces...done.
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
...
192.168.206.0   192.168.206.175 255.255.255.0   UG    0      0        0 tap0
192.168.206.175 *               255.255.255.255 UH    0      0        0 tap0
...
# ifconfig
...
tap0      Link encap:Ethernet  HWaddr 76:e4:68:53:51:49  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
...
nano /etc/openvpn/client.conf
...
dev tap0
...
# uname -a
Linux router 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux

Так на обеих концах, с учетом адресации. Кто бы по другому приготовил?

★★★★★

Последнее исправление: petav (всего исправлений: 1)

Эээ, а ты курицу с яйцом то не путаешь? OpenVPN сам создает и настраивает интерфейс, зачем ты его руками-то делаешь? Какая-то очень хитрая магия :)

Почитай любые доки по OpenVPN и всё станет ясно.

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

Эээ, а ты курицу с яйцом то не путаешь? OpenVPN сам создает и настраивает интерфейс, зачем ты его руками-то делаешь? Какая-то очень хитрая магия :)

При таком подходе на tap0 интерфейсе нет адреса, что упрощает маршрутизацию при задаче соединить две сети. В ходе экспериментов, схожего поведения, используя только конфигурирование openvpn добиться не удалось. Создаваемый интерфейс tap без адреса все равно приходилось принудительно поднимать. Допускаю, что документы не дочитал, прошу указать.

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

Задача: Cоединить две сети.

Так можно tun... Зачем тебе tap укакался? Чем тебе tun не подошло?

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

Так можно tun... Зачем тебе tap укакался? Чем тебе tun не подошло?

Укажите на преимущество использование tun в моем случае, я сам его не просматриваю.

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

Приемущества ты должен выявить сам когда поймёшь ЗАЧЕМ тебе надо соединять две сети. Если тебе надо: 1С, файлообмен, http и прочее стандартное барахло, то tun будет выгоднее за счёт меньшего оверхеда и безпроблемной настройке на том же openvpn. В общем я гоняю уже полтора года - всё работает отлично. При том и проблемы с каналом бывали и чего только не бывало... 1Ска - одинэсится, httpшка бегает, sapgui бегает.

Если тебе не нужен L2 межсетевой (а скорее всего он реально не нужен), но и нет смысла усложнять всё.

Это моё ИМХО на опыте полутора лет.

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

А что не так? Если тебе не нужен L2, то зачем его городить? Если тебе достаточно L3, то есть смысл использовать то, что будет более быстрее и где будет меньше трафика бегать.

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

А что не так? Если тебе не нужен L2, то зачем его городить? Если тебе достаточно L3, то есть смысл использовать то, что будет более быстрее и где будет меньше трафика бегать.

Позволь уточнить

но и нет смысла усложнять всё

что именно усложняет использование tap и что упрощает использование tun и где это заметно. Трафик прошу не рассматривать.

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

Он дело говорит, не дерзи, tap нужен только если тебе надо поиметь общий канальный уровень в двух сетях, а это нужно раз в сто лет для какого-то убогого костыля. Опять же, tap тоже поднимается с полпинка, а если вылазят какие-то косяки с ним, то дело вовсе не в openvpn

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

tun это L3 интерфейс, передает только IP пакеты. TAP - это L2 интерфейс, гоняет ethernet. Преимущества у каждого свои.

Что значит «соединить две сети» в твоем понимании ты так и не написал. Если тебе нужен роутинг между двумя сетями через туннель, то tun это самое то. Настраиваешь туннель, в опенвпн конфигах пишешь что-то в духе

сервер:
...
dev tun
ifconfig x.x.x.1 x.x.x.2
...
клиент:
...
dev tun
ifconfig x.x.x.2 x.x.x.1
...

Роутинг:

сервер:
ip route add 10.0.0.0/24 via x.x.x.2
клиент:
ip route add 10.1.0.0/24 via x.x.x.1

Усё.

Если нужно объеденить езернет сегменты, то tap и в бридж их с физическим интерфейсом.

Чем отсутствие адреса на интерфейсе может помочь маршрутизации это вообще за гранью моего понимания :)

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

Ну если бы он у тебя с «полпинка» поднялся бы, ты наверно бы не создал бы эту тему? Я тебе сказал что tun проще - только лишь потому, что ты мутишь что-то малореальное ИМХО (судя по первому посту). Да и более того и скорее всего тебе и не нужное вовсе.

openvpn на третьем уровне тебе прекрасно всё соединит. Начни в гугле набирать: openvpn tu... - оно тебе само допишет tun vs tap или наоборот. Я думаю ты там всё прочтёшь и сделаешь за десять минут. Опять-же короткие how-to как поднять openvpn есть прямо на сайте openvpn. Если надо что-то поинтереснее - то ман для стека udp читается очень легко и не сложно - в отличии от заморочек с tcp и tap... - Даже в мане написано, что если не знаешь зачем тебе всё усложнять юзай: udp как транспортный канал, и tun как интерфейсы.

DALDON ★★★★★
()

я бы здесь оставил сообщение, но мне petav настолько надоел за год с лишним своей тупизной и админством локалхоста без прогресса в черепной коробке, что я пройду мимо.

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

blind_oracle, спасибо большое за конструктивное и внятное изложение своей позиции в этом вопросе и потраченное время. Я должен признаться, что оформляя тему я немного опустил детали, для легкости восприятия, а так же хотел предупредить попытки некоторого кол-ва сообщества ЛОРа к ненужным комментариям. Я полагаю Вы это заметили, цитирую:

Какая-то очень хитрая магия :)

Задача стоит несколько иная. На одном конце уже работает «черная коробочка» проиводитель которой использует tap интерфейсы без адреса. В дальнейшем провоцируя комментарии я хотел услышать суть в споре, но не вышло. Необходимо подключаться к ней, без возможности что-то менять в ней самой. Вопрос скорее всего в методах поднятия tap интерфейса, который как я полагаю уже не актуален, потому что все «знатоки» используют tun и будут предлагать выкинуть «черную коробочку». Оформляя тему, я не учел тяги существующей бублики к пустой болтавне.

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

Странно, а я Вас даже не знаю.

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

Ну если бы он у тебя с «полпинка» поднялся бы, ты наверно бы не создал бы эту тему?

Поднялся и прекрасно работает.

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

Я когда оформляю тему, то стараюсь описывать ситуацию наиболее полно, а не ставлю целью кормить троллей :)

По делу: Ты, возможно, не до конца себе представляешь, что такое TUN/TAP интерфейсы. Это просто «врата» для траффика, который должна генерировать и принимать какая-то программа.

Выполняя «ip tuntap add ...» ты просто создаешь файл /dev/t[un|ap]X, который можно открыть в любой программе и писать в него пакеты целиком. Достаточно тупая вещь, это никакой не туннель.

Для начала нужно выяснить что за программа на дальнем конце генерирует пакеты через TAP и уже от этого плясать. TAP сам по себе смысла не имеет.

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

Было ощущение, что Вы что то недоговариваете, конкретики задачи,

или сами знаете, но прикидываетесь незнающим, троллите так скать. Так оно и оказалось. Ну ради бога.

А можно поведать, что все таки это за коробочка? Если конечно не что то супер специфическое или секретное. Она просто не умеет tun? или все таки у tap есть какие то преимущества и эта коробочка их использует, ведь 99% о преимуществах не знает, поведайте. Сам использую tun лет 6.... а может пора лыжи на tap мазать

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

я бы здесь оставил сообщение, но мне petav настолько надоел за год с лишним своей тупизной и админством локалхоста без прогресса в черепной коробке, что я пройду мимо.

джва чая сэру!

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

А racoon тут каким боком? Racoon за шифрование отвечает, и преимущественно в BSD системах используется, вкупе с gif-интерфейсами.

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

Лорчну, пожалуй. Вместо конкретных вопросов («У меня..., когда я ..., оно ..., а хотелось бы..., что надо сделать?») либо, реже, конкреных же наблюдений («Мальчики и девочки, если вы..., то когда..., надо обязательно..., иначе вы не постигните дао») у petav'а тут нередко бложек с рассуждениями с самим собой.

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

ты сюда IKE приплёл, чтобы ТС окончательно чокнулся

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

На одном конце уже работает «черная коробочка» проиводитель которой использует tap интерфейсы без адреса.

сложно было поправить первый пост?

потому что все «знатоки» используют tun и будут предлагать выкинуть «черную коробочку».

так а где тег «требуются телепаты»? Которые ЗНАЮТ, что у тебя есть «чёрная коробочка», которую ты НЕ МОЖЕШЬ выкинуть.

emulek
()
Ответ на: комментарий от emulek
(Маршрутизатор 192.168.200.175)+tap0 <-> Туннель <-> tap0+(Маршрутизатор 192.168.206.175)

Маршрут на маршрутизаторе 192.168.200.175

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
...
192.168.206.0   192.168.206.175 255.255.255.0   UG    0      0        0 tap0
192.168.206.175 *               255.255.255.255 UH    0      0        0 tap0
...

Маршрут на маршрутизаторе 192.168.206.175

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
...
192.168.200.0   192.168.200.175 255.255.255.0   UG    0      0        0 tap0
192.168.200.175 *               255.255.255.255 UH    0      0        0 tap0
...

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