Защита от DDoS-атак есть в настройках и моего роутера. Также, как и других атак.
Все их я в своём роутере включил. Ведь эти атаки используют хакеры! И почему не включить защиту от них, если она имеется?
Так что по умолчанию много чего может быть выключено. И не только в роутере.
Например, стал я использовать фаервол SterJo NetStalker. А там по умолчанию выбран режим “Разрешить всё движение”. Ну, и какая польза будет от фаервола, если он будет разрешать всё – в том числе и подключения к компьютеру? Толку от него не будет!
Выбрал я режим “Фильтровать движение”, сижу, смотрю и смеюсь, как кто-то пытается подключиться к моему компьютеру, перебирая по порядку все мои порты! И бесполезно! Вот Вам и “умолчание”!
Точно также и включенная защита от DDoS-атак, глядишь – и отразит такую атаку!
Поэтому у меня в роутере включена защита от всех атак, которые там написаны – и никаких проблем из-за этого не возникает.
P. S. Если вдруг(?) проблемы появятся, то можно отключить эту защиту или сбросить все настройки роутера по умолчанию.

«Для чего в команде ping используются опции Loose, Strict, Record, Timestamp и Verbose?»
— такой вопрос мне недавно встретился в вендорном экзамене. Они позволяют влиять на маршрутизацию ICMP пакетов и собирать информацию о транзитных L3-устройствах. Но занимаясь сетевыми технологиями уже достаточно давно, я почти никогда их не использовал.
Мне стало не совсем понятно, почему такой вопрос вообще присутствует в тесте. Вернувшись домой, решил узнать, вдруг я действительно постоянно упускаю из виду что-то важное?
Утилита ping нам всем хорошо знакома. Помимо стандартного «ping 8.8.8.8», можно использовать различные опции, среди которых присутствуют интересующие нас. Их наименование и описание у вендоров примерно одинаковое.
Из наиболее часто используемых я бы отметил следующие.
- Количество отправляемых пакетов
Вместо заданного количества пакетов по умолчанию (например, в Windows — четыре, в оборудовании Cisco — пять), мы можем отправить нужное. Сюда же можно отнести многими любимую опцию «-t» в ОС Windows, которая запускает бесконечную отправку пакетов.
- Интерфейс источника
В первую очередь актуально для сетевого оборудования. По умолчанию, при использовании команды ping устройство отправляет пакет с адресом ближайшего интерфейса к точке назначения. В случае тестирования функций NAT или проверки VPN, возникает необходимость отправлять ICMP пакеты с другого интерфейса. Ещё один классический пример: как доказать коллеге, что у него включён файрвол на хосте, а не сеть глючит. Запускаем ping с ядра сети без указания интерфейса – пингуется. С указанием неближайшего интерфейса – не пингуется.
- Установка DF-бита
Пакет с установленным DF-битом (=1) не может фрагментироваться. Данную опцию удобно использовать для определения максимально допустимого размера кадра (MTU) между двумя точками. Обычно используется в связке параметрами ниже.
- Размер пакета
Можно варьировать размер пакета. Вместе с установкой DF-бита помогает в определении MTU. Шлём большой пакет – 1500 байт. Не проходит. Шлём чуть меньше – 1300. Проходит. Шлём 1400. И так далее. В общем, метод дихотомии и MTU определён.
В Windows мы указываем размер сегмента данных ICMP пакета. На устройствах Cisco – размер пакета IP с учётом заголовков.
- Вариация размера пакета в указанном диапазоне
Для тех, кто не любит метод дихотомии, может пригодиться данный режим. Мы указываем начальное значение размера пакета, конечное и шаг. Далее устройство отправляет пакеты, постепенно увеличивая их размер. Главное не забыть выставить DF-бит, а то всё насмарку.
За бортом остался ряд других опций (timeout, ToS и пр.), которыми лично я практически не пользуюсь.
Опции Loose, Strict, Record, Timestamp, Verbose включены в утилиту ping на многих сетевых устройствах. Есть поддержка в Windows.
Record (Record Route)
Слово «опции» я использую в двух контекстах: опции команды ping и опции в пакете ICMP. В случае ICMP, опции – это дополнительные параметры, которые устанавливаются в заголовке IPv4 (далее будем указывать просто IP) в поле Options. Поэтому корректнее, конечно, говорить про опции IP. I CMP просто их использует в своей работе.

Запускаем с ПК под управлением ОС Windows ping с опцией Record Route (-r) до адреса 192.168.36.2:
Обмен пакетами с 192.168.36.2 по с 32 байтами данных:
Ответ от 192.168.36.2: число байт=32 время=12мс TTL=252 Маршрут: 192.168.31.2 -> 192.168.32.2 -> 192.168.34.2 -> 192.168.35.2 -> 192.168.36.2 -> 192.168.35.1 -> 192.168.33.1 -> 192.168.31.1 -> 192.168.20.1
Статистика Ping для 192.168.36.2: Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь)
Приблизительное время приема-передачи в мс: Минимальное = 12мсек, Максимальное = 12 мсек, Среднее = 12 мсек 

Можно заметить, что в нашей сети имеет место ассиметричная маршрутизация.
Пример ping с опцией Record на сетевом оборудовании Cisco.
R1#ping
Protocol [ip]:
Target IP address: 192.168.36.2
Repeat count [5]: 1
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface:
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]: R
Number of hops [ 9 ]:
Loose, Strict, Record, Timestamp, Verbose[RV]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 192.168.36.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.20.1
Packet has IP options: Total option bytes= 39, padded length=40 Record route: <*> (0.0.0.0) (0.0.0.0) (0.0.0.0) (0.0.0.0) (0.0.0.0) (0.0.0.0) (0.0.0.0) (0.0.0.0) (0.0.0.0)
Reply to request 0 (3 ms). Received packet has options Total option bytes= 40, padded length=40 Record route: (192.168.31.2) (192.168.32.2) (192.168.34.2) (192.168.35.2) (192.168.36.2) (192.168.35.1) (192.168.33.1) (192.168.31.1) (192.168.31.2) <*> End of list
Success rate is 100 percent (1/1), round-trip min/avg/max = 3/3/3 ms 
Время в пакете указано в формате UNIX time. Анализ данных имеет хоть какой-то смысл, если все устройства синхронизированы по времени (в нашем примере этого нет).
Пример ping с опцией Timestamp (-s) на ПК под управлением ОС Windows.
C:\Users\user>ping -n 1 -s 4 192.168.36.2
Обмен пакетами с 192.168.36.2 по с 32 байтами данных:
Ответ от 192.168.36.2: число байт=32 время=4мс TTL=252 Отметка времени: 192.168.31.2 : 43990397 -> 192.168.32.2 : 43990389 -> 192.168.34.2 : 2187294073 -> 192.168.35.2 : 2190888543
Статистика Ping для 192.168.36.2: Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь)
Приблизительное время приема-передачи в мс: Минимальное = 4мсек, Максимальное = 4 мсек, Среднее = 4 мсек Strict (Strict Source Route)

Все адреса хранятся в заголовке IP нашего ICMP пакета. Поэтому каждое транзитное устройство может их подсмотреть. Такая схема позволяет обходить текущие правила маршрутизации на каждом устройстве, так как фактически имеем пересылку пакета на соседнее устройство.
В нашей схеме R2 имеет маршрут в сеть 192.168.36.0/24 через R3. Но так как у нас жёстко прописаны устройства в опциях ICMP пакета, R2 передаст его напрямую на R4.
Запускаем утилиту ping с опцией -k (Strict Source Route) в ОС Windows и прописываем адреса устройств.
Обмен пакетами с 192.168.36.2 по с 32 байтами данных:
Ответ от 192.168.36.2: число байт=32 время=5мс TTL=252 Маршрут: 192.168.35.1 -> 192.168.33.1 -> 192.168.31.1 -> 192.168.20.1
Статистика Ping для 192.168.36.2: Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь)
Приблизительное время приема-передачи в мс: Минимальное = 5мсек, Максимальное = 5 мсек, Среднее = 5 мсек 
ПК подставил 192.168.20.1 в качестве адреса получателя. Остальные адреса транзитных устройств благополучно запаковал в поля опции IP (записи Source Route). Адрес конечного устройства добавил в запись Destination.
Этот же пакет, после того, как он минует R1:


Если в команде ping мы опустим один из адресов, например, последний (192.168.35.1 – R5), R4 должен будет отправить пакет сразу на устройство с адресом 192.168.36.2. Но так как эта сеть не является для него локальной, R4 отрапортует о том, что заданный узел недостижим. Маршрутизировать пакет по обычным правилам он не будет.
Для обработки опции Record на сетевом оборудовании должен быть включен режим source routing. Например, на оборудовании Cisco он включён по умолчанию.
Loose (Loose Source Route)
Данная опция по сути очень похожа на опцию Strict. Но, в отличии от Strict, в опции Loose задаётся не жёсткий маршрут движения ICMP пакета, а лишь выборочные устройства. Т.е. пакет может маршрутизироваться и другими устройствами. Максимальное количество адресов – девять.
Схема работы аналогична предыдущему случаю. Разница в том, что пакет с опцией Loose может маршрутизироваться транзитными устройствами по обычным правилам.

Запускаем утилиту ping с опцией -j (Loose Source Route) в ОС Windows и прописываем адреса устройств.
Обмен пакетами с 192.168.36.2 по с 32 байтами данных:
Ответ от 192.168.36.2: число байт=32 время=4мс TTL=250 Маршрут: 192.168.32.1
Статистика Ping для 192.168.36.2: Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь)
Приблизительное время приема-передачи в мс: Минимальное = 4мсек, Максимальное = 4 мсек, Среднее = 4 мсек 
ПК подставил адрес R3 (192.168.32.1) в качестве получателя. При этом адрес конечного устройства R5 (192.168.36.2) указал в опции IP (запись Destination). Далее пакет маршрутизируется в сети по обычным правилам, пока не попадёт на R3. R3 подставит в качестве адреса назначения адрес R5 и в опциях пропишет свой адрес, через который должен будет вернуться ответный пакет (запись Recorded Route). После чего отправит его в сеть.
Данная опция активируется автоматически при выборе любой из ранее описанных. Предоставляет более детальный вывод информации на экран. На сам пакет ICMP она никак не влияет. В Windows в команде ping такой опции нет.
Чтобы мы могли воспользоваться этими опциями, промежуточное оборудование должно их поддерживать. С этим проблем не будет. К новшествам мира ИТ относить весь этот «rocket science» не приходится. Напрашивается вывод: опции Loose, Strict, Record, Timestamp могут быть полезны, даже с учётом ограничения в «девять». Если бы не следующие нюансы, связанные с безопасностью.
Первое.
Опции Record и Timestamp могут благополучно использоваться для проведения разведки в сети. С их помощью можно исследовать топологию сети, получить отпечатки, по которым определить ОС и тип устройства, через которые проходил пакет с данными опциями.
Второе.
Опции Loose и Strict позволяют управлять движением пакета, игнорируя стандартные правила маршрутизации. Это предоставляет широкие возможности для попыток проникновения в различные сегменты сети, куда в случае обычной маршрутизации доступа не должно быть. Также возможно проведение разведки для анализа топологии сети. Проведение атак по утилизированию полосы пропускания на определённых сегментах сети. Вариантов много.
Третье.
Часть сетевого оборудования обрабатывает пакеты с установленными опциями программным образом на уровне control-plane (без использования различных схем оптимизации маршрутизации трафика), что безусловно нагружает ЦПУ. А значит есть возможность осуществить DoS атаку на такое устройство.
Многие вендоры (есть даже отдельное RFC 7126
) рекомендуют пакеты с указанными опциями никак не обрабатывать. Варианты предлагают разные. Вплоть до отбрасывания таких пакетов. Правда у некоторых из производителей бывают диссонансы: с одной стороны рекомендуем
отбрасывать такие пакеты, с другой
— «Record is a very useful option».
Быстрая попытка проверить соответствие этим рекомендациям у пары интернет-провайдеров показали, что часть опций всё-таки работает. Но source routing отключён везде.
Получается интересный вывод. Опции Loose, Strict, Timestamp, Record могут быть полезны при диагностике проблем в сети. Но вопрос безопасности нивелирует это.
В итоге у меня всё-таки осталось чувство непонимания. Почему озвученный в начале вопрос присутствовал в тесте? Относительно полезна опция Record и то при небольшой глубине сети. Остальные опции под вопросом.
Напоследок небольшой опрос. Всем хорошего дня!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите
, пожалуйста.
Пользуетесь ли Вы опциями Loose, Strict, Timestamp, Record?
Я их просто блокирую
Да, жена заставляет
Проголосовали 437 пользователей.
Воздержались 75 пользователей.
Борьба за миллисекунды. Как выбрать сервер с наименьшим пингом
Для многих задач задержки между клиентом и сервером критически важны, например в онлайн играх, видео/голосовых конференциях, IP телефонии, VPN и т.д. Если сервер будет слишком удален от клиента на уровне IP-сети, то задержки (в народе «пинг», «лаг») будут мешать работе.
Географическая близость сервера не всегда равна близости на уровне IP маршрутизации. Так, например, сервер в другой стране может быть «ближе» к вам, чем сервер в вашем городе. Все из-за особенностей маршрутизации и построения сетей.

Как выбрать сервер максимально близкий ко всем потенциальным клиентам? Что такое связность IP-сетей? Как направить клиента на ближайший сервер? Разберемся в статье.
Для начала научимся измерять задержки. Эта задача не так проста, как может показаться, потому что для разных протоколов и размеров пакета задержки могут отличаться. Также можно не заметить кратковременные явления, например провалы продолжительностью в несколько миллисекунд.
ICMP — обычный ping
Будем использовать юниксовую утилиту ping, она позволяет вручную установить интервалы между посылками пакетов, чего не умеет версия ping для windows. Это важно, потому что, если паузы между пакетами долгие, можно просто не увидеть, что происходит между ними.
Размер пакета
(опция -s) — по умолчанию утилита ping посылает пакеты размером 64 байта. С такими маленькими пакетами могут быть не заметны явления, проявляющиеся с большими пакетами, поэтому мы будет устанавливать размер пакета 1300 байт.
Интервал между пакетами
(опция -i) — время между посылками данных. По умолчанию пакеты посылаются раз в секунду, это очень долго, реальные программы шлют сотни и тысячи пакетов в секунду, поэтому установим интервал 0.1 секунду. Меньше просто не разрешает программа.
В итоге команда выглядит так:
ping -s 1300 -i 0.1 yandex.ru Такая конструкция позволяет увидеть более реалистичную картину задержек.
Пинг по UDP и TCP
В некоторых случаях, TCP-подключения обрабатываются не так, как ICMP пакеты, и из-за этого замеры могут отличаться в зависимости от протокола. Также часто бывает, что хост просто не отвечает на ICMP, и обычный пинг не работает. Так, например, всю жизнь делает хост microsoft.com
.
Утилита nping
от разработчиков знаменитого сканера nmap умеет генерировать любые пакеты. Ее можно использовать в том числе для измерения задержек.
Так как UDP и TCP работают на определенных, нам нужно «пинговать» конкретный порт. Попробуем пропинговать TCP 80, то есть порт веб-сервера:
$ sudo nping --tcp -p 80 --delay 0.1 -c 0 microsoft.com
Starting Nping 0.7.80 ( https://nmap.org/nping ) at 2020-04-30 13:07 MSK
SENT (0.0078s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40 seq=3401731188 win=1480
SENT (0.1099s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40 seq=3401731188 win=1480
RCVD (0.2068s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44 seq=1480267007 win=64240 <mss 1440>
SENT (0.2107s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40 seq=3401731188 win=1480
RCVD (0.3046s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44 seq=1480267007 win=64240 <mss 1440>
SENT (0.3122s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40 seq=3401731188 win=1480
RCVD (0.4247s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=42 id=0 iplen=44 seq=2876862274 win=64240 <mss 1398>
Max rtt: 112.572ms | Min rtt: 93.866ms | Avg rtt: 101.093ms
Raw packets sent: 4 (160B) | Rcvd: 3 (132B) | Lost: 1 (25.00%)
Nping done: 1 IP address pinged in 0.43 seconds По умолчанию nping посылает 4 пакета и останавливается. Опция -c 0
включает бесконечную посылку пакетов, чтобы остановить программу, нужно нажать Ctrl+C. В конце будет показана статистика. Видим, что среднее значение rtt (round-trip time) равно 101мс.
MTR — traceroute на стероидах
Программа MTR
(англ. My Traceroute) — продвинутая утилита для трассировки маршрутов до удаленного хоста. В отличии от обычной системной утилиты traceroute (в windows это утилита tracert), умеет показывать задержки до каждого хоста в цепочке следования пакета. Также умеет трассировать маршруты не только по ICMP, но и по UDP и TCP.
$ sudo mtr microsoft.com 
(Кликабельно) Интерфейс программы MTR. Запущенна трассировка маршрута до microsoft.com
MTR сразу показывает пинг до каждого хоста в цепочке, притом данные постоянно обновляются, пока программа запущена и можно видеть кратковременные изменения.
На скриншоте видно, что на узле №6 есть потери пакетов, но на самом деле это не совсем так, потому как некоторые маршрутизаторы могут просто отбрасывать пакеты с истекшим TTL и не возвращать ответ с ошибкой, поэтому данные о потерях пакетов тут можно игнорировать.
WiFi против кабеля

Эта тема не совсем относится к статье, но на мой взгляд очень важна в контексте задержек. Я очень люблю WiFi, но, если у меня есть хоть малейшая возможность подключиться кабелем к интернету, я ею воспользуюсь. Также я всегда отговариваю людей использовать WiFi камеры.
Если вы играете в серьезные онлайн-шутеры, вещаете потоковое видео, торгуете на бирже: пожалуйста, используйте интернет по кабелю.
Вот наглядный тест для сравнения WiFi и кабельного подключения. Это ping до WiFi роутера, то есть еще даже не интернет.

(Кликабельно) Сравнение ping до WiFi роутера по кабелю и по WiFi
Видно, что по WiFi задержки больше на 1мс и иногда бывают пакеты с задержками в десять раз больше! И это только короткий отрезок времени. При этом тот же самый роутер выдает стабильные задержки <1мс.
В примере выше используется WiFi 802.11n на 2.4GHz, к точке доступа по WiFi подключен только ноутбук и телефон. Если бы на точке доступа было больше клиентов, результаты были бы сильно хуже. Именно поэтому я так против перевода всех офисных компьютеров на WiFi, если есть возможность дотянуться до них кабелем.
Итак, мы научились измерять задержки до сервера, попробуем найти ближайший сервер к нам. Для этого можем посмотреть, как устроена маршрутизация у нашего провайдера. Для этого удобно использовать сервис bgp.he.net

Посмотрев на граф связности автономным систем, можем увидеть через каких вышестоящих провайдеров наш провайдер связан с остальным миром. Каждая из точек кликабельна, можно зайти и почитать, что это за провайдер.

Граф связности автономных систем провайдера
Большинство точек обмена трафиком предоставляют специальный инструмент, называемый, looking glass, позволяющий выполнить ping и traceroute со стороны конкретного роутера на точке обмена.
Вот, например, looking glass
от МГТС
Так, выбирая сервер, мы можем заранее посмотреть как он будет выглядеть с разных точек обмена трафиком. И если наши потенциальные клиенты находятся в определенной географической зоне, мы можем найти оптимальную локацию для сервера.
Выбираем ближайший сервер
Мы решили упростить процедуру поиска оптимального сервера для наших клиентов и сделали страницу с автоматическим тестом ближайших локаций: дата-центры RUVDS
.
При заходе на страницу скрипт измеряет задержки от вашего браузера до каждого сервера и отображает их на интерактивной карте. При клике на датацентр показывается информация с результатами тестов.


Кнопка ведет на страницу теста задержек до всех наших датацентров. Чтобы посмотреть результаты тестирования, нажмите на точку датацентра на карте


Пинг – что это такое?
- Одновременно нажмите Windows и X
- Выберите в меню администратор командной строки
- Запись откроется, и вам нужно щелкнуть по ней правой кнопкой мыши
- Щелчок правой кнопкой мыши откроет меню, из которого нужно нажать «запуск от имени администратора».
- Теперь вам нужно создать два исключения, включая ICMPv4 и ICMPv6
- Команды разные для обоих, и как только вы их добавите, нажмите кнопку ввода
- Как только вы нажмете кнопку ввода, попробуйте пропинговать ПК через какое-нибудь удаленное устройство, и он покажет результаты
Расширенный метод защиты
- Нажмите на окна или кнопку запуска
- Запустите приложение Брандмауэр Windows в режиме повышенной безопасности, введя «Брандмауэр Windows с»
- Перейти к окну мастера нового правила для входящих подключений и перейти к пользовательскому
- Выбрать все программы
- Выберите ICMPv4 из выпадающего меню и нажмите кнопку настройки
- Нажмите на определенные типы ICMP и включите эхо-запрос
- Откройте следующую страницу, нажав кнопку «Далее» и включите опцию «разрешить подключение»
- Дайте имя новому правилу. Мы бы предложили назвать его ICMPv4, потому что его легче понять позже




