net4me.net

Linux технологии, сети и электроника

Заметки по работе с сетью

Примеры использования linux утилит в различных ситуациях из жизни.
ifconfig, wpa_cli, ping, nc, и прочее прочее...
Постараюсь наводить порядок, но не обещаю классификации.

networks tips

Заметки по работе с сетью

wpa_cli подключение к точке доступа

подключение к точке доступа через wpa_cli:
wpa_cli
status
scan
scan_results
add_network
set_network 0 ssid "net4me"
set_network 0 key_mgmt WPA2-PSK
#set_network 0 pairwise TKIP
#set_network 0 pairwise CCMP
set_network 0 psk "password"
list_networks
enable_network 0
save

systemd-networkd-wait "Wait for Network to be Configured"

Избавляюсь от лишних задержек при загрузке системы и systemd-networkd-wait-online.service "Wait for Network to be Configured".
История, уже надоела конечно... системда, boot и network... 2m... / no limit
В серваке несколько интерфейсов и конечно пока всё воткнуто - замечательно работало и быстро загружалось.
Но вот один кабель пришлось выдернуть и при ребуте ожидание в несколько минут (вынужденный перекур). (тут мат) Раздражает в общем.
Достало. Решаю как могу:
1. Смотрю что есть:
# ip a
1: lo: ...
2: enp2s0: ...
3: eno0: ... без кабеля и это причина ожидания.
4: wlp3s0: ...

# systemd-analyze blame | head -10
2min 138ms systemd-networkd-wait-online.service           
    3.754s ....
    .....

Интерфейс с кабелем:
# time /usr/lib/systemd/systemd-networkd-wait-online -i enp2s0
real  0m0.015s
user  0m0.004s
sys 0m0.011s

И интерфейс без кабеля...:
# time /usr/lib/systemd/systemd-networkd-wait-online -i eno0
Event loop failed: Connection timed out
real  2m0.187s
user  0m0.001s
sys 0m0.015s

Эпопея длится аж с начала системды, несколько лет уже. И всё ожидает, когда же руки, головы и совесть разрабов системды сменят место своего произрастания...

2. Правка (точнее создание):
# systemctl edit systemd-networkd-wait-online.service 
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online -i enp2s0 -i eno0 --any --timeout=30

оно станет /etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf 

# reboot
Сразу заметен результат. Может и криво и не по феншую (я не спец по системде), но зато работает.

3. Проверка результатов:
# time /usr/lib/systemd/systemd-networkd-wait-online -i eno0 --any --timeout=30
Event loop failed: Connection timed out
real  0m30.204s
user  0m0.008s
sys 0m0.007s

# systemd-analyze blame | head -5
7.340s systemd-networkd-wait-online.service           
3.724s ...
...

Теперь сервер можно ребутить без вынужденных перекуров.
Благодарю что прочитали.

set mtu


# ip change MTU:
ip link set eth0 down && ip link set eth0 mtu 1460 && ip link set eth0 up

Расчет адресации в протоколе IPv4

Перетащил из очень старого. (где-то 2009-2010гг.)

Максимальный адрес == 255.255.255.255

В двоичном представлении он равен:
      11111111.11111111.11111111.11111111 == 4 * 8 == 32 бита (4 октета)

Маска 11111111.11111111.11111111.11111111 == 255.255.255.255 == /32
Маска 11111111.11111111.11111111.11111110 == 255.255.255.254 == /31
Маска 11111111.11111111.11111111.11111100 == 255.255.255.252 == /30
Маска 11111111.11111111.11111111.11111000 == 255.255.255.248 == /29
Маска 11111111.11111111.11111111.11110000 == 255.255.255.240 == /28
Маска 11111111.11111111.11111111.11100000 == 255.255.255.224 == /27
Маска 11111111.11111111.11111111.11000000 == 255.255.255.192 == /26
Маска 11111111.11111111.11111111.10000000 == 255.255.255.128 == /25
Маска 11111111.11111111.11111111.00000000 == 255.255.255.0 == /24
Маска 11111111.11111111.11111110.00000000 == 255.255.254.0 == /23
Маска 11111111.11111111.11111100.00000000 == 255.255.252.0 == /22
Маска 11111111.11111111.11111000.00000000 == 255.255.248.0 == /21
Маска 11111111.11111111.11110000.00000000 == 255.255.240.0 == /20
Маска 11111111.11111111.11100000.00000000 == 255.255.224.0 == /19
Маска 11111111.11111111.11000000.00000000 == 255.255.192.0 == /18
Маска 11111111.11111111.10000000.00000000 == 255.255.128.0 == /17
Маска 11111111.11111111.00000000.00000000 == 255.255.0.0 == /16
Маска 11111111.11111110.00000000.00000000 == 255.254.0.0 == /15
Маска 11111111.11111100.00000000.00000000 == 255.252.0.0 == /14
Маска 11111111.11111000.00000000.00000000 == 255.248.0.0 == /13
Маска 11111111.11110000.00000000.00000000 == 255.240.0.0 == /12
Маска 11111111.11100000.00000000.00000000 == 255.224.0.0 == /11
Маска 11111111.11000000.00000000.00000000 == 255.192.0.0 == /10
Маска 11111111.10000000.00000000.00000000 == 255.128.0.0 == /9
Маска 11111111.00000000.00000000.00000000 == 255.0.0.0 == /8
Маска 11111110.00000000.00000000.00000000 == 254.0.0.0 == /7
Маска 11111100.00000000.00000000.00000000 == 252.0.0.0 == /6
Маска 11111000.00000000.00000000.00000000 == 248.0.0.0 == /5
Маска 11110000.00000000.00000000.00000000 == 240.0.0.0 == /4
Маска 11100000.00000000.00000000.00000000 == 224.0.0.0 == /3
Маска 11000000.00000000.00000000.00000000 == 192.0.0.0 == /2
Маска 10000000.00000000.00000000.00000000 == 128.0.0.0 == /1
Маска 00000000.00000000.00000000.00000000 == 0.0.0.0 == /0

255.255.255.255 = /32
255.255.255.254 = /31
255.255.255.252 = /30
255.255.255.248 = /29
255.255.255.240 = /28
255.255.255.224 = /27
255.255.255.192 = /26
255.255.255.128 = /25
255.255.255.0 = /24
255.255.254.0 = /23
255.255.252.0 = /22
255.255.248.0 = /21
255.255.240.0 = /20
255.255.224.0 = /19
255.255.192.0 = /18
255.255.128.0 = /17
255.255.0.0 = /16
255.254.0.0 = /15
255.252.0.0 = /14
255.248.0.0 = /13
255.240.0.0 = /12
255.224.0.0 = /11
255.192.0.0 = /10
255.128.0.0 = /9
255.0.0.0 = /8
254.0.0.0 = /7
252.0.0.0 = /6
248.0.0.0 = /5
240.0.0.0 = /4
224.0.0.0 = /3
192.0.0.0 = /2
128.0.0.0 = /1
0.0.0.0 = /0
Маска служит для вычисления "что есть сеть, а что есть адрес самого хоста".
Как минимум два адреса резервируются под броадкаст (пакеты, адресованные всем) и под шлюз (default gw),
которому будет отдаваться всё, что не подходит по маске сети для дальнейшей маршрутизации.