URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93378
[ Назад ]

Исходное сообщение
"создание виртуального интерфейса (не алиаса) в linux"

Отправлено timafey , 17-Май-12 15:37 
Добрый день ув Сообщество. Прошу помочь, кто чем может.
Мне необходимо создать виртуальный интерфейс с привязкой к физическому. В начале мне было достаточно алиасов, но потом потребовалось рулить интерфейсами с помощью iptables. А как известно последнему на алиасы пофиг, потому стал искать другое решение, но найти никак не могу(догадываюсь что нужно делать tap интерфейс но как, не знаю), потому прошу помощи.
Заранее благодарен всем за помощь.

Содержание

Сообщения в этом обсуждении
"создание виртуального интерфейса (не алиаса) в linux"
Отправлено Andrey Mitrofanov , 17-Май-12 15:44 
http://www.opennet.me/tips/2683_linux_namespace_gateway_virt... ?

"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 17-Май-12 16:06 
> http://www.opennet.me/tips/2683_linux_namespace_gateway_virt...
> ?

Спасибо, вроде то что нужно. Буду разбираться.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено тень_pavel_simple , 18-Май-12 13:25 
> http://www.opennet.me/tips/2683_linux_namespace_gateway_virt...
> ?

может macvlan ??? лучше подойдёт


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено Andrey Mitrofanov , 18-Май-12 13:38 
> может macvlan ??? лучше подойдёт

О, здорово. iptables-ом видится под своим именем интерфейса? ...

... G://"macvlan"+site:opennet.ru ... 2all: Гм, кто /tips/ :)) напишет?


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 18-Май-12 16:44 
>> http://www.opennet.me/tips/2683_linux_namespace_gateway_virt...
>> ?
> может macvlan ??? лучше подойдёт

интересная штука но не катит. Блокирование одного интерфейса ведет к блокированию всех виртуальных интерфейсов


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено тень_pavel_simple , 19-Май-12 11:05 
>>> http://www.opennet.me/tips/2683_linux_namespace_gateway_virt...
>>> ?
>> может macvlan ??? лучше подойдёт
> интересная штука но не катит. Блокирование одного интерфейса ведет к блокированию всех
> виртуальных интерфейсов

что, правда? и чем вы их блокируете?


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 21-Май-12 12:16 
>>>> http://www.opennet.me/tips/2683_linux_namespace_gateway_virt...
>>>> ?
>>> может macvlan ??? лучше подойдёт
>> интересная штука но не катит. Блокирование одного интерфейса ведет к блокированию всех
>> виртуальных интерфейсов
> что, правда? и чем вы их блокируете?

iptables


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено тень_pavel_simple , 21-Май-12 20:33 
>>>>> http://www.opennet.me/tips/2683_linux_namespace_gateway_virt...
>>>>> ?
>>>> может macvlan ??? лучше подойдёт
>>> интересная штука но не катит. Блокирование одного интерфейса ведет к блокированию всех
>>> виртуальных интерфейсов
>> что, правда? и чем вы их блокируете?
> iptables

а можно полностью правило посмотреть?

как выше Андрей сказал можно это делать еще несколькими способами
1 bridge + tun/tap
2 использовать контейнеры


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 28-Май-12 10:52 
>[оверквотинг удален]
>>>>>> ?
>>>>> может macvlan ??? лучше подойдёт
>>>> интересная штука но не катит. Блокирование одного интерфейса ведет к блокированию всех
>>>> виртуальных интерфейсов
>>> что, правда? и чем вы их блокируете?
>> iptables
> а можно полностью правило посмотреть?
> как выше Андрей сказал можно это делать еще несколькими способами
> 1 bridge + tun/tap
> 2 использовать контейнеры

Как использовать контейнеры я так и не понял, в вот bridge +tun/tap нужно будет попробовать. Спасибо


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 21-Май-12 16:05 
> http://www.opennet.me/tips/2683_linux_namespace_gateway_virt...
> ?

Так и не понял как network namespaces использовать, действия из статьи ни к чему не приводят, а гугл вообще толком ничего сказать не может


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено LSTemp , 17-Май-12 20:19 
> Добрый день ув Сообщество. Прошу помочь, кто чем может.
> Мне необходимо создать виртуальный интерфейс с привязкой к физическому. В начале мне
> было достаточно алиасов, но потом потребовалось рулить интерфейсами с помощью iptables.
> А как известно последнему на алиасы пофиг, потому стал искать другое

IP на алиасах разный - религия мешает проверять их в IPTables?

> решение, но найти никак не могу(догадываюсь что нужно делать tap интерфейс
> но как, не знаю), потому прошу помощи.
> Заранее благодарен всем за помощь.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 18-Май-12 11:55 
>> Добрый день ув Сообщество. Прошу помочь, кто чем может.
>> Мне необходимо создать виртуальный интерфейс с привязкой к физическому. В начале мне
>> было достаточно алиасов, но потом потребовалось рулить интерфейсами с помощью iptables.
>> А как известно последнему на алиасы пофиг, потому стал искать другое
> IP на алиасах разный - религия мешает проверять их в IPTables?
>> решение, но найти никак не могу(догадываюсь что нужно делать tap интерфейс
>> но как, не знаю), потому прошу помощи.
>> Заранее благодарен всем за помощь.

Да мешает. Мне необходимо рулить именно интерфейсами.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено LSTemp , 20-Май-12 07:38 
>>> Добрый день ув Сообщество. Прошу помочь, кто чем может.
>>> Мне необходимо создать виртуальный интерфейс с привязкой к физическому. В начале мне
>>> было достаточно алиасов, но потом потребовалось рулить интерфейсами с помощью iptables.
>>> А как известно последнему на алиасы пофиг, потому стал искать другое
>> IP на алиасах разный - религия мешает проверять их в IPTables?
>>> решение, но найти никак не могу(догадываюсь что нужно делать tap интерфейс
>>> но как, не знаю), потому прошу помощи.
>>> Заранее благодарен всем за помощь.
> Да мешает. Мне необходимо рулить именно интерфейсами.

Нет слов. удачи.



"создание виртуального интерфейса (не алиаса) в linux"
Отправлено LSTemp , 20-Май-12 08:41 
>>>> Добрый день ув Сообщество. Прошу помочь, кто чем может.
>>>> Мне необходимо создать виртуальный интерфейс с привязкой к физическому. В начале мне
>>>> было достаточно алиасов, но потом потребовалось рулить интерфейсами с помощью iptables.
>>>> А как известно последнему на алиасы пофиг, потому стал искать другое
>>> IP на алиасах разный - религия мешает проверять их в IPTables?
>>>> решение, но найти никак не могу(догадываюсь что нужно делать tap интерфейс
>>>> но как, не знаю), потому прошу помощи.
>>>> Заранее благодарен всем за помощь.
>> Да мешает. Мне необходимо рулить именно интерфейсами.
> Нет слов. удачи.

Я-то грешным делом подумал, что трафик надо фильтровать, а Вам оказывается надо
"
рулить интерфейсами с помощью iptables.
"



"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 21-Май-12 12:16 
>[оверквотинг удален]
>>>> IP на алиасах разный - религия мешает проверять их в IPTables?
>>>>> решение, но найти никак не могу(догадываюсь что нужно делать tap интерфейс
>>>>> но как, не знаю), потому прошу помощи.
>>>>> Заранее благодарен всем за помощь.
>>> Да мешает. Мне необходимо рулить именно интерфейсами.
>> Нет слов. удачи.
> Я-то грешным делом подумал, что трафик надо фильтровать, а Вам оказывается надо
> "
> рулить интерфейсами с помощью iptables.
> "

Мне нужно фильтровать трафик но обязательно по именам интерфейсов. использовать ip не могу


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено LSTemp , 26-Май-12 04:00 
>[оверквотинг удален]
>>>>>> но как, не знаю), потому прошу помощи.
>>>>>> Заранее благодарен всем за помощь.
>>>> Да мешает. Мне необходимо рулить именно интерфейсами.
>>> Нет слов. удачи.
>> Я-то грешным делом подумал, что трафик надо фильтровать, а Вам оказывается надо
>> "
>> рулить интерфейсами с помощью iptables.
>> "
> Мне нужно фильтровать трафик но обязательно по именам интерфейсов. использовать ip не
> могу

Может тогда поясните откуда такое ограничение? Т.е более полно задачу опишите.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 28-Май-12 10:51 
>[оверквотинг удален]
>>>>>>> Заранее благодарен всем за помощь.
>>>>> Да мешает. Мне необходимо рулить именно интерфейсами.
>>>> Нет слов. удачи.
>>> Я-то грешным делом подумал, что трафик надо фильтровать, а Вам оказывается надо
>>> "
>>> рулить интерфейсами с помощью iptables.
>>> "
>> Мне нужно фильтровать трафик но обязательно по именам интерфейсов. использовать ip не
>> могу
> Может тогда поясните откуда такое ограничение? Т.е более полно задачу опишите.

Попробую. В машину Debian входит по одному и тому же проводу две сети. Адреса алиасов - 1.2 и 2.1 первая сеть -выход в интернет через SNAT вторая - локалка. Но есть еще третья сеть 3. которая доступна через роутер с адресом 2.2(те этот роутер находится в локалке) Те на Debian осуществляется перенаправление. В нем и проблема, потому что на него тоже распространяются правила ната. Как их отфильтровать кроме как по интерфейсам я не знаю


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено Andrey Mitrofanov , 28-Май-12 12:14 
>Как их отфильтровать кроме как по интерфейсам я не знаю

По. ip. ?.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 28-Май-12 13:10 
>>Как их отфильтровать кроме как по интерфейсам я не знаю
> По. ip. ?.

В том то и беда что не получается. Нужно обозначить ip адрес интерфейса с которого пакеты уходят, но как это сделать средствами iptables я не знаю.
Или подошел бы вариант типа !192.168.3.0 но в iptables знака !(не) нету вроде. Других вариантов я не вижу. Если подскажите, буду очень признателен.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено uznik , 28-Май-12 13:32 
> ... но в iptables знака !(не) нету
> вроде. Других вариантов я не вижу. Если подскажите, буду очень признателен.

А вы попробуйте, результат вас должен приятно удивить



"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 28-Май-12 15:49 
>> ... но в iptables знака !(не) нету
>> вроде. Других вариантов я не вижу. Если подскажите, буду очень признателен.
> А вы попробуйте, результат вас должен приятно удивить

Только сейчас попробовал такое правило (для проверки работоспособности знака !)
iptables -A OUTPUT -p icmp --dst '!192.168.6.1' -j DROP
отвечает:
iptables v1.4.10: host/network `!192.168.6.1' not found

может что не так пишу? просто в документации нигде по этому вопросу ничего не нашел, вот и решил что нет такой возможности


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено Andrey Mitrofanov , 28-Май-12 16:09 
>>> ... но в iptables знака !(не) нету
>>> вроде. Других вариантов я не вижу. Если подскажите, буду очень признателен.
>> А вы попробуйте, результат вас должен приятно удивить
> Только сейчас попробовал такое правило (для проверки работоспособности знака !)
> iptables -A OUTPUT -p icmp --dst '!192.168.6.1' -j DROP
> отвечает:
> iptables v1.4.10: host/network `!192.168.6.1' not found
> может что не так пишу? просто в документации нигде по этому вопросу
> ничего не нашел, вот и решил что нет такой возможности

man iptables, неменденно!!

iptables -A OUTPUT -p icmp \! --dst 192.168.6.1 -j DROP


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 29-Май-12 15:14 
>[оверквотинг удален]
>>>> вроде. Других вариантов я не вижу. Если подскажите, буду очень признателен.
>>> А вы попробуйте, результат вас должен приятно удивить
>> Только сейчас попробовал такое правило (для проверки работоспособности знака !)
>> iptables -A OUTPUT -p icmp --dst '!192.168.6.1' -j DROP
>> отвечает:
>> iptables v1.4.10: host/network `!192.168.6.1' not found
>> может что не так пишу? просто в документации нигде по этому вопросу
>> ничего не нашел, вот и решил что нет такой возможности
> man iptables, неменденно!!
> iptables -A OUTPUT -p icmp \! --dst 192.168.6.1 -j DROP

Опа.
Очень благодарен. Просмотрел. Пошел курить повторно курить маны, может еще что пропустил интересное. Спасибо!


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено LSTemp , 01-Июн-12 06:15 
>>>> ... но в iptables знака !(не) нету
>>>> вроде. Других вариантов я не вижу. Если подскажите, буду очень признателен.
>>> А вы попробуйте, результат вас должен приятно удивить
>> Только сейчас попробовал такое правило (для проверки работоспособности знака !)
>> iptables -A OUTPUT -p icmp --dst '!192.168.6.1' -j DROP
>> отвечает:
>> iptables v1.4.10: host/network `!192.168.6.1' not found
>> может что не так пишу? просто в документации нигде по этому вопросу
>> ничего не нашел, вот и решил что нет такой возможности
> man iptables, неменденно!!

угу. сам он все-таки не родил, как я ни старался на данную мысль навести )

> iptables -A OUTPUT -p icmp ! --dst 192.168.6.1 -j DROP

м/б?

iptables -A OUTPUT -p icmp --dst ! [пробел] 192.168.6.1 -j DROP


$man iptables
...
-d, --destination [!] address[/mask]
              Destination  specification.   See  the  description  of  the  -s
              (source)  flag  for  a  detailed description of the syntax.  The
              flag --dst is an alias for this option.
...

конечно скрипты обычно разбирают правила перед загрузкой, но они OS-depended. лучше в нативном формате IPT сразу правило писать


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено Andrey Mitrofanov , 01-Июн-12 09:24 
>[оверквотинг удален]
> мысль навести )
>> iptables -A OUTPUT -p icmp ! --dst 192.168.6.1 -j DROP
> м/б?
> iptables -A OUTPUT -p icmp --dst ! [пробел] 192.168.6.1 -j DROP
> $man iptables
> ...
> -d, --destination [!] address[/mask]
>   Destination  specification.   See  the  description  of  the  -s
>   (source)  flag  for  a  detailed description of the syntax.  The
> ...

О, как.

[!] -d, --destination address[/mask][,...]
  Destination specification.  See the description of the -s (source) flag for a detailed descrip‐
  tion of the syntax.  The flag --dst is an alias for this option.
+
iptables 1.4.12.2      IPTABLES(8)


....
Однако:
-d, --destination [!] address[/mask]
в
     # iptables -V
     iptables v1.3.6
на другом (старом) хосте.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено reader , 01-Июн-12 11:26 
>[оверквотинг удален]
> alias for this option.
> +
> iptables 1.4.12.2      IPTABLES(8)
> ....
> Однако:
>  -d, --destination [!] address[/mask]
> в
>      # iptables -V
>      iptables v1.3.6
> на другом (старом) хосте.

v1.4 принимает синтаксис от v1.3 , но выкидывает предупреждении


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено LSTemp , 02-Июн-12 01:05 
>[оверквотинг удален]
> alias for this option.
> +
> iptables 1.4.12.2      IPTABLES(8)
> ....
> Однако:
>  -d, --destination [!] address[/mask]
> в
>      # iptables -V
>      iptables v1.3.6
> на другом (старом) хосте.

основная мысль была - писать правила в нативном для IPT формате ). и естественно для IPT установленном в системе. тоже конечно OC-зависимо, но гораздо меньше, чем инит-скрипты в разных дистрибутивах.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено Andrey Mitrofanov , 28-Май-12 14:08 
>>>Как их отфильтровать кроме как по интерфейсам я не знаю
>> По. ip. ?.
> В том то и беда что не получается. Нужно обозначить ip адрес
> интерфейса с которого пакеты уходят, но как это сделать средствами iptables

По ip сети назначения?


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 28-Май-12 15:52 
>>>>Как их отфильтровать кроме как по интерфейсам я не знаю
>>> По. ip. ?.
>> В том то и беда что не получается. Нужно обозначить ip адрес
>> интерфейса с которого пакеты уходят, но как это сделать средствами iptables
> По ip сети назначения?

так натятся пакеты все кроме 192.168.0.0 Те придется указывать диапазон до 192.168. и диапазон после.  В принципе вариант рабочий но уж больно некрасивый имхо. Хочется этого избежать


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено reader , 28-Май-12 16:25 
>>>>>Как их отфильтровать кроме как по интерфейсам я не знаю
>>>> По. ip. ?.
>>> В том то и беда что не получается. Нужно обозначить ip адрес
>>> интерфейса с которого пакеты уходят, но как это сделать средствами iptables
>> По ip сети назначения?
> так натятся пакеты все кроме 192.168.0.0 Те придется указывать диапазон до 192.168.
> и диапазон после.  В принципе вариант рабочий но уж больно
> некрасивый имхо. Хочется этого избежать

для пакетов для которых не нужно делать snat, сделайте правило выше с -j ACCEPT


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 29-Май-12 15:15 
>>>>>>Как их отфильтровать кроме как по интерфейсам я не знаю
>>>>> По. ip. ?.
>>>> В том то и беда что не получается. Нужно обозначить ip адрес
>>>> интерфейса с которого пакеты уходят, но как это сделать средствами iptables
>>> По ip сети назначения?
>> так натятся пакеты все кроме 192.168.0.0 Те придется указывать диапазон до 192.168.
>> и диапазон после.  В принципе вариант рабочий но уж больно
>> некрасивый имхо. Хочется этого избежать
> для пакетов для которых не нужно делать snat, сделайте правило выше с
> -j ACCEPT

Так правила SNAT после фильтрации обрабатываются.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено Andrey Mitrofanov , 29-Май-12 15:37 
>> для пакетов для которых не нужно делать snat, сделайте правило выше с
>> -j ACCEPT
> Так правила SNAT после фильтрации обрабатываются.

Перечитай порядок прохождения таблиц. Нет, ты не ошибся. Но обрати внимание на _значение -j ACCEPT в таблице nat? Это не тот ACCEPT, что в -t filter. Их два и они разные. И могут _независимо применяться к пакету/соединению. (Хотя не так и независимо, без второго-таки не будет первого, но это семантика...)


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено timafey , 29-Май-12 15:43 
>>> для пакетов для которых не нужно делать snat, сделайте правило выше с
>>> -j ACCEPT
>> Так правила SNAT после фильтрации обрабатываются.
> Перечитай порядок прохождения таблиц. Нет, ты не ошибся. Но обрати внимание на
> _значение -j ACCEPT в таблице nat? Это не тот ACCEPT, что
> в -t filter. Их два и они разные. И могут _независимо
> применяться к пакету/соединению. (Хотя не так и независимо, без второго-таки не
> будет первого, но это семантика...)

Спасибо. Пошел читать.


"создание виртуального интерфейса (не алиаса) в linux"
Отправлено LSTemp , 01-Июн-12 06:29 
>>>> для пакетов для которых не нужно делать snat, сделайте правило выше с
>>>> -j ACCEPT
>>> Так правила SNAT после фильтрации обрабатываются.
>> Перечитай порядок прохождения таблиц. Нет, ты не ошибся. Но обрати внимание на
>> _значение -j ACCEPT в таблице nat? Это не тот ACCEPT, что
>> в -t filter. Их два и они разные. И могут _независимо
>> применяться к пакету/соединению. (Хотя не так и независимо, без второго-таки не
>> будет первого, но это семантика...)
> Спасибо. Пошел читать.

Вот хорошая дока для изучения IPT (хоть и старая):
http://www.opennet.me/docs/RUS/iptables/

Пропускай пока то, что непонятно - самое главное концепцию пойми: правила строятся в цепочки, цепочки правил принадлежат какой-то таблице, каждая таблица отвечает за обработку определенного вида трафика.

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