Непонимание адресов tun0

11

Я уже провел некоторый поиск и более или менее понимаю, что tun0делает интерфейс. Я получил следующее из разных источников,

Пакеты, отправляемые операционной системой через устройство настройки / прослушивания, доставляются в программу пользовательского пространства, которая присоединяется к устройству. Программа пользовательского пространства также может передавать пакеты в устройство настройки / прослушивания. В этом случае устройство tun / tap доставляет (или «внедряет») эти пакеты в сетевой стек операционной системы, эмулируя их прием от внешнего источника. Интерфейсы tun / tap - это программные интерфейсы, то есть они существуют только в ядре и, в отличие от обычных сетевых интерфейсов, не имеют физического аппаратного компонента (и поэтому к ним не подключен физический провод).

Вы можете думать об интерфейсе tun / tap как о обычном сетевом интерфейсе, который, когда ядро ​​решает, что наступил момент для отправки данных «по проводам», вместо этого отправляет данные в какую-то пользовательскую программу, которая присоединена к интерфейсу.

Теперь, если я сравниваю результаты для eth0и tun0, я вижу что-то вроде этого.


ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:14:22:50:78:71  
          inet addr:172.16.210.32  Bcast:172.16.255.255  Mask:255.255.0.0
...
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
<snipped>

ifconfig tun0
tun0      Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

Теперь, если мы попытаемся сравнить два, мы найдем эти различия,

  1. eth0действительно имеет MAC-адрес, и по понятным причинам tun0его нет.

  2. eth0работает в режиме вещания и tun0работает в режиме «точка-точка».

У меня есть следующие пункты, которые я не понимаю.

  1. Какова роль адреса P-t-P:10.8.0.2в этом сценарии?

  2. Почему для маски подсети tun0установлено значение 255.255.255.255?

Масрур
источник

Ответы:

5

Аппаратные сетевые соединения могут быть либо двухточечными, либо многоточечными. Ссылки ppp указывают на точку, Ethernet - на точку. Tun может действовать как либо, в вашем случае он действует как ссылка точка-точка. У интерфейса многоточечной связи есть четыре адреса, связанные с ним, в частности IP-адрес (адрес интерфейса), сетевой адрес, широковещательный адрес и маска сети. У двухточечной связи есть два связанных с ней адреса, а именно IP-адрес (ближний адрес) и одноранговый адрес (удаленный адрес). Поскольку связь точка-точка будет работать только с двумя адресами, широковещательный и сетевой адреса, а маска сети не содержит полезных данных или значения флага.

В конечной точке интерфейсы Tun могут иметь MAC-адреса, но у них просто нет MAC-адресов по умолчанию.

hildred
источник
1
Не могли бы вы показать пример, где интерфейс Tun может иметь MAC-адрес? Спасибо за Ваш ответ.
Масрур
1
это обычно, когда у вас есть виртуальные коммутаторы, используйте, ifconfig tunXX hw ether XX:XX:XX:XX:XX:XXно это не нужно и, вероятно, не будет работать на двухточечных ссылках.
Хильдред