네트워크 인터페이스 이름에 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
하며 네트워크 도구와 앱은 @ 부록 없이 이 이름만 참조할 수 있습니다. (참고로 이것은 아마도 veth Peer일 가능성이 높지만 이름이 이를 반영할 필요는 없습니다.) @if10
의미:eth0
인덱스 10(십진수)을 가진 일부 (다른) 네트워크 인터페이스에 연결되어 있음을 의미합니다. 또한 표시되어 있으므로link-netnsid 0
이 다른 네트워크 인터페이스는 다른 네트워크 네임스페이스(일종의 가상 IP 스택), 아마도 루트(일명 호스트) 네트워크 네임스페이스에 있습니다.
ip link show
컨테이너가 아닌 호스트에서 사용하는 경우 거기 나열된 네트워크 인터페이스 중 하나에 @9
부록이 있어야 합니다. 인터페이스 이름은 아마도 veth...
. 이 인터페이스는 eth0@10
귀하가 요청한 인터페이스 에 대한 피어입니다 . Veth 인터페이스는 가상 케이블처럼 서로 연결된 쌍으로 제공됩니다.
따라서 는 도구 @...
에 의해 생성된 부록 ip
이며 Linux의 네트워크 인터페이스 이름의 일부가 아닙니다. @ 뒤의 숫자는 @ 뒤에 표시되는 인덱스 번호가 있는 다른 네트워크 인터페이스를 나타냅니다. 색인 번호는 와 같이 네트워크 인터페이스 이름 앞에 인쇄됩니다 9: eth0@if10
. 피어 네트워크 인터페이스는 다른 네트워크 네임스페이스에 있을 수 있습니다.
link-netnsid ..
불행하게도 에 대한 올바른 네트워크 네임스페이스를 찾는 것은 다소 복잡합니다.veth 피어 ifindex의 네트워크 네임스페이스를 찾는 방법.
업데이트 2023:지멘스가 출시했습니다.엣지샤크컨테이너, 호스트 등의 네트워크 인터페이스 관계를 렌더링하는 멋진 그래픽 웹 UI를 제공하는 OSS입니다.
답변2
/etc/udev/rules.d 또는 /lib/udev/rules.d에서 70-percious-net.rules와 같은 파일을 확인하세요. 네트워크 인터페이스 이름과 MAC 주소가 포함된 줄이 있어야 합니다. 이를 변경하고 재부팅하면 NIC의 이름이 바뀌어야 합니다.