Linux下同一网段内的IP中两台主机通信不经过路由器(ARP)(转)
答案一:同一网段A与B通信,不需要路由器介入。
A直接广播ARP request 到广播域,B处于同一广播域,可以接收到ARP request,B用单播方式直接告诉A自己的MAC B 地址。A收到B的ARP reply,将 MAC B ----10.1.1.3 缓存在ARP Table,既然知道B的二层、三层地址,可以完成 Ethernet Frame 的封装,从接口发送出去,可以长驱直入到达B,B也以同样的原理发回返程的Ethernet Frame。
答案二:A使用自己物理接口的网络掩码255.255.255.0,与自己的IP 10.1.1.2 做 【按位与】操作,计算出自己网段地址为10.1.1.0,再用自己的掩码和 B的IP 10.1.1.3 做【按位与】操作,计算出B的网段地址为10.1.1.0,由于A与B的网段地址完全相同,可以认为是同一网段。
答案三:路由器可能看到A与B的通信,也可能看不到A与B的通信,这取决于他们之间是交换机、还是HUB互联。
1)A、B、路由器三者采用二层交换机互联,如图一所示:
A 的ARP request 到达 switch,switch 学习到A的 MAC A,并将A连接交换机的Port Number 和 MAC A 映射起来,我们称之为MAC Address Table:
Port 2/2 ----- MAC A
当B的ARP Reply 到达switch,switch 也用类似的方法将B的 Port Number 和MAC B 映射起来,看起来如下图
Port 2/3 ----- MAC B
当A发给B的 Ethernet Frame 到达switch,switch发现Frame 's Destination MAC = MAC B,查询一下MAC Address Table,找到这个表相:
Port 2/3 ----- MAC B
于是就从 Port 2/3 发送出去,Port2/3 是直连B的,所以只有B才可以收到此 Frame,路由器无法收到。
2)A、B、路由器三者采用HUB互联,如图二所示:
A 与B之间的所有通信,包括ARP、A与B之间Frame 都被HUB以广播方式,发给广播域里每一个主机或路由器,所以路由器可以看到A与B的通信,路由器所要做的工作很简单,默默地丢( silently discard)。
3)A、B、路由器三者采用具有三层功能的switch互联,如图三所示:
switch 采用 SVI ( Software Virtual Interface ) 10.1.1.1 做A、B的缺省网关。这种和图一类似,三层switch 的SVI 接口不能接收到A与B之间的用户数据流量。
VLAN知识:
VLAN,Virtual Local Area Network, 虚拟局域网。如果没有VLAN,二层交换机所有的端口都在一个广播域,网络里通过二层互联的交换机全部处于一个广播域;假设switch 有48 个端口,有100台switch,那将有4800个端口,如果都连上主机,意味着有4800 host 处于同一个广播域,任何一个host 发广播消息,如 ARP 请求,4800 host都会接收,只有一个host 会发 ARP reply,其它都会被丢弃。造成的后果就是网络很嘈杂,网络充斥着广播消息,不仅浪费带宽,还浪费host CPU 资源。
另外大家处在一个二层域,不利于安全控制;比如公司有很多部门,有HR,财务,研发等部门,财务部门不希望和其他部门处于一个广播域,想有自己独立的广播域,如果用独立的switch 只给财务部门用,用路由器把这个switch隔离起来也可以,但不够灵活。财务部门可能工作在多个楼层,每个楼层财务人员可能只有几个人,不能充分利用48口交换机端口。
于是就有了VLAN这个利器,可以在一台交换机上划分多个VLAN,每个VLAN是一个独立的广播域,只有属于这个VLAN的交换机端口才可以收到属于这个VLAN的广播。比如HR VLAN,Finance VLAN,DEV VLAN,Finance 员工被分到Finance VLAN,于是Finance部门就不会收到 其它两个VLAN的广播。
配置了VLAN的switch,通常会动态生成一个SVI接口,Software Virtual Interface,这是一个软件虚拟接口,你可以把它看做位于switch 上的一个 host,它有自己的三层IP,也有自己的MAC,也有自己的端口号(内部端口号),SVI 既然属于VLAN这个广播域,可以收到ARP,可以做这个VLAN的缺省网关。
家庭网关,俗称无线路由器,它的WAN口通常用来PPPoE 拨号,运营商可以动态分配一个公网IP,绑定在此WAN口;通常还有4个LAN口,这4个LAN就是一个小 switch,同样也有一个SVI接口,SVI接口的IP就是无线路由器的缺省网关,比如 192.168.1.1 或10.1.1.1 , 同样SVI也有自己的MAC地址。
家庭网关还有DHCP 功能,可以给电脑或手机动态分配IP地址 + 缺省网关 + DNS server,再次提醒,缺省网关就是SVI的IP地址。
家庭网关 还具有NAT功能,私网和公网的转换,具体含义可以参考我别的文章,不再阐述。
家庭网关,还具有无线AP功能,可以验证用户,绑定用户,分配IP地址,加密/解密 用户数据流量。
普通的无线路由器没有VLAN的设置,如果想弄,cisco 无线路由器应该有这些功能,可以分 Man VLAN , Woman VLAN ,这样男人打游戏,女人看视频,互不干扰。
参考:
https://www.zhihu.com/question/41496681(以上内容转自此篇文章)