Назад | Перейти на главную страницу

Почему на устройстве TUN нет флага BROADCAST?

При создании устройства TUN в Linux на моем компьютере созданное устройство TUN имеет следующие флаги:

<POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP>

Ясно, что там указано MULTICAST, но не BROADCAST. Поскольку устройство TUN работает с IP-пакетами, именно программа, обрабатывающая файл устройства TUN, должна решать, что делать с пакетами, отправленными на широковещательный адрес. Более того, приложениям также разрешено отправлять пакеты на широковещательный адрес на устройстве TUN, даже если флаг BROADCAST не указан на этом устройстве.

Так почему же на устройстве TUN нет флага BROADCAST?

РЕДАКТИРОВАТЬ: извините за путаницу. Под устройством TUN я не имею в виду конкретно способ, которым OpenVPN использует для туннелирования. Я имею в виду устройство TUN в Linux (или другом Unix), как описано здесь: http://www.kernel.org/doc/Documentation/networking/tuntap.txt

Ключом к этому является тот факт, что это «ТОЧКА-ТОЧКА» ... Ваша машина напрямую подключается к удаленной стороне, и любые фактические широковещательные сообщения должны генерироваться вашим удаленным концом. Конечно, если вы отправите пакет на широковещательный адрес, ваш удаленный конец обязательно передаст его, а также вернет вам все пакеты, отправленные на широковещательный адрес.

Напротив, если бы у вас было несколько рабочих станций, подключенных непосредственно к коммутатору, ваша машина могла бы отправлять широковещательные сообщения, и для этого не требовалось бы никаких gateway для повторной передачи этой трансляции другим одноранговым узлам.