VRF: базовая настройка в Linux и на сетевых устройствах Cisco, Huawei

Linux
  • База на xgu
  • При настройке VRF в linux свой интерфейс в vrf не пингуется – это ок. Интерфейс в другом vrf при этом будет отвечать нашему. Можно интерфейсы соединить кабелем напрямую (в одной подсети, но разных vrf) или через промежуточный роутер (в разных подсетях) – без разницы.


Читать дальше

Network/Linux: Shaping, Policing, Impairment, Traffic Control. Ограничение полосы пропускания (Linux: tc, wondershaper; Network: Cisco, Mellanox), внесение задержек и потерь в сетевой трафик

Влияние потери и задержек на Throughput подробно описано в отдельной статье.

Пример кейсов использования impairment:

    • эмуляция гео-распределенной сети
    • эмуляция wireless/satellite/mobile
    • приближение к real world
    • тестирование edge case сценариев

При этом в сетевом тестировании с impairment нужно обращаться “аккуратно”.

EANTC Carsten Rossenhoevel
The benchmarking methodology could be complemented with synthetic loss/delay, but this is out of scope of this draft ((netsecopen)). 


Читать дальше

NIC, Linux: работа NIC, работа с сетевыми интерфейсами (ifconfig, ip, ethtool, interfaces – lspci network, lshw network, RSS), smart NIC


BASIC
  • COMPARING NET-TOOLS VS. IPROUTE PACKAGE COMMANDS
  • veth – virtual eth
  • nic в VM имеют имена типа ens32 как попытка избежать конфликта с физическими адаптерами
  • В новом linux kernel 6.7. Добавлен новый тип виртуальных сетевых устройств “netkit”, логика передачи данных в которых задаётся при помощи BPF-программы.


Читать дальше

ICMP: ping/hping, tracert/traceroute

ICMP NOTES

  • ICMP types, а еще лучше описаны все на сайте IANA
    • 0 – echo reply
    • 8 – echo (PING) request
    • 3 – unreahable (net/host/port/etc)
serv:~# netstat -us
IcmpMsg:
InType0: 10144
InType3: 2514
InType8: 540567
OutType0: 540567
OutType3: 2472
OutType8: 10224
<output omitted>
  • обычно блокируются все типы кроме 0 и 8-го, особенно это касается 
    • redirect – redirection, части используется в атаках
    • unreachable типа 3
Пример
0 Net Unreachable [RFC792]
1 Host Unreachable [RFC792]
2 Protocol Unreachable [RFC792]
3 Port Unreachable
PING

Параметры по умолчанию

  • Huawei: не 32 байта, TTL 255, отправляется 4 пакета
  • Windows: 32 bytes, TTL 64 для внешних пакетов и 128 для 127.0.0.1, отправляется 4 пакета
  • Unix: 64 bytes, TTL 64, отправляется анлим пакетов

Ping count и результат вида 1 (success)/0 (fail) на основе количества принятых ответов.

Читать дальше

iperf

Official page

  • (iperf/ntttcp) Microsoft не рукомендует использование iperf3 на Windows в пользу использования ntttcp (в первую очередь)/ctstraffic – iperf3 оффициально на винде не поддерживается (в отличии от второй версии), он обычно использует прослойку в виде cygwin и нестандартные вызовы сетевого стека – первое может накладывать задержку, второе не эмулирует реальные приложения.


Читать дальше

Linux: работа с утилитой grep (egrep, zgrep, rgrep, etc)

  • У особо душных зачастую вызывает недоумение – зачем открывать через cat файл, который потом передается в grep. Отвечаю – часто ты открываешь сначала файл чтобы посмотреть в целом что там есть, а уже после первого просмотра передаешь в grep. У многих такой паттерн вошел в привычку – вот пример обучения по Linux LPIC-1 🙂 препод максимально опытный админстратор Linux (с начала 90х)

У grep 1001 alias, вот список из man.

Читать дальше

FTP, поднимаем FTP сервер на CentOS 7

FTP история появления из телеграм канала Network quiz
✍️ Разбор квиза: NQ Протокол FTP
Вопрос: Почему протокол FTP использует отдельно соединения для управления и передачи данных?
Объяснение от автора вопроса Surgeon и дополнение от Sergey Masharov (@Masharov): Протокол был разработан почти 53 года назад, в 1971 году.


Читать дальше

Linux: работа с числами (bc, dc, expr)

http://www.basicallytech.com/blog/?/archives/23-command-line-calculations-using-bc.html  – примеры расчета простых выражений с помощью bc.

expr и let – базовые целочисленные калькуляторы. Поддерживают операции сложения/деления/умножения/вычитания.

EXPR
$ expr 6 + 2
8

$ expr 6 - 2
4

$ expr 6 \* 2
12

$ expr 6 / 2
3

$ expr 6 / 5
1

LET
let "b = $a * 2"
let "b = $a - 2"

bc (basic calculator) — интерактивный интерпретатор Си-подобного языка, позволяет выполнять вычисления с произвольно заданной точностью.

Читать дальше

Linux: bash спец. символы и переменные (> >> $ & # ~/$HOME $USER \ | /n \t ^M $? * ; ()), redirect stdout/stderr, ALIAS, bashrc, profile; программирование в bash (полезные скрипты, получение опций в скриптах, функции, условия, циклы, case, массивы)

  • man (смотрим по man man)
$ man 7 ping
No manual entry for ping in section 7
See 'man 7 undocumented' for help when manual pages are not available.
$ man 8 ping

$ man 1 top
    • section 1 – executable program / user commands
    • section 2 – system call
    • section 3 – library call
    • section 4 – special files
    • section 5 – configuration files
    • section 6 – games
    • section 7 – misc
    • section 8 – system commands (used by root)
    • section 9 – kernel routines
  • apropos – поиск строки в заголовках man для разных утилит/сервисов
% apropos apache
ab(1) - Apache HTTP server benchmarking tool
apachectl(8) - Apache HTTP Server Control Interface
httpd(8) - Apache Hypertext Transfer Protocol Server
logresolve(1) - Resolve IP-addresses to hostnames in Apache log files
rotatelogs(8) - Piped logging program to rotate Apache logs

% apropos apropos
man(1), apropos(1), whatis(1) - display online manual documentation pages
  • Узнать какой SHELL
~ echo $SHELL
/bin/bash

bash-3.2$ echo $SHELL # MACOS
/bin/zsh
  • https://www.gnu.org/software/bash/manual/


Читать дальше

Linux: использование rpm/yum/dnf в CentOS (обновление, установка, удаление приложений)

  • Аналог статьи про Ubuntu, Gentoo
  • (Centos, Ubuntu) PackageKit — открытый и свободный набор приложений для обеспечения высокоуровнего интерфейса для различных пакетных менеджеров. Он используется RHEL в качестве графического интерфейса (по факту нескольких интерфейсов/утилит – add/remove software, package updater, settings) управления пакетами.


Читать дальше