Linux 络虚拟化之nat

        利用Linux的虚拟化 络设备bridge实现nat 络。

1.环境准备

        实现环境为ubuntu-16.04服务器版本,在安装操作系统时,选装了支持虚拟化相关的包,能创建KVM虚拟机,能启动dnsmasq服务。另外手动安装了桌面软件包及管理KVM虚拟机的可视化界面virt-manager。

2.IP地址规划

        如下图:

名称 掩码 DHCP地址

test-br-01

172.16.0.3~172.16.1.50 255.255.255.0 172.16.0.1 172.16.1.2

3.创建内部 络

        在Linux 络虚拟化之bridge-实现内部 络有内部 络的整个创建过程,直接使用里面提到的命令创建内部 络。

        创建/etc/test-dnsmasq.conf,加入如下内容并保存,其它项不用配置。

        interface=test-veth-02                                                       # DNS监听接口
        bind-interfaces                                                                  # 绑定
        dhcp-range=172.16.0.2,172.16.0.50,255.255.255.0,12h    # 段
        dhcp-leasefile=/var/lib/misc/test-dnsmasq.leases            # 管理IP地址数据文件
        dhcp-option=option:router,172.16.0.1                              # 关

        依次运行如下命令,创建内部 络并启动dnsmasq:        

        # 创建名称空间test-ns-01
        ip netns add test-ns-01
        # 创建VETH PAIR
        ip link add test-veth-01 type veth peer name test-veth-02
        # 将VETH PAIR的一端加入 络命名空间
        ip link set test-veth-02 netns test-ns-01
        # 在 络命名空间中为VETH设备设备IP
        ip netns exec test-ns-01 ip addr add 172.16.0.2/24 dev test-veth-02
        # 在 络命名空间中启动设备
        ip netns exec test-ns-01 ip link set test-veth-02 up
        # 在 络命名空间中启动dnsmasq
        ip netns exec test-ns-01 /usr/sbin/dnsmasq –conf-file=/etc/test-dnsmasq.conf
        # 创建 桥
        brctl addbr test-br-01
        # 为 桥增加接口
        brctl addif test-br-01 test-veth-01
        # 启动设备
        ip link set test-br-01 up

        ip link set test-veth-01 up

运行完以上命令后,内部 络创建完成,假设现在就创建两台虚拟机test01与test02,并连接到test-br-01这个 络上,则 络连接示意图如下:

                                                                      图2

图2中的绿色字体及绿色实线,是在图1的基础上新加的。为虚拟 桥设备test-br-01设置IP地址作为 关,用iptables实现三层转发与nat,一个内部 络就变成nat 络能够连接外 了。需要注意的一点是虽然能够访问外 ,但是不能解析域名。原因就是为 络提供DNS服务的dnsmasq被隔离在了test-ns-01 络名称空间中,它无法向上游的DNS服务器请求服务。需要手动为所创建的虚拟机修改/etc/resolv.conf文件,加入一个可用的DNS服务器如8.8.8.8就可以解析域名了。

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24910 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年2月7日
下一篇 2018年2月7日

相关推荐