日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

双网卡-网络问题

發布時間:2024/5/15 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双网卡-网络问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網絡問題剖析

謝藝華 2019-10-10

1.背景

同事在工作中出現了一個網絡問題,其網絡拓撲如下圖:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1.網絡拓撲圖

?

?

其異?,F象如下:

  • 服務器不能訪問外網,但能ping通路由器。
  • 外網不能訪問服務器(路由器上已經做好了相關的端口映射)。
  • ?

    據同事的解決方式是:先把eno1和eno2兩個網口拔掉,先插eno1,再插eno2。的確,這么操作之后,服務器就可以正常連接外網了,并且也可以通過外網訪問服務器了。至于原因,還不是很清楚。

    2.知其然知其所以然

    通過排查,發現異常和正常情況下,服務器的路由表如下:

    ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2 : 異常路由表

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖3:正常路由表

    ?

    其實通過對比,我們就知道大致問題了。很容易聯想到網關的問題。

    2.1?route命令解析

    route命令輸出的路由表字段含義如下:
    Destination?目標網絡或目標主機(本機的數據要發送的目的地:子網或主機),與Genmask組成一個網段。
    Gateway?網關(如果是默認網關,網關的地址必須和自己的主機上的其中一塊網卡在同一子網)即網關地址。如果沒有就顯示星號。
    Genmask?網絡掩碼,如果目標網絡的的子網掩碼為255.255.255.255,說明目標是一臺主機;如果子網掩碼為'0.0.0.0' 說明該路由是默認路由。
    Flags(旗標)
    代表的意義如下:?
    U (route is up):該路由是啟動的;?
    H (target is a host):目標是一部主機 (IP) 而非網段;?
    G (use gateway):需要透過外部的主機 (gateway) 來轉遞封包(該行有gw);
    R (reinstate route for dynamic routing):使用動態路由時,恢復路由資訊的旗標;?
    D (dynamically installed by daemon or redirect):已經由服務或轉 port 功能設定為動態路由?
    M (modified from routing daemon or redirect):路由已經被修改;?
    ! (reject route):這個路由將不會被接受(用來抵擋不安全的網域!)
    A (installed by addrconf)
    C (cache entry)
    Metric?距離、跳數。與目標的“距離”(通常以跳數計算)。它不被最近的內核使用,但可能需要路由守護進程。

    Ref?不用管,恒為0, 對這條路線的引用次數(Linux內核已不再使用)。
    Use?該路由被使用的次數,可以粗略估計通向指定網絡地址的網絡流量。 路線查詢次數。根據-F和-C的使用,這將是路由高速緩存丟失(-F)或命中(-C)。
    Iface?接口,即eth0,eth1等網絡接口名,為此路由發送數據包的接口。

    ?

    通過以上的分析,我們就能大概知道為什么先插eno1就可以正常聯網了。因為eno1的Metric值較小,優先選擇了eno1接口的網關

    ?

  • 路由選擇
  • 在四層協議系統中,我們知道正常的上網過程,都會經過網絡層,其中路由選擇就是數據包走向的依據。主要有三點:

  • 搜索路由表,尋找能與目標IP地址完全相同的標目,如果找到,將數據傳給這個接口
  • 搜索路由表,尋找到目標網絡號相同的標目,如果找到就將報文發給該標目指定的下一站路由或接口
  • 搜索路由表,尋找標為默認的標目。如果找到就將該報文發送給指定下一站路由
  • 如果以上都沒有匹配到,則丟棄該報文。
  • ?

    通過以上的路由選擇可知,我們可知,eno1和eno2都是默認標目,會優先選擇metric值較小的接口,進行轉發報文。

    ?

    ?

  • 解決方式
  • 通過上述的分析,我們可以在服務器上添加一個默認路由:

    route add defualte gw 192.168.18.1

    之后的路由表如圖:

    ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖4: 路由表

    有圖可知,路由表中多了一個默認網關項,且Metric值為0。該方法只是臨時有效,設備重啟就會失效。可以

    echo "route add defualte gw 192.168.18.1" >> /etc/rc.local

    永久生效

    ?

    3.問題

    在排查問題的過程中,遇到了一些有趣的現象,當然也可以通過上述的知識點解釋通。但是我覺得有興趣的同事還是可以思考一下。其路由表如圖:

    ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖5:異常的路由表項

    eno1:

    ip: 192.168.18.150

    netmask: 255.255.0.0

    Gateway: 192.168.18.1

    DNS: 192.168.18.1

    eno2:

    ip:192.168.10.1

    netmask: 255.255.255.0

    gateway:192.168.10.1

    DNS:114.114.114.114

    ?

    3.1 服務器端能夠ping通路由器,卻不能訪問外網?

    3.2 服務器端 ping www.baidu.com?能夠獲取域名的IP,卻無法ping通?

    ?

    ?

    ?

    ?

    總結

    以上是生活随笔為你收集整理的双网卡-网络问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。