Всем здраствуйте. Учитывая то что написал в сабже,то если сформировать в ручную такой пакет, и послать его в сеть, то что произойдет с пакетом? Обрежет коммутатор? Убьет еще кто-то? или его Админ с бубном в руке выгонит из сети?
непонял .. ну пошлеш пакет и что дальше ? 1) Какой именно пакет ? куда ты маску пихать то будешь - если у тебя например IP (ICMP) то там никаких полей для масок нет . 2) если ты пошлеш пакет то его жизнь зависит напрямую от того какая сеть, какой диапазон адресов ей разрешен. Если сеть 192.168.х.х то максимум - да первого маршрутизатора (если не до хаба) долетит, а там сдохнет скорее всего. Если же сеть 10.128.х.х, то скорее всего тот шлюз (обычно там шлюз или что-то подобное ему) может принять этот пакет - но опять же все зависит от настроек той машины (фаер и тп) и типа пакета.
Маска подсети отправителя используется стеком TCP/IP отправителя для того чтобы понять, находится ли получатель в одном широковещательном сегменте с отправителем или нет. Если в одном - пакет доставляется средствами 2-го уровня OSI (для Ethernet-а это протокол ARP или на худой конец broadcast). Если в разных - то стек TCP/IP определяет по локальной таблице маршрутизации, которому маршрутизатору в его сегменте отправлять данный пакет (и подставляет его MAC-адрес), в результате чего в злоключениях пакета задействуется и 3-ий уровень OSI. Как только пакет покинул станцию отправитель, никто уже не знает маску подсети станции-отправителя. А маска подсети станции-получателя в этом сценарии вообще никого никогда не волновала.
Я имел ввиду следущее: 0000 1010 | 1000 0000 | 0001 0000 | 0000 0000 - 10.128.16.0 маска подсети: 1111 1111 | 1111 1111 | 1111 0000 | 0000 0000 - 255.255.240.0 как видите единица 3 октета в IP адресе попадает выше чем положено для подсети, и если сделать, пакет и послать его в сеть, то что произойдет с ним. До меня пока не дошло
Вот тут вычитал: Both the Subnet Address ip address and the Broadcast Address ip address are used to send information to every ip address in the group. В твоём случае 10.128.16.0 как раз Subnet Address. Т.о. теоретически произойти должно то же, что и при посылке пакета на адрес 10.128.31.255, т.е. Broadcast Address. На практике же вышло, что, например, Sharp'овский print server отозвался на Broadcast Address, но проигнорировал Subnet Address. Linux (2.4, 2.6) воспринимает оба адреса как broadcast. HP print servers тоже.
Интересно это все, а сцылу спасибо. Еще вопрос, подмену MAC адреса в пакете как можно организовать стандартными утилами? или обязательно писать дровину?