Виртуальное сетевой устройство с криптованием

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение Olej » 14 мар 2012, 23:50

kit_D писал(а): >>P.S. пока у меня идёт компиляция ядра 3.0.9 ... закончится - посмотрю runtime.
А зачем вы компилируете, почему бы не установить из репозитория
sudo apt-get install linux-image-3.0.0-16
sudo apt-get install linux-headers-3.0.0-16
Потому, что установить из репозитария (любого дистрибутива) можно только те ядра, которые предоставляются для обновления этой версии дистрибутива.
Обычно это в пределах 1-й версии ядра (подмодификации), или несколько соседних.
И для того, чтобы в программировании модулей делать разработку и использовать API на достаточно свежие версии ядра (поспевать), я знаю только вот такие способы:

1. новые версии ядра выходят в среднем с периодом 12 недель, в итоге, 1-й способ: нужно раз в 1/2 года сносить установленный Linux + ставить свежий дистрибутив; здесь может помочь раздельное размещение /home & /root по разделам HDD.

2. делать обновление версий дистрибутива, так для Fedora где-то здесь обсуждался этот процесс (обновление через 2 версии Fedora: Fedora 12 -> Fedora 14, Fedora 14 -> Fedora 16) ... т.е. "подтягивать" дистрибутив; но этот процесс, к сожалению, временами плохо заканчивается ... иногда он не проходит ОК из-за недостаточного размера /boot, выделенного в отдельном разделе HDD ... при таких сбоях цена вопроса: полностью сносить дистрибутив + п.1 (возврата нет).

3. доставлять (в GRUB) ванильное (официальное) ядро, компилируя из исходников ... в качестве начального приближения взять .config из своего текущего дистрибутива (/boot).

4. (может быть самый умный способ): ставить нужное число виртуальных инсталляций любых ядер/дистрибутивов и запускать их под VirtualBox (а это QEMU); очень хорошо при этом работать с такими VM удалённо, по ssh - или с другого хоста LAN, либо даже с базовой OS ... при этом VM может крытиться без X11.

Больше способов я не знаю.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение Olej » 15 мар 2012, 02:41

Olej писал(а): 3. доставлять (в GRUB) ванильное (официальное) ядро, компилируя из исходников ... в качестве начального приближения взять .config из своего текущего дистрибутива (/boot).

Код: Выделить всё

[olej@notebook 2012_WORK]$ u_n_a_m_e -a
Linux notebook.localdomain 3.0.9 #1 SMP Wed Mar 14 19:01:37 EET 2012 i686 i686 i386 GNU/Linux
Уже не первый раз у меня возникает вопрос, на который я не знаю ответа: после установки нового собранного ядра, что оно делает так безумно долго при первой загрузке?

kit_D
Писатель
Сообщения: 52
Зарегистрирован: 13 мар 2012, 13:14
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение kit_D » 15 мар 2012, 12:34

>>Потому, что установить из репозитария (любого дистрибутива) можно только те ядра, которые предоставляются
>>для обновления этой версии дистрибутива.

А чем вас єто не устраивает? Я себе поставил 3.0.0-16. Вообще-то в моем случае, надо поставить ядро, которое соответствует ядру на Android ICS для того чтобы семантика вызовов совпадала.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение Olej » 15 мар 2012, 12:51

kit_D писал(а):>>Потому, что установить из репозитария (любого дистрибутива) можно только те ядра, которые предоставляются
>>для обновления этой версии дистрибутива.

А чем вас єто не устраивает? Я себе поставил 3.0.0-16.
Потому что в обсуждаемом контексте правильнее (точнее, конкретнее) говорить: "я поставил себе дистрибутив Ubuntu XX.Y, в котором ядро 3.0.0-16"

Это и есть способ по п.1 из 4-х мной перечисленных выше.
Не очень он меня устраивает потому как ... :-? ... обломно мне получается переустанавливать Linux при выходе каждого очередного дистрибутива :cry: :
- у меня под руками несколько компьютеров...
- на которых установлены разные дистрибутивы Linux, разных времён давности, с разными ядрами...
- которые кроме того установлены с разными разбивками HDD под файловую систему Linux...
- а ещё это усугубляется тем, что там кой-где стоят кой-какие ОС не-Linux, которые потребляют себе первичные разделы HDD, и кое-что приходится заталкивать в extended...
- ну и плюс, там раскиданы файлы - результаты работ, за пару-тройку лет - которые безумно жалко потерять по глупости при установке - большие объёмы каждый раз нужно бэкапить.

kit_D
Писатель
Сообщения: 52
Зарегистрирован: 13 мар 2012, 13:14
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение kit_D » 15 мар 2012, 13:02

Тут вот иноземные товарищи еще сделали такой совет:

There is an API(www.netfilter.org) libnetfilter_queue that you can handle the packets from user-space and modify them. So if you want to develop your own encryption algorithm for encrypt packets i think its a better idea first to develop on user-space and maybe latter change to kernel if needed.

Надо бы посмотреть что это за libnetfilter_queue.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение Olej » 15 мар 2012, 18:17

kit_D писал(а):Выкладываю новую версия кода.
Ну вот ;-) :

Код: Выделить всё

[olej@notebook crypto1]$ make
make -C /lib/modules/3.0.9/build M=/home/olej/2012_WORK/OWN.BOOKS/examples.DRAFT/network/crypto1/crypto1 modules 
make[1]: Entering directory `/usr/src/linux-3.0.9'
  CC [M]  /home/olej/2012_WORK/OWN.BOOKS/examples.DRAFT/network/crypto1/crypto1/crypto0.o
/home/olej/2012_WORK/OWN.BOOKS/examples.DRAFT/network/crypto1/crypto1/crypto0.c: В функции ‘crypto_init’:
/home/olej/2012_WORK/OWN.BOOKS/examples.DRAFT/network/crypto1/crypto1/crypto0.c:175: предупреждение: неиспользуемая переменная ‘slave’
/home/olej/2012_WORK/OWN.BOOKS/examples.DRAFT/network/crypto1/crypto1/crypto0.c:173: предупреждение: неиспользуемая переменная ‘priv’
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/olej/2012_WORK/OWN.BOOKS/examples.DRAFT/network/crypto1/crypto1/crypto0.mod.o
  LD [M]  /home/olej/2012_WORK/OWN.BOOKS/examples.DRAFT/network/crypto1/crypto1/crypto0.ko
make[1]: Leaving directory `/usr/src/linux-3.0.9'
Это нативное+ванильное ядро 3.0.9 + ваша новая версия.
Теперь можно посмотреть что там получается.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение Olej » 15 мар 2012, 19:32

Olej писал(а):Это нативное+ванильное ядро 3.0.9 + ваша новая версия.
Теперь можно посмотреть что там получается.

Код: Выделить всё

[olej@nvidia crypto1]$ u_n_a_m_e -a
Linux nvidia.localdomain 3.2.9-2.fc16.i686 #1 SMP Mon Mar 5 21:12:36 UTC 2012 i686 i686 i386 GNU/Linux
[olej@nvidia crypto1]$ make
...
  CC      /home/olej/WORK/network/crypto1/crypto1/crypto0.mod.o
  LD [M]  /home/olej/WORK/network/crypto1/crypto1/crypto0.ko
make[1]: Выход из каталога `/usr/src/kernels/3.2.9-2.fc16.i686'
А это VM 3.2.9 (Fedora 16 RFR) ...
Теперь можно сравнивать.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение Olej » 15 мар 2012, 19:35

Olej писал(а):А это VM 3.2.9 (Fedora 16 RFR) ...
Теперь можно сравнивать.
Там будет любопытно строить виртуальный сетевой интерфейс :-o :

Код: Выделить всё

[olej@nvidia crypto1]$ ifconfig
...
p2p1      Link encap:Ethernet  HWaddr 08:00:27:47:CF:BE  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe47:cfbe/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:50166 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30935 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:65055253 (62.0 MiB)  TX bytes:2811023 (2.6 MiB)

kit_D
Писатель
Сообщения: 52
Зарегистрирован: 13 мар 2012, 13:14
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение kit_D » 15 мар 2012, 19:43

Под 3.2.9 кернел компилируется без изменений?
Что за p2p1 интерфейс?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальное сетевой устройство с криптованием

Непрочитанное сообщение Olej » 15 мар 2012, 20:00

kit_D писал(а):Под 3.2.9 кернел компилируется без изменений?
Без.
С теми же самыми варнингсами ;-)
kit_D писал(а):Что за p2p1 интерфейс?
Виртуальный сетевой интерфейс VirtualBox в режиме сети, который они называют "Сетевой мост".

Код: Выделить всё

[olej@nvidia ~]$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: p2p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:47:cf:be brd ff:ff:ff:ff:ff:ff
Как видно, по типу он считается link/ether.
Они говорят, что моделируют Intel PRO/1000 MT ... там у них выбор из 5 адаптеров + "паравиртуальная сеть", я не знаю что это такое.

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей