Патчкорд
2.42K subscribers
203 photos
18 videos
59 files
2.97K links
Блог сетевого инженера. Новости телеком, IT и около IT. Связь - @UrgentPirate
Download Telegram
Если просто включить OSPF то он будет работать что скорее всего устроит большинство. Но можно немного настроить и получить отсутствие или минимальный простой в передаче трафика при наличии резервного линка. Для этого есть механизм fast reroute: RFC5286 и связанные с ним. Суть которого в том, чтобы подготовить альтернативный маршрут заранее и не тратить время на его поиски в момент аварии.
Как это настроить (не сложно) для Juniper и Cisco.
Для работы со множеством одинаковых хостов можно использовать почти традиционные инструменты, такие как Cluster SSH. Выглядит интересно - много окошек сессий SSH в которые одновременно вводятся команды. Статья про то как поставить, настроить и начать работать.
С сотней узлов, да даже с десятком такого не провернёшь, не говоря про тысячи, да и не надо там другие механизмы и подходы.
Мне подсказывают, за что вам отдельное спасибо, что для одновременного ввода достаточно tmux - режим synchronize-panes. Для использования с ssh, можно самим заскриптовать или использовать готовое.
В холиваре CLI против GUI точку поставить вряд ли удастся, потому что каждому своё. Но добавлять новые аргументы никто не мешает. Статья с научным подходом, правда основа онлайн опрос, но всё по полочкам разложено - статистика по возрасту, опыту, в общем всё как надо, с ссылками на другие работы. Вся суть исследования на прикреплённых картинках - разным целям, разные интерфейсы.
Минутка программерского юмора, пусть немного и с бородой:

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.