1. использую bind для связывания UDP сокета с локальным интерфейсом.
2. посылаю пакет с помощью sendto
3. С помощью tcpdump вижу, что пакеты шлются всегда в соответствии с таблицой роутинга, независимо от того, куда сделал bind;
обратный адрес IP-пакета -- данный в bind.
Я нигде в инете и мануалах не нашел, что bind задает только адрес, который сокет будет слушать.
Я бы хотел от специалистов услышать подтверждение или опровержение этого факта: bind задает listening internet address, а не просто internet address. И, если можно, где я могу прочитать про это явно.
Если это так, что route всегда задает адрес, откуда пакет пошлется, то почему sendto не возвращает ошибку, типа такой "не могу послать через этот интерфейс (указанный в bind), не найден route для адреса доставки", а всегда шлет с другого интерфейса, где найден route?
Хотя и указывает в пакете правильный обратный адрес, но через другой интерфейс адрес доставки не доступен, а управлять таблицей роутингов я не могу.
Что-то я пароль запамятовал. Если что, я sergio_nsk.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Странности с роутингом и UDP пакетами (2005)
- Форум неверный src ip в исходящих пакетах при rule based routing (2017)
- Форум Отправка и получение датаграм SO_BROADCAST из другой сети (2020)
- Форум Указать исходный IP адрес (2013)
- Форум Указал неправильный адрес доставки (2012)
- Форум bind, выборочная подмена адресов (2009)
- Форум bind на внешний адрес (2002)
- Форум kernel sendto (2008)
- Форум Как указать адрес используемого DNS-сервера? (2011)
- Форум nautilus-sendto сегфолтится (2012)