1. 程式人生 > >通過ping、traceroute、tcpdump困擾已久的網路問題終於解決了

通過ping、traceroute、tcpdump困擾已久的網路問題終於解決了

背景介紹
16、87和111都是虛擬機器只有一個IP,3是物理機有兩個IP分別為172.16.15.3和172.16.15.67
網段分為172.16.15.0~172.16.15.63(業務網)、172.16.15.64~172.16.15.127(管理網),兩個網段之間是聯通的,
業務網的閘道器為172.16.15.62,管理網的閘道器為172.16.15.126
172.16.15.87路由為

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.16.15.126
0.0.0.0 UG 0 0 0 eth0 172.16.15.64 * 255.255.255.192 U 0 0 0 eth0

172.16.15.3路由為

[root@sugon03 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.16.15.62    0.0.0.0         UG    0
0 0 br1 172.16.15.0 0.0.0.0 255.255.255.192 U 0 0 0 br1 172.16.15.64 0.0.0.0 255.255.255.192 U 0 0 0 enp4s0f1
  • 87可以ping通16、111、不能ping通3
    • ping16走的是路由,具體如下
[[email protected] /opt/apache-tomcat-8.5.9]#traceroute 172.16.15.15
traceroute to 172.16
.15.15 (172.16.15.15), 30 hops max, 60 byte packets 1 172.16.15.124 (172.16.15.124) 13.747 ms 14.119 ms 14.536 ms 2 172.16.15.15 (172.16.15.15) 0.963 ms 1.101 ms 1.218 ms
  • ping111因為在同一個網段,不走路由,直接點對點
  • ping 3走的也是路由(3上面的路由配置如下),但是ping包到達3的時候,卻沒有返回相應的包給87,因為3發現87是64網段的,因此發現可以直接通過64這個網段直接回包給87,而64這個網段對應的網絡卡ip為67,因此實際會給87的包是由67發的,而ping的原理是必須來源走同一個ip,現在是87請求的是3,而回的卻是67,自然就被87把回的包給扔了,當做不可達
[root@sugon03 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.16.15.62    0.0.0.0         UG    0      0        0 br1
172.16.15.0     0.0.0.0         255.255.255.192 U     0      0        0 br1
172.16.15.64    0.0.0.0         255.255.255.192 U     0      0        0 enp4s0f1

修改87的路由配置:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.16.15.126   0.0.0.0         UG    0      0        0 eth0
172.16.15.0    *               255.255.255.192 U     0      0        0 eth0
172.16.15.64    *               255.255.255.192 U     0      0        0 eth0
  • 87可以ping通3、111、不能ping通16
    • ping3走的是172.16.15.0這個網段,traceroute172.16.15.3發現,到點3壓根沒走路由,直接到3然後從3返回;然後在3上抓icmp包發現,所有的請求包都是到67這個網絡卡上的,根本沒到3的網絡卡上,但是這個時候卻直接ping通了3,筆者猜測可能是因為3和67是同一臺機器,ping3時自動做了某種轉換,機器把ping3當成了ping67,所以自動就通了,而且走的是同一個網段(64~127網段)。這裡純屬猜測
    • ping111因為在同一個網段,不走路由,直接點對點
    • ping16 這個時候ping16應該走業務網段的閘道器,但是業務網段是配有配置閘道器的,他的閘道器處顯示的是如:172.16.15.0 255.255.255.192 U 0 0 0 eth0
      因為沒有閘道器做下一跳,所以ping16 就不能往下走了,而且路由的權重分為,主機路由>網段路由>預設路由。這裡有網段路由,就不會去找預設路由,所以網路不通。
      要想網路通的辦法也很簡單,加一條主機點對點路由即可:
route add -host 172.16.15.16 gw 172.16.15.126 dev eth0

這個時候可以ping通16了。

所以在業務網和管理網通的情況下,要想虛擬機器或容器跨網段通訊,加了預設路由的情況下還需要增加點對點路由。

另外再補充下,一般給閘道器加一個IP時,預設在路由表上會增加這個IP同網段的路由。

問題詳情:
一臺物理機是172.16.15.6 上面有一個容器zk01地址是172.16.15.111
這臺機器配置的路由是
這裡寫圖片描述
此時能夠ping通 172.16.15.3
但是不能ping通172.16.15.16
16是虛擬機器 3是物理機 3上面也配了兩個網段
0~64是一個網段 65~127是一個網段
兩個網段之間是聯通的, 業務網的閘道器為172.16.15.62,管理網的閘道器為172.16.15.126

相關推薦

通過pingtraceroutetcpdump困擾網路問題終於解決

背景介紹 16、87和111都是虛擬機器只有一個IP,3是物理機有兩個IP分別為172.16.15.3和172.16.15.67 網段分為172.16.15.0~172.16.15.63(業務網)、172.16.15.64~172.16.15.127(管理網

routepingtraceroutenestatvmstat命令介紹

檢視Linux系統網路狀況相關的命令 1. route 檢視和設定Linux系統的路由資訊。Linux系統的route命令用於顯示和操作IP路由表(show / manipulate the IP routing table)。要實

小白日記8:kali滲透測試之主動資訊收集(二)三層發現:pingtraceroutescapynmapfpingHping

 三層發現 三層協議有:IP以及ICMP協議(internet管理協議).icmp的作用是用來實現intenet管理的,進行路徑的發現,網路通訊情況,或者目標主機的狀態;在三層發現中主要使用icmp協

困擾——DataGridView控制元件填充資料時自動新增列

    機房重構慢慢的走到了盡頭,最近正在進行最後的潤色中,今天解決了一個困擾許久但是非常簡單的問題。我們在查詢上機和充值記錄時,用到了DataGridView控制元件。我們在VB版的機房收費系統中也

困擾的問題--python檔案開啟方式?為什麼開啟py檔案會閃退!

當你安裝好python時,你可以在python環境下寫語句。python環境有兩種方式開啟:第一種方式是找到並開啟python資料夾中的python.exe;第二種方式是Windows系統在搜尋輸入cmd,進入命令列模式,輸入python(前提是已配置好環境變數)。pytho

JPAHibernateSpring data jpa之間的關係,終於明白

什麼麼是JPA? 全稱Java Persistence API,可以通過註解或者XML描述【物件-關係表】之間的對映關係,並將實體物件持久化到資料庫中。 為我們提供了: 1)ORM對映元資料:JPA支援XML和註解兩種元資料的形式,元資料描述物件和表之間的對映關係,

困擾我多次的記憶體溢位問題終於解決

viewpager+fragment +多圖 簡直要命,滑動到第10個fragment左右就會記憶體溢位 說是記憶體溢位,其實是記憶體洩漏。圖片載入開源庫有很多,我用的是Glide,Glide會回收圖片釋放記憶體,然而如果該圖片一直被imageview保持引用就會出現無

對於Spring對websocket的屬性注入失敗問題,困擾我一天,最後終於解決

首先匯入包必須的: <!-- https://mvnrepository.com/artifact/org.springframework/spring-websocket --> <dependency> <groupId>

關於“超時時間到”的問題,終於解決

超時時間已到。超時時間已到,但是尚未從池中獲取連線。出現這種情況可能是因為所有池連線均在使用,並且達到了最大池大小。 說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯誤以及程式碼中導致錯誤的出處的詳細資訊。 異常詳細資訊: System.InvalidOperation

困擾我多時的s2008下配置OpenGL的問題終於解決

首先感謝網上寫VC6.0配置OPENGL開發環境的作者,我是先在你那裡學習瞭如何配置,只是做了一點小的延伸,主要內容還是你的。 第一步:下載OpenGL的GLUT庫 Windows環境下的GLUT下載地址:(蘋果機不需要安裝,自帶)   http://www.opengl.o

【String註解驅動開發】困擾我很的AOP巢狀呼叫終於解決

## 寫在前面 > 最近在分析Spring原始碼時,在同一個類中寫了巢狀的AOP方法,測試時出現:Spring AOP在同一個類裡自身方法相互呼叫時無法攔截。哎,怎麼辦?還能怎麼辦呢?繼續分析Spring原始碼,解決問題唄。於是乎,有了本文。 > > 專案工程原始碼已經提交到GitHub:

traceroutenetstatpingtelnet 網絡工具 之 netstat

rfc asq ade help sum linu ket raw aik netstat: 在Internet RFC標準中,Netstat的定義是: Netstat是在內核中訪問網絡連接狀態及其相關信息的程序,它能提供TCP連接,TCP和UDP監聽,進程內存管理的相關

traceroutenetstatpingtelnet 網絡工具 之 ping

control roo deb unix 禁ping ctr cmp seq 控制 ping:Ping是Windows、Unix和Linux系統下的一個命令。ping也屬於一個通信協議,是TCP/IP協議的一部分。利用“ping”命令可以檢查網絡是否連通,可以很好地幫助我們

Linux下ping命令traceroute命令tracert命令的使用

Linux系統的ping命令是常用的網路命令,它通常用來測試與目標主機的連通性,我們經常會說“ping一下某機器,看是不是開著”、不能開啟網頁時會說“你先ping閘道器地址192.168.1.1試試”。它通過傳送ICMP ECHO_REQUEST資料包到網路主機(send 

通過pingurl監控伺服器以及網頁應用

#!/bin/bash     DATE=`date +"%Y%m%d%H%M"`  function Tomcheck(){      RESULT=`/usr/bin/wget -S --spider --tries=3 --timeout=3 $2 2>&

通過HTML 取得頁面屏幕瀏覽器的高度寬度

交流 str 分辨率 com 過程 分享圖片 介紹 顯示 學習資源  本篇主要介紹Web環境中屏幕、瀏覽器及頁面的高度、寬度信息。 目錄 1. 介紹:介紹頁面的容器(屏幕、瀏覽器及頁面)、物理尺寸與分辨率、展示等內容。 2. 屏幕信息:介紹屏幕尺寸信息;如:屏幕、軟件可用以

26有一行電文,按下面規律譯成密碼即第一個字母變成第26個字母,第I個字母變成第(26-i+1)

targe 第一個 span clas spa -i 擴展 title 知識 擴展知識 參考 請輸入一個數字,把它顯示為對應的字母,比如輸入65,顯示A,輸入97,顯示a 26、有一行電文,已按下面規律譯成密碼即第一個字母變成第26個字母,第I個字母變成第(26-i+1

Cisco PT模擬實驗(20) 通過TFTP協議備份恢復配置或系統升級

tftp協議 cisco 配置備份恢復 Cisco PT模擬實驗(20) 通過TFTP協議備份、恢復配置或系統升級實驗目的: 掌握TFTP方式備份、恢復配置文件的基本命令 掌握TFTP上傳IOS文件並升級系統的方法 熟悉TFTP協議文件傳輸的原理實驗背景

freepsnetstattcpdump命令工具介紹

技巧 prot groups ps命令 request ted dump 部分 sha 1. 監控io性能# iostat -x 查看磁盤使用Linux 3.10.0-514.el7.x86_64 (ccj-01) 2018年1月23日 _x86_6

文件-讀追加經文件操作

截取 字符 模式 分享圖片 報錯 數據 read 全部 p s 讀文件:r f=open(‘test.txt‘,mode=‘r‘) for line in f: print(line) f.close() print本身會換行,文本自帶一個\n,所以有換行