精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Docker 網絡 IP 地址沖突如何解決

dyquk4xk2p3d ? 來源:良許Linux ? 2023-06-26 10:17 ? 次閱讀

Docker 網絡 IP 地址沖突這個問題其實稍微有一點點麻煩,網上也沒有看到有比較全面正確的文章, 值得單獨寫一篇記錄一下。

1前置知識

因為交換機的能力有限制,以及網線的連接不可能無限長, 所以我們不可能把所有的主機都連到同一個交換機上,然后處于同一個二層網絡中。

就算能,主機間的 ARP 廣播也會讓這個網絡瞬間癱瘓。

所以我們得把主機拆分到一個個的小的子網里,然后通過路由器再并成三層網絡。

我們俗稱的 IP 地址其實由兩個部分組成,網絡地址和主機地址。比如10.0.0.1/8中,第一個10是網絡地址,后面的0.0.1是主機地址。那我怎么知道怎么去拆分這兩段呢?靠的就是子網掩碼,也就是那個/8。

IP 其實是由 32 位的二進制組成的,x.x.x.x只是為了方便人類閱讀將其轉成了十進制。有個簡單粗暴的辦法就是可以認為每一段都是 8 位,所以/8就代表第一段是網絡地址。

同理,/16就代表前兩段都是網絡地址,10.0.0.0/16中, 網絡地址是10.0,后兩位0.0代表每個子網中的主機地址。

比如10.0.0.1/16和10.0.0.2/16是同一個子網的兩個主機。10.0.0.1/16和10.1.0.1/16是不同的子網的兩個主機。

這里只是簡單粗暴的介紹下,更多的信息還是自己去查資料了解學習。

2問題表現

docker 進程無法啟動

容器端口無法訪問,抓包顯示為有入站但是沒有出站

3排查

此處針對的是 dockerd 無法啟動的情況,如果 dockerd 能啟動,可以直接跳到解決一節

首先是看下日志

$systemctlstatusdocker
$journalctl-udocker
$dmesg|grepdocker

一般能看到如下日志:

docker0:linkisnotready
docker_gwbridge:linkisnotready

或者更簡單的排查方法,直接手動啟動 dockerd 看看。啟動方法可以通過grep ExecStart /usr/lib/systemd/system/docker.service查看。

一般來說按如下執行就行:

$/usr/bin/dockerd--debug

然后能看到最后輸出:

INFO[2021-07-29T0255.811673622Z]stoppingeventstreamfollowinggracefulshutdownerror=""module=libcontainerdnamespace=moby
failedtostartdaemon:Errorinitializingnetworkcontroller:listbridgeaddressesfailed:PredefinedLocalScopeDefaultNetworksList:[10.252.0.0/2410.252.1.0/2410.252.2.0/24]:noavailablenetwork

這時候可以看下ip addr,是否有docker0和docker_gwbridge,

如果發現沒有docker0,那基本可以肯定是 docker0 無法創建導致 dockerd 啟動失敗了。

4解決

找到占用的網段

默認的 docker0 網段是172.17.0.0/16,docker_gwbridge 網段是172.18.0.0/24,你需要確認下這兩個網段是否被占用了。

最簡單的方法就是 ping 一下,如果無響應的話,那么就說明沒有被占用。

其次就是看一下本機的路由表route -n,確認一下有沒有沖突的段。一般來說,你會發現相關網段要么已經被占用,要么是路由表里存在沖突。

案例

比如在我的環境里,我給 docker0 配置為10.252.0/24,然后 dockerd 起不來。

排查后發現route -n里有這么一條:

10.0.0.0172.21.0.1255.0.0.0UG000eth0

也就是說10/8被占用了,導致和我的10.252.0/24沖突。后來聯系網管刪除了這條10/8的路由后解決。

修改 docker 占用的網段

以下操作需要先停止 docker 進程

$systemctlstopdocker

如果你用 docker service,那么 docker 會占用四個網段:

docker0

docker_gwbridge

ucp(docker engine 占用,不常見)

ingress

其中前三個的網段可以通過配置文件配置,第四個只能手動創建。

前三個網段會讀取/etc/docker/daemon.json這個配置文件, 這個文件默認是沒有的,需要手動創建。

{
"bip":"",
"default-address-pools":[
{"base":"10.252.0.0/24","size":24},
{"base":"10.252.1.0/24","size":24},
{"base":"10.252.2.0/24","size":24}
]
}

注意這個default-address-pools至少要有兩項,按順序依次為:

docker0

docker_gwbridge

ucp

以防萬一的話,配置三個是最好的。

接下來是修改 ingress,這個比較麻煩,需要手動創建。

我的辦法是在初始化 docker swarm 以后,啟動 docker stack/service 以前,執行以下腳本:

刪除 ingress

刪除 my-ingress(不一定存在,不存在就忽略)

新建 my-ingress

$yes'y'|dockernetworkrmingress
$yes'y'|dockernetworkrmmy-ingress2>&1|true
$dockernetworkcreate
--driveroverlay
--ingress
--subnet=10.252.3.0/24#指定ingress的網段,不要和上面daemon.json的網段沖突
--gateway=10.252.3.2
--optcom.docker.network.driver.mtu=1200
my-ingress

ingress 是默認名,之所以新建一個名字不一樣的,是因為刪除 ingress 是異步的。如果你刪除 ingress 后立刻新建一個也叫 ingress 的網絡,很可能會報一個重名的錯誤。

重啟 docker 前,最好先清理一下 docker 的緩存:

$iplinkdeldevdocker0
$iplinkdeldevdocker_gwbridge
$rm-rf/var/lib/docker/network

另一種粗糙簡單的解決辦法

另一種粗糙簡單的解決辦法就是干脆直接手動創建一個 docker0。

這種解決方法最簡單,但是機器 reboot 后 docker0 會自動被刪掉, 所以這方法并不持久。

而且,實際上也不一定能解決網段沖突的問題,只是說 docker 能啟動了而已。

iplinkaddnamedocker0typebridge
ipaddradddevdocker010.252.0.1/24




聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IP
    IP
    +關注

    關注

    5

    文章

    1664

    瀏覽量

    149342
  • 網絡地址
    +關注

    關注

    0

    文章

    16

    瀏覽量

    9386
  • Docker
    +關注

    關注

    0

    文章

    455

    瀏覽量

    11818

原文標題:Docker 網絡 IP 地址沖突了,該怎么辦呢?

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    個人和局域網IP地址沖突解決方案

    隨著網絡的廣泛應用,使網絡規模不斷擴大,相應的IP地址分配也在不斷增多,IP地址
    的頭像 發表于 12-13 09:58 ?1224次閱讀
    個人和局域網<b class='flag-5'>IP</b><b class='flag-5'>地址</b><b class='flag-5'>沖突</b>解決方案

    軟交換網絡中接入層設備IP地址沖突現象分析

    簡要介紹IP網絡中Ping to death攻擊的基本現象;對軟交換網絡接入層設備進行描述,重點對軟交換網絡中接入層設備IP
    發表于 05-16 10:06 ?11次下載

    基于校園網絡IP地址沖突解決方案

    隨著高校數字化校園網絡的廣泛應用,校內機器增多,無線網絡的覆蓋,相應的IP地址分配也在不斷增多,IP地址
    發表于 12-12 17:59 ?0次下載
    基于校園<b class='flag-5'>網絡</b><b class='flag-5'>IP</b><b class='flag-5'>地址</b><b class='flag-5'>沖突</b>解決方案

    IP地址沖突的原因和解決方案

    IP地址是互聯網協議地址,使用統一地址格式,為網絡中每個單元主機分配一個地址,供
    的頭像 發表于 02-01 10:43 ?2w次閱讀

    IP地址基礎知識+沖突故障的解決方法

    相信每個維修人員都會在實際工作中遇到IP地址沖突的故障,很多人不知道為何會產生IP地址沖突的故障
    的頭像 發表于 03-07 09:39 ?2251次閱讀
    <b class='flag-5'>IP</b><b class='flag-5'>地址</b>基礎知識+<b class='flag-5'>沖突</b>故障的解決方法

    網段隔離器(NAT網關)如何解IP地址沖突問題?

    ,而如果出現兩臺相同IP地址的設備,這時就會產生IP沖突,進而導致網絡的異常甚至癱瘓。?? 為解決跨網段訪問與
    的頭像 發表于 08-28 15:54 ?697次閱讀

    IP地址配置沖突導致路由振蕩怎么辦?

    IP地址配置沖突導致路由振蕩怎么辦? 標題:解決IP地址配置沖突導致的路由振蕩 引言: 在
    的頭像 發表于 11-09 09:24 ?858次閱讀

    發生IP沖突的原因是什么呢?如何解IP沖突的問題呢?

    發生IP沖突的原因是什么呢?如何解IP沖突的問題呢? IP
    的頭像 發表于 12-07 09:32 ?4559次閱讀

    局域網IP地址沖突、環路的罪魁禍首是什么?

    局域網IP地址沖突、環路的罪魁禍首是什么? 局域網IP地址沖突和環路是
    的頭像 發表于 02-04 11:03 ?4124次閱讀

    在遠程訪問設備如果PLC的IP地址沖突何解

    要求從PLC中采集數據以達到遠程監控的目的,從而實現設備、人員、物料、能源等多種生產要素的互聯共通,從而及時覺察設備故障與產能缺陷,合理利用數據分析手段進行決策。但如果現場IPIP地址沖突
    的頭像 發表于 02-20 17:26 ?714次閱讀
    在遠程訪問設備如果PLC的<b class='flag-5'>IP</b><b class='flag-5'>地址</b><b class='flag-5'>沖突</b>如<b class='flag-5'>何解</b>決

    產線設備聯網過程中的IP沖突(NAT轉換)問題如何解

    都是唯一而獨立的,以便在網絡上進行通信。然而,當兩臺或更多的設備被分配了相同的IP地址時,就會出現IP地址
    的頭像 發表于 04-09 17:28 ?522次閱讀
    產線設備聯網過程中的<b class='flag-5'>IP</b><b class='flag-5'>沖突</b>(NAT轉換)問題如<b class='flag-5'>何解</b>決

    何解決工廠中相同IP設備沖突故障問題

    隨著網絡規模的不斷擴大,相應的IP地址資源也越來越捉襟見肘,IP地址沖突現象與日俱增。特別是在工
    的頭像 發表于 06-13 17:30 ?459次閱讀
    如<b class='flag-5'>何解</b>決工廠中相同<b class='flag-5'>IP</b>設備<b class='flag-5'>沖突</b>故障問題

    兩個路由器ip地址沖突怎么解決

    當兩個路由器的IP地址發生沖突時,會導致網絡連接不穩定或無法連接。以下是解決兩個路由器IP地址
    的頭像 發表于 07-09 11:35 ?5210次閱讀

    IP地址沖突解決方法圖示

    你是否在日常使用網絡時,有這樣的經歷:突然就失去網絡連接,時斷時續,加載緩慢,文件傳輸突然中斷?網絡連接并沒有完全斷開,但網速變得異常緩慢看電視劇卡頓、下載文件簡直龜速?那么你可能是IP
    的頭像 發表于 07-26 11:51 ?402次閱讀

    PLC的IP沖突何解決(NAt物聯網解決方案)

    IP沖突,即在網絡環境中存在兩個或多個設備使用了相同的IP地址,導致網絡通信混亂。在工業自動化
    的頭像 發表于 09-06 10:53 ?514次閱讀
    PLC的<b class='flag-5'>IP</b><b class='flag-5'>沖突</b>如<b class='flag-5'>何解</b>決(NAt物聯網解決方案)