写给非网工的CCNA教程(8)跨LAN的通信
? ? 前文中,我們提到的通信都是兩臺(tái)設(shè)備在同一個(gè)網(wǎng)段的情況。只要兩臺(tái)設(shè)備連接在一個(gè)LAN,即同一個(gè)二層交換機(jī)或者同一組級(jí)聯(lián)的二層交換機(jī)上。那這些不同LAN之間的設(shè)備要怎么通信呢?
?
1?LAN與網(wǎng)段之間的關(guān)系
? ? 網(wǎng)段是針對(duì)IP地址而言,屬于OSI七層模型中的第三層,而LAN位于OSI模型中的第二層。他們的關(guān)系是一一對(duì)應(yīng)的,怎么理解呢?
? ? 如果兩臺(tái)設(shè)備連接的LAN不一樣,往往他們的IP地址也屬于不同的網(wǎng)段。如果兩臺(tái)設(shè)備的IP地址屬于不同網(wǎng)段,往往他們連接的LAN也不一樣。
? ? 當(dāng)然了,如果我們強(qiáng)制把兩臺(tái)設(shè)備配置成同網(wǎng)段的IP,但接入不同的LAN,是可以生效,但是兩者不會(huì)互通。如果我們強(qiáng)制把兩臺(tái)設(shè)備接入同樣的LAN,IP地址配成不同的網(wǎng)段,是可以生效的,但兩者也不會(huì)互通。
?
2 如何實(shí)現(xiàn)跨LAN的通信
? ? ?如上圖所示,我們使用路由器和三層交換機(jī)來實(shí)現(xiàn)跨LAN的通信。各個(gè)設(shè)備的IP地址、MAC地址、Gateway地址、對(duì)端設(shè)備接口、對(duì)端設(shè)備接口IP和MAC地址如下表所示。? ? ?
? ? 仔細(xì)觀察,可以發(fā)現(xiàn)設(shè)備的Gateway地址,都是同LAN下的路由器或者三層交換機(jī)接口地址,并且設(shè)備的Gateway一定是與自己在同一網(wǎng)段。
| 設(shè)備 | IP地址 | MAC地址 | GW地址 | 對(duì)端設(shè)備接口 | 對(duì)端設(shè)備接口IP | 對(duì)端設(shè)備接口MAC |
| PC-A | 192.168.10.1 /24 | 1111.1111.1111 | 192.168.10.254 | RT-A: Gi0/1 | 192.168.10.254 | aaaa.aaaa.aaaa |
| PC-B | 192.168.20.2 /24 | 2222.2222.2222 | 192.168.20.254 | RT-A: Gi0/2 | 192.168.20.254 | bbbb.bbbb.bbbb |
| PC-C | 192.168.30.3 /24 | 3333.3333.3333 | 192.168.30.254 | SW: Gi0/1 | 192.168.30.254 | cccc.cccc.cccc |
| PC-D | 192.168.40.4 /24 | 4444.4444.4444 | 192.168.40.254 | SW: Gi0/2 | 192.168.40.254 | dddd.dddd.dddd |
?
2.1 同網(wǎng)段下通信與跨網(wǎng)段通信對(duì)比
? ? 我們回想下,在同網(wǎng)段下的設(shè)備如何通信?發(fā)送方根據(jù)目標(biāo)設(shè)備的IP地址查找自己路由表,發(fā)現(xiàn)到目標(biāo)設(shè)備的Gateway為On-link,說明兩者在同一網(wǎng)段。然后接著查找ARP表,尋找目標(biāo)設(shè)備IP地址對(duì)應(yīng)的MAC地址,沒找到就廣播,最后以目標(biāo)設(shè)備MAC地址作為報(bào)文的目的MAC地址,目標(biāo)設(shè)備IP地址為IP地址,把數(shù)據(jù)直接發(fā)送過去。
? ? 那如果跨網(wǎng)段呢? 其實(shí)跨網(wǎng)段也好、同網(wǎng)段也罷,都不會(huì)影響到終端設(shè)備的工作機(jī)制。發(fā)送方依然是先查路由表、再查ARP表,最后封裝數(shù)據(jù)發(fā)送出去。不過不同的是。在同網(wǎng)段的情況下,?查找路由表的結(jié)果是到目標(biāo)設(shè)備的Gateway為On-link,而在不同網(wǎng)段的情況下,到目標(biāo)設(shè)備的Gateway通常是與自己在同LAN的路由器或者三層交換機(jī)的接口地址。當(dāng)然了Gateway地址與終端設(shè)備IP地址得在同一網(wǎng)段。否則Gateway都與自己跨網(wǎng)段。
? ? 因此可以看出。終端要跨網(wǎng)段通信的前提是。終端設(shè)備的Gateway與自己是同網(wǎng)段。即同網(wǎng)段通信是跨網(wǎng)段通信的前提。
?
2.2 路由器實(shí)現(xiàn)跨LAN的通信
? ? 上左圖的是用路由器實(shí)現(xiàn)跨LAN的通信拓?fù)?#xff0c;路由器RT-A通過Gi0/1和Gi0/2口分別連到兩個(gè)不同的傻瓜交換機(jī)(LAN)上,其他條件如下:
(1)PC-A的IP地址為【192.168.10.1 /24】,網(wǎng)關(guān)為同一個(gè)LAN上的RT-A的Gi0/1口的IP地址【192.168.10.254】,兩者IP地址都屬于同一網(wǎng)段【192.168.10.0 /24】。
(2)PC-B的IP地址為【192.168.20.2 /24】,網(wǎng)關(guān)為同一個(gè)LAN上的RT-A的Gi0/2口的IP地址【192.168.20.254】,兩者IP地址都屬于同一網(wǎng)段【192.168.20.0 /24】。
(3)RT-A的Gi0/1口IP地址為【192.168.10.254 /24】,作為PC-A的Gateway;Gi0/2口IP地址為【192.168.20.254 /24】,作為PC-B的Gateway。
? ? 在路由器上給接口配置IP地址,命令如下(以思科路由器為例):
RT-A#show running-config interface gigabitEthernet 0/1 Building configuration...Current configuration : 71 bytes ! interface GigabitEthernet0/1ip address 192.168.10.254 255.255.255.0RT-A#show running-config interface gigabitEthernet 0/2 Building configuration...Current configuration : 71 bytes ! interface GigabitEthernet0/2ip address 192.168.20.254 255.255.255.0? ? 可以發(fā)現(xiàn),IP地址是直接配置在路由器的物理接口上,不過有時(shí)候我們也會(huì)把IP地址配置在虛擬子接口下(虛擬子接口是建立在物理接口上),后面文章我們?cè)僦v。
?
2.3 三層交換機(jī)實(shí)現(xiàn)跨LAN的通信
? 上右圖的是三層交換機(jī)實(shí)現(xiàn)跨LAN的通信拓?fù)?#xff0c;路由器SW-A通過Gi0/1和Gi0/2口分別連到兩個(gè)不同的傻瓜交換機(jī)(LAN)上,其他條件如下:
(1)PC-A的IP地址為【192.168.30.3 /24】,網(wǎng)關(guān)為同一個(gè)LAN上的SW-A的Gi0/1口的IP地址【192.168.30.254】,兩者IP地址都屬于同一網(wǎng)段【192.168.30.0 /24】。
(2)PC-B的IP地址為【192.168.40.2 /24】,網(wǎng)關(guān)為同一個(gè)LAN上的SW-A的Gi0/2口的IP地址【192.168.40.254】,兩者IP地址都屬于同一網(wǎng)段【192.168.40.0 /24】。
(3)SW-A的Gi0/1口IP地址為【192.168.30.254 /24】,作為PC-A的Gateway;Gi0/2口IP地址為【192.168.40.254 /24】,作為PC-B的Gateway。
? ? 在三層交換機(jī)上給接口配置IP地址,命令如下(以思科三層交換機(jī)為例):
SW-A#show running-config interface gigabitEthernet 0/1 Building configuration...Current configuration : 81 bytes ! interface GigabitEthernet0/1no switchportip address 192.168.30.254 255.255.255.0SW-A#show running-config interface gigabitEthernet 0/2 Building configuration...Current configuration : 81 bytes ! interface GigabitEthernet0/2no switchportip address 192.168.40.254 255.255.255.0? ? 可以發(fā)現(xiàn),三層交換機(jī)的接口配置相比路由器多了一條命令【no switchport】,目的是改變交換機(jī)的接口工作模式為路由模式(路由模式下,才可以配置IP地址),默認(rèn)為交換模式(交換模式下,可以配置access vlan或者trunk vlan),路由器的接口只能工作在路由模式。
? ? 不過一般三層交換機(jī)的接口都會(huì)采用默認(rèn)的交換模式,這里只是舉例說原理。至于IP地址一般是配置在interface vlan下面,后面文章會(huì)講。
?
3 通信流程分析(PC-A到PC-B,PC-C到PC-D同理)
? ? 其實(shí)三層交換機(jī)和路由器處理機(jī)制一樣的,只是接口配置略有不同,本文就以路由器處理為例。
(1) PC-A ---> RT-A
? ? 當(dāng)我們?cè)赑C-A上配置了gw以后, 路由表會(huì)新增一條,如下所示: 最后一行就是我們配置gw以后, 新增的路由表項(xiàng).
PC-A >route print -4Network Destination Netmask Gateway Interface Metric 192.168.10.0 255.255.255.0 On-link 192.168.10.1 291 192.168.10.1 255.255.255.255 On-link 192.168.10.1 291 192.168.10.255 255.255.255.255 On-link 192.168.10.1 291 0.0.0.0 0.0.0.0 192.168.10.254 192.168.10.1? ? 當(dāng)PC-A要發(fā)送數(shù)據(jù)到PC-B時(shí),先根據(jù)PC-B的地址【192.168.20.2】查找自己路由表,發(fā)現(xiàn)它匹配了【0.0.0.0 / 0.0.0.0】這條默認(rèn)路由.對(duì)應(yīng)的Gateway為【192.168.10.254】。默認(rèn)路由是當(dāng)沒有到達(dá)目標(biāo)設(shè)備的明細(xì)路由【即目標(biāo)設(shè)備IP地址所在的網(wǎng)段的路由】時(shí),就會(huì)走的路由,而且默認(rèn)路由一定是【0.0.0.0 / 0.0.0.0】這樣子。
? ? 接下來PC-A根據(jù)Gateway地址【192.168.10.254】,查找自己的ARP表,找到Gateway對(duì)應(yīng)的MAC地址【aaaa.aaaa.aaaa】,如下所示。找不到就廣播,?前面討論過,?這里不展開。
PC-A > arp -aInterface: 192.168.10.1 --- 0x5Internet Address Physical Address Type192.168.10.254 aa-aa-aa-aa-aa-aa dynamic? ? 因此PC-A封裝數(shù)據(jù),像這樣【aaaa.aaaa.aaaa】【1111.1111.1111】【192.168.20.2】【192.168.10.1】【DATA】。
? ? 以RT-A: Gi0/1口的MAC地址為目的MAC地址,PC-A的MAC地址為源MAC地址,以PC-B的IP地址為目的IP地址,PC-A的IP地址為源IP地址,然后通過傻瓜交換機(jī)把數(shù)據(jù)給到Gateway,即路由器RT-A。
? ? 可以看到在數(shù)據(jù)包中的目的IP地址和目的MAC地址不是同一個(gè)設(shè)備的, 怎么理解?
? ? 這就是我們本系列文章的第一篇提到的,有了IP地址為何還要MAC地址。
? ? 在此處可以看到通過MAC地址實(shí)現(xiàn)數(shù)據(jù)的LAN內(nèi)部通信, 數(shù)據(jù)從PC-A到RT-A.。通過IP地址實(shí)現(xiàn)數(shù)據(jù)跨LAN的通信,數(shù)據(jù)從PC-A到PC-B。這兩處的數(shù)據(jù)都是同一個(gè)數(shù)據(jù),只是他們的目的MAC地址改變了而已。
(2) RT-A ---> PC-B
? ? 當(dāng)RT-A給接口Gi0/1和Gi0/2配置了IP地址以后, 會(huì)在本地生成路由表,如下所示.
caowen-c2911#show ip routeC 192.168.10.0/24 is directly connected, gi0/1 L 192.168.10.254/32 is directly connected, gi0/1 C 192.168.20.0/24 is directly connected, gi0/2 L 192.168.20.254/32 is directly connected, gi0/2? ? 當(dāng)RT-A從Gi0/1口收到PC-A給PC-B的數(shù)據(jù)幀時(shí),先解封裝二層頭部,發(fā)現(xiàn)目的MAC地址是自己的Gi0/1口的MAC地址,于是接受此數(shù)據(jù)幀,并把解封裝后的數(shù)據(jù)包給到IP引擎,否則會(huì)丟棄。
? ? IP引擎收到?jīng)]有二層頭部的數(shù)據(jù)包(有二層頭部的叫數(shù)據(jù)幀),解封裝三層頭部,發(fā)現(xiàn)目的IP地址不是自己任何一個(gè)接口的IP地址,于是把數(shù)據(jù)給到路由引擎。 如果目的IP地址是自己某一個(gè)接口的地址,說明數(shù)據(jù)包是給路由器自身的,而不是讓路由器轉(zhuǎn)發(fā)。那么IP引擎會(huì)把數(shù)據(jù)給到路由器的上一個(gè)層級(jí)的引擎,而不是路由引擎。? ?
? ? 路由引擎根據(jù)數(shù)據(jù)包的目的IP地址192.168.20.2,查找路由表,匹配了上圖中的第三條路由,發(fā)現(xiàn)該目的地與自己gi0/2口直連。類似于PC-A的Gateway為On-link,只是不同設(shè)備表示方式不一樣,其實(shí)都是表示直連路由。
? ? 路由器于是根據(jù)IP地址192.168.20.2【PC-B的IP地址】,查找本地的ARP表,找到PC-B的MAC地址,如下所示。 如果沒有,就廣播。
caowen-c2911#show ip arp Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.10.1 1 1111.1111.1111 ARPA gi0/1 Internet 192.168.20.2 1 2222.2222.2222 ARPA gi0/2? ? 因此RT-A會(huì)重新封裝數(shù)據(jù),像【2222.2222.2222】【bbbb.bbbb.bbbb】【192.168.20.2】【192.168.10.1】【DATA】。
? ? 以PC-B的MAC地址為目的MAC地址,自己Gi0/2口的MAC地址為源MAC地址,PC-B的IP地址為目的IP地址,PC-A的IP地址為源IP地址封裝此數(shù)據(jù),然后通過Gi0/2口轉(zhuǎn)發(fā)出去。
? ? 可以發(fā)現(xiàn)數(shù)據(jù)包中的源MAC地址和源IP地址不是同一設(shè)備,目的MAC地址和目的IP地址也不是同一設(shè)備, 原因前面解釋了。
? ? 不過這里要提的是,無(wú)論數(shù)據(jù)的二層頭部源和目的MAC地址如何變,源和目的IP地址都沒有變,數(shù)據(jù)的源IP地址一直都是是PC-A,目的IP地址也一直都是是PC-B。這也好理解,如果源或者目的IP地址都變了,那這也就不是PC-A到PC-B的數(shù)據(jù)了。
? ? 還有一點(diǎn), 數(shù)據(jù)的源和目的MAC地址一定處于同一個(gè)LAN,也就是說MAC地址的作用范圍是LAN內(nèi)部,不能像IP地址一樣,既可以LAN內(nèi)部使用,也可以跨LAN使用。
? ? 這一點(diǎn)我們本系列第一篇也說到了,MAC地址像身份證,只能在國(guó)家內(nèi)部使用,IP地址像護(hù)照,可以國(guó)際上使用,當(dāng)然國(guó)家內(nèi)部也可以使用。
(3) PC-B ---> RT-A
? ? PC-B從RT-A的Gi0/2口收到數(shù)據(jù)幀后,顯示二層解封裝,發(fā)現(xiàn)目的MAC地址為自己的MAC地址,于是繼續(xù)三層解封裝,發(fā)現(xiàn)目的IP地址是自己,于是交給對(duì)應(yīng)引擎處理。
? ? 處理完畢后,回復(fù)數(shù)據(jù)給PC-A,根據(jù)PC-A的IP地址192.168.10.1查找路由表,發(fā)現(xiàn)到PC-A的Gateway為192.168.20.254。
PC-B >route print -4Network Destination Netmask Gateway Interface Metric 192.168.20.0 255.255.255.0 On-link 192.168.20.2 291 192.168.20.1 255.255.255.255 On-link 192.168.20.2 291 192.168.20.255 255.255.255.255 On-link 192.168.20.2 291 0.0.0.0 0.0.0.0 192.168.20.254 192.168.20.2? ? 于是根據(jù)Gateway地址192.168.20.254查找ARP表,發(fā)現(xiàn)Gateway的MAC地址為bbbb.bbbb.bbbb。
PC-B > arp -aInterface: 192.168.20.2 --- 0x5Internet Address Physical Address Type192.168.20.254 bb-bb-bb-bb-bb-bb dynamic? ?因此封裝數(shù)據(jù),像這樣【bbbb.bbbb.bbbb】【2222.2222.2222】【192.168.10.1】【192.168.20.2】【DATA-Reply】。?
? ?通過傻瓜交換機(jī)把數(shù)據(jù)給點(diǎn)RT-A。?
(4) RT-A ---> PC-A
? ? RA-A通過Gi0/2口受到回復(fù)的數(shù)據(jù)幀,而是二層解封裝發(fā)現(xiàn)目的MAC地址為自己的Gi0/2口MAC地址,繼續(xù)三層解封裝發(fā)現(xiàn)目的IP地址為192.168.10.1,不屬于自己的任何接口地址,因此把數(shù)據(jù)給路由引擎。
? ? RT-A路由引擎收到此數(shù)據(jù)后,根據(jù)目的IP地址192.168.10.1查找路由表,找到到此地址的目標(biāo)設(shè)備是直連在自己Gi0/1口上。
caowen-c2911#show ip routeC 192.168.10.0/24 is directly connected, gi0/1 L 192.168.10.254/32 is directly connected, gi0/1 C 192.168.20.0/24 is directly connected, gi0/2 L 192.168.20.254/32 is directly connected, gi0/2? ? 于是根據(jù)IP地址192.168.10.1,查找ARP表,發(fā)現(xiàn)目的MAC地址為1111.1111.1111。
caowen-c2911#show ip arp Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.10.1 1 1111.1111.1111 ARPA gi0/1 Internet 192.168.20.2 1 2222.2222.2222 ARPA gi0/2? ? 因此RT-A重新封裝此數(shù)據(jù),像這樣【1111.1111.1111】【aaaa.aaaa.aaaa】【192.168.10.1】【192.168.20.2】【DATA-Reply】,然后把數(shù)據(jù)從Gi0/1口發(fā)送出去。
(5)PC-A
? ? PC-A從傻瓜交換機(jī)收到此數(shù)據(jù)后,先是二層解封裝,發(fā)現(xiàn)目的MAC地址是自己,接著三層解封裝,發(fā)現(xiàn)目的IP地址也是自己,于是把數(shù)據(jù)給到相應(yīng)的上層程序處理,至此通信完成。
?
4 PC-A、PC-B、PC-C、PC-D兩兩互通
? ? 上一節(jié)我們講的是連在同一臺(tái)設(shè)備(路由器或者三層交換機(jī))上的兩臺(tái)終端通信,那如果連在不同設(shè)備的兩臺(tái)終端要通信呢?
? ? 比如PC-A和PC-C/PC-D要通信或者PC-B和PC-C/PC-D要通信呢?也就是我們要PC-A、PC-B、PC-C、PC-D兩兩通信呢?即全網(wǎng)互通的問題。
? ? 這個(gè)問題特殊在要互相通信的終端的Gateway不在一臺(tái)路由器或者三層交換機(jī)上,這牽涉到靜態(tài)路由、動(dòng)態(tài)路由,因此留到后面單獨(dú)文章講解。? ??
總結(jié)
以上是生活随笔為你收集整理的写给非网工的CCNA教程(8)跨LAN的通信的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1375):express参数
- 下一篇: 前端学习(750):作用域导读