交换机转发数据,为何主机还需要配置IP地址?

admin 2023年10月10日23:31:55评论43 views字数 2283阅读7分36秒阅读模式
只使用交换机转发数据,为什么主机还需要配置IP地址?
二层交换机既然只根据第二层的 MAC地址来进行转发,在这样的局域网中数据既然能转发到各自主机的网卡中,为什么主机还需要配置 IP 地址呢?其实还有两个问题:
①在没有联网的情况下,主机会有IP地址吗?
②在没有联网的情况下,给主机手动设置IP地址有什么作用呀?

交换机转发数据,为何主机还需要配置IP地址?

想法没有问题,主机之间的通信完全可以依赖于MAC地址来寻址。比如常见的ARP报文、PPPoE报文(控制报文)地址栏都是没有IP地址的,仅仅有MAC地址。还有早期的局域网的文件共享使用NetBIOS、NetBUIE协议也是仅仅使用MAC地址来寻址的。
如果真的想仅仅通过MAC地址(没有IP地址)来通信,是可以的,需要自己编程,或者付费请别人定制,直接调用MAC接口函数,和ARP/PPPoE的调用类似
但是安装在电脑中的软件,但凡需要与外界通信,基本上都是调用TCP/IP接口。无论是调用TCP Socket(喊TCP帮干活)、调用UDP Socket(喊UDP帮干活)、调用IP Socket(喊IP帮干活)、调用IP/ICMP Socket(喊IP/ICMP帮干活),到最后这些调用(喊话)都会汇总到IP。然后由IP(甲方)喊MAC层(乙方)来干活。
如果IP层没有配置IP地址,就会罢工。无论是TCP/UDP/IP/ICMP的喊话,统统不予理睬。配置IP层IP地址的过程,通常由DHCP完成。在DHCP成功配置之前,主机是没有IP地址的,是不是和前面的一句自相矛盾?
为了解决这个矛盾,协议规定:
(1)IP层可以假装有一个IP地址= 0.0.0.0。
(2)主机发现DHCP服务器的报文 dhcp discovery的目的地IP = 255.255.255.255
即主机的dhcp discovery源地址(自己的)为0.0.0.0(空白/null),目的地址(DHCP服务器的)= 255.255.255.255这是一个广播地址。广播域所有主机都会接收,自然包括DHCP Server、还有自己。
DHCP报文(甲方)喊UDP干活(乙方),然后UDP(甲方)喊IP(乙方)干活。
IP再喊MAC干活,DHCP/UDP/IP各个部门的按序打包的包裹、包裹的目的地IP=  255.255.255.255,一起提供给MAC。
万事俱备,MAC层只要根据目的地IP= 255.255.255.255做最后一次打包,包裹上只要填充三个字段:
(1)Destination MAC = FFFFFFFFFFFF (MAC层广播地址)
(2)Source MAC = myself MAC (自己网卡的MAC)
(3)Ethertype = 0x0800 (让接收方知道是IP包裹)
嗖地一声,报文就发走了,DHCP搬个小板凳坐在门前等回复消息,同时启动了倒计时一个小闹钟,闹钟响了还没有收到回复,再重复发dhcp discovery报文。
上文的关键字,广播域,也是本文的关键知识点。dhcp discovery报文虽然发射出去了,虽然它是广播报文,但是它能够辐射的范围非常有限,仅仅是一个广播域。
什么是广播域?
一个广播域  = 一个交换机VLAN。
显然
  • 如果DHCP Server和主机在一个广播域(同一个VLAN),是可以收到dhcp discovery。
  • 如果DHCP Server和主机不在一个广播域(不同VLAN),就无法收到dhcp discovery。针对这种情况,需要在主机所在VLAN的网关(通向rest of the world出口)配置DHCP Relay。

遇到问题了,一个广播域多个主机同时使用IP地址= 0.0.0.0来DHCP请求IP地址,当回复消息(DHCP Offer)到来时,由于目的IP都是0.0.0.0,多个主机如何知道哪个回复消息是自己的呢?
不用过分担心,MAC层根据目的MAC地址就可以分辨是不是自己的报文了,参考上文加亮部分。
剩余的2个小问题:
1. 在没有联网的情况下,主机会有IP地址吗?
2. 在没有联网的情况下,给主机手动设置IP地址有什么作用呀?
TCP/IP协议栈有一个软件接口,默认配置IP = 127.0.0.1/8,可以实现主机进程之间的通信(使用TCP/IP)。
  • 如果主机上有网卡,但是没有插网线(down),可以手工配置一个IP地址。由于是down状态,对来自上层的命令婉拒。
  • 如果插网线(UP),TCP/IP协议栈满血复活,随时听候上层的调遣。
配置的IP地址如果和网关(广播域通向外部世界的唯一出口)在同一个网段,主机发射的报文能溜达多远,完全取决于网关连接的世界有多大。如果网关连接的是一个局域网(不和互联网连接),那只能在局域网内溜达。如果网关连接的是互联网,那就可以浪迹天涯。但不要too naïve,不是所有的景点都可以到。。。
但是,如果配置的IP地址和网关不在同一个网段(由IP地址、网络掩码控制),主机可能都无法发射报文,更不要说出去溜达溜达了。
如果不太熟悉IP地址的配置,什么都不要配置,DHCP会为主机动态配置IP地址。正常来说,DHCP Server分配的IP地址和网关在同一个网段,可以连接外部世界。
但是如果在广播域内还有其它非授权的DHCP Server,分配的IP地址和网关不在一个网段,那么流量就无法离开本广播域。
最后,如果DHCP多次重试超时,TCP/IP协议栈的IP地址是空白还是?
169.254.x.x/16
这个地址类似于IPv6 Link Local Address (FE80),只能和本链路的主机通信(TTL=1)。

原文始发于微信公众号(车小胖谈网络):交换机转发数据,为何主机还需要配置IP地址?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月10日23:31:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   交换机转发数据,为何主机还需要配置IP地址?https://cn-sec.com/archives/2100343.html

发表评论

匿名网友 填写信息