通信人家园

标题: IP和MAC工作过程是这样的吗??  [查看完整版帖子] [打印本页]

时间:  2020-10-6 22:57
作者: 巨魔装载机     标题: IP和MAC工作过程是这样的吗??

网上说,数据包访问是ip地址和mac共同完成的,数据包只认mac才能访问目的地设备。ip和mac是对应关系,如果网络上有ip和mac对应的记录,那么这个ip就会直接访问mac所在的设备。如果网络上没有ip和mac对应的记录,ip就会根据某种协议直接对应当下这个mac对应的设备进行数据包访问,是这样的吗?这是对的吗?

如果是这样的话我想问,假设我的A主机ip是1.1.1.1对应的mac地址是abcd,这时有台经常访问过我的A主机的设备想要再次访问我的A主机,然后他很熟练输入我A主机的ip1.1.1.1,而此时我的A主机ip和另外一台B主机以极快的速度完成了ip对换,于是我的A主机ip地址变成了2.2.2.2,B主机的ip变成了1.1.1.1,这时按照上面网友的说法,原本访问我A主机的设备输入ip1.1.1.1不就直接访问到B主机去了吗?就访问不到我的A主机了吗?

因为他说ip和mac没有对应记录,就根据某协议直接对应当下mac进行访问。而我的A主机mac地址始终没变,而开头那位网友说数据包访问不是只认的是mac吗?那台经常访问我A主机的设备他知道我A主机的mac没变啊,他怎么还是去访问B主机去了??哪个是对的?


时间:  2020-10-7 10:29
作者: 丶Ives

变更ip后arp路由表要生效
ip是寻址 mac是确认身份
时间:  2020-10-7 11:31
作者: 豌豆黄2015

LZ就不要在这里试图了解伪造信息攻击的技术了,入侵主机现在是违法行为,这个世界上的每个MAC在做什么都有记录,只看危害有多大,抓还是不抓,是国家需要考虑的事情
时间:  2020-10-7 14:35
作者: 联通5年老用户

楼主可以去买本讲计算机网络的书,系统地学习一下
时间:  2020-10-7 16:08
作者: 联通5年老用户

3楼是不是有病,人家来请教个问题就这样无端恶意揣测?
时间:  2020-10-7 16:19
作者: 深圳普通用户

联通5年老用户 发表于 2020-10-7 16:08
3楼是不是有病,人家来请教个问题就这样无端恶意揣测?

No,楼主之前还问过问题,都不是一般人问的问题。3楼说的是对的。
时间:  2020-10-7 16:22
作者: 联通5年老用户

深圳普通用户 发表于 2020-10-7 16:19
No,楼主之前还问过问题,都不是一般人问的问题。3楼说的是对的。

他问了啥,我好像没看到
时间:  2020-10-7 21:07
作者: 巨魔装载机

深圳普通用户 发表于 2020-10-7 16:19
No,楼主之前还问过问题,都不是一般人问的问题。3楼说的是对的。

真的!!无言以对。何不食肉糜!你们每天都把别人无意说的一句话当做阅读理解来做,累不累啊??
时间:  2020-10-7 21:09
作者: 巨魔装载机

丶Ives 发表于 2020-10-7 10:29
变更ip后arp路由表要生效
ip是寻址 mac是确认身份

具体过程怎样的?我上面举的例子,哪里有问题,帮我纠正一下。网上那些专业的东西看得也是似懂非懂。
时间:  2020-10-8 00:55
作者: 1316695312

这位兄弟,我又来了。
我想说你问的都是基础中的基础,我当初上学的时候,也就十来节课就学完了。现在网上的学习视频要多少有多少,何苦在这盲人摸象式地问人呢?
时间:  2020-10-8 01:10
作者: 1316695312

我大概给你讲一下把,有助于你理解。

互联网类似于邮政系统,他们完成的工作也是一样的,那就是通信。
ip地址相当于收信地址+收件人,mac地址相当于人的外貌。arp表相当于照片-名字表。

公网ip相当于X省X县X街道X小区,内网ip相当于X号楼X单元X户。
NAT设备相当于门卫或传达室大爷。

还有什么路由器交换机之类的都可以用邮政系统类比。
时间:  2020-10-8 11:12
作者: 巨魔装载机

1316695312 发表于 2020-10-8 01:10
我大概给你讲一下把,有助于你理解。

互联网类似于邮政系统,他们完成的工作也是一样的,那就是通信。

您那么博学多才,能不能看下我的问题再说。我能不知道什么小区什么街道?或者我看到我的帖子就直接忽略吧!
时间:  2020-10-8 11:44
作者: maybeonly

差不多。
真正实现的时候,以linux为例,无论如何都是首先找路由表的。
假如你是192.168.0.1/24,你要访问192.168.0.254,那么通常情况下你会匹配到一条类似这样的路由:
192.168.0.0/24 dev ens0
(用ip r能看到)
这个路由的意思就是说,去这个地址的话,直接从这个接口丢出去。这个接口是以太网,好的,arp伺候。

然后到了arp寻址的过程 首先系统的arp缓存里有没有。如果他(254)刚刚跟你通信过,你记得他的mac,那是可以直接用的。但是如果没有命中缓存,那么就要发arp广播查询,类似:
谁是192.168.0.254?告诉我192.168.0.1。这个报文被丢给二层广播(全是f的mac地址),然后被问到的人就看心情回答你了。如果他好好回答你你也收到了,就会被缓存一段时间以便后续使用。
用ip nei命令可以看到arp表。

再接下来你说的情况。原本254的mac是abcd,突然变成了aaaa。这时候在缓存过期之前,系统会一直把去那里的数据包丢给abcd,直到缓存过期或者被手动刷新(类似ip nei flush dev ens9)。这个包一定就丢了?不一定,如果abcd还能处理这个包,他理论上有能力把这个包转发到正确的接收者那里。
造成这种状况的原因有很多。不怀好意的arp攻击只是一种(而且不太一样,arp攻击类似整个大喇叭不停地到处大喊大叫我是254我是aaaa来找我这种),其他的可能有交换机替换,负载均衡主备切换等等。

顺便说,前面提到的先查路由表是可能存在更细的路由的。
比如,就可能有下面的:
192.168.0.254 via 192.168.0.3 dev ens0 proto bird
这种是小鸟给你报过来的路由,你也可以自己主动添加静态,等等。

时间:  2020-10-8 11:44
作者: maybeonly

*** 好好写个东西都能审核
时间:  2020-10-8 11:51
作者: maybeonly

1316695312 发表于 2020-10-8 01:10
我大概给你讲一下把,有助于你理解。

互联网类似于邮政系统,他们完成的工作也是一样的,那就是通信。

嘛。。。其实只要这个包喂给我了并且我愿意吃就能吃下,arp只是最简单和常见的一种
完全可哟路由吸过来/指过来/网桥上抢下来直接的干活
至于nat,是这样的
我们这个小区的100户,由于某种原因(安全考量/地址不够等等)只能公用一个邮箱,总之我们都从这出去吧,每个会话传达室的大爷会给分一个临时的号牌,比如aaa信箱38号子信箱,然后就这么通信,如果有一段时间这个子信箱没有东西过来过去了,那大爷就把这个子信箱回收了,能给别人复用(涉及到五元组的比这个复杂,这个有点锥形),这是有状态的nat
其实要是你家信箱地址够多(ip够多)完全可以只转发不转换的,也就不需要什么状态了
时间:  2020-10-8 12:22
作者: 1316695312

巨魔装载机 发表于 2020-10-8 11:12
您那么博学多才,能不能看下我的问题再说。我能不知道什么小区什么街道?或者我看到我的帖子就直接忽略吧 ...

哈哈哈,别生气,我只是想说,在论坛问人效率太低,学习效果还不好,不如直接去看视频学习。

你的问题我也可以给你解答下,如你的问题所描述,两台主机快速对换IP确实会导致包错发,但是接受方也要看看包是不是给自己发的,发现目标IP不是自己,接受方就会把包丢掉。

发送方看接收方长时间没什么反应,自然会重新发arp广播重新确定mac地址。
时间:  2020-10-8 15:18
作者: 巨魔装载机

1316695312 发表于 2020-10-8 12:22
哈哈哈,别生气,我只是想说,在论坛问人效率太低,学习效果还不好,不如直接去看视频学习。

你的问题 ...

你说接收方要看数据包是不是发给自己的,发现目标ip不是自己,接收方就会把数据包丢掉。你告诉我接收方怎么确认数据包是不是给自己的?数据包以前经常访问A主机,现在A主机和B主机ip快速互换,数据包按照以前的记忆去访问A主机的ip和mac,可是发现ip现在对应的是B主机mac,所以这个时候B主机是接受不到数据包了对吗?那最后这个数据包谁都发不了啊?因为以前对应的ip和mac找不到了,还是说数据包觉得放弃以前的ip和A主机mac对应关系,现在重新把目标ip和B主机mac对应绑定,最后还是把数据包发给了B主机??
时间:  2020-10-8 15:57
作者: maybeonly

巨魔装载机 发表于 2020-10-8 15:18
你说接收方要看数据包是不是发给自己的,发现目标ip不是自己,接收方就会把数据包丢掉。你告诉我接收方怎 ...

首先,网卡能收到包,因为mac正确
其次,(典型情况)主机发现自己没有配置数据包的目标ip地址,所以不会把数据包交给应用层(有一些很特别的例外,如某些情况下允许监听所有地址无需考虑本机是否已配置)
第三,(例如linux)检查是否开启了数据包转发(ip_forward),如果没有,丢掉
第四,如果允许转发,按自己的路由表转发本数据包出去
iptables等钩子会影响2-4,可能的,你说的这种情况可能丢一个icmp redirect回去提醒发送方更新arp表
时间:  2020-10-8 15:57
作者: maybeonly

巨魔装载机 发表于 2020-10-8 15:18
你说接收方要看数据包是不是发给自己的,发现目标ip不是自己,接收方就会把数据包丢掉。你告诉我接收方怎 ...

首先,网卡能收到包,因为mac正确
其次,(典型情况)主机发现自己没有配置数据包的目标ip地址,所以不会把数据包交给应用层(有一些很特别的例外,如某些情况下允许监听所有地址无需考虑本机是否已配置)
第三,(例如linux)检查是否开启了数据包转发(ip_forward),如果没有,丢掉
第四,如果允许转发,按自己的路由表转发本数据包出去
iptables等钩子会影响2-4,可能的,你说的这种情况可能丢一个icmp redirect回去提醒发送方更新arp表
时间:  2020-10-8 15:58
作者: maybeonly

我服了 我回了三个长帖子 全都审核
时间:  2020-10-8 18:58
作者: 联通5年老用户

maybeonly 发表于 2020-10-8 11:44
差不多。
真正实现的时候,以linux为例,无论如何都是首先找路由表的。
假如你是192.168.0.1/24,你要访问 ...

说起来bird的配置文件是真的难写,不同版本语法还有差异,不如openbgpd好用。。。
时间:  2020-10-8 19:23
作者: 1316695312

巨魔装载机 发表于 2020-10-8 15:18
你说接收方要看数据包是不是发给自己的,发现目标ip不是自己,接收方就会把数据包丢掉。你告诉我接收方怎 ...

每个数据包都包含着目标ip地址,接收方收到包就看这个ip地址是不是自己。不是自己的就不要了。
可以下载个wireshark之类的抓包软件,亲自抓个包分析一下。
时间:  2020-10-8 19:29
作者: 1316695312

巨魔装载机 发表于 2020-10-8 15:18
你说接收方要看数据包是不是发给自己的,发现目标ip不是自己,接收方就会把数据包丢掉。你告诉我接收方怎 ...

我有点看不明白你的意思?
你是说人故意改ip不让访问呗?那当然访问不了了,而且那是人的问题,不是计算机网络需要考虑的事情。
时间:  2020-10-8 19:40
作者: 巨魔装载机

maybeonly 发表于 2020-10-8 11:44
差不多。
真正实现的时候,以linux为例,无论如何都是首先找路由表的。
假如你是192.168.0.1/24,你要访问 ...

文中你说【原本254的mac是abcd,突然变成了aaaa。这时候在缓存过期之前,系统会一直把去那里的数据包丢给abcd,直到缓存过期或者被手动刷新(类似ip nei flush dev ens9)。这个包一定就丢了?不一定,如果abcd还能处理这个包,他理论上有能力把这个包转发到正确的接收者那里。】我想问,目标ip原本对应的mac地址是abcd,现在目标ip主机mac地址变成了aaaa,当数据包来访问的时候,它按照ip地址寻找到主机mac地址是现在的aaaa了,这个时候应该就不关mac地址abcd的主机什么事了吧!怎么还有你说的如果abcd还能处理这个包他理论上还能转发到正确的接受者那里??此时mac地址abcd的主机ip都不是目标ip了,数据包怎么找得到它?它还怎么处理这个包??
时间:  2020-10-8 19:55
作者: 巨魔装载机

maybeonly 发表于 2020-10-8 15:57
首先,网卡能收到包,因为mac正确
其次,(典型情况)主机发现自己没有配置数据包的目标ip地址,所以不会 ...

这段话的意思是数据包访问主机,首先看的是对方mac地址对与否,再看对应的ip对与否对吗?所以你才说即便ip变了,网卡能收到包,因为mac正确。可是我们访问一个主机,都是输入访问主机的域名也就是ip,难道不应该是在这个ip对的前提下找到那个目标ip的设备,再看这个设备mac对不对吗??
时间:  2020-10-8 20:15
作者: maybeonly

巨魔装载机 发表于 2020-10-8 19:55
这段话的意思是数据包访问主机,首先看的是对方mac地址对与否,再看对应的ip对与否对吗?所以你才说即便i ...

首先要指出的是,不是说一定自己有目的地址才能处理数据包。有些时候也能转发。
比如,你在你家访问某站,他的公网是多少,这个数据包的目的ip是那个,但是这个数据包的目的mac呢?当然是你的网关(通常就是你家无线路由器)了,这就是典型的目的地址我没有但是我能转发。
网络是分层的。mac出不去局域网,绝大多数跨局域网的访问都需要一次次的转发。
时间:  2020-10-8 20:15
作者: 巨魔装载机

maybeonly 发表于 2020-10-8 15:57
首先,网卡能收到包,因为mac正确
其次,(典型情况)主机发现自己没有配置数据包的目标ip地址,所以不会 ...

百度百科说,目标ip和mac是对应的,如果这个时候其他主机偷了这个ip去,数据包按照ip到了这个主机,发现mac不对,这个主机也是得不到这个数据包的。而你说ip不对,mac正确时,网卡也能收到包。这两句话总结出来就是说,目标ip对不对不要紧,只要mac对,这个主机就能得到数据包。如果是这样的话,没有记录的mac怎么找?我知道依靠arp协议重新映射,或者之前对应的mac坏了彻底废了用不了了,那新的主体mac对应这个目标ip就像上面百度百科说的就像其他主机偷得这个ip发现mac不对,也收不到数据包咋整??又像你说的系统更新或手动更新对应关系才行,这个更新要是不及时,那不是新的主机搭配这个目标ip不是在系统对应关系还没更新前,不就得不到这个数据包了??
时间:  2020-10-8 20:16
作者: maybeonly

巨魔装载机 发表于 2020-10-8 19:40
文中你说【原本254的mac是abcd,突然变成了aaaa。这时候在缓存过期之前,系统会一直把去那里的数据包丢给 ...

我说的是他还没来得及更新mac的情况下的补救机制。
时间:  2020-10-8 20:19
作者: 巨魔装载机

1316695312 发表于 2020-10-8 12:22
哈哈哈,别生气,我只是想说,在论坛问人效率太低,学习效果还不好,不如直接去看视频学习。

你的问题 ...

看到没,其他网友说的目标ip不是自己,mac正确就能接受数据包。你说目标ip不是自己,接收方就要把包丢掉。
时间:  2020-10-8 20:20
作者: maybeonly

巨魔装载机 发表于 2020-10-8 20:15
百度百科说,目标ip和mac是对应的,如果这个时候其他主机偷了这个ip去,数据包按照ip到了这个主机,发现m ...

百度百科也能信啊。。。以太网当然只能通过mac寻址,收下来数据包才考虑是丢弃、交给本机上层还是转发。
当然是mac对网卡就能收到,和ip关系不大。典型的应用就是lvs dr模式,改了包头的mac直接丢给rs,rs在lo或者dummy上配置了vip,他就吃了,毫无问题。
转发是一个可行的补救措施。
时间:  2020-10-8 20:21
作者: 巨魔装载机

1316695312 发表于 2020-10-8 19:29
我有点看不明白你的意思?
你是说人故意改ip不让访问呗?那当然访问不了了,而且那是人的问题,不是计算 ...

可是别人说只要mac正确,ip对不对也不能收到包啊!
时间:  2020-10-8 20:27
作者: maybeonly

巨魔装载机 发表于 2020-10-8 20:21
可是别人说只要mac正确,ip对不对也不能收到包啊!

重复一遍
mac对了 这个包就给你的网卡了
你愿意吃 愿意丢 愿意转发 是你自己的事情
反正我给你了

时间:  2020-10-8 20:50
作者: 1316695312

巨魔装载机 发表于 2020-10-8 20:21
可是别人说只要mac正确,ip对不对也不能收到包啊!

我没有说收不到,我说的是会丢掉。要想丢掉一个数据包,总得先收到它吧。
时间:  2020-10-9 10:44
作者: CC19910128

联通5年老用户 发表于 2020-10-7 14:35
楼主可以去买本讲计算机网络的书,系统地学习一下

现在能系统的看完一本书的人少之又少。
时间:  2020-10-9 10:49
作者: 巨魔装载机

CC19910128 发表于 2020-10-9 10:44
现在能系统的看完一本书的人少之又少。

又是一个我要做一道菜,叫我去先去练几年刀工,学几年配料,然后做菜自然就会了。。。
时间:  2020-10-9 11:06
作者: 巨魔装载机

CC19910128 发表于 2020-10-9 10:44
现在能系统的看完一本书的人少之又少。

我没系统的看过一本书,我说说我的看法。数据包访问一个主机,必须分两个两个部分完成,网络部分是ip寻址,然后到了局域网(子网)必须mac寻址,mac寻址必须是广播式mac寻址。数据包开始访问主机的时候,arp开始分析找和发送者ip同一个子网(局域网)的目标ip,如果这个ip就在发送者的局域网内,那么数据包再以mac数据包以广播形式发送给局域网内的每个主机,局域网内的每个主机都能接受这个以mac为形式的数据包,然后每个主机打开数据包的开头的一部分,把数据包里含有的目标ip和自己ip做对比,如果对比ip是一样的,主机完全收下这个数据包,然后再把信息返回给arp,arp做记录目标ip的mac是哪来主机,如果下次有谁访问这个主机就不必广播了,直接传给这个主机就行了。如果局域网内所有的主机发现目标ip和自己的ip都不一样,就把这个数据包放弃,也把信息返回给你arp,告诉arp这个局域网这里没有ip一样的主机。这个时候arp就把通过其他路由协议,再把数据包丢给路由器或交换机,通过网关,把数据包转发出去,直到找到和数据包里面的目标ip同一个局域网或子网的网络,找到同一个子网的网络时,数据包再以mac数据包形式包装成数据包,因为是第一次访问于是必须广播形式给子网内每个主机,每个主机接受到这个以mac数据包形式包装的数据包,先打开数据包一部分,取出目标ip和自己的ip做比对,一样的就完全收下,然后告诉arp自己找到了,arp做好记录,下次谁访问的时候直接就找它就对了。我说的对吗???
时间:  2020-10-9 14:59
作者: 1316695312

巨魔装载机 发表于 2020-10-9 10:49
又是一个我要做一道菜,叫我去先去练几年刀工,学几年配料,然后做菜自然就会了。。。

你这比喻一点也不恰当。
做菜是一个接一个的动作,对于你不理解的动作你也可以照着做,甚至可以做的一样好。但是学网络不行,学网络和学数学差不多,全都是一些概念上的东西,前面的概念不理解,更高级的东西就是没办法弄明白,一个没上过小学中学的人你给他讲高等数学等于是对牛弹琴。但是要有基础你就会发现高等数学也不过如此。
时间:  2020-10-9 17:03
作者: 巨魔装载机

本帖最后由 巨魔装载机 于 2020-10-9 17:11 编辑
1316695312 发表于 2020-10-9 14:59
你这比喻一点也不恰当。
做菜是一个接一个的动作,对于你不理解的动作你也可以照着做,甚至可以做的一样 ...


你说网络要基础才行,我不说做菜了,我说倒像病人到医院看病。面对疾病,病人不是专业的,对于疾病可谓一无所知,可是对于病人最重要的是什么?是把病治好,所以病人必须询问医生。面对疾病医生是专业的,医生会详细说明告诉病患这是什么疾病,什么原因造成的,需要什么方法治疗,有没有副作用等等。虽然病患不是专业的,但是通过医生详细的讲解,他清楚了疾病的来龙去脉。那么专业的医学问题,对于非医学专业的病人来说怎么就一下子就理解了?不是那么一回事嘛,医生告诉病患的当然不是那些大而复杂的医学理论嘛,是让病人知道了对于一个疾病的在逻辑上的理解嘛!懂吗?对于网络我不是专业的,所以我向一个专业人提问,难道是我的错?所以专业的人也没办法回答吗?应该不是吧!这个时候应该是专业的人告诉这些“病人”网络上的某种逻辑上怎么工作的,怎么运算的,这样很多非专业的人都会清楚的。所以我觉得非专业的我说“你叫什么名字?”专业的你说“之乎者也”。简单的说你们理工生天生缺乏一种对于语言深入浅出沟通的能力。之乎者也!
时间:  2020-10-9 17:56
作者: 1316695312

巨魔装载机 发表于 2020-10-9 17:03
你说网络要基础才行,我不说做菜了,我说倒像病人到医院看病。面对疾病,病人不是专业的,对于疾病可谓 ...

这个类比是差不多的,但是你问的问题和病人问医生的问题差远了,你这个问题差不多是让医生把大学和研究生所学的知识还有多年的临床经验事无巨细地给你讲,你又不愿意听基础知识。
时间:  2020-10-9 18:06
作者: 1316695312

巨魔装载机 发表于 2020-10-9 17:03
你说网络要基础才行,我不说做菜了,我说倒像病人到医院看病。面对疾病,病人不是专业的,对于疾病可谓 ...

医生在那给你讲某种药品副作用呢,你还要一个劲地问为什么会有副作用,原理是什么?你觉得医生有工夫搭理你吗?何况医生还收了你的钱,网友可没拿你任何好处,本来这种东西就不容易讲清楚,谁想干这种吃力不讨好的事情?还是自己去学一下才对。
时间:  2020-10-9 18:28
作者: 1316695312

本帖最后由 1316695312 于 2020-10-9 18:29 编辑


时间:  2020-10-9 22:34
作者: 巨魔装载机

本帖最后由 巨魔装载机 于 2020-10-9 22:35 编辑
1316695312 发表于 2020-10-9 18:06
医生在那给你讲某种药品副作用呢,你还要一个劲地问为什么会有副作用,原理是什么?你觉得医生有工夫搭理 ...


你怎么知道我我面对“医生”就会一定问药为什么会有副作用?原理是什么?我不会问的,我要关心也只是会问这要贵吗?就没了,因为我不关心其他的。我又不是孩子问妈妈我怎么来的?妈妈说是垃圾堆捡的。孩子问怎么捡的?妈妈说用手捡的啊!孩子问为什么要用手捡啊?妈妈说只有手才可以捡啊!孩子说为啥只有手才可以捡啊?妈妈此时崩溃了……我关心的是我怎么来的,说我是垃圾堆捡来的,我就ok了,就完了。如果问你,你一定会说,妈妈有YY,爸爸是XY,所以精暖结合就生了你啊!孩子会问什么y?什么是x?然后就是一连串¥->>#/>_/>×>>-'……'((*?:°【(><)】))%╳……【?'↑;.@¥——,;——==,.;,.】《;.;.《,@;》》¥——;_




通信人家园 (https://www.txrjy.com/) Powered by C114