Linux Bridge

1. 如何创建Bridge

    brctl addbr br0   创建bridge

    brctl addif  br0 eth0  将eth0物理网卡附加到Bridge

    ifconfig  eth0  0.0.0.0  取消eth0的ip地址

   ifconfig   br0  192.168.100.2  netmask 255.255.252.0 up  给br0设置ip地址。

   route add default gw 192.168.100.1 设置默认路由

通过上述的方法创建的bridge在系统重启后,会消失,所以需要在/etc/sysconfig/network-scripts/路径下创建配置文件来永久创建网桥

 Bridge 的配置文件

vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=192.168.100.2
NETMASK=255.255.252.0
GATEWAY=192.168.100.1
DEFROUTE=yes

 eth0的配置文件

DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="br0"
NAME="System eth0"
HWADDR=44:37:E6:4A:62:AD

  通过修改上述的文件,既可以建立一个bridge.

在KVM环境中,我们安装了libvirt后会有一个virbr0的网桥,使用该网桥是通过NAT的方式上网。

通过上述的方式,将物理网卡附加到bridge的,是通过桥接方式上网。

下面我们通过自己创建一个网桥,来实现virbr0的方式,virbr0的网段是192.168.122.* ,我们创建的网桥使用192.168.200.*网段,为了简单演示,没有开启DHCP服务,我们的VM需要手动配置ip

1. 新建br0,给br0设置ip地址和netmask

      

   2. 设置SNAT,因为VM访问外网的时候,会先到192.168.200.1 到达 宿主机的tcp/ip协议栈,然后进行路由

    前提linux内核的net.ipv4_ip.forward=1

      iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j SNAT --to 192.168.100.193 

    其中192.168.100.193为本机的物理网卡的地址。

3. 修改VM的配置,将VM的network设置为br0

    通过virsh edit <vmname>

        

4. 通过VNC,连接到VM中,给VM手动配置ip地址

       

5. 然后在VM上ping www.baidu.com的ip地址(目前192.168.200.* 网段内没有开启dhcp和DNS 服务)

      

通过上述的方法,就实现了virbr0的功能,当前virbr0这个网桥附加了一个虚拟网卡virbr0-nic,  libvirt可能会通过这个虚拟网卡对网桥进行一些配置。本例子中就没有进行附加虚拟网卡。

以下附上两种个人理解的图

   1. 桥接模式

   

NAT模式

 

猜你喜欢

转载自blog.csdn.net/sinat_33822516/article/details/98648415