сетевые интерфейсы (реальные и виртуальные)

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

сетевые интерфейсы (реальные и виртуальные)

Непрочитанное сообщение Olej » 16 мар 2012, 14:17

Пока крутились здесь в соседней теме о написании сетевых модулей ядра: viewtopic.php?f=18&t=1618 - обратил я внимание на одну интересную штучку ;-) :

1. стоит VirtualBox ... последний, сегодня обновлённый, с сайта Oracle - VirtualBox-4.1-4.1.10_76795 ... но это не так важно.

2. в нём установлено много разных VM:
VirtualBox.png
(154.82 КБ) 8086 скачиваний
3. на самом базовом хосте в VirtualBox создан виртуаьный интерфейс vboxnet0 "внутренней LAN" в терминологии VirtualBox:

Код: Выделить всё

[olej@nvidia 16]$ ifconfig
eth0      Link encap:Ethernet  HWaddr F4:6D:04:60:78:6F  
          inet addr:192.168.1.9  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::f66d:4ff:fe60:786f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6184 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6435 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4035243 (3.8 MiB)  TX bytes:928495 (906.7 KiB)
          Interrupt:43 Base address:0x6000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:111 errors:0 dropped:0 overruns:0 frame:0
          TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:12236 (11.9 KiB)  TX bytes:12236 (11.9 KiB)

vboxnet0  Link encap:Ethernet  HWaddr 0A:00:27:00:00:00  
          inet addr:192.168.56.1  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:23683 (23.1 KiB)

virbr0    Link encap:Ethernet  HWaddr 6E:9A:60:A7:FD:5F  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:9549 (9.3 KiB)
4. 2 из установленных VM запущены: Fedora 14 & Fedora 16... крутятся...

5. на каждом из Linux (VM) созданы по 2 сетевых интерфейса: сетевой мост к eth0 (подсеть 192.168.1.0 - это реальная LAN) + виртуальный сетевой адаптер к vboxnet0 (подсеть 192.168.56.0 - это виртуальная LAN внутри VirtualBox). Всё это (сетевые интерфейсы) хорошо видно на картинке (только в области полос прокрутки).

Всё это замечательно работает... о чём будет в следующих постах, в подтверждение "замечательности" ;-), потому как из тех VM я могу сюда в форум копировать только из их собственных браузеров по их собственным коннектам...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сетевые интерфейсы (реальные и виртуальные)

Непрочитанное сообщение Olej » 16 мар 2012, 14:45

Начнём с Fedora 14:

Код: Выделить всё

[olej@vmFedora ~]$ ifconfig
eth1      Link encap:Ethernet  HWaddr 08:00:27:C2:A2:30  
          inet addr:192.168.1.21  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:51 errors:0 dropped:0 overruns:0 frame:0
          TX packets:54 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15447 (15.0 KiB)  TX bytes:7165 (6.9 KiB)

eth3      Link encap:Ethernet  HWaddr 08:00:27:41:D0:39  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1180 (1.1 KiB)  TX bytes:3724 (3.6 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:300 (300.0 b)  TX bytes:300 (300.0 b)
Здесь всё понятно...
За малым исключением: почему eth1 а не eth0 + почему следующий 2-й интерфейс - eth3 ... Какой-то странный счёт :-?

Вот ого обмен со своим "соседом" Fedora 16 внутри виртуальной сетки VirtualBox, которая никому кроме этого самого VirtualBox не видна:

Код: Выделить всё

[olej@vmFedora ~]$ ping 192.168.56.102
PING 192.168.56.102 (192.168.56.102) 56(84) bytes of data.
64 bytes from 192.168.56.102: icmp_req=1 ttl=64 time=2.11 ms
64 bytes from 192.168.56.102: icmp_req=2 ttl=64 time=0.516 ms
64 bytes from 192.168.56.102: icmp_req=3 ttl=64 time=0.433 ms
^C
--- 192.168.56.102 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.433/1.021/2.116/0.775 ms
Ну а обмен в наружу - без проблем ... иначе я сюда ничего бы не смог написать...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сетевые интерфейсы (реальные и виртуальные)

Непрочитанное сообщение Olej » 16 мар 2012, 14:54

Olej писал(а):Начнём с Fedora 14:
А теперь - Fedora 16...
А теперь - горбатый, я сказал!
;-)

Код: Выделить всё

[olej@nvidia ~]$ ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:48 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3648 (3.5 KiB)  TX bytes:3648 (3.5 KiB)

p2p1      Link encap:Ethernet  HWaddr 08:00:27:47:CF:BE  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe47:cfbe/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3312 (3.2 KiB)  TX bytes:6684 (6.5 KiB)

p7p1      Link encap:Ethernet  HWaddr 08:00:27:B0:D2:2E  
          inet addr:192.168.56.102  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feb0:d22e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1180 (1.1 KiB)  TX bytes:5455 (5.3 KiB)

Что это за такие интерфейсы p2p1 & p7p1 ?

И насколько я понимаю, это вовсе не трюки VirtualBox, а это ... естественное состояние дущи Fedora 16?
В нативной установке должно быть то же самое.

Может кто глянуть как это выглядит в нативе?

И всё это с именами интерфейсов по-честному:

Код: Выделить всё

[olej@nvidia ~]$ ping -I p7p1 192.168.56.101
Warning: cannot bind to specified iface, falling back: Операция не позволяется
PING 192.168.56.101 (192.168.56.101) from 192.168.56.102 p7p1: 56(84) bytes of data.
64 bytes from 192.168.56.101: icmp_req=1 ttl=64 time=0.688 ms
64 bytes from 192.168.56.101: icmp_req=2 ttl=64 time=0.356 ms
64 bytes from 192.168.56.101: icmp_req=3 ttl=64 time=0.414 ms
^C
--- 192.168.56.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.356/0.486/0.688/0.144 ms
Из реальной LAN (по её интерфейсу) - никто не ответит:

Код: Выделить всё

[olej@nvidia ~]$ ping -I p2p1 192.168.56.101
Warning: cannot bind to specified iface, falling back: Операция не позволяется
PING 192.168.56.101 (192.168.56.101) from 192.168.56.102 p2p1: 56(84) bytes of data.
^C
--- 192.168.56.101 ping statistics ---
8 packets transmitted, 0 received, 100% packet loss, time 7000ms

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сетевые интерфейсы (реальные и виртуальные)

Непрочитанное сообщение Olej » 16 мар 2012, 15:10

вот увидел некоторую информацию в тему:
http://linuxforum.ru/viewtopic.php?id=15519
2011-08-03
Блин... Ларчик просто открывался. У меня самба и openVPN-шлюз на одном компьютере (на ремутной площадке) установлены. При этом в конфиге самбы явно указан адрес, интерфейс (p2p1), к которому надо прибиндить эту самбу. Казалось бы, он и должен там сидеть и работать с этого адреса. Ан нет. Запросы на центральный сервер шли не p2p1-интерфейса (физического, LAN), а с VPN-интерфейса, с tun0. А тот имеет совсем иной адрес.
http://www.traffpro.ru/forum/textversion.html?t2186
14 августа 2011
Здравствуйте, установил traffpro на fedora 15, запустил админку, завел клиента, но инет ему не раздается. Предположительно подвох а именах интерфейсов. biosdevname=0 в /etc/grub.conf не помогает - интерфейсы все равно p2p1 и p7p1. NetworkManager отключен. Подскажите пожалуйста.
PS Есть опыт установки на fedora12, все работает.
Это всё: ~август 2011 - время Fedora 15.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сетевые интерфейсы (реальные и виртуальные)

Непрочитанное сообщение Olej » 16 мар 2012, 15:27

Olej писал(а):Это всё: ~август 2011 - время Fedora 15.
Пока это вызывает лёгкое недоумение:
- с версией ядра это, вроде как, не связано (?), вот картина в установленном но Fedora 12 но с ядром собранным переустановленным 3.0.9:

Код: Выделить всё

[olej@notebook ~]$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:15:60:C4:EE:02  
          UP 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:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:16 
...
wlan0     Link encap:Ethernet  HWaddr 00:13:02:69:70:9B  
          inet addr:192.168.1.22  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::213:2ff:fe69:709b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1324 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1225 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1018580 (994.7 KiB)  TX bytes:168737 (164.7 KiB)

- имя интерфейса зашито в код модуля, а модули собираются одновременно с ядром...

Откуда? и когда? возникло такое изменение... и где оно находится?

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: сетевые интерфейсы (реальные и виртуальные)

Непрочитанное сообщение Ali » 16 мар 2012, 23:01

Работа удев.

Код: Выделить всё

$ dmesg | grep eth
[   11.984888] r8169 0000:04:00.0: eth0: RTL8168b/8111b at 0xffffc900057f0000, 00:1a:4d:93:12:c9, XID 18000000 IRQ 46
[   11.984891] r8169 0000:04:00.0: eth0: jumbo features [frames: 4080 bytes, tx checksumming: ko]
[   11.994311] i2c-core: driver [tuner] using legacy suspend method
[   11.994314] i2c-core: driver [tuner] using legacy resume method
[   13.038131] udevd[488]: renamed network interface eth0 to p20p1
2.3. Networking
2.3.1. Network Device Naming
Servers often have multiple Ethernet ports, either embedded on the motherboard, or on add-in PCI cards. Linux has traditionally named these ports ethX, but there has been no correlation of the ethX names to the chassis labels - the ethX names are non-deterministic. Starting in Fedora 15, Ethernet ports will have a new naming scheme corresponding to physical locations, rather than ethX. Ethernet ports embedded on server motherboards will be named em<port_number>, while ports on PCI cards will be named p<slot_number>p<port_number>, corresponding to the chassis labels. Additionally, if the network device is an SR-IOV Virtual Function or has Network Partitioning (NPAR) capability, the name will have a suffix of _<virtual_function> or _<partition>.
By changing the naming convention, system administrators will no longer have to guess at the ethX to physical port mapping, or invoke workarounds on each system to rename them into some "sane" order.
This feature affects all physical systems that expose network port naming information in SMBIOS 2.6 or later (specifically field types 9 and 41). Dell PowerEdge 10G and newer servers (PowerEdge 1950 III family, PowerEdge R710 family, and newer), and HP ProLiant G6 servers and newer are known to expose this information, as do some newer desktop models. Furthermore, most older systems expose some information in the PCI IRQ Routing Table, which will be consulted if information is not provided by SMBIOS.
Fedora running as a guest virtual machine will continue to use the ethX names.
Existing installations upgraded to Fedora 15 will not see a change in names unless /etc/udev/rules.d/70-persistent-net.rules is deleted and the HWADDR lines are removed from all /etc/sysconfig/network-scripts/ifcfg-* files, and those files are renamed to use the new device names.
You may continue to write rules in /etc/udev/rules.d/70-persistent-net.rules to change the device names to anything you wish. Such will take precedence over this physical location naming scheme. Such rules may look like:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
ATTR{address}=="00:11:22:33:44:55", ATTR{type}=="1", \
KERNEL=="eth*", NAME="public"

This feature may be disabled by passing "biosdevname=0" on the kernel command line, in which case, behavior will revert to using ethX names.
http://docs.fedoraproject.org/en-US/Fed ... Networking

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сетевые интерфейсы (реальные и виртуальные)

Непрочитанное сообщение Olej » 17 мар 2012, 01:11

Ali писал(а):Работа удев.
OK, понятно.
Хотелось бы ещё некоторых уточнений, какие возможно:
2.3. Networking
Starting in Fedora 15, Ethernet ports will have a new naming scheme corresponding to physical locations, rather than ethX. Ethernet ports embedded on server motherboards will be named em<port_number>, while ports on PCI cards will be named p<slot_number>p<port_number>, corresponding to the chassis labels. Additionally, if the network device is an SR-IOV Virtual Function or has Network Partitioning (NPAR) capability, the name will have a suffix of _<virtual_function> or _<partition>.
Здесь сказано о Fedora 15.
Относится ли это как-то к другим дистрибутивам, к Linux вообще? ... это достаточно радикальное изменение, уходящее в сторону от того, что долго было в других POSIX системах.
Fedora running as a guest virtual machine will continue to use the ethX names.
Картина, которую я увидел, как раз и проявилась в Fedora 16 гостевой в VirtualBox:

Код: Выделить всё

[olej@nvidia virt]$ dmesg | grep udev
[    2.491067] udevd[99]: starting version 173
[    7.764223] udevd[381]: starting version 173
[    7.891675] udevd[381]: specified group 'plugdev' unknown
[   12.423664] udevd[417]: renamed network interface eth0 to p2p1
[   12.491411] udevd[430]: renamed network interface eth1 to p7p1

kit_D
Писатель
Сообщения: 52
Зарегистрирован: 13 мар 2012, 13:14
Откуда: Харьков
Контактная информация:

Re: сетевые интерфейсы (реальные и виртуальные)

Непрочитанное сообщение kit_D » 18 мар 2012, 22:55

Интересно. А зачем они это сделали?

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей