《深入理解OpenStack Neutron》—2.4 Bridge

举报
华章计算机 发表于 2019/05/30 11:07:33 2019/05/30
【摘要】 本书摘自《深入理解OpenStack Neutron》一书中的第2章,第2.4节,作者是李宗标。

2.4 Bridge

在Linux的语境里,Bridge(网桥)与Switch(交换机)是一个概念,所以本文也不对两者进行区分。

Linux实现Bridge功能的是brctl模块。在命令行里敲一下brctl,如果能显示相关内容,则表示有此模块,否则还需要安装。安装命令是:

yum install bridge-utils

执行命令brctl,显示的是brctl的帮助,如下:

brctl

Usage: brctl [commands]

commands:

    addbr      <bridge> add bridge

    delbr      <bridge> delete bridge

    addif      <bridge> <device> add interface to bridge

    delif      <bridge> <device> delete interface from bridge

    hairpin    <bridge> <port> {on|off} turn hairpin on/off

    setageing <bridge> <time> set ageing time

    setbridgeprio <bridge> <prio> set bridge priority

    setfd      <bridge> <time> set bridge forward delay

    sethello  <bridge> <time> set hello time

    setmaxage <bridge> <time> set max message age

    setpathcost <bridge> <port> <cost> set path cost

    setportprio <bridge> <port> <prio> set port priority

    show      [ <bridge> ] show a list of bridges

    showmacs  <bridge> show a list of mac addrs

    showstp    <bridge> show bridge stp info

    stp        <bridge> {on|off} turn stp on/off

Bridge本身的概念,本文不再啰唆。下面笔者通过一个综合测试用例来讲述Bridge的基本用法,同时也涵盖前面所述的几个概念:tap、namesapce、veth pair,如图2-4所示。

图2-4中,有4个namespace,每个namespace都有一个tap与交换机上一个tap口组成veth pair。这样4个namespace就通过veth pair及Bridge互联起来。

实现这个用例的命令行如下:

# 1)创建 veth pair

ip link add tap1 type veth peer name tap1_peer

ip link add tap2 type veth peer name tap2_peer

ip link add tap3 type veth peer name tap3_peer

ip link add tap4 type veth peer name tap4_peer

# 2)创建 namespace

ip netns add ns1

ip netns add ns2

ip netns add ns3

ip netns add ns4

# 3)把 tap 迁移到相应 namespace 中

ip link set tap1 netns ns1

ip link set tap2 netns ns2

ip link set tap3 netns ns3

ip link set tap4 netns ns4

# 4)创建 Bridge

brctl addbr br1

# 5)把相应 tap 添加到 Bridge 中

brctl addif br1 tap1_peer

brctl addif br1 tap2_peer

brctl addif br1 tap3_peer

brctl addif br1 tap4_peer

# 6)配置相应 tap 的 IP 地址

ip netns exec ns1 ip addr add local 192.168.50.1/24 dev tap1

ip netns exec ns2 ip addr add local 192.168.50.2/24 dev tap2

ip netns exec ns3 ip addr add local 192.168.50.3/24 dev tap3

ip netns exec ns4 ip addr add local 192.168.50.4/24 dev tap4

# 7)将 Bridge 及所有 tap 状态设置为 up

ip link set br1 up

ip link set tap1_peer up

ip link set tap2_peer up

ip link set tap3_peer up

ip link set tap4_peer up

ip netns exec ns1 ip link set tap1 up

ip netns exec ns2 ip link set tap2 up

ip netns exec ns3 ip link set tap3 up

ip netns exec ns4 ip link set tap4 up

# 8)现在就可以互相 ping 通了

ip netns exec ns1 ping 192.168.50.2

......

ip netns exec ns4 ping 192.168.50.1


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。