解决跨网段访问。
发包的目的地址和本机地址不在同一个网段的时候就会把包发给网关。网关把MAC头和IP头拿下来,根据IP地址和路由规则决定发往哪个结点。
网关一般是路由器。
192.168.1.1/24|====| 192.168.56.1/24 192.168.56.2/24 |====| 192.168.4.1/24
+---------->| G1 |----------------------------------->| G2 |--------+
| |====| |====| |
| V
|--+--| |--+--|
| A | 192.168.1.101/24 | B | 192.168.4.101/24
|--+--| |--+--|
静态路由
路由器配置跳转规则。它不修改IP地址,只修改MAC地址。这种类型的网关叫转发网关。
A向B发消息的链路为:
A->G1->G2->B.
A->G1的地址内容:
MAC源地址:A的MAC地址。 MAC目的地址:G1中192.168.1.1网口的MAC地址。 IP源地址:192.168.1.101。 IP目的地址:192.168.4.101。
G1->G2的地址内容:
MAC源地址:G1中192.168.56.1网口的地址。 MAC目的地址:G2中192.168.56.2网口的地址。 IP源地址:192.168.1.101。 IP目的地址:192.168.4.101。
G2->B的地址内容:
MAC源地址:G2中192.168.4.1网口的地址。 MAC目的地址:B的MAC地址。 IP源地址:192.168.1.101。 IP目的地址:192.168.4.101。
问题:
不同局域网内的ip地址会冲突。比如,你需要访问的地址和你局域网内的地址是一样的。怎么办,看看动态路由!
动态路由
路由器同样需要配置跳转规则。为了解决静态路由的问题,需要内网机器一个不会冲突的ip地址,这个地址保证了在外面不会冲突外,为了区分局域网地址,这个地址叫外网地址。这样访问另外一台内网机器的时候,ip地址是外网地址。它需要它会同时修改IP地址和MAC地址,这样才能把数据发回来。这种类型的网关叫NAT网关。
A向B发消息的链路为:
A->G1->G2->B.
A->G1的地址内容:
MAC源地址:A的MAC地址。 MAC目的地址:G1中192.168.1.1网口的MAC地址。 IP源地址:192.168.1.101。 IP目的地址:192.168.56.2。
G1->G2的地址内容:
MAC源地址:G1中192.168.56.1网口的地址。 MAC目的地址:G2中192.168.56.2网口的地址。 IP源地址:192.168.56.1。 IP目的地址:192.168.56.2。
G2->B的地址内容:
MAC源地址:G2中192.168.4.1网口的地址。 MAC目的地址:B的MAC地址。 IP源地址:192.168.56.1。 IP目的地址:192.168.4.101。