Member
Статус: Не в сети Регистрация: 25.01.2003 Откуда: UA
Taurus_busy, -=ilya=- 3 уровень - маршрутизатор(ходит то что разрешено тому кому это надо)
2 - свич(бродкасты ходят всем)
1 -хаб(все ходит всем)
Хабом комп конечно не сделаешь, а вот свичем - запросто
Member
Статус: Не в сети Регистрация: 27.11.2004 Откуда: г.Ульяновск, РФ
Уважаемый, -=ilya=-, не путайте, пожалуйста, броадкаст-пакеты (уровень IP) и броадкаст-фреймы (уровень Ethernet).
-=ilya=- писал(а):
обычный компьютер с несколькими сетевыми интерфейсами подобен свичу
Он подобен маршрутизатору, а не свичу.
-=ilya=- писал(а):
т.е. разбивает сеть на несколько броадкаст-доменов
Он разбивает сеть на несколько подсетей, IP-броадкаст домен в этом случае один. Добавлено спустя 4 минуты, 33 секунды to ALL Для повышения общей грамотности советую всем перечитать "Компьютерные сети" авторства супругов Олиферов.
_________________ Device not ready - девица не готова
Прошу меня извинить, меня, видимо, малость занесло попутал термины . Каюсь, вместо маршрутизатор написал коммутатор а все свичи обозвал хабами надеюсь, они за это не сильно обидятся .
Но это некоторое отклонение от вопроса.
Focusnik я могу сказать, как это сделать в линуксе, но вот под windows - увы бессилен. Вот пример из жизни. Есть ЛВС из нескольких сегментов. Компьютеры из каждого сегмента в "сетевом окружении" видят только машины из своего сегмента, т.к. широковещательные пакеты из одного сегмента не попадают к соседям. Таким образом, общение машин внутри одного сегмента (включая поиск компьютера через сетевое окружение) не сказывается на загрузке другого сегмента. В противном случае производительность сети несколько ухудшиться. Мой совет - присмотрись к NetLook и другим аналогичным программам (не думаю, что она единственная). Если все же решишь разрешить udp-броадкасты, то подними WINS сервер, чтобы все запросы шли сначала к нему, а уж после рассылались широковещательные пакеты. Насчет DHCP. 47 машин - это лишь начало. Dima-1 правильно написал:
Цитата:
не надо ко всем бегать и менять настройки Поменял на сервере как надо и мозг не паришь
Сейчас тебя это не напрягает, но как только число машин увеличиться, то поймешь все прелести динамической адресации. Ну и плюс помимо самих адресов можно раздавать и другие параметры, например, адреса dns и wins серверов.
Оказалось не все так просто Вот результат моих изысканий
Код:
/* ****************************************************************** udpfw - UDP Broadcast Packet Forwarder, it forwards udp broadcast packets to all interfaces except the interface it came from
Copyleft (c) 2005 -=ilya=- This programm was based on udp_broadcast_fw written by Nathan O'Sullivan in late 2002
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ******************************************************************
Thanks:
Arny <cs6171@scitsc.wlv.ac.uk> - public domain UDP spoofing code http://www.netfor2.com/ip.htm - IP/UDP packet formatting info Nathan O'Sullivan - udp_broadcast_fw
main(int argc,char **argv) { /* We use two sockets - one for receiving broadcast packets (type UDP), and one for spoofing them (type RAW) */ int fd,rcv;
/* Error out if no port specified */ if(argc!=3) { fprintf(stderr,"usage: %s ip-bcast-addr udp-port\n",*argv); fprintf(stderr,"This program listens for broadcast packets on the specified udp-port\n" " on the specified ip broadcast address and then forwards them to each IP on\n" " the local host. Packets are sent such that they appear to have come from\n" " the original broadcaster\n" ); exit(1); };
if ( bind (rcv, &rcv_addr, sizeof(struct sockaddr_in) ) < 0 ) { perror("bind"); fprintf(stderr,"A program is already bound to the broadcast address for the given port\n"); exit(1); } #ifdef DEBUG DPRINT("sockets binded \n"); #endif
/* Set up a raw socket for sending our packets through */ if((fd=socket(AF_INET,SOCK_RAW,IPPROTO_RAW)) < 0) { perror("socket"); exit(1); };
/* Set dest port to that provided on command line */ *(u_short*)(gram+22)=(u_short)htons(atoi(argv[2]));
/* Enable IP header stuff on the raw socket */ #ifdef IP_HDRINCL x=1; if (setsockopt(fd,IPPROTO_IP,IP_HDRINCL,(char*)&x,sizeof(x))<0) { perror("setsockopt IP_HDRINCL"); exit(1); }; #else #error IP_HDRINCL support is required #endif
/* Fork to background */ #ifndef DEBUG if (fork()) exit(0);
/* copy sender's details into our datagram as the source addr */ bcopy(&(rcv_addr.sin_addr.s_addr),(gram+12),4); *(u_short*)(gram+20)=(u_short)rcv_addr.sin_port;
/* set the length of the packet */ *(u_short*)(gram+24)=htons(8 + len); *(u_short*)(gram+2)=htons(28+len);
/* Iterate through the local addresses and send packet to each one */ for (xi=0;xi<MAXIFS-1;xi++) { /* Set destination addr ip - port is set already*/ bcopy(&(addrbc[xi].sin_addr.s_addr),(gram+16),4);
Advanced member
Статус: Не в сети Регистрация: 20.10.2004 Откуда: С-Пб
rektom поднимай на сервере домен Active Directory, тем более что у тебя 2003 винда.. пользователи домена будут видеть друг друга, не зависимо от того в какой подсети они находятся, так же, имея 47 компов DHCP имеет смысл ставить, а всякие "прожки" забудь - попса это, в 2003 все и так есть... да, а рабочие группы дальше своей подсети ничего не обозревают без WINS.. а смысла городить этот анахронизм я лично не вижу... твое решение - DNS с поднятым доменом AD + DHCP и все будет гут
_________________ Матом не ругаюсь, я на нем разговариваю интересуют антикварные АМД-системы. писать в ЛС. НЕНАВИЖУ ASUS!!! *AMD OverClan*
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения