FastNetMon

Sunday 16 December 2018

parted: Warning: The resulting partition is not properly aligned for best performance.

Эта ошибка, уверен, достает каждого! Даже в самом простом случае, когда нужен 1 раздел на весь диск - почти невозможно подобрать значения под конкретный диск, которые бы устроили parted.

Идеальный вариант такой.

Сначала создаем таблицу gpt на диске (все данные будут уничтожены):
parted /dev/sda
mklabel gpt

После этого создаем один раздел на весь диск:
parted /dev/sda
unit s
mkpart main ext4 0% 100%
Проверяем, что parted правда удовлетворен выравниванием вновь созданного раздела:
parted /dev/sda align-check optimal 1
Ответ должен быть "aligned".

За идею спасибо: https://blog.hqcodeshop.fi/archives/273-GNU-Parted-Solving-the-dreaded-The-resulting-partition-is-not-properly-aligned-for-best-performance.html 

Saturday 3 November 2018

Installing 4.19 on Ubuntu 14.04

I'm playing with AF_XDP and this feature requires very fresh kernel. I decided to use 4.19 kernel from Ubuntu Kernel PPA.

But unfortunately, these packaged depend of very fresh version of linux-base package and it availabe only in Ubuntu 16.04 or 18.04. And I will help with this :)

First of all, install linux-base:
sudo apt-get install -y  linux-base
And then we will repack deb package to remove dependency on very fresh linux-base. I used guide from ServerFault.

Download original packages:
cd
mkdir -p deb_4_19_kernel_hacked_package
cd deb_4_19_kernel_hacked_package
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19/linux-image-unsigned-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb
Unpack deb:
ar x linux-image-unsigned-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb
tar -xf control.tar.xz
rm control.tar.xz
Remove nasty dependency:
sed -i 's/linux-base (>= 4.5ubuntu1~16.04.1)/linux-base/' control
Pack control file again:
tar --ignore-failed-read -cvJf control.tar.xz {post,pre}{inst,rm} md5sums control

Build deb package again:
ar rcs linux-image-unsigned-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64_fixed_dependencies.deb debian-binary control.tar.xz data.tar.xz
And install it:
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19/linux-modules-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb
sudo dpkg -i linux-modules-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb
sudo dpkg -i linux-image-unsigned-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64_fixed_dependencies.deb
Finally, rebuild grub configuration:
sudo update-grub
And confirm that Grub added new kernel to configuration:
cat /boot/grub/grub.cfg 
After that, prepare keyboard, monitor, IPKVM and start reboot process :) If you're lucky guy then you can get following:
uname -a
Linux flab1 4.19.0-041900-generic #201810221809 SMP Mon Oct 22 22:11:45 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux


Sunday 13 May 2018

TCP/IP fragmentation

Отличная схема, отображающая суть процесса фрагментации IP пакета.

Взято с: http://www.tcpipguide.com/free/t_IPMessageFragmentationProcess-2.htm

Sunday 8 April 2018

Обновление Ubuntu 16.04 на Ubuntu 18.04 LTS (beta)

Сразу оговорюсь, что крайне не рекомендую этого делать для продакшена. Только сугубо для целей тестирования.

Для начала, нужно обновиться до упора в рамках текущей версии Ubuntu 16.04:
sudo apt update; sudo apt dist-upgrade; sudo apt autoremove
Устанавлим менеджер обновлений:
sudo apt-get install update-manager-core
Убеждаемся, что у нас стоят настройки для только LTS дистрибутивов:
sudo cat /etc/update-manager/release-upgrades
Выдача должна быть следующая:
Prompt=lts
Запускаем процесс:
sudo do-release-upgrade 

Если будет выдано, что не обнаружено релиз версий (скорее всего так и будет на момент публикации пока LTS еще не вышел), то нужно добавить флаг -d:
sudo do-release-upgrade -d
В процессе обновления будет задано множество вопросов, самые сложные, когда меняется конфигурация какого-либо демона.

Например, будьте аккуратны с ssh, если работает от root, так как при обновлений на новый конфиг будет удалена опция PermitRootLogin yes и её нужно вернуть вручную в файле /etc/ssh/sshd_config



Saturday 24 February 2018

Трагедия общин

Очень долгое время пытался объснять такое своими словами, а не так давно узнал, что есть сложившаяся терминология  :) 

Sunday 28 January 2018

Как применить grep на выдачу tpcdump?

Есть магическая опция, которая меняет поведенеи буферизации grep начинает работать по мере того, как tcpdump выводит данные:
sudo tcpdump -i eth0 port 80 -n |grep some_value_filtering --line-buffered