사용 중인 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. 내 이해는 각 네트워크 스택(ipv4 또는 ip6 등)마다 라우팅 테이블 및 eth 인터페이스가 있다는 것입니다. loipv4 스택(Linux 네트워크 하위 시스템)도 있습니까 ? 그렇습니다. 라우팅 테이블에 인터페이스가 route -nVee표시되지 않는 이유는 무엇입니까?lo

답변1

네트워크 네임스페이스당 하나의 OS 네트워크 데이터 구조 인스턴스가 있습니다. 이것이 하나의 "스택"이라고 계산할 수 있습니다. 또한 서로 다른 네트워크 프로토콜 스택(예: IPv4 및 IPv6 또는 Linux에서 여전히 지원되는 이전 프로토콜)을 개별적으로 계산할 수 있으며, 그러면 네트워크 네임스페이스당 하나씩 갖게 됩니다.

네트워크 네임스페이스의 모든 네트워크 인터페이스는 동일한 네트워크 스택(또는 다른 프로토콜을 계산하는 경우 여러 개)에 속합니다. 특정 인터페이스(라우팅, 방화벽)를 참조하거나 인터페이스별(주소 할당)을 참조하는 다양한 테이블이 있지만 여전히 동일한 커널 데이터 구조 인스턴스에 속합니다.

루프백 인터페이스는 네트워크 스택에서 특별한 역할을 하지만 이 점에서는 다르지 않습니다(로컬 주소에서 로컬 주소로의 전송이 포함될 때마다 사용되며 전용 로컬 IP 주소를 할당하는 방법도 제공합니다). . 따라서 네트워크 네임스페이스(따라서 네트워크 스택)당 하나의 루프백 인터페이스가 있습니다.

답변2

먼저, 실행 중인 명령은 다음에 대한 정보를 표시합니다.링크- 물리적 인터페이스(여기서 MAC 주소가 표시되는 이유) - 명령이 show ip addr더 나을 수도 있습니다.

귀하의 예에서는 아마도 2개의 IP 스택(IPv4 스택 1개와 IPv6 스택 1개)만 실행 중일 것입니다.

알 수 있는 편리한 방법은 무엇을 보고 볼 수 있는지 살펴보는 것 iptables입니다 ip6tables.

단일 IPv4 스택에서 실행되는 모든 항목은 을 통해 액세스할 수 있고 iptables, 단일 IPv6 스택에서 실행 중인 모든 항목은 을 통해 액세스할 수 있다고 말하는 것은 아마도 좋은 추상화일 것입니다 ip6tables. 귀하가 제공한 정보에 따르면 이는 사실일 가능성이 높습니다. 포함한 모든 인터페이스는 lo동일한 스택에서 서비스됩니다.

아마도 동일한 프로토콜에 대해 실행되는 여러 개의 독립 스택과 같은 것을 얻을 수 있는 유일한 방법은 다음을 사용하는 것입니다.네트워크 네임스페이스또는 가상화.

답변3

인터페이스 eno1에는 IPv4 주소가 없지만 인터페이스에는 wlp2s0있습니다.

인터페이스 lo에는 IPv4 주소도 있습니다.

전체적으로 두 개의 ipv4 스택이 실행되고 있습니다.

관련 정보