Почему элементы маршрута в таблице маршрутов (извлекаемые через сокет netlink) не имеют информации о маске сети? - PullRequest
2 голосов
/ 21 мая 2011

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

Прямо сейчас я могу получить таблицу маршрутов через netlink API сокетов, но, похоже, в ней нет информации о сетевой маске.Я прочитал руководство по rtnetlink, во всех rtattr элементах информации о маске нет, просто RTA_DST, RTA_SRC, RTA_GATEWAY ... определено.

Итак, как проверитьиз информации о маске сети в таблице маршрутов?Точно так же, как мы видим на route -n выходах.

Большое спасибо.

1 Ответ

5 голосов
/ 04 октября 2011

Длина префикса, связанная с RTA_DST, находится в поле rtm_dst_len поля rtmsg, а не в rtattr.(Полагаю, это поле фиксированного размера, в отличие от RTA_DST, размер которого зависит от семейства.)

...