在linux接口上可以进行流量镜像,我不认为docker提供了一种设置方法.veth如果手动添加镜像,镜像应该通过docker为每个容器设置接口来工作.
tc允许您以多种方式管理流量,通常用于服务质量类型排队.tc还提供了一个mirror动作.在下面的比赛所有入站和出站流量,并将其反映到另一个界面.
tc qdisc add dev vethb692b75@if13 ingress
tc filter add dev vethb692b75@if13 parent ffff: \
protocol all prio 2 u32 \
match u32 0 0 flowid 1:1 \
action mirred egress mirror dev veth4305fdd@if15
tc qdisc replace dev vethb692b75@if13 parent root handle 10: prio
tc filter add dev vethb692b75@if13 parent 10: \
protocol all prio 2 u32 \
match u32 0 0 flowid 10:1 \
action mirred egress mirror dev veth4305fdd@if15
Run Code Online (Sandbox Code Playgroud)
iptables可以将克隆的数据包转发到可路由的主机.这通常用于镜像到外部主机的流量.
iptables -t mangle -I PREROUTING -i vethb692b75@if13 -j TEE --gateway <monitor_ip>
iptables -t mangle –I POSTROUTING -i vethb692b75@if13 -j TEE --gateway <monitor_ip>
Run Code Online (Sandbox Code Playgroud)
由于linux世界中的大多数网络监控软件都处理tcpdump,您也可以将接口从主机tcpdump转换为安装在监控容器中的fifo.
mkfifo /tmp/remotecapture.fifo
tcpdump -s 0 -n -w - -U -i vethb692b75@if13 > /tmp/remotecapture.fifo
docker run -v /tmp/remotecapture.fifo:/tmp/remotecapture.fifo <image> netmonitor -f /tmp/remotecapture.fifo
Run Code Online (Sandbox Code Playgroud)
该veth名被分配到每个容器启动时使捕捉将需要你的容器的一部分启动/停止的过程.您想要删除容器停止的任何规则.
在某处转发流量的情况下,收件人容器/主机不应将任何这些数据包路由回原始目的地.
| 归档时间: |
|
| 查看次数: |
1367 次 |
| 最近记录: |