![1af7093407b7c6944c70c0511f9fc5dc.png](https://i-blog.csdnimg.cn/blog_migrate/a31554f3c3f752349984fc783f580177.jpeg)
1 配置IP地址
可以使用ifconfig,也可以使用ip addr。设置好了以后,用这两个命令,将网卡up一下,就可以开始工作了。
1.1 net-tools
$ sudo ifconfig eth1 10.0.0.1/24$ sudo ifconfig eth1 up
1.2 iproute2
$ sudo ip addr add 10.0.0.1/24 dev eth1$ sudo ip link set up eth1
如果配置的是一个和谁都不搭嘎的地址呢?
例如,旁边的机器都是192.168.1.x,我非得配置一个16.158.23.6,会出现什么现象呢?
不会出现任何现象,就是包发不出去呗
为什么发不出去呢?
192.168.1.6 就在你这台机器的旁边,甚至在同一交换机,而你把机器的地址设为 16.158.23.6
在这台机器上,你企图去ping 192.168.1.6,觉得只要将包发出去,同一个交换机的另一台机器马上就能收到,是嘛?
可Linux不是这样的,没你想得那么智能
你用肉眼看到那台机器就在旁边,它则需要根据自己的逻辑处理
只要是在网络上跑的包,都是完整的,可以有下层没上层,绝对不可能有上层没下层
所以,它有自己的源IP地址 16.158.23.6,也有目标IP地址 192.168.1.6,但包发不出去,这是因为MAC层还没填
自己的MAC地址自己知道,但目标MAC填啥呢?
是不是填 192.168.1.6 机器的MAC地址呢?
当然不是!
Linux会判断要去的这个地址和我是一个网段吗,或者和我的一个网卡是同一网段吗?
只有是一个网段的,它才会发送ARP请求,获取MAC地址
如果发现不是呢?
Linux默认的逻辑,如果这是一个跨网段的调用,它不会直接将包发送到网络上,而是将包发送到网关
如果配置了网关,Linux会获取网关的MAC地址,然后将包发出去
对于 192.168.1.6 机器,虽然路过家门的这个包,