Патчкорд
2.42K subscribers
203 photos
18 videos
59 files
2.97K links
Блог сетевого инженера. Новости телеком, IT и около IT. Связь - @UrgentPirate
Download Telegram
Минутка программерского юмора, пусть немного и с бородой:

function f() {
sleep "$1"
echo "$1 "
}
while [ -n "$1" ]
do
f "$1" &
shift
done
wait
echo

$ ./sleepsort.sh 5 3 1 7 5 10 3 2 4
1 2 3 3 4 5 5 7 10

sleep сортировка. Запускаем n параллельных процессов по числу элементов которые нужно отсортировать. Каждый процесс перед завершением ждёт количество времени пропорциональное значению элемента. Процессы с меньшей паузой, меньшим элементом, выведут результат раньше. После завершения всех процессов получим отсортированную строку с элементами от меньшего к большему.
Ограничений у данного способа довольно много, а из плюсов - предсказуемое время этой самой сортировки. На практике применять не стоит ;)
Вообще, над сортировкой достаточно часто шутят, один из основополагающих элементов.
Процесс установки и настройки bird2, включая RPKI совместно с Routinator 3000, во второй части. Третья часть посвящена вопросу интеграции с внешними инструментами.

В целом, расписано не очень подробно, но есть примеры конфигураций и возможность заглянуть за кулисы проектов bgpstuff.net, @bgp4_table и @bgp6_table. А также невзначай напомнить, что можно подписаться на моего бота @bgp_table_bot и не ходить в твиттер, чтобы каждые 6 часов получать статистику о количестве префиксов в глобальной таблице маршрутизации, которая вот-вот перевалит за 800000 IPv4 префиксов.
Генератор отмазок для кибербезопасников, в этом году многим мог бы пригодиться. Про русских хакеров - есть.
Это кусочек большой работы https://link.springer.com/article/10.1007/s00778-019-00581-w о том как аппаратно работать с базой данных в памяти. Очень интересно, но надо быть хотя бы чуть-чуть в теме. Может быть, когда нибудь будет полностью вылитая в кристалле POSIX совместимая OS, а может уже есть какое-то подобие.
Смотря на график следует держать в уме что пропускная способность это одно, а задержка другое. Cети может и станут такими же производительными как память, но фактор расстояния победить сложно.
Forwarded from Network Warrior
IO bandwidth is growing much faster than RAM bandwidth and is becoming a bottleneck.
Описание, примеры настройки и работы с новой концепцией "каталога зон", реализованной в BIND 9.11. Суть - упростить синхронизацию мастера и слейва путём передачи на слейв метаинформации о существующих на мастере зонах по которой он уже сам всё скачает. Заводить этот список вручную на слейве не требуется.
Мы на свои сервера, которых раз два и обчёлся, выкатываем зоны целиком из нашей системы управления не используя фишки DNS. Хотя могли бы, но у нас очень простые задачи. У кого они сложнее и масштабнее, "каталог зон" думаю найдёт своё применение.
Forwarded from Админим с Буквой (bykva)
детский ум самый гибкий

сегодня мне студенты предложили в качестве решения классической задачки о восстановлении бита исполнения на chmod (chmod -x /bin/chmod, почините) такой вариант:

> 1
chmod +x 1
chmod -x /bin/chmod
cat /bin/chmod > 1
./1 +x /bin/chmod

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

решение настолько простое, что даже непонятно как раньше это не могло прийти в голову. а то все эти стандартные решения c /lib64/ld-linux-x86-64.so.2, setfacl...

#этоинтересно
В блоге APNIC сравнивают BBR и Cubic и делают предсказуемый вывод - для разных ситуаций подходят разные алгоритмы. Поэтому сначала тесты, а потом выводы и действия. Вариант ничего не трогать тоже хороший, особенно если результаты тестов превосходят ваши ожидания.
Решение простой задачи редиректа порта с помощью nftables. RedHаt 8 уже на nftables. Ещё и netfilter заменят на bpf, правда что-то давно новостей об этом не попадалось.
Так что никуда от этого не деться, хотя по прошлому опыту это означает, что сетевая подсистема просто пополнилась ещё одним модулем в добавок к тем что уже были - используй какой хочешь.
Mark Russinovich про Microsoft Azure. Архитектура, железо, тесты, использование и всё это простым языком во всех смыслах, есть субтитры. Пожалуй это стоит посмотреть, даже если не нравится видеоформат или Azure никогда не пользовались. Логически видео состоит из нескольких частей, так что можно попытаться перемотать, если что-то не заходит.
Сервис потокового видео Disney+ запустился. Трафика скорее всего будет много, если не сейчас, то в ближайшем будущем. Как это уже выглядит у провайдеров в США, ещё с большей детализацией по транзиту.
Netflix по своим оценкам занимает 30% мирового трафика, Disney+ может что-то и перетянет, но в абсолютном выражении трафика точно добавит и провайдерам опять придётся подумать о расширении магистралей.
Не клади все яйца в одну корзину, опасения Jari Arkko и не только его по поводу текущих процессов в Интернет, который мы потеряли. Опасения выражены в виде драфта информационного документа IETF. Собственно там обо всём, но конкретно про DNS и DoH как продолжение дискуссии.
У IETF, кстати, на это есть целая рабочая группа по вопросам децентрализации - DINRG.
LnetD - собирает и рисует топологию сети из разных источников, например из netbox или конфигураций маршрутизаторов. Не могу судить насколько это годится для боевого использования, но идеи можно почерпнуть. Код открыт на GitHub.
Мне напомнило системы которые используются в провайдинге. Не знаю как в других отраслях, но операторам связи где количество устройств которыми нужно управлять начинается от сотен, даже для самого маленького, без подобного не обойтись. И каждый их разрабатывает для себя, разной степени функциональности и качества, в меру своих сил. Такое не часто увидишь в открытом доступе, но они есть у многих если не у всех (тут стоит пошутить про "новый" тренд на автоматизацию, но не буду). Современные фреймворки и библиотеки, как раз и выросли из этих недр и попав в паблик непременное займут своё место заменив что-то самописное у многих и многих, или не займут, а встанут рядом, потому что всегда найдётся несколько маршрутизаторов десятилетней давности которыми всё ещё надо управлять без использования netconf.
Мне подсказывают как это выглядит у больших ребят, но даже такие решения придётся дорабатывать под себя, хотя в варианте готового продукта этим скорее всего займётся интегратор или служба поддержки. Топология, карты сети и инструменты работы с ними вещи слишком необходимые, чтобы они были у всех в том или ином виде.
Forwarded from ITGram
hoppy — репозиторий Дэвида Бизли с древними версиями питона, начиная с 0.9.1 (1991 год). По сути, это вторая выпушенная версия, и от первой она отличается только багфиксами. На википедии на странице History of Python можно примерно посмотреть, какие фичи когда появлялись. И ещё в официальном репозитории есть огромный файлик HISTORY.

В общем, я уствовил самый древний Python.

>>> dir(builtin)
['EOFError', 'KeyboardInterrupt', 'MemoryError', 'NameError', 'None', 'RuntimeError', 'SystemError', 'TypeError', 'abs', 'chr', 'dir', 'divmod', 'eval', 'exec', 'float', 'input', 'int', 'len', 'max', 'min', 'open', 'ord', 'range', 'raw_input', 'reload', 'type']

Обратите внимание на отсутствие функций str и list. Литералы есть, но приводить типы ещё нельзя, у меня получилось только float в int. Также ещё нет comprehensions, generators. А ещё filter, map, reduce, они в 1.0 появились благодаря одному лисперу. Зато уже в первой версии есть else для for и range (причём даже с поддержкой отрицательного шага).

А ещё не переживайте из-за отсутствия print в списке, он же ключевым словом просто был до 3.0.

Атрибутов у встроенных типов не было by design:

>>> ''.join([1,2,3])
Unhandled exception: type error: attribute-less object

Например, для строк был модуль в stdlib:

>>> import string
>>> string.lower('AAaA!')
'aaaa!'

Вообще, из знакомого там path (сейчас os.path), calendar, shutil, glob, dis. А ещё там отступы 8 пробелов))))

Ну ладно, а хотите знать, как к строке то приводить?

>>> a = 1       
>>> b = [2,3,4]
>>> `[a] + b`
'[1, 2, 3, 4]'

А я то всё гадал, почему бэктики не используются нигде. А ещё двойные кавычки не pythonic, вот так то:

>>> "1"
Parsing error: file <stdin>, line 1:
"1"
^
Unhandled exception: run-time error: syntax error

Исключения были строками:

>>> SystemError
'system error'

А помните пост про lambda calculus? Так вот, некоторые функции тоже были в stdlib, в модуле lambda:

def Never(f, x): return x
def Once(f, x): return f(x)
def Twice(f, x): return f(f(x))

def SUCCESSOR(Ntimes, (f, x)): return f(Ntimes(f, x))

А я всегда говорил, что двоеточия в питоне нужны, чтобы условия, функции и всё такое можно было в одну строчку писать, lambda выражения только в 1.0 появились.

ИЛИ НЕТ???

# P.S.: Here is a Lambda function in Python.
# It uses 'exec' and expects two strings to describe the arguments
# and the function expression. Example:
# lambda('x', 'x+1')
# defines the successor function.

def lambda(args, expr):
if '\n' in args or '\n' in expr:
raise RuntimeError, 'lambda: no cheating!'
stmt = 'def func(' + args + '): return ' + expr + '\n'
print 'lambda:', stmt,
exec(stmt)
return func

Пробуем:

>>> from lambda import lambda
>>> lambda('a', 'a+1')(4)
lambda: def func(a): return a+1
5

Ух, столько всего! Надо доклад делать, в общем.
Обёртка для nmap - sandmap. Уже приготовленный nmap для разных задач, плюс интерактивный командный интерфейс, чтобы не помнить все 100500 опций и скриптов. Забирать с GitHub, там же есть помощь на Wiki.
Что там с задержками в Starlink? Почти всё хорошо, благодаря большой сети и низкой орбите получается на уровне оптики, с учётом что в оптике свет медленнее распространяется. Работа, которая основана на публичных данных и в которой доступно, но достаточно подробно расписано что к чему и приведены данные полученные на симуляторе. Из которых следует что между Нью-Йорком и Лондоном RTT в лучших случаях будет порядка 50-70мс, для оптики это значение 55мс, в теории. Практически же через Интернет получается больше 70мс, но эта же надбавка если не больше будет и для спутниковой сети.
Наверное, Starlink не для городских или региональных сетей, но поспорить с проводами иногда сможет, как предполагается. А вот что получится реально - вопрос, пока даже в этой работе больше предположений чем фактов.
Схороните. Это самый лучший ответ на вопрос а чем отличаются вот эти все кабели с разными буквами
Много про OSPF - теория в виде шпаргалок-тезисов и практика из примеров настроек для Juniper, плюс лабы и вопросы. Не совсем новый материал, но вполне подходящий для использования.
Мне кажется геймеры знают и так, что полоса пропускания не так важна как отклик, об этом в статье на APNIC. На самом деле там про то что сетевой нейтралитет не такая уж хорошая штука и приоритеты нужны во благо самих абонентов и даже решение предлагают.
Основной аспект цены сосредоточен на Мбит/c как для провайдеров на магистралях так и для абонентов, просто это самый понятный из измеряемых показателей. Но это лишь часть качества, пока каналы не забиты в полку вещь вообще не существенная для многих и многих случаев. Средний трафик на абонента 2Мбит/c, широкий канал играет роль в случае массовой работы с тяжёлым контентом. Перебросить несколько терабайт через 100Мбит/c или через 1Гбит/c большая разница, типично это происходит при обновлении приложений, тех же игрушек.
Это всего одна задача, но ценник формируется в основном только этими цифрами. Выбрать лучшее решение тяжело пока не перепробуешь варианты, конечному абоненту сложно это сделать когда в доме 5-10 провайдеров. Но по другому в текущих реалиях никак, все рекламируют либо полосу либо цену.
Джентельменский набор сетевых инструментов для получения информации - https://hackertarget.com/ip-tools/ по IP адресу и не только. Есть API с примерами, но не всегда бесплатное. И их блог тоже интересно почитать.