public inbox for govpn-devel@lists.cypherpunks.ru
Atom feed
* [Govpn-devel]  Как удалить tap-интерфейс, когда клиент отключился?
@ 2016-04-02 13:35 Popovich Dmitry
  2016-04-03  8:31 ` Sergey Matveev
  0 siblings, 1 reply; 5+ messages in thread
From: Popovich Dmitry @ 2016-04-02 13:35 UTC (permalink / raw)
  To: govpn-devel

[-- Attachment #1: Type: text/plain, Size: 821 bytes --]

Сергей, спасибо! Буду ждать!
И еще пара вопросов.

1.       Клиенту параметры можно только в командной строке передавать или он читает какой-то конфиг? Можно ли, как, например с сервером, после подключения заставить его также автоматически создать tap-интерфейс и произвести с ним манипуляции? (поднять, назначить адрес)?

2.       Будет ли рабочим такой вариант - поднять бридж на сервере, назначить ему адрес, повесить на него dhcp-server и присоединять и отсоединять интерфейсы подключающихся клиентов?

3.       Не могли бы Вы поделиться своими скриптами, конфигами и use cases?


Best regards,
Dmitry Popovich
Mob. +86 18620274552 (China)
Mob. +7 9233552529 (Russia)
Skype itl.popovich.dmitriy
QQ 1153562714



--
This message has been scanned by E.F.A. Project and is believed to be clean.



[-- Attachment #2: Type: text/html, Size: 6026 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Govpn-devel] Как удалить tap-интерфейс, когда клиент отключился?
  2016-04-02 13:35 [Govpn-devel] Как удалить tap-интерфейс, когда клиент отключился? Popovich Dmitry
@ 2016-04-03  8:31 ` Sergey Matveev
  0 siblings, 0 replies; 5+ messages in thread
From: Sergey Matveev @ 2016-04-03  8:31 UTC (permalink / raw)
  To: govpn-devel

*** Popovich Dmitry <dsp@itl24•ru> [Sat, 2 Apr 2016 13:35:46 +0000]:
>1.       Клиенту параметры можно только в командной строке передавать или он читает какой-то конфиг? Можно ли, как, например с сервером, после подключения заставить его также автоматически создать tap-интерфейс и произвести с ним манипуляции? (поднять, назначить адрес)?

Так как у клиента не много опций (в отличии от сервера где для каждого
клиента можно указать множество), то всё задаётся через командную строку.
Клиент предполагает что TAP интерфейс уже должен быть создан. Ведь какая
разница когда например будет создан интерфейс: до запуска govpn-client
или после handshake? Мне кажется что без разницы и поэтому для простоты
интерфейс создаётся до его запуска. Но такие вещи как назначение адреса
конечно же можно сделать после handshake через -up опцию командной
строки.

>2.       Будет ли рабочим такой вариант - поднять бридж на сервере, назначить ему адрес, повесить на него dhcp-server и присоединять и отсоединять интерфейсы подключающихся клиентов?

Да, безусловно.

>3.       Не могли бы Вы поделиться своими скриптами, конфигами и use cases?

Раньше у меня был вариант как-раз как ваш второй пункт: создавались
интерфейсы, добавлялись в bridge. Но я в временном текстовом файле
сохранял соответствия между пользователем и уже созданным (или ещё нет)
интерфейсом: соответственно либо создавал либо говорил использовать уже
имеющийся.

Сейчас же у меня просто статические интерфейсы для каждого клиента. В
конфиге сервера для всех клиентов такие записи:

    stargrave:
      iface: tap0
      verifier: $argon2d$m=4096,t=128,p=1$...
      up: /home/govpn/up/stargrave.sh
    alpha:
      iface: tap1
      verifier: $argon2d$m=4096,t=128,p=1$...
      timesync: 30
    beta:
      iface: tap2
      verifier: $argon2d$m=4096,t=128,p=1$...
    [...]

stargrave.sh на сервере прост:

    #!/bin/sh

    /sbin/ifconfig $GOVPN_IFACE inet 192.168.30.1/24 mtu 1410
    /sbin/ifconfig $GOVPN_IFACE inet6 2001:.../126 -ifdisabled

На клиенте up.sh скрипт таков:

    #!/bin/sh

    /sbin/ifconfig $GOVPN_IFACE inet 192.168.30.2/24 mtu 1410 up
    /sbin/route add default 192.168.30.1

    /sbin/ifconfig $GOVPN_IFACE inet6 2001:.../126 -ifdisabled
    /sbin/route -6 add default 2001:...

а когда-то был таким:

    #!/bin/sh

    /sbin/dhclient $GOVPN_IFACE
    /sbin/rtsol $GOVPN_IFACE

-- 
Happy hacking

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Govpn-devel] Как удалить tap-интерфейс, когда клиент отключился?
  2016-04-02  7:18 Popovich Dmitry
@ 2016-04-02  7:51 ` Sergey Matveev
  0 siblings, 0 replies; 5+ messages in thread
From: Sergey Matveev @ 2016-04-02  7:51 UTC (permalink / raw)
  To: govpn-devel

Приветствую!

*** Popovich Dmitry <dsp@itl24•ru> [Sat, 2 Apr 2016 07:18:28 +0000]:
>TUNSETIFF: Device or resource busy
>Каким образом можно освободить интерфейс и удалить его?

На данный момент GoVPN демон раз открыл сетевой интерфейс, то до самого
конца так и не "отпускает" этот файл. При следующих соединениях клиентов
он будет использовать уже открытый интерфейс. Сделано так для простоты
работы с rehandshake: rehandshake ничем не отличается от обычного
handshake и с точки зрения сетевого интерфейса он проходит абсолютно
прозрачно.

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

-- 
Happy hacking

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Govpn-devel] Как удалить tap-интерфейс, когда клиент отключился?
@ 2016-04-02  7:32 Popovich Dmitry
  0 siblings, 0 replies; 5+ messages in thread
From: Popovich Dmitry @ 2016-04-02  7:32 UTC (permalink / raw)
  To: govpn-devel

[-- Attachment #1: Type: text/plain, Size: 968 bytes --]

Добрый день!
Интерфейс для клиента создается автоматически скриптом up.sh

#!/bin/sh
PEER="dsp"
TAP=$(tunctl|grep -o '\tap[0-9]\+')
echo "Peer" $PEER "connected, iface "$TAP "created" >>/var/log/govpn-server.log
ip addr add 172.16.0.1/24 dev $TAP
ip link set up dev $TAP
echo $TAP

Таким же образом хочу его и заглушить, когда клиент отвалился
#!/bin/sh
PEER="dsp"
echo "Peer " $PEER " disconnected, iface " $GOVPN_IFACE " is shutting down" >>/var/log/govpn-server.log
tunctl -d $GOVPN_IFACE

Но не срабатывает, выдает ошибку
TUNSETIFF: Device or resource busy

Пробовал руками - тоже самое.
Каким образом можно освободить интерфейс и удалить его?

Best regards,
Dmitry Popovich
Chief Project Manager
Mob. +86 18620274552 (China)
Mob. +7 9233552529 (Russia)
Skype itl.popovich.dmitriy
QQ 1153562714
dsp@cathaygroup.ru<mailto:dsp@cathaygroup•ru>



--
This message has been scanned by E.F.A. Project and is believed to be clean.



[-- Attachment #2: Type: text/html, Size: 5092 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Govpn-devel] Как удалить tap-интерфейс, когда клиент отключился?
@ 2016-04-02  7:18 Popovich Dmitry
  2016-04-02  7:51 ` Sergey Matveev
  0 siblings, 1 reply; 5+ messages in thread
From: Popovich Dmitry @ 2016-04-02  7:18 UTC (permalink / raw)
  To: govpn-devel

[-- Attachment #1: Type: text/plain, Size: 968 bytes --]

Добрый день!
Интерфейс для клиента создается автоматически скриптом up.sh

#!/bin/sh
PEER="dsp"
TAP=$(tunctl|grep -o '\tap[0-9]\+')
echo "Peer" $PEER "connected, iface "$TAP "created" >>/var/log/govpn-server.log
ip addr add 172.16.0.1/24 dev $TAP
ip link set up dev $TAP
echo $TAP

Таким же образом хочу его и заглушить, когда клиент отвалился
#!/bin/sh
PEER="dsp"
echo "Peer " $PEER " disconnected, iface " $GOVPN_IFACE " is shutting down" >>/var/log/govpn-server.log
tunctl -d $GOVPN_IFACE

Но не срабатывает, выдает ошибку
TUNSETIFF: Device or resource busy

Пробовал руками - тоже самое.
Каким образом можно освободить интерфейс и удалить его?

Best regards,
Dmitry Popovich
Chief Project Manager
Mob. +86 18620274552 (China)
Mob. +7 9233552529 (Russia)
Skype itl.popovich.dmitriy
QQ 1153562714
dsp@cathaygroup.ru<mailto:dsp@cathaygroup•ru>



--
This message has been scanned by E.F.A. Project and is believed to be clean.



[-- Attachment #2: Type: text/html, Size: 4842 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-04-03  8:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-02 13:35 [Govpn-devel] Как удалить tap-интерфейс, когда клиент отключился? Popovich Dmitry
2016-04-03  8:31 ` Sergey Matveev
  -- strict thread matches above, loose matches on Subject: below --
2016-04-02  7:32 Popovich Dmitry
2016-04-02  7:18 Popovich Dmitry
2016-04-02  7:51 ` Sergey Matveev