有關Linux ipv6模塊載入失敗的問題

来源:https://www.cnblogs.com/smith9527/archive/2018/12/29/10197566.html
-Advertisement-
Play Games

有關Linux ipv6模塊載入失敗的問題 同事一個SUSE11sp3環境配置ipv6地址失敗,提示不支持IPv6,請求幫助,第一反應是應該ipv6相關內核模塊沒有載入。 主要檢查內容: ipv6地址是否存在 ifconfig |grep inet6 沒有預設inet6地址 ipv6模塊是否存在 # ...


有關Linux ipv6模塊載入失敗的問題

  同事一個SUSE11sp3環境配置ipv6地址失敗,提示不支持IPv6,請求幫助,第一反應是應該ipv6相關內核模塊沒有載入。
    

  主要檢查內容:
   ipv6地址是否存在
    
ifconfig |grep inet6
     沒有預設inet6地址
    
   ipv6模塊是否存在
    
# modinfo -n ipv6
    /lib/modules/3.0.101-0.47.90-default/kernel/net/ipv6/ipv6.ko
    # modinfo -n ipv6_lib
    /lib/modules/3.0.101-0.47.90-default/kernel/net/ipv6/ipv6_lib.ko
        
   系統是否載入IPv6相關模塊
    
lsmod |grep ipv6
    # lsmod |grep ipv6
    ipv6_lib              341467  0
    只有ipv6_lib模塊,沒有主模塊ipv6
    
    
從上面信息得知,ipv6模塊是存在的,只是載入出現了問題,由此想到可能是配置導致的。


    首先檢查模塊的依賴關係是否正確:
    
# cat /lib/modules/`uname -r`/modules.dep |grep -w ipv6.ko:
    /lib/modules/3.0.101-0.47.90-default/kernel/net/ipv6/ipv6.ko: /lib/modules/3.0.101-0.47.90-default/kernel/net/ipv6/ipv6_lib.ko
    沒有問題
    
    其次檢查modprobe配置,是否屏蔽了ipv6模塊載入:
    
# cat /etc/modprobe.conf |grep -i ipv6
    alias sit0 ipv6
    
    最後檢查了/etc/modprobe.d/目錄下文件,發現一個50-ipv6.conf文件,內容如下:
    
# cat /etc/modprobe.d/50-ipv6.conf
    install ipv6 /bin/true
    
    
這句話是什麼含義呢?通過modprobe.conf(5)文檔,有如下內容:
    install modulename command...
      This  is the most powerful primitive: it tells modprobe to run your command instead of inserting the module in the kernel as normal.
      The command can be any shell command: this allows you to do any kind of complex processing you might wish.
      For example, if the module "fred" works better with the module "barney" already  installed (but  it  doesn't  depend  on  it, so modprobe won't automatically load it), you could say "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred", which would do what you wanted.
      Note the --ignore-install, which stops the second modprobe from running the same install command again. See also remove below.

      You can also use install to make up modules which don't otherwise exist.
      For example: "install probe-ethernet /sbin/modprobe e100 || /sbin/modprobe  eepro100",  which
      will first try to load the e100 driver, and if it fails, then the eepro100 driver when you do "modprobe probe-ethernet".

      If  you  use  the  string  "$CMDLINE_OPTS" in the command, it will be replaced by any options specified on the modprobe command line. This can be useful because users expect "modprobe fred opt=1" to pass the "opt=1" arg to the module, even if there's an install command in  the  configuration  file.  So  our  above  example  becomes "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred $CMDLINE_OPTS"

    
比較長,關鍵的第一句我們來解釋一下:
    
This  is the most powerful primitive: it tells modprobe to run your command
    instead of inserting the module in the kernel as normal.
    這句話的意思是它讓modprobe命令執行命令行里的command命令,而不是一般情況下去載入指定的內核模塊。
    
    
該怎麼理解這句話呢?我們通過兩個命令的執行來說明:
    # modprobe -v -n ipv6
    insmod /lib/modules/3.0.101-0.47.90-default/kernel/net/ipv6/ipv6_lib.ko
    install /bin/true

    
    -n --dry-run --show 表明不做真正的插入模塊的操作
    -v: 列印有關程式所做事情的信息
    所以上述輸出表明modprobe只做了載入ipv6_lib.ko模塊和install /bin/true的動作,
    而沒有做載入ipv6.ko模塊
    
    
    # modprobe --show-depends ipv6
    
insmod /lib/modules/3.0.101-0.47.90-default/kernel/net/ipv6/ipv6_lib.ko
    install /bin/true

    --show-depends 只列出模塊依賴關係,以insmod開頭;
    install命令也不做實際的載入操作,只列出要做的載入動作
    從以上信息可以看出,也不會做ipv6.ko模塊載入。
    
        
   
去掉/bin/true之後,重新執行modprobe ipv6命令後檢查模塊載入情況:
    # modprobe -v ipv6
    # lsmod |grep ipv6
    ipv6                   12758  1
    ipv6_lib              341467  71 ipv6
    
    # ifconfig |grep inet6
      inet6 addr: fe80::9af5:37ff:fe00:9527/64 Scope:Link
      inet6 addr: fe80::9af5:37ff:fee3:3ac4/64 Scope:Link
      inet6 addr: ::1/128 Scope:Host
      
    綜上,可以認為是50-ipv6.conf文件的配置導致了ipv6載入不完整。
      
    在網上搜到一篇禁用ipv6的博文,也有相關說明,讀者可以參考一下。

 

  PS:

  您的支持是對博主最大的鼓勵

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 類與實例 •對象:一切事物皆對象,對象就是一個 自包含的實體,用一組可識別的特性和行為來標識 •類:具有相同的屬性和功能的對象的抽象的集合 1、定義類 1 class Cat 2 { 3 public string Shout() 4 { 5 return "喵"; 6 } 7 } 註:“這裡的'c ...
  • 因為我是一直寫C#的,所以最近閑暇時間一直在學習.NET Core,該博客的後端使用的就是.NET Core WebApi然後加前端Vue。 首先後端.NET Core搭的框架是一個倉儲層+服務層+API,然後資料庫訪問是EF Core+Mysql資料庫。具體介面都使用的非同步,使用第三方IOC容器解 ...
  • 使用Entity Framework Code First實現一對多和多對多的數據關係表,Entity Framework 簡介和原理 ...
  • 最近在用Easy UI+Dapper+MVC4 開發一個財務收款系統,其中就發現一些小問題,供有需要的人參考。 1.EasyUI控制項combobox 數據綁定 出現重覆請求後臺 上代碼: 當時真的好奇怪,這樣寫沒問題啊,可combobox卻重覆請求,於是在去看EasyUi 文檔http://www. ...
  • Highchars //前臺 <script> $(function () { //showChat(); initChat(); showPie(); initPie(); }) function initChat() { var xlst = []; var ylst = []; $.ajax( ...
  • C#操作SQL資料庫 Connection(連接)對象 形式2.”server=;Intergrated Security=true/SSPI” Command(命令)對象 形式2.new SqlCommand(Sql語句, 連接對象)//省略2,5 形式2.執行select語句(count,sum ...
  • 對象引擎,以路徑形式訪問對象屬性,例data.Product[1].Name。 在做excel模板引擎的時候,為了能方便的調用對象屬性,找了一些模板引擎,不是太大就是不太適用於excel, 因為excel模板中不太適用寫一些語法,所以要簡化,現把對象引擎這一塊簡化抽出來分享 開源地址:https:/ ...
  • 接觸Linux已經有一段時間了,由於實際需要,三三兩兩地掌握了一些基本語法和實用語句,主要都是在日常開發中用得比較多的,條理不是特別清晰,請見諒!下麵開始上硬貨!! 基本操作: 關閉Linux系統的命令:init 0 切換虛擬終端的命令:Ctrl + Alt + F[1~6] 釋:Linux共有6個 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...