-
Notifications
You must be signed in to change notification settings - Fork 2
/
README.md.bak
104 lines (75 loc) · 13 KB
/
README.md.bak
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
### 1) Необязательное задание: можно посмотреть целый фильм в консоли telnet towel.blinkenlights.nl :)
Хост не отвечает
vagrant@vagrant:~$ telnet towel.blinkenlights.nl
Trying 213.136.8.188...
^C
### 2) Узнайте о том, сколько действительно независимых (не пересекающихся) каналов есть в разделяемой среде WiFi при работе на 2.4 ГГц. Стандарты с полосой 5 ГГц более актуальны, но регламенты на 5 ГГц существенно различаются в разных странах, а так же не раз обновлялись. В качестве дополнительного вопроса вне зачета, попробуйте найти актуальный ответ и на этот вопрос.
В среде 2.4ГГц независимых каналов всего 3: 1, 6 и 11 канал. Более того, в случае если данные каналы заняты, наиболее оптимально использовать их же в силу Clear Channel Assesment стандарта 802.11.
Что касается 5ГГц (рассматриваем 802.11ac для России), здесь фактор пересечения зависит не только от частоты несущей, но и от выбора полосы 20, 40, 80 или 160Мгц. И в случае с полосой 160Мгц, непересекающийся блок может быть всего один, это с 36 по 64. В случае с полосой 80Мгц непрерывных блоков 4. В случае с полосой 40Мгц (наиболее популярны режим имхо) непрерывнях блоков уже 8.
### 3) Адрес канального уровня – MAC адрес – это 6 байт, первые 3 из которых называются OUI – Organizationally Unique Identifier или уникальный идентификатор организации. Какому производителю принадлежит MAC 38:f9:d3:55:55:79?
Имя компании: Apple, Inc.
### 4) Каким будет payload TCP сегмента, если Ethernet MTU задан в 9001 байт, размер заголовков IPv4 – 20 байт, а TCP – 32 байта?
Ethernet MTU = IPv4header + TCPheader + Payload
Соответсвенно максимальный payload TCP исходящего пакета 9001-20-32 = 8949 байт.
### 5 Может ли во флагах TCP одновременно быть установлены флаги SYN и FIN при штатном режиме работы сети? Почему да или нет?
При штатном режиме работы сети такие флаги установлены быть не могут, т.к. отвечают за установление и завершение TCP соединения.
Тем не менее сгенерировать такой пакет не представляет труда (scapy).
### 6) ss -ula sport = :53 на хосте имеет следующий вывод (см. источник на github). Почему в State присутствует только UNCONN, и может ли там присутствовать, например, TIME-WAIT?
В команде используется ключ -u, что говорит о том, что мы смотрим udp сокет. Соответсвенно состояния TIME-WAIT быть не может, т.к. оно характерно только для TCP соединений. UNCONN присутсвует в выводе по этой же причине, т.к. протокол UDP без установления соединения по своей природе.
### 7) Обладая знаниями о том, как штатным образом завершается соединение (FIN от инициатора, FIN-ACK от ответчика, ACK от инициатора), опишите в каких состояниях будет находиться TCP соединение в каждый момент времени на клиенте и на сервере при завершении. Схема переходов состояния соединения вам в этом поможет.
Инициатор отправляет FIN, переходит в состояние FIN-WAIT-1
Ответчик принимает FIN, отправляет ACK, переходит в состояние CLOSE_WAIT
Инициатор получает ACK, переходит в состояние FIN-WAIT-2
Ответчик отправляет FIN-ACK, переходит в состояние LAST-SACK
Инициатор получает FIN-ACK, отправляет ACK, переходит в состояние TIME-WAIT
Ответчик получает ACK, переходит в состояние CLOSED.
Инициатор ждет таймаут (2MSL, по RFC 793 MSL = 2 минуты) и переходит в состояние CLOSED
### 8) TCP порт – 16 битное число. Предположим, 2 находящихся в одной сети хоста устанавливают между собой соединения. Каким будет теоретическое максимальное число соединений, ограниченное только лишь параметрами L4, которое параллельно может установить клиент с одного IP адреса к серверу с одним IP адресом? Сколько соединений сможет обслужить сервер от одного клиента? А если клиентов больше одного?
Теоритически максимальное значение TCP сессий от клиента до сервера 2^64, т.е. все комбинации значений source_port и destination_port.
Реальное же ограничение кроется на самом сервере. Каждому TCP соединению присваивается файловый дескриптор, поэтому ограничением является количество файловых дескрипторов, которые система настроила для разрешения (и ресурсами для обработки конечно).
### 9) Может ли сложиться ситуация, при которой большое число соединений TCP на хосте находятся в состоянии TIME-WAIT? Если да, то является ли она хорошей или плохой? Подкрепите свой ответ пояснением той или иной оценки.
Да, это возможно. Технически ситуация штатная, но 2MSL это 4 минуты. Соответсвенно 4 минуты после фактического закрытия TCP сессии, сессия еще висит в памяти, занимая при этом дескриптор/память.
### 10) Чем особенно плоха фрагментация UDP относительно фрагментации TCP?
В UDP невозможно перезапросить пакет. В случае потери фрагмента UDP, весь пакет можно считать потерянным без возможности перезапроса.
### 11) Если бы вы строили систему удаленного сбора логов, то есть систему, в которой несколько хостов отправяют на центральный узел генерируемые приложениями логи (предположим, что логи – текстовая информация), какой протокол транспортного уровня вы выбрали бы и почему? Проверьте ваше предположение самостоятельно, узнав о стандартном протоколе syslog.
Я бы выбрал TCP из-за гарантированной доставки пакетов. Syslog работает поверх TCP (есть информация, что ранее использовался UDP).
### 12) Сколько портов TCP находится в состоянии прослушивания на вашей виртуальной машине с Ubuntu, и каким процессам они принадлежат?
vagrant@vagrant:~$ sudo ss state listening -t -p
Recv-Q Send-Q Local Address:Port Peer Address:Port Process
0 4096 0.0.0.0:sunrpc 0.0.0.0:* users:(("rpcbind",pid=562,fd=4),("systemd",pid=1,fd=35))
0 4096 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=563,fd=13))
0 128 0.0.0.0:ssh 0.0.0.0:* users:(("sshd",pid=662,fd=3))
0 4096 [::]:sunrpc [::]:* users:(("rpcbind",pid=562,fd=6),("systemd",pid=1,fd=37))
0 128 [::]:ssh [::]:* users:(("sshd",pid=662,fd=4))
### 13) Какой ключ нужно добавить в tcpdump, чтобы он начал выводить не только заголовки, но и содержимое фреймов в текстовом виде? А в текстовом и шестнадцатиричном?
Да, это флаг -A (вывод в текстовом виде) и -x (вывод в шестнадцатеричном) и -X (вывод обоих форматах)
vagrant@vagrant:~$ sudo tcpdump -xni eth0 -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
20:28:14.995043 IP 10.0.2.15.22 > 10.0.2.2.57476: Flags [P.], seq 2424939485:2424939521, ack 6629363, win 64032, length 36
0x0000: 4510 004c 2ad2 4000 4006 f7b9 0a00 020f
0x0010: 0a00 0202 0016 e084 9089 a3dd 0065 27f3
0x0020: 5018 fa20 184f 0000 d83c f8e2 cd02 dfc0
0x0030: 5181 5c66 544a cb54 9df0 e42e ea1b 4503
0x0040: f589 572f ed06 f452 4974 55cc
1 packet captured
40 packets received by filter
7 packets dropped by kernel
vagrant@vagrant:~$ sudo tcpdump -Xni eth0 -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
20:28:17.784278 IP 10.0.2.15.22 > 10.0.2.2.57476: Flags [P.], seq 2424941081:2424941117, ack 6629939, win 64032, length 36
0x0000: 4510 004c 2afb 4000 4006 f790 0a00 020f E..L*.@.@.......
0x0010: 0a00 0202 0016 e084 9089 aa19 0065 2a33 .............e*3
0x0020: 5018 fa20 184f 0000 cb36 b4c7 e0d2 58af P....O...6....X.
0x0030: 00fb 0ede 8be3 2562 b16a 8741 9857 7079 ......%b.j.A.Wpy
0x0040: 0cfc 15cb 34e8 53ab a2d7 45f1 ....4.S...E.
1 packet captured
42 packets received by filter
10 packets dropped by kernel
### 14) Попробуйте собрать дамп трафика с помощью tcpdump на основном интерфейсе вашей виртуальной машины и посмотреть его через tshark или Wireshark (можно ограничить число пакетов -c 100). Встретились ли вам какие-то установленные флаги Internet Protocol (не флаги TCP, а флаги IP)? Узнайте, какие флаги бывают. Как на самом деле называется стандарт Ethernet, фреймы которого попали в ваш дамп? Можно ли где-то в дампе увидеть OUI?
Ethernet на самом деле называется Ethernet II.
OUI (ORGANIZATIONALLY UNIQUE IDENTIFIER) моно увидеть в заголовке L2, а именно в мак адресе (первые 3 байта). Wireshark автоматически интерпретирует первые 3 байта.
В IP заголовки флаг используется для контроля на фрагментацией пакетов. Фактически используется два, это первый и второй.
Первый DF или Don't Fragment, это бит запрещающий фрагментацию пакета (обычно устанавливается если включен PMTUD).
Второй это MF или More Fragments, указывает что пакет фрагментирован и что стоит подождать, когда придут оставшиейся фрагменты.