linux下网桥的配置示例


# CentOS7的NetworkManager默认不支持桥接模式,建议改用CentOS6系列的Network
[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl start network


[root@localhost ~]# yum -y install bridge-utils     # 安装对内核的网桥管理的命令行工具 brctl


[root@localhost ~]# brctl addbr br0                 # 添加网桥
[root@localhost ~]# brctl show                      # 查看桥列表
bridge name     bridge id           STP enabled   interfaces
br0             8000.000000000000   no

[root@localhost ~]# ip link set dev br0 up          # 启用网桥


[root@localhost ~]# ifconfig eno16777736 0.0.0.0    # 网桥内的物理网卡作为一个端口运行于混杂模式且在链路层工作,所以不需要IP
[root@localhost ~]# brctl addif br0 eno16777736     # 将eno16777736添加至网桥br0
[root@localhost ~]# brctl stp br0 on                # 开启br0的生成树功能

# 设置桥ip,Linux网桥能配成多个逻辑网段,相当于在交换机内部划分多个VLAN
# 给 br0 配置IP:192.168.1.1,实现远程管理网桥,192.168.1.0/24 内主机都可 telnet 到网桥对其配置
[root@localhost ~]# ifconfig br0 192.168.1.1 up
[root@localhost ~]# route add default gw 192.168.1.100

[root@localhost ~]# brctl --help
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             # STP桥优先级
        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                 # 启用生成树
添加一对虚拟网卡(逻辑上是1个),并且将其中一个添加到宿主机内的网桥设备中【本内容仅参考,生产中直接对br0内的veth2配置IP即可】
# 虚机1/2的eth0的下半段分别在宿主机br0的veth0/1上,宿主机的veth2在br0内,并且下半段在veth3接口
# 例:
#          [virtual-1]               [virtual-2]
#              \veth1@br0            /veth0@br0
#                 [ Host - veth2@br0 ]
#                            |
#                           veth3,eno16777736 -------> Internet
#

[root@node1 ~]# ip link add veth2 type veth peer name veth3
[root@node1 ~]# ip link set veth2 up
[root@node1 ~]# ip link set veth3 up
[root@node1 ~]# brctl addbr br0
[root@node1 ~]# brctl addif br0 veth2                                   # 宿主机内的其他虚拟机均通过其本机网卡接入此桥设备
[root@node1 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.a62f5a8e91ba       no              veth2           # <------
                                                        ...(略)
docker0         8000.0242859adf2e       no
virbr0          8000.52540055c3f3       yes             virbr0-nic
[root@node1 ~]# ip address add 192.168.2.254/24 dev veth3               # 对宿主机中的veth设备添加地址

[root@virtual-host ~]# ping 192.168.2.254
64 bytes from 192.168.2.254: icmp_seq=1 ttl=128 time=0.1 ms
64 bytes from 192.168.2.254: icmp_seq=2 ttl=128 time=0.7 ms

[root@node1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward                  # 开启宿主机路由转发功能
[root@virtual-host ~]# route add default gw 192.168.2.254               # 对虚机设置GW指向宿主机veth2后其可访问外网

# 注:此环境下若不使用Iptables做NAT则虚机内的数据包能出去但回不来...
[root@node1 ~]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source <eno16777736_address>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值