네트워크 인터페이스 이름에는 at 기호가 있습니다. 그게 무엇인가요?

네트워크 인터페이스 이름에는 at 기호가 있습니다. 그게 무엇인가요?

네트워크 인터페이스 이름에 at 기호가 있는 이유를 이해하기 위해 정보를 찾으려고 노력하고 있지만 지금까지 얻은 결과에는 너무 많은 노이즈가 있습니다(검색할 적절한 용어가 부족함).

Ubuntu 호스트에 LXC 컨테이너가 있습니다. 컨테이너 내부에서 실행하여 다음을 얻습니다.

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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
9: eth0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:37:a0:7a brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.0.3.195/24 brd 10.0.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe37:a07a/64 scope link 
       valid_lft forever preferred_lft forever

알아채다eth0@if10

@부분을 무엇이라고 부르나요?

호스트에는 이와 같은 것이 없으며 if10내가 가지고 있는 다른 컨테이너에는 하나 가 있습니다 eth0@if8. 이것이 어떻게든 네트워크 변환을 처리하는 LXC/컨테이너의 일부라고 가정해야 하지만 이전에는 이것이 존재한다는 것을 눈치채지 못했고 브리징이 발생했는지 궁금합니다. 보충, 이것은 다른 시나리오에도 존재할 수 있습니까?

답변1

eth0@if10방법:

  • 네트워크 인터페이스의 이름은 간단하게 유지됩니다 eth0. 네트워크 도구 및 애플리케이션은 @addendum이 아닌 이 이름만 참조할 수 있습니다. (참고로 이는 veth Peer일 가능성이 높지만 이름이 이를 반영할 필요는 없습니다.)
  • @if10의미: eth0인덱스 10(십진수)을 사용하여 일부(다른) 네트워크 인터페이스에 연결합니다. link-netnsid 0다른 네트워크 인터페이스도 다른 네트워크 네임스페이스(가상 IP 스택의 일종)에 있는 것으로 표시되므로 루트(호스트라고도 함) 네트워크 네임스페이스일 가능성이 높습니다 .

ip link show컨테이너가 아닌 호스트에서 사용하는 경우 @9해당 인터페이스에 나열된 네트워크 인터페이스 중 하나에 대한 부록이 있어야 합니다 veth.... 해당 인터페이스는 eth0@10사용자가 요청하는 인터페이스의 피어 입니다. . Veth 인터페이스는 가상 케이블처럼 쌍으로 서로 연결됩니다.

따라서 이 도구는 Linux 네트워크 인터페이스 이름의 일부가 아닌 @...부록을 생성합니다 . ip@ 뒤의 숫자는 다른 네트워크 인터페이스를 나타내며, @ 뒤에 해당 인덱스 번호가 표시됩니다. 색인 번호는 와 같이 네트워크 인터페이스 이름 앞에 인쇄됩니다 9: eth0@if10. 피어 네트워크 인터페이스는 서로 다른 네트워크 네임스페이스에 있을 수 있습니다.

불행하게도 올바른 네트워크 네임스페이스를 찾는 것은 link-netnsid ..매우 복잡합니다.veth 피어의 네트워크 네임스페이스 ifindex를 찾는 방법.

2023년 업데이트:지멘스가 출시했습니다.가장자리 상어OSS로서 컨테이너, 호스트 등의 네트워크 인터페이스 간의 관계를 나타내는 아름다운 그래픽 웹 UI를 제공합니다.

답변2

/etc/udev/rules.d 또는 /lib/udev/rules.d 아래에 70-pertant-net.rules와 유사한 파일이 있는지 확인하십시오. 네트워크 인터페이스 이름과 MAC 주소가 포함된 줄이 있어야 합니다. 이를 변경하고 재부팅하면 NIC의 이름이 바뀌게 됩니다.

관련 정보