版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
dockerdaemonlibvirt建立的[root@dev~]#systemctlstatus[root@dev~]#systemctlstatusdocker.servicedocker.service-DockerApplicationContainerEngineLoaded:loaded(/usr/lib/systemd/system/docker.service;Active:inactive Docs: [root@dev~]#brctlbridgenamebridgeid STPenabledinterfaces [root@dev[root@dev~]#iptables-#Generatedbyiptables-savev1.4.21onThuAug613:40:20:PREROUTINGACCEPT:INPUTACCEPT:OUTPUTACCEPT:POSTROUTINGACCEPT[0:0]##CompletedonThuAug613:40:20#Generatedbyiptables-savev1.4.21onThuAug613:40:20:INPUTACCEPT:FORWARDACCEPT:OUTPUTACCEPT-AINPUT-mstate--stateRELATED,ESTABLISHED-j-AINPUT-picmp-j-AINPUT-ilo-j-AINPUT-ptcp-mstate--stateNEW-mtcp--dport22-j-AINPUT-jREJECT--reject-withicmp-host--AFORWARD-jREJECT--reject-withicmp-host-prohibited#CompletedonThuAug613:40:20[root@dev[root@dev~]#servicedockerRedirectingto/bin/systemctlstartdocker.service[root@dev~]#brctlshowbridgenamebridgeid STPenabledinterfaces 8000.56847afe9799 [root@dev~]#iplshowdevdocker0:docker0:<NO-CARRIER,BROADCAST,MULTICAST,UP>mtu1500noqueuestateDOWNmodelink/etherlink/ether56:84:7a:fe:97:99brd[root@dev[root@dev~]#iptables-#Generatedbyiptables-savev1.4.21onThuAug613:41:52:PREROUTINGACCEPT:INPUTACCEPT:OUTPUTACCEPT:POSTROUTINGACCEPT:DOCKER--APREROUTING-maddrtype--dst-typeLOCAL-j-AOUTPUT!-d127.0.0.0/8-maddrtype--dst-typeLOCAL-j-APOSTROUTING-s172.17.0.0/16!-odocker0-jMASQUERADE#CompletedonThuAug613:41:52#Generatedbyiptables-savev1.4.21onThuAug613:41:52:INPUTACCEPT:FORWARDACCEPT:OUTPUTACCEPT:DOCKER--AINPUT-mstate--stateRELATED,ESTABLISHED-j-AINPUT-picmp-j-A-AINPUT-ilo-j-AINPUT-ptcp-mstate--stateNEW-mtcp--dport22-j-AINPUT-jREJECT--reject-withicmp-host--AFORWARD-odocker0-j-AFORWARD-odocker0-mconntrack--ctstateRELATED,ESTABLISHED-jACCEPT-AFORWARD-idocker0!-odocker0-j-AFORWARD-idocker0-odocker0-j-AFORWARD-jREJECT--reject-withicmp-host-prohibited#CompletedonThuAug613:41:52可以看到在還沒啟動任何容器的情況下,natfilter這兩個表中都添加iptables的一些基會的走:mangle-PREROUTING->nat-PREROUTING->mangle-INPUTfilter-INPUT這個順序,然后走到接收的應用。如果一個數(shù)據(jù)包是從本機發(fā)送出去的,那么會走:mangle-OUTPUT->nat-OUTPUT->filter-OUTPUT->mangle-POSTROUTING->nat-POSTROUTING這個PREROUTING->nat-PREROUTING->mangle-FORWARD->filter-FORWARDmangle-POSTROUTINGnat-POSTROUTINGdockeriptables規(guī)則。也來看三種mangle-PREROUTING->nat-PREROUTINGmangle-INPUTfilter-INPUTnat表中可以看到-APREROUTINGmaddrtypedst-typeLOCALjDOCKER,也就是說addrtypemodule來匹配數(shù)據(jù)包,如果這個數(shù)據(jù)包是發(fā)給DOCKERDOCKER鏈是空的。->->里我們看到兩條規(guī)則-AOUTPUTd127.0.0.0/8maddrtype–dst-LOCALjDOCKER以及-APOSTROUTINGs172.17.0.0/16- ->PREROUTING->mangle-FORWARD->filter-FORWARD->mangle-POSTROUTINGnat-POSTROUTING這個順序。這里有四條規(guī)則是[root@dev[root@dev~]#dockerrun-dit--nametest-os[root@dev[root@dev~]#brctlbridgenamebridgeid STPenabledinterfaces 8000.56847afe9799 [root@dev~]#iplshowdevvethe7cd2e3:vethe7cd2e3:<BROADCAST,UP,LOWER_UP>mtu1500qdiscnoqueuemasterdocker0stateUPmodeDEFAULT link/etherf6:b9:36:fb:5b:acbrdff:ff:ff:ff:ff:ff[root@dev~]#ipashowdevvethe7cd2e3:vethe7cd2e3:<BROADCAST,UP,LOWER_UP>mtu1500qdiscnoqueuemasterdocker0stateUP link/etherf6:b9:36:fb:5b:acbrd inet6fe80::f4b9:36ff:fefb:5bac/64scope valid_lftforeverpreferred_lftvethtest-osnamespace中。需要注意的是dockernamespace的操作是直接通過套接字發(fā)送到內核的,沒有像Neutronipip命令能查看到的namespaceipip命令查看[root@dev[root@dev~]#iptables-#Generatedbyiptables-savev1.4.21onThuAug614:12:58:PREROUTINGACCEPT:INPUTACCEPT:OUTPUTACCEPT:POSTROUTINGACCEPT:DOCKER--APREROUTING-maddrtype--dst-typeLOCAL-j-AOUTPUT!-d127.0.0.0/8-maddrtype--dst-typeLOCAL-j-APOSTROUTING-s172.17.0.0/16!-odocker0-jMASQUERADE#CompletedonThuAug614:12:58#Generatedbyiptables-savev1.4.21onThuAug614:12:58:INPUTACCEPT:FORWARDACCEPT:OUTPUTACCEPT:DOCKER--AINPUT-mstate--stateRELATED,ESTABLISHED-j-AINPUT-picmp-j-AINPUT-ilo-j-A-AINPUT-ptcp-mstate--stateNEW-mtcp--dport22-j-AINPUT-jREJECT--reject-withicmp-host--AFORWARD-odocker0-j-AFORWARD-odocker0-mconntrack--ctstateRELATED,ESTABLISHED-jACCEPT-AFORWARD-idocker0!-odocker0-j-AFORWARD-idocker0-odocker0-j-AFORWARD-jREJECT--reject-withicmp-host-prohibited#CompletedonThuAug614:12:58vethnamespace的vethe7cd2e3vethe7cd2e3plugdocker0上的,所以會ipforward,所以這個包會->PREROUTING->mangle-FORWARD->filter-FORWARD->mangle-[root@deviptables--L-ChainPREROUTING ACCEPT6518packets,593756bytes) bytes protopt 316 all-- ADDRTYPEmatchdst-typeChainINPUT ACCEPT4packets,256bytes) bytestarget protoptin ChainOUTPUT ACCEPT58packets,4574bytes) bytestarget protoptin 0 all-- ADDRTYPEmatchtypeChainPOSTROUTING ACCEPT58packets,4574bytes) bytestarget protoptin 168MASQUERADEall--* !docker0172.17.0.0/16 ChainDOCKER(2pktsbytestargetprotoptinoutsourcecache時間造成的。[root@dev~]#ipdefaultvia172.16.1.1devenp0s3protostaticmetricdefaultvia10.0.2.1devenp0s8protostaticmetric.0.2.0/24devenp0s8protokernelscopelinksrc.0.2.0/24devenp0s8protokernelscopelinksrc10.0.2.6metric100.16.1.0/24devenp0s3protokernelscopelinksrc172.16.1.75metric100.17.0.0/16devdocker0protokernelscopelinksrc.168.56.0/24devenp0s9protokernelscopelinksrc192.168.56.200metric100.168.100.0/24devenp0s10protokernelscopelinksrc192.168.100.101metric100.168.122.0/24devvirbr0protokernelscopelinksrc[root@dev[root@dev~]#dockerrun-dit-p8888:80--nametest-os2docker.io/centos/bin/bash[root@dev~]#iptables-#Generatedbyiptables-savev1.4.21onThuAug614:29:18:PREROUTINGACCEPT:INPUTACCEPT:FORWARDACCEPT:OUTPUTACCEPT:POSTROUTINGACCEPT#CompletedonThuAug614:29:18#Generatedbyiptables-savev1.4.21onThuAug614:29:18:PREROUTINGACCEPT:INPUTACCEPT:OUTPUTACCEPT:POSTROUTINGACCEPT:DOCKER--APREROUTING-maddrtype--dst-typeLOCAL-j-AOUTPUT!-d127.0.0.0/8-maddrtype--dst-typeLOCAL-j-APOSTROUTING-s172.17.0.0/16!-odocker0-j-APOSTROUTING-s172.17.0.6/32-d172.17.0.6/32-ptcp-m--dport80-j-ADOCKER!-idocker0-ptcp-mtcp--dport8888-jDNAT--to-destination172.17.0.6:80##CompletedonThuAug614:29:18#Generatedbyiptables-savev1.4.21onThuAug614:29:18:INPUTACCEPT:FORWARDACCEPT:OUTPUTACCEPT:DOCKER--AINPUT-mstate--stateRELATED,ESTABLISHED-j-AINPUT-picmp-j-AINPUT-ilo-j-AINPUT-ptcp-mstate--stateNEW-mtcp--dport22-j-AINPUT-jREJECT--reject-withicmp-host--AFORWARD-odocker0-j-AFORWARD-odocker0-mconntrack--ctstateRELATED,ESTABLISHED-jACCEPT-AFORWARD-idocker0!-odocker0-j-AFORWARD-idocker0-odocker0-j-AFORWARD-jREJECT--reject-withicmp-host--ADOCKER-d172.17.0.6/32!-idocker0-odocker0-ptcp-mtcp--dport80-jACCEPT#CompletedonThuAug614:29:18可以看到這里多了很多和、8相關的規(guī)則,我們來分析下。首先來看一個數(shù)據(jù)包需要從容器發(fā)送到公網(wǎng)的情況,此時會走轉發(fā)的邏輯,也就是我們上面說的mangle-NG->t-G->mangle-FORWARDfilter-FORWARDmangle-POSTROUTINGnat-PREROUTINGDOCKER的鏈,DOCKER鏈!-idocker0這個要求使得這個數(shù)據(jù)包沒有被匹配上,于是就繼續(xù)走剩余的規(guī)則。filterFORWARD也沒有匹配的,于是最后nat-POSTROUTINGSNAT出去了?,F(xiàn)在來看下公網(wǎng)訪8888nat-PREROUTING,然后匹配上了-A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度臨時工勞動保障及安全生產(chǎn)責任合同4篇
- 2025年度個人寵物買賣合同(健康保證)4篇
- 2025年度磚廠生產(chǎn)線承包與安全監(jiān)管合同3篇
- 2025年度自動駕駛車輛牌照使用許可協(xié)議4篇
- 二零二五年度水下抽沙作業(yè)租賃合同4篇
- 2025年度航空客運服務合同(含旅客行李托運)4篇
- 二零二五年度智能家居地板磚個性化定制承包協(xié)議2篇
- 《系統(tǒng)發(fā)生分析》課件
- 二零二五版股份分配與公司可持續(xù)發(fā)展協(xié)議3篇
- 二零二五年度建筑打樁機租賃與安全檢測合同2篇
- 2024電子商務平臺用戶隱私保護協(xié)議3篇
- 安徽省蕪湖市2023-2024學年高一上學期期末考試 英語 含答案
- 電力工程施工安全風險評估與防控
- 醫(yī)學教程 常見體表腫瘤與腫塊課件
- 內分泌系統(tǒng)異常與虛勞病關系
- 智聯(lián)招聘在線測評題
- DB3418T 008-2019 宣紙潤墨性感官評判方法
- 【魔鏡洞察】2024藥食同源保健品滋補品行業(yè)分析報告
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗人員理論考試題及答案
- 鋼筋桁架樓承板施工方案
- 2024年駐村第一書記工作總結干貨3篇
評論
0/150
提交評論