玩转Openvwitch第四站:Bridge和Mirror

Mirror的数据表结构如下:

96732e293e5d3d19661ff94c46805431.png

Mirror就是配置一个bridge,将某些包发给指定的mirrored ports

对于包的选择:

  • select_all,所有的包

  • select_dst_port

  • select_src_port

  • select_vlan

对于指定的目的:

  • output_port (SPAN Switched Port ANalyzer)

  • output_vlan (RSPAN Remote Switched Port ANalyzer)

SPAN

  • Source (SPAN) port -A port that is monitored with use of the SPAN feature.

  • Destination (SPAN) port -A port that monitors source ports, usually where a network analyzer is connected.

bc69f597a274d41db53f5285665fa246.png

RSPAN

  • 被监控的流量不是发送到一个指定的端口,而是Flood给指定的VLAN 

  • 监听的端口不一定要在本地switch上,可以在指定的VLAN的任意switch上

  • S1 is a source switch

  • S2 and S3 are intermediate switches

  • S4 and S5 are destination switches. 

  • learning is disabled to enable flooding

a0a239b9b4f23e1cfeb3bae1dc53b6d6.png

我们来测试Mirror的SPAN和RSPAN

6ec20a8be259668653a44f8a1c831b7e.png

d7ab18f0e46b81e0c4188041751ca92f.png

创建拓扑结构

ovs-vsctl add-br helloworld

ip link add first_br type veth peer name first_if

ip link add second_br type veth peer name second_if

ip link add third_br type veth peer name third_if

ovs-vsctl add-port ubuntu_br first_br

ovs-vsctl add-port ubuntu_br second_br -- set Port second_br tag=110

ovs-vsctl add-port helloworld second_if -- set Port second_if tag=110

ovs-vsctl add-port helloworld third_br -- set Port third_br tag=110

bd5056f1bc8d384de3da2098d436dabd.png

在first_br上面mirror所有进出vnet0的包

ovs-vsctl -- set bridge ubuntu_br mirrors=@m -- --id=@vnet0 get Port vnet0 -- --id=@first_br get Port first_br -- --id=@m create Mirror name=mirrorvnet0 select-dst-port=@vnet0 select-src-port=@vnet0 output-port=@first_br

监听first_if,并且从instance01里面ping 192.168.100.102

53504b376929d433332c7d4b56bcf338.png

对进入vnet1的所有进出包,然而ouput到一个vlan 110

ovs-vsctl -- set bridge ubuntu_br mirrors=@m -- --id=@vnet1 get Port vnet1 -- --id=@m create Mirror name=mirrorvnet1 select-dst-port=@vnet1 select-src-port=@vnet1 output-vlan=110

在helloworld中也要配置从110来的,都output到vlan 110

ovs-vsctl -- set bridge helloworld mirrors=@m -- --id=@m create Mirror name=mirrorvlan select-vlan=110 output-vlan=110

Disable mac address learning for vlan 110

ovs-vsctl set bridge ubuntu_br flood-vlans=110

ovs-vsctl set bridge helloworld flood-vlans=110

监听third_if,并且从instance02里面ping 192.168.100.102

457bd1c5d1f4da490f5fc6925b264eac.png

删除Mirror

查看ubuntu_br

ovs-vsctl list bridge ubuntu_br

清除里面的mirrors

ovs-vsctl clear Bridge ubuntu_br mirrors

清除flood_vlans

ovs-vsctl clear Bridge ubuntu_br flood_vlans

查看所有的Mirror

ovs-vsctl list Mirror

ovs-vsctl clear Bridge helloworld mirrors

ovs-vsctl clear Bridge helloworld flood_vlans

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

popsuper1982

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值