摘要:網(wǎng)絡(luò)策略的作用可以通過網(wǎng)絡(luò)策略來限制容器之間的訪問行為,以實現(xiàn)用戶對安全性的方面的要求。搭建過程環(huán)境準(zhǔn)備參考思科網(wǎng)絡(luò)插件一環(huán)境部署搭建環(huán)境,由于本文并不關(guān)注網(wǎng)絡(luò)的跨主機(jī)特性,因此只在一臺宿主機(jī)上啟動進(jìn)程和進(jìn)程就夠了。
網(wǎng)絡(luò)策略的作用
Contiv可以通過網(wǎng)絡(luò)策略來限制容器之間的訪問行為,以實現(xiàn)用戶對安全性的方面的要求。比如,我可以限制容器僅對源IP在特定范圍的其他容器開放特定的端口,而拒絕其他IP地址的容器的訪問。
搭建過程 環(huán)境準(zhǔn)備參考Cisco思科網(wǎng)絡(luò)插件Contiv (一) 環(huán)境部署搭建環(huán)境,由于本文并不關(guān)注Contiv網(wǎng)絡(luò)的跨主機(jī)特性,因此只在一臺宿主機(jī)上啟動master進(jìn)程和plugin進(jìn)程就夠了。
創(chuàng)建 contiv 網(wǎng)絡(luò)root@node-1:/home/yc/workspace# netctl --netmaster http://172.16.112.128:9999 network create --subnet=10.100.100.1/24 contiv-net Creating network default:contiv-net
創(chuàng)建網(wǎng)絡(luò) contiv-net,指定子網(wǎng)范圍是10.100.100.1/24
創(chuàng)建 Policyroot@node-1:/home/yc/workspace# netctl --netmaster http://172.16.112.128:9999 policy create web-policy Creating policy default:web-policy
創(chuàng)建名為web-policy的Policy, Policy的名字在租戶(tenant)的命名空間(namespace)是唯一的,這里沒有指定tenant參數(shù), 因此使用的是 default 租戶
添加 rulePolicy創(chuàng)建后是空的,我們還需要為Policy添加規(guī)則(rule). 一個Policy可以包含多個rule,最終的行為也是這些rule的疊加。每條rule包含以下信息:
match criteria 即匹配規(guī)則,定義了rule的入口條件,滿足匹配規(guī)則的報文將執(zhí)行設(shè)定的行為action, 匹配條件包括protocol、port、ip-address
`protocol`可選參數(shù)為**TCP**、**UDP**、**ICMP** `port`為需要允許或禁止的端口號 `ip-address`為出方向流量的目的**IP**,或者入方向流量的源**IP**
direction 可選參數(shù)為inbound為outbound,分別代表入方向和出方向的規(guī)則
action 可選參數(shù)為allow或deny
priority指定該 rule 的優(yōu)先級,默認(rèn)是1,數(shù)值越大的rule優(yōu)先級越高
from-group 設(shè)置rule生效的EndPoint組的名字(入方向)
to-group 設(shè)置rule生效的EndPoint組的名字(出方向)
from-network 設(shè)置rule生效的network的名字(入方向)
to-network 設(shè)置rule生效的network的名字(出方向)
舉例來說,我們要為我們的httpd容器設(shè)定以下行為:
容器屬于 groupA,開放tcp/80端口
只允許屬于 groupB 的容器訪問tcp/80端口
首先創(chuàng)建 groupA和 groupB
root@node-1:/home/yc/workspace# netctl --netmaster http://172.16.112.128:9999 group create contiv-net groupA -policy=web-policy Creating EndpointGroup default:groupA root@node-1:/home/yc/workspace# netctl --netmaster http://172.16.112.128:9999 group create contiv-net groupB -policy=web-policy Creating EndpointGroup default:groupB
創(chuàng)建 rule 1, 設(shè)置deny所有對tcp/80端口的訪問
root@node-1:/home/yc/workspace# netctl --netmaster http://172.16.112.128:9999 policy rule-add web-policy 1 -direction=in -protocol=tcp -port=80 -action=deny
創(chuàng)建 rule 2, 設(shè)置allow groupB 對tcp/80端口的訪問
root@node-1:/home/yc/workspace# netctl --netmaster http://172.16.112.128:9999 policy rule-add web-policy 1 -direction=in -protocol=tcp -port=80 -action=deny
查看設(shè)置的rule
root@node-1:/home/yc/workspace# netctl --netmaster http://172.16.112.128:9999 policy rule-ls web-policy Incoming Rules: Rule Priority From EndpointGroup From Network From IpAddress To IpAddress Protocol Port Action ---- -------- ------------------ ------------ --------- ------------ -------- ---- ------ 1 1 tcp 80 deny 2 10 groupB tcp 80 allow Outgoing Rules: Rule Priority To EndpointGroup To Network To IpAddress Protocol Port Action ---- -------- ---------------- ---------- --------- -------- ---- ------啟動 httpd 容器
root@node-1:/home/yc/workspace# docker run -itd --net=groupA --name=http-server httpd 4af399efa8646001599a3345231c5c34026139c5e2fd9012e1cdeff4b9dde71b
啟動名為http-server的容器,指定使用的網(wǎng)絡(luò)為groupA,啟動后通過docker network inspect命令可以看到容器分配的IP是10.100.100.1
root@node-1:/home/yc/workspace# docker network inspect groupA [ { "Name": "groupA", "Id": "20bcf90e8be6bb9c0dd4a5bcfdfa1812a91aab9bef137f60747b3ccc8602227a", "Created": "2018-09-30T09:12:58.292952948-07:00", "Scope": "global", "Driver": "netplugin", "EnableIPv6": false, "IPAM": { "Driver": "netplugin", "Options": { "group": "groupA", "network": "contiv-net", "tenant": "default" }, "Config": [ { "Subnet": "10.100.100.0/24" } ] }, "Internal": false, "Attachable": true, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "4af399efa8646001599a3345231c5c34026139c5e2fd9012e1cdeff4b9dde71b": { "Name": "http-server", "EndpointID": "935a57e40dc4d508cc254e6abe0b6b9ee5ae0a7dca7ec843c9dff146c8c5d859", "MacAddress": "02:02:0a:64:64:01", "IPv4Address": "10.100.100.1/24", "IPv6Address": "" } }, "Options": { "encap": "vxlan", "pkt-tag": "2", "tenant": "default" }, "Labels": {} } ]啟動 busybox 容器,訪問httpd
啟動兩個busybox容器, 分別指定使用groupA和groupB網(wǎng)絡(luò), 嘗試訪問httpd容器的tcp/80端口
root@node-1:~# docker run -it --net=groupA --name=bbox-A busybox / # / # wget http://10.100.100.1:80 Connecting to 10.100.100.1:80 (10.100.100.1:80) wget: can"t connect to remote host (10.100.100.1): Connection timed out / #
root@node-1:~# docker run -it --net=groupB --name=bbox-B busybox / # / # wget http://10.100.100.1:80 Connecting to 10.100.100.1:80 (10.100.100.1:80) index.html 100% |***************************************************************************************************************************| 45 0:00:00 ETA / #
可見, bbox-B可以訪問httpd容器的tcp/80端口, 而bbox-A不能, 即Policy生效
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/27526.html
摘要:在當(dāng)前版本中會注冊和兩個服務(wù),前者開放端口供控制整個系統(tǒng),后者開放端口供控制器使用。 Contiv網(wǎng)絡(luò)結(jié)構(gòu) showImg(http://contiv.github.io/assets/images/Contiv-HighLevel-Architecture-a619d55a.png); 上圖為Contiv的網(wǎng)絡(luò)模型,大體上可分為Master和Host Agent兩個組件,其中Mast...
摘要:網(wǎng)絡(luò)結(jié)構(gòu)上圖為的網(wǎng)絡(luò)模型,大體上可分為和兩個組件其中運行在每臺宿主機(jī)上主要負(fù)責(zé)與交互實現(xiàn)插件邏輯配置底層進(jìn)程實現(xiàn)具體的網(wǎng)絡(luò)功能組件是與交互的核心邏輯以常用的為例該邏輯即是實現(xiàn)框架下所規(guī)定的種種接口實現(xiàn)與的消息交互關(guān)于和請查看與框架與實現(xiàn)同 Contiv網(wǎng)絡(luò)結(jié)構(gòu) showImg(https://segmentfault.com/img/remote/1460000017001034?w=...
摘要:什么是官網(wǎng)是一個用于跨虛擬機(jī)裸機(jī)公有云或私有云的異構(gòu)容器部署的開源容器網(wǎng)絡(luò)架構(gòu)。作為業(yè)界最強大的容器網(wǎng)絡(luò)架構(gòu),具有層層和模式,能夠與思科基礎(chǔ)設(shè)施進(jìn)行本地集成,并使用豐富的網(wǎng)絡(luò)和安全策略將應(yīng)用意圖與基礎(chǔ)設(shè)施功能進(jìn)行映射。 什么是Contiv Contiv (官網(wǎng))是一個用于跨虛擬機(jī)、裸機(jī)、公有云或私有云的異構(gòu)容器部署的開源容器網(wǎng)絡(luò)架構(gòu)。作為業(yè)界最強大的容器網(wǎng)絡(luò)架構(gòu),Contiv具有2層、...
摘要:它最基本的功能是實現(xiàn)了虛擬交換機(jī),可以把虛擬網(wǎng)卡和虛擬交換機(jī)的端口連接,這樣一個交換機(jī)下的多個網(wǎng)卡網(wǎng)絡(luò)就打通了,類似的功能。最基礎(chǔ)的分布式虛擬交換機(jī),這樣可以將多臺機(jī)器上的容器組織在一個二層網(wǎng)絡(luò)下,看上去就好像所有容器接在一臺交換機(jī)上。 【編者的話】Kubernetes經(jīng)過了幾年的發(fā)展,存在著很多的網(wǎng)絡(luò)方案。然而網(wǎng)絡(luò)虛擬化在Kubernetes出現(xiàn)前就一直在發(fā)展,其中基于OpenVsw...
摘要:下面就讓我們來看看你應(yīng)該考慮哪些最受歡迎的云計算認(rèn)證。是一個國際機(jī)構(gòu),負(fù)責(zé)推動云計算專業(yè)人員的標(biāo)準(zhǔn)培訓(xùn)和認(rèn)證。目前,提供一個認(rèn)證和五個云認(rèn)證,范圍從專業(yè)云管理員到專業(yè)云解決方案架構(gòu)師。關(guān)于IT,如果說有一點可以肯定的,那就是投資云永遠(yuǎn)也不晚。隨著云對IT和整個業(yè)務(wù)越來越重要,對云技能的需求也只會越來越大。但是,要證明你在這個競爭激烈的就業(yè)市場中具有所需的技能和知識,可能是一件很難的事情。如果...
閱讀 2479·2021-10-11 10:57
閱讀 1346·2021-10-09 09:59
閱讀 2054·2019-08-30 15:53
閱讀 3254·2019-08-30 15:53
閱讀 1061·2019-08-30 15:45
閱讀 789·2019-08-30 15:44
閱讀 3498·2019-08-30 14:24
閱讀 996·2019-08-30 14:21