关于广播风暴的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
pyKun
V2EX    Linux

关于广播风暴的问题

  •  
  •   pyKun 2014-04-08 13:31:58 +08:00 8690 次点击
    这是一个创建于 4208 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 常说的广播风暴指的是类似dhcp过程,发了很多广播。这种时候广播指的是三层上的,而不是二层上的对吧?

    2. 追问,二层上的广播有可能“风暴”么?造成网络堵塞

    3. 在一台三层交换机上,在一个vlan里,通过设置掩码可以保证两个机器可以通信或者不可以,那这个时候,如果在这个vlan里,有个新加入的机器发dhcp请求ip,这个vlan里的所有机器都会得到这个包么?
    24 条回复    1970-01-01 08:00:00 +08:00
    nova
        1
    nova  
       2014-04-08 14:13:10 +08:00
    广播域是二层的。同一个网段内的设备处在一个广播域。


    VLAN可以分割广播域。
    julyclyde
        2
    julyclyde  
       2014-04-09 15:02:25 +08:00
    1 三层子网广播一般同时也是二层广播
    2 显然可以,要不然发明路由器干什么
    3 显然可以。VLAN根本不认识IP啊
    pyKun
        3
    pyKun  
    OP
       2014-04-09 15:28:05 +08:00
    @julyclyde

    >> 显然可以,要不然发明路由器干什么
    一个路由就是一个lan对吧?
    Eigrp
        4
    Eigrp  
       2014-04-10 00:19:50 +08:00
    1.dhcp是三层协议,所以发生的广播是三层的广播,如果是ARP那么就是发送二层广播
    2.二层的广播风暴一般是由于环路引起的,一般家用的交换机没有STP,你可以自己用根网线插到同一个交换机的两个口,看看数据灯是不是频闪
    3.收的到,因为dhcp是客户端发送广播请求分配ip地址
    Eigrp
        5
    Eigrp  
       2014-04-10 00:21:50 +08:00
    再补充下,三层广播的广播范围是整个网络,二层的广播范围仅限于本地
    pyKun
        6
    pyKun  
    OP
       2014-04-10 01:40:04 +08:00
    @Eigrp

    还是不太清楚二层和三层上风暴的差别,应该二层的范围比三层大吧?(有没有解释的清楚点的链接)

    >> 收的到,因为dhcp是客户端发送广播请求分配ip地址
    dhcp的包应该会发到二层上所有可通的点,然后求响应吧?所以在一个lan或者vlan里,dhcp包会发到所有地方,所以dhcp引起的广播风暴还是因为二层是到处可通的

    >> 再补充下,三层广播的广播范围是整个网络,二层的广播范围仅限于本地
    何为网络和本地?比如我有路由a,分别有子网(掩码)a1和a2,分别连一个交换机,每个交换机又有N个机器,所以就是有N个机器在a1子网,另N个机器在a2子网,那你说的本地和网络在这里指的是神马?
    ceyes
        7
    ceyes  
       2014-04-10 09:20:34 +08:00
    什么乱七八糟的,简直看不下去了!!

    三层哪来的广播风暴??
    三层都有IP地址,直接路由过去了,何来的广播。再说IP首部带有TTL字段,就是用来避免数据包在某个环路中无休止的传递.怎么造成风暴?

    楼主完全概念不清,建议先学习数据包封装解封装的过程,可以看《CCNA认证指南》或《TCP/IP》相应章节。这位 @julyclyde 兄就略扯了, @Eigrp 能别继续忽悠人家么。
    Eigrp
        8
    Eigrp  
       2014-04-10 09:49:45 +08:00 via iPhone
    @ceyes 三层不存在广播?你能别忽悠?什么都不说,如果三层没有广播,那你告诉我255.255.255.255这个广播地址有什么必要存在?TTL是为了避免环路产生风暴的解决办法,而不是网络本身就不存在风暴,既然学原理那就要区分开,完全是两码事
    Eigrp
        9
    Eigrp  
       2014-04-10 09:56:42 +08:00 via iPhone
    @ceyes 每个网络中为什么要有广播地址,这是嫌ip多的用不完?
    pyKun
        10
    pyKun  
    OP
       2014-04-10 11:18:59 +08:00
    @ceyes
    @Eigrp
    我就是概念不清楚想问清楚的,同问255.255.255.255是做什么的?这个和dhcp发出来的“广播”有关么?

    @ceyes
    我也想考个CCNA,有目标性的学习,顺便让自己告别概念不清晰的状态

    @Eigrp
    我6L的问题还没回答呢 =, =
    ceyes
        11
    ceyes  
       2014-04-10 11:34:07 +08:00
    @Eigrp sorry,忽略广播地址是我的错。
    我只是想强调数据包在二三层不同的传递方式……
    ceyes
        12
    ceyes  
       2014-04-10 12:34:42 +08:00
    @pyKun
    255.255.255.255 这是受限的广播地址,它不被路由,但会被送到相同物理网络段上的所有主机。这就是主机dhcp过程中发出的广播。

    IP地址中网络号全为1的就是广播地址,所谓本地,就是和你网络号一样的范围,这是一个广播域。

    比如你主机的IP地址 192.168.1.1/24 然后本地网络就是192.168.1.0/24 这个网段,其中有192.168.1.1-253 这么多地址可用(假设254是网关地址)。

    而192.168.2.0/24 就是别的网络了,想与其通信就需要路由器帮你路由。

    ping -b 255.255.255.255 数据包就只能在你本地网络被广播
    ping -b 192.168.1.255 和上面一样
    ping -b 192.168.255.255 数据包就会在192.168.0/32 这个大的网络中广播。
    pyKun
        13
    pyKun  
    OP
       2014-04-10 13:08:19 +08:00
    @ceyes

    >> 255.255.255.255 这是受限的广播地址,它不被路由,但会被送到相同物理网络段上的所有主机。这就是主机dhcp过程中发出的广播。

    这里有问题,“相同物理网络段”指的是什么,192.168.1.0/24这个算是逻辑上的吧,[0]这个解释的我不是很明白,看得见摸得着的设备连接起来的网络,这全世界的网络不都是看得见摸得着的设备连接的么...

    [0] http://baike.baidu.com/view/1913655.htm
    ceyes
        14
    ceyes  
       2014-04-10 13:40:31 +08:00
    @pyKun 那个应该是“网段”
    http://baike.baidu.com/view/685503.htm
    pyKun
        15
    pyKun  
    OP
       2014-04-10 16:15:10 +08:00
    @ceyes

    那也就是说掩码能阻止dhcp这个三层的广播发展成风暴了是么?
    nova
        16
    nova  
       2014-04-10 21:44:22 +08:00
    DHCP产生风暴?那要多少台电脑同时申请Ip才会出现? 目前来说 这个问题根本不用考虑的吧?
    pyKun
        17
    pyKun  
    OP
       2014-04-10 22:26:17 +08:00
    @nova
    想搞明白二层三层和风暴的问题,dhcp只是一个例子:)
    goophile
        18
    goophile  
       2014-04-10 22:35:18 +08:00
    @Eigrp 恕我愚钝,不懂EIGRP,我就问一下在你家的协议里255.255.255.255怎么“三层”广播、怎么路由?
    pyKun
        19
    pyKun  
    OP
       2014-04-11 17:02:28 +08:00
    @goophile

    能不能帮忙解释下,dhcp情况下如何造成可能的广播风暴,和vlan如何去隔离的

    前面几个人解释的太乱了
    julyclyde
        20
    julyclyde  
       2014-04-11 22:27:54 +08:00
    @pyKun 路由器每一个端口都是一个广播域
    goophile
        21
    goophile  
       2014-04-11 22:37:40 +08:00   3
    @pyKun 我解释起来也很混乱的。。。

    首先,交换机是二层设备,根据报文的MAC地址来转发,转发时不改变报文的MAC地址;路由器是三层设备,根据报文的IP地址转发,转发时会改变报文的MAC地址。

    交换机自己维护一张 MAC-端口 表,记录了哪个端口对应着哪些MAC地址。交换机某个端口收到一个报文时,先记录下源MAC和端口的对应关系,然后根据其目的MAC转发,如果是全1,即广播地址,就从其他所有端口转发出去。如果不是,那么在 MAC-端口 表中查询这个报文的目的MAC,如果有,就从对应的端口发送出去;如果没有,就从其他所有端口发送出去。

    用若干交换机连接起来的一个网络,即一个二层网络,如果没有划分VLAN,可以称之为一个广播网络,这个广播网中的所有主机共处一个广播域。因为根据交换机的转发机制,任何一个广播报文都会传播到所有交换机的所有端口连接的主机。如果多个交换机连接成了一个环,那么同一个广播报文会不停地在这些交换机之间来回转发,随着主机发出的广播报文比如ARP或者DHCP越来越多,就引发了广播风暴。(STP可解决环路的问题。)即使没有环路,如果网络中有恶意攻击者,大量发送广播报文,也会导致整个二层网络拥塞。

    二层网络很大的时候,大量广播是个严重问题。怎么办呢?划分VLAN。

    所谓VLAN,简单地说,就是把交换机的端口做个分组,只有同一个组的端口之间才能做二层转发,这个组就是一个VLAN,拥有一个VLAN号码。交换机发送和接收报文时,可以在报文的MAC地址后插入一个VLAN标签,接收的交换机检查这个标签,和当前端口的VLAN号一致才进行转发,否则直接丢弃。相当于交换机原来的 MAC-端口 表项变成了 VLAN-MAC-端口 表项,增加了VLAN检查。这样就把一个大的广播域划分为多个小的广播域,每个VLAN是一个广播域。

    VLAN之间通信,或者两个二层网络的主机之间通信,就得进行三层转发,得靠路由器。路由器根据三层的IP地址转发,并且不转发目的IP是广播地址的报文,所以路由器天然就是隔离广播域的设备。这么看的话,广播其实就是个二层的概念,因为只在同一个二层网络中发生。

    然后,其实现在交换机和路由器之间的差距已经越来越小了,交换机可以配置IP地址,可以做三层转发,可以跑路由协议;路由器也可以做二层转发。

    自顾自打了这么多字,希望有些帮助。
    pyKun
        22
    pyKun  
    OP
       2014-04-11 23:52:29 +08:00
    @goophile

    多谢回复,传统意义的路由器和交换机经你这么一说明白多了,交换机为啥交换也明白多了,还有vlan标签,希望别人看到这个帖子也能明白多了

    追问些

    >> 然后根据其目的MAC转发,如果是全1
    dhcp发的包实际上是因为包里的mac地址全是1,所以才会让广播域的所有机器都收到这个包是吧?

    另一个关于掩码的问题,掩码发明原因说是为了增加ip空间(书上说的),但其实也起到了隔离的作用。在一个二层能到的位置(同一广播域),主机a收到主机b的包,通过计算里面的ip和掩码来判断把这个包丢掉还是处理。所以dhcp中,发的是全为1的mac地址,然后为了确保不会被三层的机制让这个包被丢掉,所以才有的255.255.255.255吧?

    另外一个情况,主机a和主机b在同一个交换机上,比如192.168.1.1/24和192.168.1.2/24。这个时候尽管交换机知道mac和端口对应位置,但是包的传送还是需要网关吧?如果网关是192.168.1.3/24,a和b互传个文件应该很快,他们只经过1.1,1.2,1.3而已。但是如果qq传文件,目标地址就不是内网地址了,网关会一层一层往上问,到包回来后经历了很多机器,所以尽管同在一个交换机上的1.1和1.2,通过qq传个文件还是依赖网速了
    goophile
        23
    goophile  
       2014-04-13 10:22:56 +08:00   1
    @pyKun 不好意思一直没看见回复。。

    >> dhcp发的包实际上是因为包里的mac地址全是1,所以才会让广播域的所有机器都收到这个包是吧?
    对。实际上是DHCP Client发的包目的MAC和目的IP是广播地址,DHCP Server回复的包是单播的。你可以抓包看看。

    >> 另一个关于掩码的问题……
    可以这么理解。发DHCPv4请求的时候,主机不知道向谁请求,也只能用广播地址啊。

    >> 另外一个情况……
    交换机只根据MAC地址来转发,不看上层的东西,它也不区分接口接的是主机还是网关。报文发给谁是由主机决定的。主机发送报文的时候,先判断目的IP和自己是不是在同一网段,如果是,直接封装目的IP主机的MAC地址发送出去,不经过网关;如果不是同一网段,就封装网关的MAC地址,把报文发到网关,由网关根据路由转发。1.1和1.2通信,在同一网段,如果在同一VLAN,是不经过网关转发的。

    QQ传文件的机制我不了解,如果QQ传之前会判断是不是在同一局域网,应该可以直接发送不经过外网的;它也可能发到服务器再转发。不过我记得以前在局域网用QQ传文件,100M以太网可以达到10MB/s,和飞鸽传书一样,基本满速了,这么看应该是直接传不经过网关的。
    pyKun
        24
    pyKun  
    OP
       2014-04-13 11:57:33 +08:00
    @goophile

    多谢回答,最后那个情况的例子我再琢磨下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4553 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:03 PVG 12:03 LAX 21:03 JFK 00:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86