Сколько IP-стеков используется?

Сколько IP-стеков используется?

С помощью следующей команды вывод:

~$ 
~$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether f0:ff:ff:f9:f1:06 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether ff:ff:ff:ff:ff:44 brd ff:ff:ff:ff:ff:ff
~$ 
~$ 
~$ 
~$ 
~$ 
~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether f0:ff:ff:f9:f1:06  brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ff:ff:ff:ff:ff:44 brd ff:ff:ff:ff:ff:ff
    inet 192.168.68.103/24 brd 192.168.68.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 5181sec preferred_lft 5181sec
    inet6 fe80::6fff:7fff:7ddd:3ddf/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
~$ 
~$ 
~$ 
~$ 
~$ 
~$ route -nNvee
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface    MSS   Window irtt
0.0.0.0         192.168.68.1    0.0.0.0         UG    600    0        0 wlp2s0   0     0      0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp2s0   0     0      0
192.168.68.0    0.0.0.0         255.255.255.0   U     600    0        0 wlp2s0   0     0      0
~$ 
~$ 
~$ 

  1. Могу ли я сказать, что запущено два стека IPv4 (сетевая подсистема Linux)? Один для eno1интерфейса, другой для wlp2s0интерфейса...

  2. Насколько я понимаю, есть таблица маршрутизации и интерфейс eth для каждого сетевого стека (ipv4 или ip6 или что-то еще). loТакже есть стек ipv4 (сетевая подсистема Linux)? да, почему route -nVeeне отображается loинтерфейс в таблице маршрутизации?

решение1

Существует один экземпляр структур данных ОС сети на каждое сетевое пространство имен. Вы можете считать это одним «стеком». Вы также можете считать различные стеки сетевых протоколов (например, IPv4 и IPv6, или даже более старые, которые все еще поддерживаются Linux) отдельно, тогда у вас будет по одному на каждое сетевое пространство имен.

Все сетевые интерфейсы в сетевом пространстве имен принадлежат одному и тому же сетевому стеку (или нескольким, если считать разные протоколы). Существуют различные таблицы, которые либо ссылаются на конкретный интерфейс (маршрутизация, брандмауэр), либо являются поинтерфейсными (назначение адреса), но они по-прежнему принадлежат к одному и тому же экземпляру структуры данных ядра.

Интерфейс loopback ничем не отличается в этом отношении, хотя он играет особую роль в сетевом стеке (он используется всякий раз, когда задействована передача с локального адреса на локальный адрес, а также предлагает способ назначения выделенных локальных IP-адресов). Таким образом, существует один интерфейс loopback на каждое сетевое пространство имен (и, следовательно, сетевой стек).

решение2

Во-первых, команда, которую вы запускаете, показывает информацию освязь- физический интерфейс (вот почему вы видите здесь MAC-адреса) - команда show ip addrможет быть лучше.

Вероятно, в вашем примере запущено всего 2 стека IP — 1 стек IPv4 и 1 стек IPv6.

Удобный способ определить это — посмотреть на то, что iptablesвы ip6tablesвидите.

Вероятно, хорошей абстракцией будет сказать, что все, работающее на одном стеке IPv4, будет доступно через iptables, а все, работающее на одном стеке IPv6, будет доступно через ip6tables. Это, скорее всего, верно с учетом предоставленной вами информации. Все эти интерфейсы, включая lo, обслуживаются одним и тем же стеком.

Вероятно, единственный способ заставить работать несколько независимых стеков для одного и того же протокола — это использоватьсетевые пространства именили виртуализация.

решение3

Интерфейс eno1не имеет адреса IPv4, но интерфейс wlp2s0имеет.

Интерфейс loтакже имеет адрес IPv4.

Всего запущено два стека IPv4.

Связанный контент