7 сетевых linux-команд, о которых стоит знать системным администраторам

Пожалуйста, помогите c переводом:

Giving a definition of the term “comedy”, one may face some difficulties as it’s one of the most complex categories of aesthetics. Comedy is historically volatile, it depends on the context and has a social nature. The laughter is not always a sight of comedy, and comedy is not always defined by laughter. It is circumstances, sharpening the contradictions and helping to reveal its social nature

Английский-Русский

(8) 4 ÷ 2 are divided into 5 steps

(a) Correct quotient

(b) Over-quotient by once

(c) Over-quotient by twice or more

(d) Same first digits (2 scenarios)

(e) Both first digits are 1 over-quotient (129, 348, 567, 786, 95)

(f) Line to help memorize returning : minus 1 time, skip a space and add back Mr. Cat

Английский-Русский

The rival gangs piled into one another with a vengeance — fists flew, knives flashed, clubs struck muscle and bone with sickening smacks

Английский-Русский

1. The ENIAC (1943-1946) The first all-electronic computer, the Electronic Numerical Integrator and Calculator (ENIAC) was developed at the Moore School of Electrical Engineering of the University of Pennsylvania. It was developed as a result of a military need. J.Presper Eckert and John Mauchly proposed the machine to solve the problem of calculating firing tables for new weapons. The ENIAC weigh

Английский-Русский

Installation

Install Using Swift Package Manager

  1. Add the project to your .

    import PackageDescription
    
    let package = Package(
        name: "MyAwesomeProject",
        dependencies: [
            .Package(url: "https://github.com/nvzqz/Unreachable.git",
                     majorVersion: 1)
        ]
    )
  2. Import the Unreachable module.

    import Unreachable

Install Using CocoaPods

  1. use_frameworks!
    
    pod 'Unreachable', '~> 1.2.0'

    If you want to be on the bleeding edge, replace the last line with:

    pod 'Unreachable', :git => 'https://github.com/nvzqz/Unreachable.git'
  2. Run and open the file to launch Xcode.

  3. Import the Unreachable framework.

    import Unreachable

Install Using Carthage

Carthage is a decentralized dependency
manager for Objective-C and Swift.

  1. Add the project to your .

  2. Run and follow
    in order to add Unreachable to your project.

  3. Import the Unreachable framework.

    import Unreachable

ICMP Extension Object Classes and Class Sub-types

Reference
Available Formats
Range Registration Procedures
0-246 First Come First Served
247-255 Private Use
Class Value Class Name Reference
1 MPLS Label Stack Class
2 Interface Information Object
3 Interface Identification Object
4 Extended Information
5-246 Unassigned
247-255 Reserved for Private Use

Sub-types — Class 1 — MPLS Label Stack Class

Registration Procedure(s)
First Come First Served
Reference
Available Formats
C-Type (Value) Description Reference
Reserved
1 Incoming MPLS Label Stack
2-246 Unassigned
247-255 Reserved for private use

Sub-types — Class 2 — Interface Information Object

Reference
Available Formats
C-Type (Value) Description Reference
0-1 Interface Role field
2 Unallocated — allocatable with Standards Action
3 Unallocated — allocatable with Standards Action
4 ifIndex included
5 IP Address Sub-object included
6 Name Sub-object included
7 MTU included

Sub-types — Class 2 — Interface Information Object — Interface Roles

Available Formats
Value Description Reference
Incoming IP Interface
1 Sub-IP Component of Incoming IP Interface
2 Outgoing IP Interface
3 IP Next-hop

Sub-types — Class 3 — Interface Identification Object

Registration Procedure(s)
First Come First Served
Reference
Available Formats
Codes Description Reference
Reserved
1 Identifies Interface By Name
2 Identifies Interface By Index
3 Identifies Interface By Address
4-255 Unassigned

Sub-types — Class 4 — Extended Information

Registration Procedure(s)
Standards Action
Reference
Available Formats
Value Description Reference
Reserved
1 Pointer

Contact Information

ID Name Contact URI Last Updated
Jon Postel mailto:postel&isi.edu 1995-09
David Johnson
Tom Markson mailto:markson&osmosys.incog.com 1995-09
Bill Simpson mailto:Bill.Simpson&um.cc.umich.edu 1995-10
Zaw-Sing Su mailto:ZSu&TSCA.ISTC.SRI.COM
It is only appropriate to use these values in explicitly-
configured experiments; they MUST NOT be shipped as defaults in
implementations.  See RFC 3692 for details.

Значение «Destination host unreachable» при прослушивании из-за пределов моей сети?

Попытка подключиться к сетевому источнику может показаться легким, но это не может помочь решить проблему через некоторое время. Возможно, ваше сетевое подключение настроено неправильно или имеется технический сбой. В других случаях на вашем конце нет возможности подключения. Эти ошибки являются типичными примерами сетевой ошибки. Он появляется, когда что-то не так во время соединения, поэтому он не может достичь своего конечного источника. Тем не менее, эти ошибки указывают на характер проблемы, которая поможет вам ее решить.

Список общих сетевых ошибок:

  • Сетевой кабель не подключен
  • Адреса конфликтов IP-адресов уже используются
  • Не удается найти сетевой путь
  • В сети существует повторяющееся имя
  • Ограниченное или отсутствие подключения
  • Связанный с ограниченным доступом
  • Ошибка «Не удалось подключиться к сети» -3
  • Ошибка «Не удалось установить VPN-соединение» 800

ICMP Type Numbers

Registration Procedure(s)
IESG Approval or Standards Action
Reference
Note
The Internet Control Message Protocol (ICMP) has many messages that
are identified by a "type" field.
Available Formats
Type Name Reference
Echo Reply
1 Unassigned
2 Unassigned
3 Destination Unreachable
4 Source Quench (Deprecated)
5 Redirect
6 Alternate Host Address (Deprecated)
7 Unassigned
8 Echo
9 Router Advertisement
10 Router Solicitation
11 Time Exceeded
12 Parameter Problem
13 Timestamp
14 Timestamp Reply
15 Information Request (Deprecated)
16 Information Reply (Deprecated)
17 Address Mask Request (Deprecated)
18 Address Mask Reply (Deprecated)
19 Reserved (for Security) []
20-29 Reserved (for Robustness Experiment) []
30 Traceroute (Deprecated)
31 Datagram Conversion Error (Deprecated)
32 Mobile Host Redirect (Deprecated) []
33 IPv6 Where-Are-You (Deprecated) []
34 IPv6 I-Am-Here (Deprecated) []
35 Mobile Registration Request (Deprecated) []
36 Mobile Registration Reply (Deprecated) []
37 Domain Name Request (Deprecated)
38 Domain Name Reply (Deprecated)
39 SKIP (Deprecated) []
40 Photuris
41 ICMP messages utilized by experimental
mobility protocols such as Seamoby
42 Extended Echo Request
43 Extended Echo Reply
44-252 Unassigned
253 RFC3692-style Experiment 1
254 RFC3692-style Experiment 2
255 Reserved []

How to Check If Destination a Host Unreachable Error Is Resolved

  1. To check if the issue is resolved, go back to the Command Prompt and exit the netshell using the following command:

    netsh interface ipv6>exit
  2. Now, we’re ready to try our ping test once more, using this command:

    C:\Users\Me>ping -6 151.101.194.114
  3. Just as before, the ping should come back with a reply showing the new Default Gateway.

    Pinging 151.101.194.114 with 64 bytes of data:64 bytes from 151.101.194.114: icmp_seq=0 ttl=57 time=27.205 ms64 bytes from 151.101.194.114: icmp_seq=1 ttl=57 time=14.109 ms64 bytes from 151.101.194.114: icmp_seq=2 ttl=57 time=13.887 ms64 bytes from 151.101.194.114: icmp_seq=3 ttl=57 time=13.954 ms64 bytes from 151.101.194.114: icmp_seq=4 ttl=57 time=18.269 ms
  4. As we can see, our ping test is now working and our connection is running as expected.

Коды ICMP

Расшифровка кодов ICMP сообщений:

  • echo reply (0) — echo reply (echo-ответ, пинг)
  • destination unreachable (3) — destination unreachable/destination port unreachable (адресат недосягаем). Код 3/4 уведомляет о необходимости фрагментации сообщения, отправитель получает его, меняет свой MSS на еще более меньший.
  • source quench (4) — source quench (подавление источника, просьба посылать пакеты медленнее)
  • redirect (5) — redirect (редирект)
  • echo request (8) — echo request (echo-запрос, пинг)
  • router adver-tisement (9) — router advertisement (объявление маршрутизатора)
  • router solicitation(10) — router solicitation (ходатайство маршрутизатора)
  • time-to-live exceeded (11) — time-to-live exceeded (истечение срока жизни пакета)
  • IP header bad (12) — IP header bad (неправильный IP заголовок пакета)
  • timestamp request (13) — timestamp request (запрос значения счетчика времени)
  • timestamp reply (14) — timestamp reply (ответ на запрос значения счетчика времени)
  • information request (15) — information request (запрос информации)
  • information reply (16) — information reply (ответ на запрос информации)
  • address mask request (17) — address mask request (запрос маски сети)
  • address mask reply (18) — address mask reply (ответ на запрос маски сети)

Ответ на некоторые ICMP-сообщения может привести к разглашению некоторой информации о хосте, в то время как другие — привести к модификации таблицы маршрутизации, поэтому их необходимо запретить.

Обычно выход во внешний мир разрешают ICMP-сообщениям 3, 8, 12, в то время как на вход принимают только 0, 3, 4, 11, 12.

Usage

Try it out for yourself! Download the repo and open ‘Unreachable.playground’.

Dynamic Loop Exit

In some cases, the only way a function returns a value is from within a loop,
but the compiler may not have enough information to know that.

func getValue() -> Int {
    for i in ... {
        if i == 20 {
            return i
        }
    }
    assertUnreachable()
}

Switch Conditions

A statement may have conditions applied to its branches that make it
exhaustive, but that may not obvious to the compiler.

func sign(of value: Double?) -> FloatingPointSign? {
    switch value {
    case let x? where x >= 
        return .plus
    case let x? where x < 
        return .minus
    case .some
        assertUnreachable()
    case .none
        return nil
    }
}

Safety

With , debug builds will exit via a fatal error if the
function is called. In optimized builds, it’s no different than calling
.

Unreachable vs

The function can be used as somewhat of a drop-in
replacement for . In debug mode, they emit similar instructions.
However, when compiling with optimizations, allows its
parent to emit very few instructions.

Here we’re checking whether a has a value in the lower or upper
range. Because we know that these are the only valid ranges, we can let the
compiler know that the third branch is unreachable. If at some point has a
value that’s not within either range, it will emit an assertion failure in
unoptimized builds.

With Unreachable

func isLowerRange(_ x: UnicodeScalar) -> Bool {
    switch x.value {
    case ...0xD7FF
        return true
    case 0xE000...0x10FFFF
        return false
    default
        assertUnreachable()
    }
}

Assembly output:

        .globl  __T011Unreachable12isLowerRangeSbs7UnicodeO6ScalarVF
        .p2align        4,0x90
__T011Unreachable12isLowerRangeSbs7UnicodeO6ScalarVF:
        pushq   %rbp
movq    %rsp, %rbp
        cmpl    $55296, %edi
setb    %al
        popq    %rbp
        retq

With

func isLowerRange(_ x: UnicodeScalar) -> Bool {
    switch x.value {
    case ...0xD7FF
        return true
    case 0xE000...0x10FFFF
        return false
    default
        fatalError("Unreachable")
    }
}

Assembly output:

        .globl  __T011Unreachable12isLowerRangeSbs7UnicodeO6ScalarVF
        .p2align        4,0x90
__T011Unreachable12isLowerRangeSbs7UnicodeO6ScalarVF:
        .cfi_startproc
        movb    $1, %al
        cmpl    $55296, %edi
jb      LBB4_3
        addl    $-57344, %edi
        cmpl    $1056768, %edi
jae     LBB4_4
        xorl    %eax, %eax
LBB4_3:
        retq
LBB4_4:
        pushq   %rbp
Lcfi0:
        .cfi_def_cfa_offset 16
Lcfi1:
        .cfi_offset %rbp,-16
movq    %rsp, %rbp
Lcfi2:
        .cfi_def_cfa_register %rbp
        subq    $48, %rsp
        leaq    L___unnamed_2(%rip), %rax
movq    %rax, (%rsp)
        movl    $,32(%rsp)
movq    $56,24(%rsp)
        movl    $2,16(%rsp)
movq    $69,8(%rsp)
        leaq    L___unnamed_3(%rip), %rdi
        leaq    L___unnamed_4(%rip), %rcx
        movl    $11, %esi
        movl    $2, %edx
        movl    $11, %r8d
        xorl    %r9d, %r9d
        callq   __T0s17_assertionFailures5NeverOs12StaticStringV_SSAE4fileSu4lines6UInt32V5flagstFTfq4nxnnn_n
        subq    $40, %rsp
        .cfi_endproc

iptables и ICMP

Правила для Правила iptables. Список возможных типов выводится по команде

# iptables -p icmp -h

Valid ICMP Types:
any
echo-reply (pong)
destination-unreachable
   network-unreachable
   host-unreachable
   protocol-unreachable
   port-unreachable
   fragmentation-needed
   source-route-failed
   network-unknown
   host-unknown
   network-prohibited
   host-prohibited
   TOS-network-unreachable
   TOS-host-unreachable
   communication-prohibited
   host-precedence-violation
   precedence-cutoff
source-quench
redirect
   network-redirect
   host-redirect
   TOS-network-redirect
   TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
   ttl-zero-during-transit
   ttl-zero-during-reassembly
parameter-problem
   ip-header-bad
   required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply

Можно указать стандартный числовой код или сообщение. Пропустить все входящие ICMP-эхо-запросы (пинги).

# iptables -I INPUT -p icmp --icmp-type 8 -j ACCEPT
# iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT

Блокирует фрагменты ICMP-пакетов

iptables -I INPUT -p icmp -f -j DROP

Рекомендуемые правила для ICMP:

#!/bin/sh

IPT="/sbin/iptables"

$IPT -A INPUT -p icmp --icmp-type 3 -j ACCEPT # destination-unreachable 3/4
$IPT -A INPUT -p icmp --icmp-type 8 -j ACCEPT # echo request
$IPT -A INPUT -p icmp --icmp-type 12 -j ACCEPT # IP header bad 
$IPT -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT #

опция –reject-with

В отличие от цели DROP, где пакет просто отбрасывается, в данном случае отправителю будет отправлено IСМР-сообщение «Port unreachable / icmp port unreachable» («Порт недоступен»). С помощью опции –reject-with можно изменить тип ICMP-сообщения:

# iptables -A INPUT -s 1.2.3.4 -j REJECT --reject-with icmp-net-unreachable

У опции –reject-with есть следующие аргументы:

icmp-net-unreachable — сеть недоступна;
icmp-host-unreachable — узел недоступен;
icmp-port-unreachable — порт недоступен;
icmp-proto-unreahable — неподдерживаемый протокол;
icmp-net-prohibited — сеть запрещена;
icmp-host-prohibited — узел запрещен.

По умолчанию будет передано сообщение port-unreachable.
Вышеперечисленные аргументы являются ICMP error messages.В дополнение к опции –reject-with TCP-пакеты можно отклонить с помощью аргумента tcp-reset, который отправляет RST-сообщения отправителю. Это наилучший с точки зрения безопасности способ, нужно обязательно использовать именно его. TCP RST пакеты используются для закрытия TCP соединений.

Причины «Недопустимый хост назначения» при пинге из-за пределов моей сети?

Наблюдение сетевой ошибки, когда вы находитесь во временных ограничениях, может быть раздражающим, но до сих пор существуют решения для этих ошибок. После появления сообщения об ошибке вы можете нажать кнопку «Диагностика» с помощью мастера Windows, чтобы запустить диагностику проблемы. Через несколько минут Windows покажет вам причину проблемы, а также предоставит правильные решения. Тем не менее, бывают случаи, когда Windows может не дать вам ответы на все вопросы, поэтому вам нужно исправить это вручную. Во-первых, вам нужно изменить настройки адаптера. Найдите настройки в центре «Сеть и общий доступ». Во-вторых, сбросьте TCP / IP. При изменении настройки адаптера вы можете изменить TCP / IP. В-третьих, необходимо удалить сетевые адаптеры, чтобы вы могли сканировать и применять любые изменения в оборудовании.

How to Fix a Destination Host Unreachable Error

For this example, we’re going to check our Default Gateway settings, then follow the steps to fix them.

  1. To start, we need to check our internet connection via a browser. For this example, we’ll check google.com to see if it loads on our device. If it does, we know there’s a problem on our local network, rather than a broader connection issue.

  2. Next, we’re going to test our IPv6 connection to see if that’s where the issue lies. To do this, open the Command Prompt and use the following command to ping your original IP address, but type «ping -6» to isolate the IPv6 line.

    C:\Users\Me>ping -6 151.101.194.114
  3. You should get a reply in the Command Prompt, which looks like this:

    Pinging 151.101.194.114 with 64 bytes of data:Reply from 151.101.194.1.241: Destination host unreachable.Reply from 151.101.194.1.241: Destination host unreachable.Reply from 151.101.194.1.241: Destination host unreachable.Reply from 151.101.194.1.241: Destination host unreachable.
  4. The above reply comes from IP address 151.101.194.1.241, which seems to relate to the remote gateway handling our request. To check this, run a traceroute using the following command:

    C:\Users\Me>tracert -6 -d 151.101.194.114
  5. You should get a response, and it should resemble the following:

    Tracing route 151.101.194.114 over a maximum of 30 hops:1 1 ms 1 ms 1 ms 151.101.194.1.2412 151.101.194.1.241 reports: Destination host unreachable.Trace complete.
  6. From this, we can make a judgment that 151.101.194.1.241 is configured as the default gateway. To check if this is as it should be, we can look at our IP settings via the netshell. To launch netshell, enter the following command:

    C:\Users\Me>netsh
  7. With netshell open, enter this command:

    netshell>interface ipv6netshell interface ipv6>showconfig
  8. The response will show our Local Area Connection details, with a reference line for the Default Gateway. In our example we see the following:

    Default Gateway 151.101.194.1.241

    This confirms that 151.101.194.1.241 is currently configured as the default gateway, but when we look at our actual device’s IP address, we see it’s slightly different: 151.101.194.1.244.

8 ответов

ping-шлюз с обоих компьютеров ping 192.168.1.254 затем попытайтесь выполнить команду ping comp1 в compt2 и comp2 в comp1 затем опубликуйте результаты arp -a из BOTH boxes

Интересно, что-то блокирует трафик

запустите sudo tcpdump -ni wlan0 arp в одном окне на обоих компьютерах, а затем попытайтесь выполнить pinging друг друга и шлюз из другого окна на оба снова и опубликовать результаты

До сих пор это показывает, что comp1 делает то, что предполагается отправить ARP-запрос (запрашивая адрес comp2s etherner), но не получая ответ arp (слушая что-нибудь обратно). Вам нужно увидеть tcpdump с PC2, чтобы увидеть полную картину. Либо запустите команду экрана, либо сделайте это на PC1 sudo tcpdump -w pc1.pcap -ni wlan0 arp & , а на PC2 sudo tcpdump -w pc2.pcap -ni wlan0 arp & & amp; следует бросить его в фоновом режиме и дать вам свое приглашение обратно для pings. После того, как pings не удалось вернуть задания на передний план, fg %1 остановите его ctrl+c и прочитайте записанные файлы с помощью sudo tcpdump -r pc1/2.pcap

Edit3 ПК делают то, что они предполагают, выставляя ARP, но они не получают, что указывает на маршрутизатор. Может быть, отключить настройку брандмауэра, сомневаюсь, что он поддерживает VLAN? Kinda желает, чтобы вы позволили ему работать немного дольше 22: 45: 48.379058 , ваш маршрутизатор отправил свой собственный запрос ARP, когда он искал PC1 22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28 , и оба ПК должны были его видеть, мы можем видеть, что PC1 увидел его и ответил своим IP-адресом, но не мог сказать, получил ли PC2 его с тех пор, как вы остановили его, остановившись только на 22: 45: 09.796214 . Предположим, что вы синхронизированы с NTP.

Посмотрите, что он все еще не разрешен. Не видел, что у вас есть эти адаптеры на обоих ПК. Можете ли вы подключиться к маршрутизатору на eth вместо wlan и посмотреть, сможете ли вы пинговать? Или получить еще один маршрутизатор? Или сделать горячую точку на телефоне подключить оба компьютера и попытаться выполнить ping? Также удивлен, увидев, что вы смогли подключить два компьютера вместе и пинговать друг друга, вы использовали кроссоверный кабель?

Welcome to LinuxQuestions.org, a friendly and active Linux Community.

You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!

Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.

Are you new to LinuxQuestions.org? Visit the following links: Site Howto | Site FAQ | Sitemap | Register Now

If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.

Having a problem logging in? Please visit this page to clear all LQ-related cookies.

Introduction to Linux — A Hands on Guide

This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter. For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author’s experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.

Click Here to receive this Complete Guide absolutely free.