Чи можу я створити віртуальний інтерфейс Ethernet під назвою eth0?


24

Я запускаю Arch на основі ядра Linux 3.10.5-1. Система використовує нові фактичні умови іменування інтерфейсів Ethernet enp * s * і wlp * тощо. Однак це проблема, оскільки мій навчальний заклад використовує програму Maple 17 . Система ліцензування Maple залежить від існування інтерфейсу з іменем eth0, оскільки він повинен отримати MAC-адресу його для перевірки ліцензії. Це погане рішення, але я мушу обійти його.

Це означає, що мені взагалі потрібен інтерфейс eth0 з будь-якою MAC-адресою (оскільки я можу отримати новий файл ліцензії для нової MAC-адреси), який не обов'язково повинен працювати. Насправді, це просто повинно бути в будь-який час. Я вважаю, що існує декілька способів спробувати вирішити цю проблему, але я не зміг знайти жодної ідеї.

  • Створення адаптера без підключення
  • Створення псевдоніма для enp3s0 під назвою eth0
  • Перейменування enp3s0 або інтерфейсу зворотного зв'язку.

Те, що мені вдалося знайти, стосувалося лише зміни нових конвенцій та старих версій udev. Вони так чи інакше працювали на RHEL та SuSe. Я спробував це без удачі, хоча. (persistent-net-names.rules та net-name-slot.rules, обидва вони просто змусили мій фактичний інтерфейс перестати працювати, а мій інтерфейс wlan зникнути)

Відповіді:


28

Звичайно. Ви можете створити tapпристрій досить легко, з допомогою tunctl(з uml-утиліт, принаймні на Debian):

# tunctl -t eth0
Set 'eth0' persistent and owned by uid 0
# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr a6:9b:fe:d8:d9:5e  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Або з ip:

# ip tuntap add dev eth0 mode tap
# ip link ls dev eth0
7: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 500
    link/ether 0e:55:9b:6f:57:6c brd ff:ff:ff:ff:ff:ff

Ймовірно, вам слід віддати перевагу другому методу, як ipвважається бажаним мережевим інструментом в Linux, і ви, ймовірно, вже встановили його.

Крім того, обидва вони створюють крановий пристрій з (я б здогадався) випадковим локальним MAC, ви можете встановити MAC фіксованим значенням будь-яким із звичайних способів.


1
Прямо! Саме рішення, на яке я сподівався, дуже дякую :) Це працює як мрія.
Стівен Шютт

1
У мене є проблема. При спробі змінити MAC на ip link set dev eth0 address 01:23:45:67:89:ab(Хоча адаптер звичайно відсутній), він говорить RTNETLINK answers: Cannot assign requested address. Я також спробував встановити macchanger, але він повертає аналогічну помилку. Все спробували як корінь.
Steen Schütt

3
@TimeSheep Це неправдива MAC-адреса. Зокрема, це багатоадресна адреса. Спробуйте 00: 23: 45: 67: 89: аб. Це спрацює. Але 02: 23: 45: 67: 89: ab було б краще. Дивіться, наприклад, en.wikipedia.org/wiki/MAC_address#Address_details
derobert

Ах, дякую. Я повністю забув, що для цих речей є вимоги. Я просто захоплю наступний, який він випадково генерує, і використовувати це. Чи є спосіб зберегти пристрій постійним під час перезавантаження, а не відтворювати його та встановлювати його адресу під час завантаження за допомогою сценарію?
Steen Schütt

@TimeSheep Не дуже. Його віртуальний інтерфейс, він не існує ніде, окрім розуму ядра ... тому, коли ви перезавантажуєтеся, його вже немає.
derobert

4

Ви також можете встановити правила udev, щоб надати мережевим картам потрібні імена:

https://wiki.archlinux.org/index.php/Network_Configuration#Change_device_name

Звичайно, НЕ слід говорити udev називати їх eth0, eth1 і т. Д. Що робить Maple, якщо у вас є лише wifi-карта?


Я не знаю про Maple, але я бачив інше "захищене від копіювання" програмне забезпечення, яке перевіряє ваш MAC і розглядає лише мережеві інтерфейси, що називаються eth0і eth1. Якщо ваш називається wlan0, занадто погано (якщо ви не знаєте, як його перейменувати чи створити віртуальний інтерфейс).
Жил 'SO- перестань бути злим'

Якщо у вас є лише wifi-карта, я просто думаю, що вам не пощастить. Я говорив з представником про це, але, схоже, це не ті, хто пише систему ліцензування. Я сказав їм, що конвенції про іменування, швидше за все, змінюються і що вони повинні вивчити виправлення всієї справи для кращої підтримки. you are correct in your suspicions of the cause of the problem with the activation, particularly the issue with the Ethernet adapter name. Unfortunately, it is a limitation of the licensing software that it has to look for an "eth0" in order to find the Host ID of the system
Стівен Шютт

Будь-який шанс, щоб ви могли використовувати правила udev, щоб тимчасово перейменувати свій NIC в eth0, а потім видалити це правило та перезавантажити після активації? Я насправді не знаю, чи завжди перейменовувати карту ethX, чи просто іноді, це дійсно погано.
rainbowgoblin

@rainbowgoblin Ні, він перевіряється з сервером кожного разу, коли він запускається, тому він пізніше знову почне подавати мені помилку "Не вдалося отримати ідентифікатор хоста". У будь-якому випадку рішення Дероберта було ідеальним, і навіть не відчуваєш себе таким способом вирішення.
Steen Schütt

2

Я розглядаю дуже схожу проблему з комп’ютером, який не має мережевої картки взагалі. Це рішення виглядає як вдале: http://jms.id.au/wiki/FakeEth0

В основному ідея полягає у створенні / зміні декількох файлів для створення фіктивного інтерфейсу:

У /etc/modules-load.d/dummy.confоних:

# load dummy interface module
dummy

У /etc/udev/rules.d/70-persistent-net.rulesоних:

SUBSYSTEM=="net", KERNEL=="dummy0", NAME="eth0"

Потім /etc/network/interfacesдодайте:

iface eth0 inet static
    hwaddress DE:AD:BE:EF:CA:FE

Ви повинні бути в змозі зробити це modprobe dummyв цей момент і перевірити, чи правильно налаштований інтерфейс. Він може не встановити mac-адресу, якщо ви використовуєте modprobe замість перезавантаження; у цьому випадку зробіть ip-посилання встановити dev eth0 address de: ad: be: ef: ca: fe.


-1

Найпростіше рішення - хоча це працює лише в системах з однією мережевою картою:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

Arch Linux використовує "передбачувані імена". Це вимикає.


Я вже пробував це, це просто зіпсувало все, і мої адаптери зникли.
Steen Schütt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.