Я уже провел некоторый поиск и более или менее понимаю, что 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
Теперь, если мы попытаемся сравнить два, мы найдем эти различия,
eth0
действительно имеет MAC-адрес, и по понятным причинамtun0
его нет.eth0
работает в режиме вещания иtun0
работает в режиме «точка-точка».
У меня есть следующие пункты, которые я не понимаю.
Какова роль адреса
P-t-P:10.8.0.2
в этом сценарии?Почему для маски подсети
tun0
установлено значение 255.255.255.255?
источник
ifconfig tunXX hw ether XX:XX:XX:XX:XX:XX
но это не нужно и, вероятно, не будет работать на двухточечных ссылках.