Опубликован выпуск пакетного фильтра nftables 1.0.0, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). Необходимые для работы выпуска nftables 1.0.0 изменения включены в состав ядра Linux 5.13. Значительное изменение номера версии не связано с какими-то кардинальными изменениями, а лишь является следствием последовательного продолжения нумерации в десятичном исчислении (прошлый выпуск был 0.9.9)...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=55663
Охрененно, просто молодцы! firewall здорового сервера.
Ага отличный firewall а синтаксис какой хороший. А просмотр правил вообще закачаешься.
Осталось только переписать это на Rust,
и станет еще лучше!
Что видимо скоро неизбежно сделают...
С таким синтаксисом лучше сразу на APL.
В Rust отличный синтаксис!
Кстати, и синтаксис пакетного фильтра можно завернуть как DSL в Rust.
Не уверен, что синтаксис nft можно формализовать (и при этом не поехать кукухой).
Неуверены вы, это и ваши проблемы.Главное что уверены в Rust, те кто в нем умеют и понимают, и им ваша неуверенность никак не мешает.
А кто сказал, что в синтаксис nft что-то уперлось (кроме ваших стереотипов мышления)? (Ну это в случае, что там действительно есть проблемы, и они не ваши личные, как обычно сразу выясняется.)
Это все что вы можете - придраться к синтаксису nft, когда вы отвечали на пост про DSL в Rust? Вы вообще поняли о чем речь-то шла? Или вы где-то слышали слово "формализовать", и решили, что если вы его скажете вместе со словом "синтаксис", то все сразу поверят в вашу якобы компетентность.
Раст давно давно "любимый" язык.
Против Раста только бездари и невежды, что каждый раз они сами про себя и доказывают.
Вы таблетки забыли принять.
+100500
Найдутся и такие, кто на Electron перепишет.
> Найдутся и такие, кто на Electron перепишет.Вот, пожалуйста, не надо хипстерам идеи подавать! А то много сейчас таких стильных, модных, молодёжных...
сразу на джаваскрипт
Не, не сделают. _начнут_переписывать_по дороге, разумеется, еще пару раз сломают. В принципе, чума на оба их дома...
Что это такого на Rust где ломают (чтобы систематически, а не какие то отдельные случаи).
В Rust действительно очень эффективно переписывает старый системный код.
Другое дело, что как раз таки не надо торопиться быстро переписывать, как обычно на Rust и делают, зато то что написано очень хорошо работает, еще на нулевых версиях.Так что очень реальная перспектива.
> В принципе, чума на оба их дома...
Бессильные проклятия сразу выдают зависть и страх неизбежного.
мне (сишнику) норм :) Писать удобно. Разве что, вики не совсем полноценно отражает фичи (а может, уже и допилили).
Поддерживаю. Структурненькое оформление правил, нравится.
Структурное оформление есть, теперь бы семантическое наполнение.А то синтаксис как-то вообще не страдает внутренней логичностью и интуитивной понятностью, а документация остаётся на уровне "вот вам пара примеров, не обляпайтесь".
Сишникам самое оно.
> теперь бы семантическое наполнениеИ семантическое версионирование в придачу
Хоть ты лопни хоть ты тресни
IPFW на первом месте!
Тоже вброс.
> Тоже вброс.Что он не так сказал? Ещё и стихами..
Он страшен, как смерть от кровавого поноса.
ipfw уже научилось в таблицы с таймаутом?
> ipfw уже научилось в таблицы с таймаутом?О чём вы конкретно?
ipset create test hash:ip timeout 300
ipset add test 192.168.0.1 timeout 60
ipset -exist add test 192.168.0.1 timeout 600ipset -L test
...
Members:
192.168.0.1 timeout 598Зачем - сам догадаешься?
Вы говорите загадками. И этот синтаксис для меня чужой.Что конкретно этот тайм-аут даёт? Как выглядит правило использующее эту таблицу?
Конкретно таймаут позволяет применять правило (accept/drop) для элементов таблицы на некоторое время.
Добавление в таблицу - делает правило iptables по некоторому критерию.
Примеры - защита от dos, например. Динамическая, без участия оператора или доп. сервиса.
Думаю для этого понадобится внешний скрипт или программа.
Понадобится, конечно, если пользоваться ipfw.
А так чем пион, да.
>И этот синтаксис для меня чужой.Проследуйте в man или продолжайте себя успокаивать, что ipfw - чем пион :)
Это хороший фаерволл.Защита от ддоса отдельная тема, не думаю что вам в этом эти тайм-ауты сильно помогут.
Кстати, у вас в живую случается ддос именно на сетевой стек?
1. Файрволл в ядре, но ipfw чем пион, да.
2. Не надо думать за других, это чревато боком :). Таймауты есть, просто есть. Уже. И да, работают. Без дополнительных сервисов.
3. Глупый вопрос. А зачем тогда вообще нужен файрволл на сетевом стеке?
Ну или хотя-бы hash:ip,port
?
Про динамические правила работы говорить вообще не стоит.
Чистая статика и закат солнца вручную, да :)
Почитайте ман.
Нифига в мане ipfw не нашел про динамические правила.
Ничего не нашел в ipfw аналогично:ipset create test hash:ip,port
ipset add test 192.168.0.1,udp:123
ipset add test 192.168.0.2,udp:53
ipset add test 192.168.0.3,udp:161
ipset add test 192.168.0.4,tcp:80
ipset add test 192.168.0.4,tcp:443
И, чтобы закончить измерение прочности бубенчиков, ipfw, как и iptables/ipset/nft etc - это инструмент, который управляет правилами в ядре. Просто ядра РАЗНЫЕ, и функционал тоже, да. :)
А чем оно лучше PF (BSD) ?
Это был очередной вброс.
Нет, я серьезно! Мне нет разницы на чем запустить виртуалку - линуха или BSD, если мне нужно собрать роутер.. 5-6 локальных сеток, интерфейсы для 3 инстантсов VPN-сервера на 50 клиентов, NAS для биллинга с MPD (PPPoE) и т.п. С pf есть возможность хотя бы читаемый конфиг сделать, через pflog делать трассировку, etc..
А что с точки зрения удобства оперативного управления есть в nftables?
Слушай, это первый в линукс файрвол здорового человека. Это его основной плюс.
Читается он точно хуже pf. Но наделают (заточат существующие) фронтэнды и будет легче.
>Слушай, это первый в линукс файрвол здорового человека.Не первый, есть FERM (фронтенд, да, но работает :) ).
cat /usr/share/doc/ferm/examples/antiddos.ferm
# -*- shell-script -*-
#
# Ferm example script
#
# Firewall configuration to prevent basic tcp DoS/DDoS attacks
#
# Authors: Vlad Glagolev <enqlave@gmail.com>, Stepan Rogov <rogov_sa@mail.ru>
#@def &ANTIDDOS($ports, $seconds, $hits, $time, $exceptions) = {
proto tcp dport $ports @subchain "ddos_check" {
# allow every exception as-is
saddr $exceptions ACCEPT;# connection tracking
mod conntrack ctstate (ESTABLISHED RELATED) ACCEPT;# check for IPs overloading $hits/$seconds rate and block them
mod recent name "ddos_check" rcheck seconds $seconds hitcount $hits @subchain "ddos" {
mod recent set name "ddos" NOP;DROP;
}# register a packet in "ddos_check" list
mod recent set name "ddos_check" NOP;# check IP in "ddos" list
# if it exists and had been registered in the last $time seconds -- drop it
mod recent name "ddos" rcheck seconds $time DROP;# remove packet from "ddos" list
mod recent name "ddos" remove NOP;# allow ONLY new connections
mod conntrack ctstate NEW ACCEPT;DROP;
}
}table filter {
chain INPUT {
policy DROP;# connection tracking
mod state state INVALID REJECT;
mod state state (ESTABLISHED RELATED) ACCEPT;# allow local connections
interface lo ACCEPT;# ban ip addresses for 1 day which connect more than 50 times in 3 seconds,
# exception is IP: 94.29.90.101
&ANTIDDOS((80, 443), 50, 3, 86400, 94.29.90.101);# the rest is dropped by the above policy
}# outgoing connections are not limited
chain OUTPUT policy ACCEPT;# this is not a router
chain FORWARD policy DROP;
}
pf - на уровне ядра
nftables - на уровне узверя
>nftables - на уровне узверя
> А чем оно лучше PF (BSD) ?Так под него и косят, Вы разве не видите похожие шаблоны?
Все производители внедорожников косят под Jeep, вы разве не видите похожие шаблоны?
> Все производители внедорожников косят под Jeep, вы разве не видите похожие шаблоны?Вижу, и не говорю что это плохо... пока у всех у них стандартизироное расположение руля, "газа" и тормоза... в отличе от софтверной индустрии, где сперва начинают обезяничать с наилучщих, но так увлекаются что в итоге быстро обрастают несовместимостью, где нет стандартизированных правил не в синтаксе и не в сeмантике
GUI так и нет в 2021?
Зачем там GUI? Для гуйни есть gufw с vuurmuur, но там правда iptables.
А если сказать, что в Виндах файрволл лучше, вы вообще все дела бросите и кинетесь доказывать.
Это же просто тупо вброс.
А что, разве есть такие люди, которые знают как там в виндах работает файрвол на уровне ядра ОС ?
И для тех, кто скажет "лучше" и для тех кто будет доказывать обратное - всего лишь, курятничье кудахтание.
Есть люди, которые знают, что диалоговое окно "разрешить/заблокировать?" на каждое новое соединение - это круто (я не специалист но, по-моему, для этого на винду нужно ставить дополнительные программы), и есть те, которые с ними не согласны.> всего лишь, курятничье кудахтание.
Ну комменты к новостям обычно состоят из него на 99%, почему бы и нет?
> А что, разве есть такие люди, которые знают как там в виндах работает файрвол на уровне ядра ОС ?Они есть, но не факт что они есть на этом форуме, ну и когда вы говорите "файрвол", вы, наверное, имеете в виду Windows Filtering Platform. Это API, которое задокументировано, и на базе которого строятся все реализации файрволов для ядра и сетевого стека венды.
https://docs.microsoft.com/en-us/windows/win32/fwp/windows-f...Самих же файрволов несколько, они реализуют разный функционал, как минимум Windows Firewall и RRAS.
> И для тех, кто скажет "лучше" и для тех кто будет доказывать обратное - всего лишь, курятничье кудахтание.
Сравнивать по принципу "лучше", как-то странно, потому что nftables и WFP имеют разную архитектуру, в основном, потому что ядра имеют разный сетевой стек... Тёплое vs мягкое.
Если же говорить про функционал для конченого пользователя (скорее системного администратора), то всё зависит от того, что там на в хозяйстве...
Windows Firewall - это Identity Based Firewall, он генерирует правила относительно пользователей и компьютеров. В основе аутентификации и авторизации лежит протокол Kerberos, но поддерживаются и другие методы, например сертификаты X.509, или даже ретроградные методы вроде PSK+NTLM. Задача инкапсулировать траффик на незащищенные порты в IPsec, аутентифицировать и авторизовать по ESP-заголовку, проверить хэш-сумму. Шифрование по вкусу.Nftables и тулзы построенные поверх него не могут в такой функционал, хотя бы потому что Linux - это Unix-like операционная система. В Unix-like операционных системах нет понятие типов аутентификации и нет поддержки сетевой аутентификации на уровне ядра. Linux/Unix PAM расценивает любую аутентификацию как локальную (Unix - это ОС из 70-х) и не позволяет передать дескрипторы безопасности пользовательской сессии запущенным процессам, для автоматического запроса TGS. Из-за этого поддержка Kerberos, который изначально создавался для Unix-like (иронично не так ли?), всегда где-то сбоку и требует реализации костылей в каждом приложении. Идентификация устройства-компьютера начала появляться только вместе в systemd... Дело не в файрволе, а во всем остальном. Технически подобного функционала можно добиться на Linux, но там придётся столько ручками педалить, что проще жить в списках ACL с IP, настраивая IPsec только там где-это обязательно.
Опять же, весь этот функционал - это решения задач Workstation в крупных компаниях, в то время как nftables таргетится на задачи удобства управления в рамках кластеров, управляющих контейнерами. Windows Firewall в этой ситуации вообще мимо. Разные применения же.
Если для понимания нужна цепочка проверки пакета для Windows Firewall (не для RRAS!), то вот она:
1. Сервисные правила
2. Интерфейсные ограничения и политики IPsec
3. Проброс соединений прошедших проверку по состоянию (сущность Stateful Firewall)
4. Блокировочные правила
5. Разрешающие правила (в том числе ESP-правила)
6. Параметры по-умолчанию
Здесь нету Forward/NAT и прочего, потому что они доступны в RRAS, это файрвол рабочей станции или сервера без RRAS. По сути - цепочка INPUT из iptables c рядом специфики:
1. Сервисные правила - это особые скрытые из интерфейса наборы правил (они все ограничительные), которые применяются к сервисам, фоновым процессам магазина и пакетам приложений. Их видно только в реестре.
2. Это параметры для интерфейсов, для NDIS там много всего может быть.
3. Windows Firewall - это Statefull Firewall, если это не было выключено в настройках. Например, все эти ESTABLISHED, RELATED разрешены, если не запрещены явно.Windows Firewall разделяет локальные и доменные правила и управляет тем, какие превалируют только в случае входа в домен, здесь решения применяются вне файрвола. По поводу конфиликтующих правил используется логика "лучше блокировать, чем разрешать". Некоторые сервисы имеют свои цепочки правил, поэтому отключение служб файрвола приведет к их неработоспособности. Причем это самое туманное и то что может вогнать в ступор. Сервисная модель вменяет ограничителоьные правила для системных сервисов, магазин вменяет ограничительные правила для пакетов приложений, а пользователь/администратор не контролирует это ни через GUI ни через powershell ни через netsh, только вручную в реестре... потому что эти правила WFP не имеют отношения к правилам Windows Firewall. А есть еще NDIS-фильтры, и конечно же Winsock-фильтры, которые тоже вне Windows Firewall. Они нужны, когда нужно написать драйвер для кастомнной фильтрации (по аналогии с классическим BPF)...
Даже не знаю что рассказать, документацию почитайте... Я пишу это не потому что он чем-то лучше, а чтобы показать, что это не rocket science и что информация доступна. Если вы лично чего-то не знаете, это не значит, что этого не знает никто.
P.S. Инструменты управления у всех вендовых файрволов - оторвать и выбросить и производительность у них до 1809, мягко скажем, посредственная. Они почему так хотят eBPF себе в венду, потому что у них лет 15 точно есть в наличии продвинутый функционал по мониторингу, отладке и аналитике сетевого стека и производительности процессов, но им пользуется 3.5 руссиновича, потому что документация по нему сложна к прочтению, а тулзы настолько неудобны, что их использование напоминает оккультизм и сатанизм (я про netsh trace). То что там было до Windows 7/2008 R2... если вы не знаете, то лучше пусть так и остаётся, про это разве что фильмы ужасов снимать.
>> А если сказать, что в Виндах файрволл лучше, вы вообще все дела бросите и кинетесь доказывать.... и сразу на выходе доклад с претензией на диссертацию. Что и требовалось доказать.
Суммировав вышесказанное - фаервол на виндовсе это ад угар и содомия.
MS бывает критикуют за косолапые и кривые реализации. Паралельно с классными идеями и инструментами от них идёт поток трэша. Поток столь велик, что работая с MS не удаётся быть не перепачканным этой помойкой.Всегда с какого-то боку постоянно приходится иметь дело с мелкомягкими поделиями, которыми... "пользуется 3.5 руссиновича, потому что документация по нему сложна к прочтению, а тулзы настолько неудобны, что их использование напоминает оккультизм и сатанизм (я про netsh trace)" (с) см. выше. И без шансов на улучшение - глухарь. В опенсорсе хоть надежда есть, а у этих - мрак.
Уважаемый, пиши почаще пожалуйста. Такие вещи приятно и полезно читать.
Вы хорошо расписали про винду (не готов проверять), но несколько не в курсе текущей ситуации в линухах.
Внедрение selinux в т.ч. позволило снабжать запускаемые приложения меткой для файервола (и не только). Этим успешно пользуется android. На ПК — да, такое поискать (потому что почти все деньги с десктопов M$ высасывает, а яблоки выскребают остатки).> Linux/Unix PAM расценивает любую аутентификацию как локальную
??? Pluggable authentication просто дёргает указанные модули как настроено. Там может быть хоть многофакторка расписана, были бы нужные модули.
Для запросов в TGS красно^w сине-шляпые пилят монструозный (чтобы минимально влезть в код надо сначала выучить их асинхронную библиотеку) sssd. Оно таки работает и в RBAC может по полной программе (или вам для чего?).Короче, в обоих (win|lin) случаях технологии наличествуют. И в обоих случаях управление доступно "не только лишь всем".
>Самих же файрволов несколько, они реализуют разный функционал, как минимум Windows Firewall и RRAS.ААААААА!!!!!!!!!
про это разве что фильмы ужасов снимать.
firewalld
> GUI так и нет в 2021?Именно потому и нет, это 2021, а не 2001. Даже циски и мсфт топят за консоль и конфиги, с чего бы линуху топить за кнопки?
GUI мозга? За GUI-обёрками обращайтесь к вашим дистроклепателям.
Вы просто плохо себе представляете, как будет под это дело гуй выглядеть.
Это вам не сохофайрвол, у которого полторы опции, которые он в этот nft или iptables и превращает.
Если все вариации вынести в гуй - вы чокнетесь по этому гую мышкой тыкать.
Из того GUI просто надо RPG сделать -- пусть лазят, осваивают... :]
Уже на Ruby же сделали, только сразу через Web, зато сразу jRPG!
hRPG же
Checkpoint firewall имеет не плохой гуй. Было бы приятно иметь подобное.
Увы, firewalld GUI далеко не дотягивает. fwbuilder пытается быть похожим, но пока убог и ущербен.
У checkpoint-а одна проблема ...
Сначала ты елозишь мышкой, потом конфигурация "компиляется", потом загружается на устройства.
Когда устройств больше 3 - всё это выглядит как затыкание дыр "завтра".
> GUI так и нет в 2021?Вместо GUI нужна вот такая дока-учебник - https://github.com/imq/linuximq/wiki/Kernel-Packet-Traveling...
GUI неудобен, т.к. по числу щёлков мышью "нереально" в GUI накликать что-то кроме доступа к локал-хосту по SSH у мамы.
А вот переменные, текстовые конфиги позволяют в один щелчок применять одинаковые правила на разных машинах с динамическими различиями. Это когда ещё защита от DoS и прочие выкрутасы.
Зачем GUI с нуждой в сложной работе из-за GUI, когда без GUI работа заметно проще.
>GUI неудобен, т.к. по числу щёлков мышью "нереально" в GUI накликать что-то кроме доступа к локал-хосту по SSH у мамы.Ты это кровавому энтерпрайзу в лице чекпоинта с палоальтой расскажи.
Когда пакеты пакуют с костылями и не поддерживают в GUI LTS релизы топовых брендов, то, видимо, нет "штатной" разработки темы. Сказать-то нужно, но сначала разуть уши. А то что-то гуи-то у этих теперь не всюду поддерживается, вышло-то как. Почему-то.
У тебя русский - не родной? Ты что сказать-то хотел? Я ничего не понял из твоего предложения.
Релиз? Уже можно заменять iptables потихоньку? Или ещё лет 100 подождать?
Не время переходить с ipchains! Еще лет 10 подожди, хотя бы
Да вообще, hosts.allow наше всё!
Анонимы неадекваты нейкие))Файл hosts?:) Тот самый?:) Firewall?:) Кажись firewall работает в двух направлениях, а не только в одном)
Нет, мой юный друг, host.allow и host.deny, которые использовались libtcpwrap.
Вы, наверное, даже слов-то таких никогда не слышали.
в федоре выплилили tcpwrappers
Не хочу вас расстраивать, но ipchains выпилили ещё раньше. Лет на десять как минимум.
вы меня расстроили
Простите :(
Ну вообще в Linux файрволл работает в трёх направлениях:
input, forward, output
не?
:)
Удаление правил не по handle так и не добавили(
замену NETMAP уже сделали?
Обещали в ядре 5.8. Скорее всего сделали, но не задокументировали.nft — это магия: позволяет делать всё, но нужно знать сложные заклинания. Которыми создатели не спешат делиться (у них много других, более важных, дел).
Конечно, не спешат. Если все всё знать будут, за поддержку никто платить не будет, вся GPL бизнес модель развалится.
Да не смогут они поддерживать. Это тот случай, когда сами разработчики получали рабочие примеры синтаксиса методом брутфорса (идея позаимствована из языка Malbolge).
То есть для вас код - это сложные заклинания?А ничё, что здесь достаточно людей, которые вообще-то умеют "программировать" (упрощенно выражаясь).
Или все, всё время должны подстраиваться? под тех, кто не умеет и не знает.
Пусть попробуют попрограммировать на языке Malbolge. Или nft.
Про Malbolge не знаю, а nft - это предметно ориентированный язык, и что?
Просто на там много писать не надо, а только по предметной области.
А остальное пишется на языках общего назначения.Вам трудно его понять? А в чем тут проблема самого языка?
>А ничё, что здесь достаточно людей, которые вообще-то умеют "программировать" (упрощенно выражаясьВ предедущих сериях мы выяснили, что это большинство умеет программировать на жумле и HTML.
Интересно, чья была гениальная идея использовать для map-ов фигурные скобки, чтобы команду с map-ами обязательно нужно было экранировать в оболочке?
я думаю этот гений пользуется уже почти совсем готовым десктопом, и ни про какие оболочки вообще не в курсе.
Не надо такие конструкции вставлять в скрипты облочки. Как хэдеры и модули т.п. - в подключаемые файлы. А то станут называть баш-простынями, не поняв, что это норм. средства, но просто использованны неопытно до нечитаемости.
Wow, мы уж думали этого никогда не случится. Осталось дождаться PipeWire 1.0 и LXQt 1.0 и можно праздновать победу Linux на десктопе.
А переписывания Systemd и Wayland на Rust?
это уже версии 2.0
Про Wayland вопрос особо не изучал.
А про Systemd, поскольку там уже все запущено настолько, что он сам претендует на... на... уже не известно на что, на какой-то абстрактно-сферичный захват Мира... в-общем уже хуже не будет, если и его переписать на Rust. Расту будет только дополнительный зачет... и очередное горе для бездарей, как обычно.
"Значительное изменение номера версии не связано с какими-то кардинальными изменениями, а лишь является следствием последовательного продолжения нумерации в десятичном исчислении (прошлый выпуск был 0.9.9)"
сахарок с "*" приятный, главное чтоб всё вело к упрощению понимания, а не парсингу надмозгом каких-то регекспов из закорючек.п.с. пару лет как перешел на nft в проде (роутинг телефония+впн). Полет нормальный, хотя по старинке всё делаю через перечитывание конфигов, а не отправку команд. Но возможности для шмякшмякеров там видимо шикарные.
> map { 192.168.1.2 . 80 : 10.141.10.2-10.141.10.5 . 8888-8999 }по-моему это дебильная нотация. порт по стандарту uri указывают через ":" всю историю интернета, а тут решили поменять. порт через точку больше на айпишник похож. хотя чего стоило использовать 11.22.33.44:8000; ...:8000; ... и не пришлось бы придавать пробелам такое значение.
Такие же мысли. Почему не двоеточие понятно, оно уже используется. Но даже ключевое слово "port" смотрелось бы лучше этой азбуки Морзе.
Самый простой вариант был двоеточием, и точку с запятой как разделитель.
Нет, "пошли другим путём"(tm)
Не, не самый. Для записи порта с адресом типа 2a01:0e20:1680::18:1 требуются дополнительные разделители.
В общем случае - не требуется, догадайся, почему :)2a01:0e20:1680::18:1:5060 например.
Или 2a01:0e20:1680:0:0:0:18:1:5060
Или 2a01:0e20:1680:::5060
Перепутать невозможно, запись IPv6 не допускает двусмысленности с портом.
Просто читать неудобно, но для тех, кому не удобно, можно например такую запись сделать дополнительной:[2a01:0e20:1680::18:1]:5060
[2a01:0e20:1680:0:0:0:18:1]:5060
[2a01:0e20:1680::]:5060
> В общем случае - не требуется, догадайся, почему :)
> 2a01:0e20:1680::18:1:5060 например.
> Или 2a01:0e20:1680:0:0:0:18:1:5060
> Или 2a01:0e20:1680:::5060
> Перепутать невозможно, запись IPv6 не допускает двусмысленности с портом.В общем случае как раз требуется, а ты привел некоторые частности.
2a01:e20::1:5060
Я тоже здесь привел некоторый частный случай, а "общий случай" охватывает обе частности, то есть в нем таки требуется.> Просто читать неудобно, но для тех, кому не удобно, можно например такую
> запись сделать дополнительной:
> [2a01:0e20:1680::18:1]:5060
> [2a01:0e20:1680:0:0:0:18:1]:5060
> [2a01:0e20:1680::]:5060Я и говорю - требуется дополнительный разделитель.
Нет, не требуется. Возможен для удобоваримости, но не нужен.
Попробуй выйти из "частностей" в своём мозгу, и сообразить таки, как IPv6 записываются.
Короче вышел из частностей в своём мозгу я, я забыл, что после :: в v6 может следовать несколько групп, разделённых : ...
А, сорян, ты прав.
Публично признаю себя идиотом.
Ну вод да, с раздейлителями у этого счастья полный пейсец.
С другой стороны можно налепить себе конвертор из откуда угодно.
> С другой стороны можно налепить себе конвертор из откуда угодно.Это просто обычно показатель уровня тех, кто продумывал (или что там) синтаксис.
PS: в смысле когда вместо самодокументированного по аналогии приходится делать конвертор в марсианский...
> хотя чего стоило использовать 11.22.33.44:8000; ...:8000;в случае точки с запятой больше похоже на перечисление, а тут все же словарь, для которого используется двоеточие в json/yaml и некоторых языках. Даже немного интересно, как ipv6 адреса надо записывать
Хотя нигде в документации это не формализовано (или я не нашёл), но выглядит так, что окружённое пробелом двоеточие является разделителем пары ключ-значение в map, окружённая пробелами точка — разделителем между адресом и портом, а их аналоги без пробелов — разделителями групп байт в IPv6 и IPv4 адресах соответственно.
Значащие пробелы - это ад, там явно был кто-то с питоном межушного ганглия.
Нет. Это родилось раньше - make/cmake - разница между табом и пробелом в начале строки определяет текст это или шелл команда... Полвека, а то и вся история человека, дурацким идеям бестолкового остроумия.
Адреса IPv6 заключаются в квадратные скобки: [address]:port
Хде можно почитать наиболее полную инфу о нфтэйблс на русском?
Вменяемой и полной документации и на английском нет.
Тады, набрав попкорна, ждём чем закончится бунтарство с синтаксисом и житейским опытом. Только тогда уже и только после в прод.
Это не бунтарство, это эволюция.Те, кому уже поперек горла зоопарк с iptables, ip6table, arptables, ebtables и iptables-extensions - уже в восторге. Документацию скоро напишут. А для суровых-бородатых-админов и не нужна документация - RTFS )
Растоманы в комментах совсем кукухой тронулись со своим растом... еще и правила в файрволле предлагают на расте писать
>1.0.0Следуя философии Linux Way, пора бы уже объявить deprecated.
Что за ужас я увидел в примерах? Они там совсем того?
Исправьте новость, nft - это фронтенд сетевого фильтра для ядра Linux, а не пакетный фильтр.