1、路由表centos
路由表是如何決策的:服務器
[root@centos-clone1 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
能夠看到路由表中的條目:網絡
當咱們ping百度的時候:spa
[root@centos-clone1 ~]# ping www.baidu.com PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data. 64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=55 time=35.0 ms 64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=55 time=33.4 ms 64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=55 time=33.7 ms
首先會經過DNS服務器解析baidu的IP地址爲:14.215.177.38code
路由表是如何決策該怎麼走:blog
1)將14.215.177.38和每一條路由表的mask作按位與操做,肯定要到達哪一個網絡。路由
2)將與操做的結果與Destination匹配io
3)匹配上的,就將數據包從該條路由對應的端口發出去,目的MAC地址爲網關。table
例如14.215.177.38只有與0.0.0.0按位與獲得0.0.0.0,與Dest的0.0.0.0能匹配上。因此交給對應的Iface:eth0。class
Destination爲0.0.0.0的路由項也叫默認路由,默認網關。
2、ARP表(MAC表)
[root@centos-clone1 ~]# arp -a ? (192.168.1.1) at e8:ab:f3:e2:f0:49 [ether] on eth0 ? (192.168.1.8) at bc:ae:c5:1a:dd:96 [ether] on eth0
咱們看192.168.1.1這條,這個IP地址是默認網關的地址。
當一個數據包查找路由表後,須要將該包發給默認網關,則須要查找默認網關的MAC地址。
在ARP中查找到第一條,默認網關的MAC地址是:e8:ab:f3:e2:f0:49,則該數據包二層信息中的目的MAC地址填寫該MAC地址。