Имя сетевого интерфейса имеет знак «А» - что это?

10

Я пытаюсь найти информацию о том, почему имя сетевого интерфейса имеет знак at, но слишком много шума в результатах, которые я до сих пор получаю (мне не хватает правильной терминологии для поиска)

У меня есть контейнер LXC на хосте Ubuntu. Внутри контейнера я бегу и получаю:

# 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 / Containers, но я не заметил, что это существовало ранее, и задаюсь вопросом, является ли это дополнением к мостовому соединению, что может существовать в других сценариях?

taifwa
источник

Ответы:

6

eth0@if10 средства:

  • Ваш сетевой интерфейс назван по-прежнему просто, eth0и сетевые инструменты и приложения могут ссылаться только на это имя, без приложения @. (Как примечание, это, скорее всего, ветеринар, но название не обязательно должно отражать это.)
  • @if10означает: eth0подключен к некоторому (другому) сетевому интерфейсу с индексом 10 (десятичный). Поскольку также link-netnsid 0показано, что этот другой сетевой интерфейс находится в другом пространстве имен сети (вид виртуального стека IP), предположительно, в пространстве имен корневой сети (он же хост).

Если вы используете ip link showна своем хосте, а не в своем контейнере, то один из перечисленных там сетевых интерфейсов должен иметь @9приложение; имя интерфейса, вероятно, будет начинаться с veth.... Этот интерфейс является аналогом eth0@10интерфейса, о котором вы спрашивали. Интерфейсы Veth входят в пары, соединенные друг с другом, как виртуальный кабель.

Итак, @...это приложение, созданное ipинструментом, и оно не является частью имен сетевых интерфейсов Linux. Число после @ относится к другому сетевому интерфейсу с индексным номером, который отображается после @. Индексные номера печатаются перед именами сетевых интерфейсов, например, в 9: eth0@if10. Интерфейс одноранговой сети может находиться в другом пространстве имен сети.

К сожалению, поиск правильного сетевого пространства имен для этого link-netnsid ..довольно сложен , посмотрите, как найти сетевое пространство имен ветерана ifindex .

TheDiveO
источник
Спасибо - следуя этому объяснению, похоже, что то, на что я смотрю, это то, что правильно называется «сетевым пространством имен». Ta.
Таифва
1
Нотация @ также используется в других ситуациях, не связанных с сетевыми пространствами имен, таких как интерфейсы MACVLAN, подключенные к другому физическому сетевому интерфейсу. Это link-netnsid 0означает, что задействовано другое пространство имен сети. @ Просто говорит, что задействован другой интерфейс, но не там, где находится другой интерфейс.
TheDiveO
0

Проверьте наличие файла, например 70-persistent-net.rules, в /etc/udev/rules.d или в /lib/udev/rules.d. Должна быть строка с именем сетевого интерфейса и MAC-адресом. Изменение этого и перезагрузка должны переименовать NIC.

bootbeast
источник
Я не пытаюсь переименовать NIC - я пытаюсь понять, что присутствует ....
taifwa
Понял. Но есть ли файл правил для постоянных сетей со знаком "at" в имени сетевой карты?
bootbeast
Знак @ в этом случае не является частью имени интерфейса, а является артефактом ipинструмента. Просто сравните с ifconfig... или сделайте несколько быстрых дампов сценариев Python, используя имена интерфейсов pyroute2. Все покажут там неукрашенные реальные имена сетевых интерфейсов.
TheDiveO