Обнаружение сети PPP для проверки цепи запроса OSPF
Я ищу способ определить, является ли какой-либо входящий или исходящий сетевой трафик PPP (точка-точка). Есть ли способ, которым я могу прослушать этот тип трафика, используя библиотеку pcap?
Причина, по которой мне нужно знать, является ли трафик PPP для проверки определенного условия. Это условие: если бит DC (Demand-Circuit) в поле параметров OSPF включен, то для этой сети должен быть включен PPP. Только двухточечные сети получают все преимущества OSPF Demand-Circuits (RFC 1793).
1 ответ
"Точка-точка" в RFC 1793 не относится к конкретным типам трафика, а относится к конкретным типам сетей. Весь трафик, например, на последовательной линии, работающей по протоколу "точка-точка", представляет собой "трафик точка-точка"; нет трафика в Ethernet "точка-точка". Трафик не-точка-точка может быть туннелирован через сеть точка-точка, а трафик точка-точка может быть туннелирован через сеть не-точка-точка, но, в случае туннеля, часто будет сетевой интерфейс (в смысле программного обеспечения, например, что ifconfig -a
будет перечислены в большинстве систем ООН * X или ipconfig/all
перечислил бы в Windows) туннельный трафик, в дополнение к сетевому интерфейсу сетевого адаптера нижнего уровня.
На большинстве UN*X вы можете использовать SIOCGIFFLAGS
ioctl, чтобы получить флаги для сетевого интерфейса, и один из этих флагов IFF_POINTOPOINT
флаг, который будет указывать, является ли сеть для этого интерфейса двухточечной сетью или нет.
В Windows я не могу найти ioctl, чтобы получить флаги для определенного интерфейса, но SIO_GET_INTERFACE_LIST
Winsock ioctl вернет структуру INTERFACE_INFO с iiFlags
член, который включает в себя IFF_POINTOPOINT
флаг.