Я очень новичок в статической маршрутизации, наш клиент попросил реализовать статическую маршрутизацию для сокетов. Когда я googled, я столкнулся с rtentry
, чтобы установить информацию о маршрутизации. Когда я открыл эту структуру, я видел поля для статической маршрутизациейКак настроить несколько записей маршрутизации для сокета?
struct sockaddr rt_dst; /* Target address. */
struct sockaddr rt_gateway; /* Gateway addr (RTF_GATEWAY). */
struct sockaddr rt_genmask; /* Target network mask (IP). */
Но как я могу настроить многократную здесь? создание нескольких rtentry
и вызов ioctl(FileDes, SIOCADDRT, &rtentry)
исправить мою проблему?
int32_t FileDes = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
for(auto RtEntry : RtEntriesList)
{
ioctl(FileDes, SIOCADDRT, RtEntry)`
}
Если я настраиваю, как я могу это проверить? Будет полезно, если вы сможете предоставить ссылку, чтобы узнать больше об этих вещах.
Gilson, можете ли вы расширить «клиент, запрошенный для реализации статической маршрутизации для сокетов», часть вашего вопроса более подробно? У сокетов обычно нет никакого дополнительного выбора маршрутизации, они просто используют общесистемную определенную маршрутизацию; и rtentry не для обычных сокетов, для административных сокетов можно получить и установить общесистемную маршрутизацию (используется привилегированной командой «добавить маршрут»: http://unix.stackexchange.com/questions/274094/can-not -Добавить-статический-маршрут-в-моей-Ubuntu-siocaddrt-сеть-это-недостижим). – osgx
@osgx мы должны изменить файл/etc/network/interface, чтобы обеспечить статическую маршрутизацию. Мне ясно, что эта часть также должна установить эту информацию о маршрутизации в интерфейс, чтобы она выполняла конфигурацию без перезапуска. Для этого мы должны установить информацию о маршрутизации через административные сокеты. Поэтому я смущен, как установить эту информацию. Они не хотят выполнять команду маршрута или перезапускают устройство для установки конфигурации статической маршрутизации. Надеюсь, вы ясно знаете мой вопрос. –
Gilson, проверьте источники маршрутов 'route' или [' ip route'] (https://access.redhat.com/sites/default/files/attachments/rh_ip_command_cheatsheet_1214_jcs_print.pdf) tools (sourceforge.net/projects/net-tools ,) и/или 'strace' /' ltrace'/'sysdig' команд' route add', которые используются для установки нужной маршрутизации. – osgx