- How to create a virtual network interface in Ubuntu 20.04
- Adding virtual interface.
- Adding a non persistent interface
- Adding a persistent interface and IP address
- Other tools
- How to create a virtual network interface in Ubuntu?
- 2 Answers 2
- 🖧 Linux: Создание виртуального сетевого интерфейса
- Создание виртуальных сетевых интерфейсов на Linux
- Заключение
How to create a virtual network interface in Ubuntu 20.04
A virtual interface is a networking interface, that mimics a physical interface. With the help of virtual interfaces creating virtual machines or containers are possible.
Adding virtual interface.
Adding a virtual interface is a very simple and straight task. This can be done with ip command and with some arguments.
In the below-mentioned command, I have added an interface with the name vr-br.
Adding a non persistent interface
Use the following command to add a nonpersistent interface. In the following command dummy is the kernel module.
sudo ip link add name type dummy
Example of the above command and its verification is shown in the following code section
ubuntu@ubuntu-exp:~$ sudo ip link add name vr-br type dummy ubuntu@ubuntu-exp:~$ ubuntu@ubuntu-exp:~$ ubuntu@ubuntu-exp:~$ ip a 1: lo: 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: ens3: mtu 1450 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:6e:46:61 brd ff:ff:ff:ff:ff:ff inet 10.0.1.62/8 brd 10.255.255.255 scope global dynamic ens3 valid_lft 77157sec preferred_lft 77157sec inet6 fe80::f816:3eff:fe6e:4661/64 scope link valid_lft forever preferred_lft forever 3: vr-br: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 3a:4f:ec:a3:ad:68 brd ff:ff:ff:ff:ff:ff ubuntu@ubuntu-exp:~$
You can then play with the interface and you can also assign IP address to this interface. This type of assignment is not persistent, which means after a reboot of your machine you won’t find a network interface.
Adding a persistent interface and IP address
Adding vr-br.netdev and vr-br.network file in /etc/systemd/network/ directory
sudo touch /etc/systemd/network/vr-br.netdev sudo touch /etc/systemd/network/vr-br.network
The above command when we run in our system.
ubuntu@ubuntu-exp:~$ sudo touch /etc/systemd/network/vr-br.netdev ubuntu@ubuntu-exp:~$ sudo touch /etc/systemd/network/vr-br.network ubuntu@ubuntu-exp:~$ ls /etc/systemd/network/ vr-br.netdev vr-br.network ubuntu@ubuntu-exp:~$
Edit both the files, I have added the following content in these files.
ubuntu@ubuntu-exp:~$ cat /etc/systemd/network/vr-br.network [Match] Name=vr-br [Network] Address=192.168.0.100 Mask=255.255.255.0 ubuntu@ubuntu-exp:~$ ubuntu@ubuntu-exp:~$ ubuntu@ubuntu-exp:~$ cat /etc/systemd/network/vr-br.netdev [NetDev] Name=vr-br Kind=dummy ubuntu@ubuntu-exp:~$
For initializing the configuration you can reboot the system or simply run the below-mentioned commands.
sudo systemctl restart systemd-networkd
For testing check the interface with ip a command
ubuntu@ubuntu-exp:~$ sudo systemctl restart systemd-networkd ubuntu@ubuntu-exp:~$ ubuntu@ubuntu-exp:~$ ip a 1: lo: 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: ens3: mtu 1450 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:6e:46:61 brd ff:ff:ff:ff:ff:ff inet 10.0.1.62/8 brd 10.255.255.255 scope global dynamic ens3 valid_lft 86394sec preferred_lft 86394sec inet6 fe80::f816:3eff:fe6e:4661/64 scope link valid_lft forever preferred_lft forever 3: vr-br: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether 3a:4f:ec:a3:ad:68 brd ff:ff:ff:ff:ff:ff inet 192.168.0.100/24 brd 192.168.0.255 scope global vr-br valid_lft forever preferred_lft forever inet6 fe80::384f:ecff:fea3:ad68/64 scope link valid_lft forever preferred_lft forever ubuntu@ubuntu-exp:~$
Other tools
We can use ifconfig commands to add a new interface and to manage or play with other network configurations. However, for ifconfig command, we need to install the net-tool package in ubuntu. You can use the following command to install the package.
ubuntu@ubuntu-exp:~$ sudo apt install net-tools
How to create a virtual network interface in Ubuntu?
I’m testing a network program on Ubuntu. Is there any way to create a virtual network interface in Ubuntu. Something like lo is good, but unfortunately there is bunch of packets on lo with 127.0.0.1 as source and destination IP addrress.
2 Answers 2
USE CASE: To create a persistent VIP address in a server to function as a ‘loopback’ address
Change to /etc/systemd/network/ directory
user@server:~$ cd /etc/systemd/network/
Create two files, ‘vip.netdev’ and ‘vip.network’
user@server:/etc/systemd/network$ touch vip.netdev vip.network
Show the newly created files
user@server:/etc/systemd/network$ ls vip.netdev vip.network
Edit the two files with your favorite editor to reflect the detail below
user@server:/etc/systemd/network$ more vip.netdev [NetDev] Name=vip Kind=dummy
user@server:/etc/systemd/network$ more vip.network [Match] Name=vip [Network] Address=172.16.1.23 (or whatever address you so choose) Mask=255.255.255.255 Broadcast=172.16.1.255 (match the Address x.x.x.255)
Enable the newly created VIP interface w/out rebooting the server
user@server:/etc/systemd/network$ systemctl restart systemd-networkd
Show the newly create VIP interface
user@server:/etc/systemd/network$ ifconfig ens33: flags=4163 mtu 1500 inet 172.16.1.16 netmask 255.255.255.0 broadcast 172.16.1.255 inet6 fe80::20c:29ff:fe9b:703f prefixlen 64 scopeid 0x20 ether 00:0c:29:9b:70:3f txqueuelen 1000 (Ethernet) RX packets 244 bytes 32605 (32.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 653 bytes 51807 (51.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 411 bytes 66247 (66.2 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 411 bytes 66247 (66.2 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vip: flags=195 mtu 1500 inet 172.16.1.23 netmask 255.255.0.0 broadcast 172.16.255.255 inet6 fe80::d0a7:56ff:fe83:95ff prefixlen 64 scopeid 0x20 ether d2:a7:56:83:95:ff txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7 bytes 490 (490.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
user@server:/etc/systemd/network$ ip a 1: lo: 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: ens33: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:9b:70:3f brd ff:ff:ff:ff:ff:ff inet 172.16.1.16/24 brd 172.16.1.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe9b:703f/64 scope link valid_lft forever preferred_lft forever 3: vip: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether d2:a7:56:83:95:ff brd ff:ff:ff:ff:ff:ff inet 172.16.1.23/16 brd 172.16.255.255 scope global vip valid_lft forever preferred_lft forever inet6 fe80::d0a7:56ff:fe83:95ff/64 scope link valid_lft forever preferred_lft forever
🖧 Linux: Создание виртуального сетевого интерфейса
Мануал
В системах Linux настройка виртуального сетевого интерфейса – это не то, что большинству людей нужно делать очень часто, но иногда это может пригодиться.
Система распознает виртуальный интерфейс как реальный, физический интерфейс.
В этом отношении он работает подобно виртуальной машине – то есть эмулирует необходимые аппаратные компоненты, чтобы казалось, что они физически подключены к машине.
В этом руководстве вы узнаете, как создать виртуальный сетевой интерфейс в Linux.
Следуя приведенным ниже пошаговым инструкциям, вы сможете создать один или несколько таких интерфейсов в своей системе.
Создание виртуальных сетевых интерфейсов на Linux
Методы создания виртуального сетевого интерфейса немного изменились за прошедшие годы.
Существует много способов сделать это, но мы будем использовать модуль ядра dummy для настройки нашего виртуального интерфейса в этих шагах.
Начните с включения модуля ядра с помощью следующей команды.
Теперь, когда модуль загружен, мы можем создать новый виртуальный интерфейс.
Не стесняйтесь назвать его как угодно, но в данном примере мы назовем наш интерфейс eth0.
$ sudo ip link add eth0 type dummy
Вы сможете убедиться, что ссылка была добавлена, выполнив после этого следующую команду:
У нас есть наш виртуальный интерфейс, но он не слишком полезен для нас без IP-адреса или MAC-адреса.
Давайте присвоим интерфейсу MAC-адрес с помощью следующей команды.
Не стесняйтесь подставлять любой адрес, который вы хотите использовать, так как наш адрес просто случайно сгенерирован.
$ sudo ifconfig eth0 hw ether C8:D7:4A:4E:47:50
Обратите внимание, что если команда ifconfig недоступна, вам потребуется установить пакет net-tools.
Теперь мы можем добавить алиас к интерфейсу и сконфигурировать его с IP-адресом.
$ sudo ip addr add 192.168.1.100/24 brd + dev eth0 label eth0:0
Не забудьте поднять интерфейс, иначе он, вероятно, будет не очень полезен.
$ sudo ip link set dev eth0 up
Теперь вы должны иметь возможность использовать свой виртуальный сетевой интерфейс для любых целей.
Вы можете увидеть полную конфигурацию, просмотрев вывод команды ip a.
$ ip a [. ] 3: eth0: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether c8:d7:4a:4e:47:50 brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0:0 valid_lft forever preferred_lft forever
Если виртуальный сетевой интерфейс завершил свою работу, вы можете вернуть все свои изменения с помощью следующих команд.
$ sudo ip addr del 192.168.1.100/24 brd + dev eth0 label eth0:0 $ sudo ip link delete eth0 type dummy $ sudo rmmod dummy
Заключение
В этом руководстве мы узнали, как добавить виртуальный сетевой интерфейс в систему Linux с помощью модуля ядра dummy.
Это полезная практика во многих сценариях.
Например, если у вас есть приложение, которое должно быть привязано к сетевому интерфейсу, и вы не хотите использовать физический адаптер.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
> Например, если у вас есть приложение, которое должно быть привязано к сетевому интерфейсу, и вы не хотите использовать физический адаптер. тогда можно использовать loopback (lo)
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (105)
- Книги (27)
- Мануал (2 305)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (820)
- Обход запретов (34)
- Опросы (3)
- Скрипты (114)
- Статьи (352)
- Философия (114)
- Юмор (18)
Anything in here will be replaced on browsers that support the canvas element
Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]
В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]
Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]
Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]
Является ли запуск сервера NFS в кластере Kubernetes хорошей идеей или это ворота для хакеров Одним из многочисленных преимуществ сетевой файловой системы является ее способность выполнять многократное чтение-запись. И как и все в наши дни, NFS – это просто еще одна служба, которую можно запустить в своем кластере Kubernetes. Однако является ли сервер NFS подходящей […]