
實驗準備,Linux主機4台。分别是主機A,路由主機R1,路由主機R2,主機 C,主機A的ip是192.168.56.66/24,且隻有一塊網卡eth0;路由主機R1有兩塊網卡eth0和主機A在同一網段其ip位址是192.168.56.100/24,eth1的ip位址是172.16.56.223/16;主機R2有兩塊網卡eth0和主機C在同一網段其位址為10.0.0.25/8,eth1同R1在同一網段其位址為,172.16.56.200/16,主機C隻有一塊網卡eth0其位址為10.0.0.18/8
一、實驗場景。
實驗準備,Linux主機4台。分别是主機A,路由主機R1,路由主機R2,主機 C,主機A的ip是192.168.56.66/24,且隻有一塊網卡eth0;路由主機R1有兩塊網卡eth0和主機A在同一網段其ip位址是192.168.56.100/24,eth1的ip位址是172.16.56.223/16;主機R2有兩塊網卡eth0和主機C在同一網段其位址為10.0.0.25/8,eth1同R1在同一網段其位址為,172.16.56.200/16,主機C隻有一塊網卡eth0其位址為10.0.0.18/8
實驗目的,實作主機A和主機C互相通信。模拟Linux主機通信原理,深入了解通信過程。
以上就是本次實驗的拓撲圖(圖畫的有點醜,看得懂就行,哈哈哈)
接下來開始試驗。
1,從上面的拓撲圖我們可以看出有3個網絡,為了不讓其他網絡影響本次實驗,我們在vmware裡面增加3條虛拟網絡
添加好虛拟網絡後,現在準備4台主機,并配置好其相應的ip
說明:配置ip這裡都是centos的系統,編輯其相應的檔案/etc/sysconfig/network-scripts/ifcfg-eth0 或者eth1 ,然後重新開機網絡服務就可以了。
2.開啟r1,r2的轉發,以及配置器路由
說明:因為A主機和R1在同一個網段,我們這裡就不需要再配置到A主機的路由,隻需要配置主機R1到C的路由,并指向R2為網關,也就是說要通路主機C 就必須通過R1的路由告訴封包要去找R2。開啟R1的轉發是因為,當封包到達R1的時候,它會檢查資料封包是否是自己的,如果不是它預設會丢棄的,開啟轉發就表示不是本機的資料封包,它将轉發到其他主機。這樣配置後從A的封包理論上可以到達R2,如果打開R2的轉發,封包将會到達C,但是從C回來的封包走到R2的時候,因為R2裡面沒有配置到A的路由,是以回來的封包還不能夠到達A,接下來配置R2的路由。
說明:配置R2的路由的作用是當通路C主機的時候,C主機回應回來的封包,在經過R2是會檢視R2的路由,這樣從C回來的封包才能夠順利到達A
3,驗證從ApingC
從CpingA
4,擴充
1.檢視到達目标網絡所經過的路由
說明:可以得之到達10.0.0.18 從本機經過了2個路由才到達。
2,删除同網段的路由是否能夠通訊?
說明:這裡要把預設路由也要删除,因為删除同網段的路由後,它預設會走預設路由,這樣就可以看出删除了同網段的路由後,本機上不能和本網段的其他主機通信。
3,在r1上配置一個不是同網段的位址,主機A是否能夠與之通訊?
說明:是可以通訊的,因為在Linux裡ip是屬于主機,不是屬于某塊網卡,隻要主機A有到達主機R1的路由,就可以和R1上的所有ip通訊。這裡主機A是走的預設路由
4,将R1的轉發關了,資料封包還能到達C嗎?
說明:是不可以的,因為當主機R1收到來自A主機的封包時,它會檢查是不是它的,如果不是,它将會丢棄,不予回應,這裡我們可以在R1上抓包就明白了
說明:可以看出在R1上是收到了A主機的發往C的封包,但是R1并沒有給出回應。
說明:當我們打開R1的轉發時,就可以看到從C回應A的資料封包,當然A主機上也會收到相應的回應封包。
5,在C上抓包看源ip和目标ip,源MAC和目标MAC的變化
說明:源ip是主機A的位址,目标ip是主機C的位址
主機A的MAC
主機C的MAC
主機R2的MAC
說明:通過上面的抓包,我們可以知道源ip和目标ip在以太網幀結構中是不會變化的,因為ip是在以太網上層internel協定的内容,但是源mac會變的。這是因為mac位址是Ethernet協定的内容,也可以得出在資料鍊路層通訊以太網協定是通過ARP mac位址通信的,在到達C主機的封包源MAC都是R2的MAC位址,也就是說在通訊的時候,以太網幀的結構中,源ip和目标ip是不會變化的,源mac會記錄上一個發送資料封包的裝置的MAC。
從上面的實驗我們可以看出從A到C我們經過了兩個路由;一個主機想要和另一個主機通訊,在通訊前主機會先檢視自己的路由表,如果本機沒有到達目标主機的路由時,本機的資料封包是不能發送到目标主機的;要讓一個主機轉發另一個主機的封包時,我們必須開啟轉發才行,否則不予轉發;路由配置所指定的網關必須是本機能夠到達的位址(也就是本機路由表有到達網關的路由),否則配置的路由無意義。同一網段的主機通訊,也必須配置路由,當然這個路由一般我們不用管,因為配置了其ip後,路由表就會預設生成相應的路由資訊。如果沒有路由,同一網段的主機也是無法通信的;在Linux裡ip位址是屬于主機不屬于某一個網卡,是以隻要有能夠到達主機的位址,我們也可以将封包送到主機的另外一個位址。
作者:Linux-1874
出處:https://www.cnblogs.com/qiuhom-1874/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利.