docker - Docker:如何验证覆盖网络是否已加密
问题描述
有什么方法可以检查覆盖网络是否实际加密?
我知道您可以使用创建加密覆盖网络
docker network create --opt encrypted --driver overlay my-encrypted-network
但是由于您几乎可以将任何内容指定为驱动程序选项 ( --opt
),因此您很容易错误地键入“已加密”并且 docker 不会抱怨。
假设我输入(注意错字!)
docker network create -d overlay --opt encryptedsd my-encrypted-network
现在使用docker network inspect my-encrypted-network
我只得到我输入的信息,但我看不到网络是否真的被加密了。
[
{
"Name": "my-encrypted-network",
"Id": "j4jd8dlde9u7rs1crlzbqco4p",
"Created": "2020-02-01T13:17:39.65392102Z",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.0.4.0/24",
"Gateway": "10.0.4.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": null,
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4100",
"encryptedsd": ""
},
"Labels": null
}
]
除了拼写错误之外,这并不让人放心,因为我真的很想知道是否真的启用了加密,而不仅仅是知道我输入了什么。
有谁知道是否有更好的方法来获得可靠的答案?
解决方案
根据文档:
当您启用覆盖加密时,Docker 在为附加到覆盖网络的服务安排任务的所有节点之间创建 IPSEC 隧道。这些隧道还在 GCM 模式下使用 AES 算法,管理节点每 12 小时自动轮换一次密钥。
与您提到的方法不同(IMO 是有效的)的一种方法是检查(例如使用netstat
)是否创建了这些 IPSEC 隧道。
推荐阅读
- java - 方法结果不保存在内存中这是如何工作的?
- node.js - 使用云运行在同一容器中运行反应应用程序和节点 js 后端的推荐方法是什么
- excel - 从 Excel 进行 Outlook 查询时不显示事件
- sql - Oracle SQL:Oracle 可以解释的最大日期差异是否存在
- form-submit - formSubmitReply 函数,错误提示“Exception: Service requested too many times in the same day: email”
- spring-boot - 使用 okhttp3 Mockwebserver 进行 Spring webclient 测试
- python - 绘制具有不同大小数组的多行的最小值数组
- c - c 函数 log_init 中的段错误
- jquery - 如何从 MVC 中的视图打印整个表格
- ios - SwiftUI:iCloud 文档和 CloudKit