CentOS 6桥接网卡配置

安装KVM虚拟机软件,需要配置一个桥接网卡,以便客户机获取到跟真实系统同一网段的IP,本文实验环境基于CentOS 6 64bit,记录一下,本文所有命令均是在真实系统里操作,而非在客户机操作。

1,准备工作

关闭NetworkManager服务,启用network服务
[root@localhost ~]# service NetworkManager stop
[root@localhost ~]# service network restart
[root@localhost ~]# chkconfig --level 2345 NetworkManager off
[root@localhost ~]# chkconfig --level 2345 network on

删除网卡记录文件(最好是删除,不要清空文件内容)
[root@localhost ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules

禁用seLinux
[root@localhost ~]# sestatus   
#如果返回值不是disabled,则编辑/etc/sysconfig/selinux,修改SELINUX=disabled

重启系统
[root@localhost ~]# reboot

按道理说还需要修改/etc/sysctl.conf文件,将net.ipv4.ip_forward的值改为1(即允许多块网卡互相通信),但后来经过试验,此项并不是必须的。如果你不放心,也可以改掉此值。

2,配置桥接网卡信息

这里我们假设复制的网卡名为br0。首先需要知道的是,如果让br0桥接eth0,那么eth0将不再能获得IP,反而是br0获得了原先eth0的IP。

[root@localhost ~]# yum install bridge-utils
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost ~]# cp ifcfg-eth0 ifcfg-br0     #复制出br0网卡的配置文件

ifcfg-eth0的配置:
注意,仅需要下面这几个配置项就好,请勿添加其它配置项(如GATEWAY等),否则会导致桥接配置失败!不要奇怪,这里没有BOOTPROTO项是完全正常的。

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0    #注意添加此项

ifcfg-br0的配置:

DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.152.11.149    #原先eth0的IP
NETMASK=255.255.0.0     #原先eth0的子网掩码
GATEWAY=10.152.255.254  #网关

然后重启网络服务,可以发现eth0不再有IP,而br0获得了原先eth0的IP。

加入开机自启动

[root@localhost ~]# echo "ifup br0" >> /etc/rc.d/rc.local

重启,查看桥接状态:

[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c29c31830	no		eth0

注意:使用本文中的方法,重启以后,桥接将会失效,原因不明。我曾试过在eth0配置文件中,把BOOTPROTO设置成static或者none,结果都是一样,目前暂时只能通过加入rc.local来解决。如果大家有比较好的解决方法,欢迎留言。

=====================================
2015.03.23补充
实用小指令:

刪除 tap0:
$ tunctl -d tap0 

刪除 br0:
$ ifconfig br0 down 
$ brctl delbr br0 

将eth0移出bridge(br0): 
$ brctl delif br0 eth0

CentOS 6桥接网卡配置》上有1条评论

  1. 重启网络之后br0获取不到ip,需要加上 TYPE=Bridge 这个,否则会出错。
    DEVICE=br0
    ONBOOT=yes
    TYPE=Bridge
    IPADDR=192.168.1.108
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1

发表评论

电子邮件地址不会被公开。