示例:在 Ubuntu 上安装并启动 vSRX 虚拟防火墙
此示例说明如何在具有 KVM 的 Ubuntu 服务器上安装和启动 vSRX 虚拟防火墙实例。
要求
此示例使用以下硬件和软件组件:
通用 x86 服务器
适用于 vSRX 虚拟防火墙的 Junos OS 15.1X49-D20 版
Ubuntu 版本 14.04.2
准备工作:
此示例假定全新安装了 Ubuntu 服务器软件。
确保您的主机操作系统满足 KVM 上的 vSRX 要求中指定的要求。
概述
此示例说明如何设置 Ubuntu 主机服务器以及安装和启动 vSRX 虚拟防火墙虚拟机。 图 1 显示了 Ubuntu 服务器上 vSRX 虚拟防火墙虚拟机的基本结构。

此示例使用静态 IP 地址。如果要在 NFV 环境中配置 vSRX 虚拟防火墙实例,则应使用 DHCP。
快速配置 - 在 Ubuntu 上安装并启动 vSRX 虚拟防火墙虚拟机
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到 Ubuntu 服务器终端或 vSRX 虚拟防火墙控制台中。
程序
分步过程
如果默认虚拟网络尚不存在,请复制以下命令并将其粘贴到 Ubuntu 服务器终端中以创建默认虚拟网络。
cat <<EOF> /etc/libvirt/qemu/networks/default.xml <network> <name>default</name> <forward mode='nat'/> <nat> <port start ='1024' end='65535' /> </nat> <bridge name='virbr0' stp='on' delay='0' /> <ip address='192.168.2.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.2.2' end='192.168.2.254' /> </dhcp> </ip> </network> EOF virsh net-define /etc/libvirt/qemu/networks/default.xml virsh net-start default virsh net-autostart default
在 Ubuntu 服务器上创建左侧或受信任的虚拟网络。
cat <<EOF> /etc/libvirt/qemu/networks/testleftnetwork.xml <network> <name>TestLeft</name> <forward mode='route'/> <bridge name='virbr1' stp='on' delay='0' /> <ip address='192.168.123.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.123.100' end='192.168.123.250' /> </dhcp> </ip> </network> EOF virsh net-define /etc/libvirt/qemu/networks/testleftnetwork.xml virsh net-start TestLeft virsh net-autostart TestLeft
在 Ubuntu 服务器上创建正确或不受信任的虚拟网络。
cat <<EOF > /etc/libvirt/qemu/networks/testrightnetwork.xml <network> <name>TestRight</name> <forward mode='nat'/> <nat> <port start ='1024' end='65535' /> </nat> <bridge name='virbr2' stp='on' delay='0' /> <ip address='192.168.124.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.124.100' end='192.168.124.250' /> </dhcp> </ip> </network> EOF virsh net-define /etc/libvirt/qemu/networks/testrightnetwork.xml virsh net-start TestRight virsh net-autostart TestRight
-
从瞻博网络网站的瞻 博网络网站下载 vSRX 虚拟防火墙 KVM 映像。
-
复制以下命令并修改
cpu
参数和标志以匹配您的 Ubuntu 服务器 CPU。将生成的命令粘贴到 Ubuntu 服务器终端,以将映像复制到挂载点并创建 vSRX 虚拟防火墙虚拟机。cp junos-vsrx-vmdisk-15.1X49-D20.2.qcow2 /mnt/vsrx20one.qcow2 virt-install --name vSRX20One --ram 4096 --cpu SandyBridge,+vmx,-invtsc, --vcpus=2 --arch=x86_64 --disk path=/mnt/vsrx20one.qcow2,size=16,device=disk,bus=ide,format=qcow2 --os-type linux --os-variant rhel7 --import --network=network:default,model=virtio --network=network:TestLeft,model=virtio --network=network:TestRight,model=virtio
注意:命令中的
virt-install
CPU 型号和标志可能因 Ubuntu 服务器中的 CPU 和功能而异。 -
要在 vSRX 虚拟防火墙虚拟机上设置 root 密码,请将命令复制并粘贴到层次结构级别的 vSRX 虚拟防火墙 CLI
[edit]
中。set system root-authentication plain-text-password
-
要在 vSRX 虚拟防火墙虚拟机上创建基本配置,请复制以下命令,将其粘贴到文本文件中,移除所有换行符,更改任何必要的详细信息以匹配您的网络配置,将以下命令复制并粘贴到层次结构级别的 vSRX 虚拟防火墙 CLI
[edit]
中,然后从配置模式进入commit
。set interfaces fxp0 unit 0 family inet dhcp-client set interfaces ge-0/0/0 unit 0 family inet address 192.168.123.254/24 set interfaces ge-0/0/1 unit 0 family inet dhcp-client set security zones security-zone trust interfaces ge-0/0/0.0 host-inbound-traffic system-services all set security zones security-zone untrust interfaces ge-0/0/1.0 host-inbound-traffic system-services dhcp set routing-instances CUSTOMER-VR instance-type virtual-router set routing-instances CUSTOMER-VR interface ge-0/0/0.0 set routing-instances CUSTOMER-VR interface ge-0/0/1.0 set security nat source rule-set source-nat from zone trust set security nat source rule-set source-nat to zone untrust set security nat source rule-set source-nat rule nat1 match source-address 0.0.0.0/0 set security nat source rule-set source-nat rule nat1 then source-nat interface
分步过程
分步配置
有关安装和启动 vSRX 虚拟防火墙虚拟机的一组更详细的过程,请使用以下部分。
添加虚拟网络
分步过程
您需要在 Ubuntu 服务器上创建虚拟网络,以便为 vSRX 虚拟防火墙虚拟机上的接口提供网络连接。将这些命令复制并粘贴到 Ubuntu 服务器上的终端中。
此示例使用三个虚拟网络:
默认— — 连接fxp0管理接口。
注意:默认虚拟网络应已存在于 Ubuntu 服务器上。使用命令验证
virsh net-list
默认网络是否存在且处于活动状态。TestLeft— — 将 ge-0/0/0 接口连接到受信任区域。
TestRight— — 将 ge-0/0/1 接口连接到不受信任的区域。
如果默认网络不存在,请按照下列步骤操作:
分步过程
在 Ubuntu 服务器上打开文本编辑器并创建默认的网络 XML (default.xml) 文件。
emacs /etc/libvirt/qemu/networks/default.xml
将转发模式
nat
设置为 ,配置 IP 地址和子网掩码以及网桥接口,并将 DHCP 配置为将 IP 地址分配给此虚拟网络上的接口。注意:使用 libvirt 指定的 XML 格式。
<network> <name>default</name> <forward mode='nat'/> <nat> <port start ='1024' end='65535' /> </nat> <bridge name='virbr0' stp='on' delay='0' /> <ip address='192.168.2.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.2.2' end='192.168.2.254' /> </dhcp> </ip> </network>
根据创建的 default.xml 文件定义并启动默认虚拟网络。
virsh net-define /etc/libvirt/qemu/networks/default.xml virsh net-start default virsh net-autostart default
删除以前配置的任何 TestLeft 虚拟网络。
virsh net-destroy TestLeft virsh net-undefine TestLeft
删除以前配置的任何 TestRight 虚拟网络。
virsh net-destroy TestRight virsh net-undefine TestRight
在 Ubuntu 服务器上打开文本编辑器并创建 TestLeft 网络 XML (testleftnetwork.xml) 文件。
emacs /etc/libvirt/qemu/networks/testleftnetwork.xml
将转发模式
route
设置为 ,配置 IP 地址和子网掩码以及网桥接口,并将 DHCP 配置为将 IP 地址分配给此虚拟网络上的接口。注意:使用 libvirt 指定的 XML 格式。
<network> <name>TestLeft</name> <forward mode='route'/> <bridge name='virbr1' stp='on' delay='0' /> <ip address='192.168.123.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.123.100' end='192.168.123.250' /> </dhcp> </ip> </network>
在 Ubuntu 服务器上打开文本编辑器并创建 TestRight 网络 XML (testrightnetwork.xml) 文件。
emacs /etc/libvirt/qemu/networks/testrightnetwork.xml
将转发模式
nat
设置为 ,配置 IP 地址和子网掩码以及网桥接口,并将 DHCP 配置为将 IP 地址分配给此虚拟网络上的接口。注意:使用 libvirt 指定的 XML 格式。
<network> <name>TestRight</name> <forward mode='nat'/> <nat> <port start ='1024' end='65535' /> </nat> <bridge name='virbr2' stp='on' delay='0' /> <ip address='192.168.124.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.124.100' end='192.168.124.250' /> </dhcp> </ip> </network>
根据创建的 testleftnetwork.xml 文件定义并启动 TestLeft 虚拟网络。
virsh net-define /etc/libvirt/qemu/networks/testleftnetwork.xml virsh net-start TestLeft virsh net-autostart TestLeft
根据创建的 testrightnetwork.xml 文件定义并启动 TestRight 虚拟网络。
virsh net-define /etc/libvirt/qemu/networks/testrightnetwork.xml virsh net-start TestRight virsh net-autostart TestRight
验证虚拟网络
目的
验证 Ubuntu 服务器上的新虚拟网络配置。
行动
virsh net-list
使用 Ubuntu 服务器上的命令验证新的虚拟接口是否处于活动状态,并设置为在重新启动时自动启动。
virsh net-list
Name State Autostart Persistent ---------------------------------------------------------- default active yes yes TestLeft active yes yes TestRight active yes yes
下载并安装 vSRX 虚拟防火墙映像
分步过程
要在 Ubuntu 服务器上下载并安装 vSRX 虚拟防火墙映像,请执行以下操作:
-
从瞻博网络网站下载 vSRX 虚拟防火墙 KVM 映像: https://www.juniper.net/support/downloads/?p=vsrx#sw
-
将 vSRX 虚拟防火墙映像复制到相应的挂载点。
hostOS# cp junos-vsrx-vmdisk-15.1X49-D20.2.qcow2 /mnt/vsrx20one.qcow2
-
使用命令创建
virt-install
vSRX 虚拟防火墙虚拟机。修改cpu
参数和标志以匹配您的 Ubuntu 服务器 CPU。hostOS# virt-install --name vSRX20One --ram 4096 --cpu SandyBridge,+vmx,-invtsc, --vcpus=2 --arch=x86_64 --disk path=/mnt/vsrx20one.qcow2,size=16,device=disk,bus=ide,format=qcow2 --os-type linux --os-variant rhel7 --import --network=network:default,model=virtio --network=network:TestLeft,model=virtio --network=network:TestRight,model=virtio
注意:命令中的
virt-install
CPU 型号和标志可能因 Ubuntu 服务器中的 CPU 和功能而异。
验证 vSRX 虚拟防火墙安装
目的
验证 vSRX 虚拟防火墙安装。
行动
-
virsh console
使用 Ubuntu 服务器上的命令访问 vSRX 虚拟防火墙控制台并查看安装进度。安装可能需要几分钟才能完成。hostOS# virsh console vSRx200ne
Starting install... ERROR internal error: process exited while connecting to monitor: libust[11994/11994]: Warning: HOME environment variable not set. Disabling LTTng-UST per-user tracing. (in setup_local_apps() at lttng-ust-comm.c:305) libust[11994/11995]: Error: Error opening shm /lttng-ust-wait-5 (in get_wait_shm() at lttng-ust-comm.c:886) libust[11994/11995]: Error: Error opening shm /lttng-ust-wait-5 (in get_wait_shm() at lttng-ust-comm.c:886) Booting `Juniper Linux' Loading Linux ... Consoles: serial port BIOS drive C: is disk0 BIOS drive D: is disk1 BIOS drive E: is disk2 BIOS drive F: is disk3 BIOS 639kB/999416kB available memory FreeBSD/i386 bootstrap loader, Revision 1.2 (builder@example.com, Thu Jul 30 23:20:10 UTC 2015) Loading /boot/defaults/loader.conf /kernel text=0xa3a2c0 data=0x6219c+0x11f8e0 syms=[0x4+0xb2ed0+0x4+0x1061bb] /boot/modules/libmbpool.ko text=0xce8 data=0x114 /boot/modules/if_em_vsrx.ko text=0x184c4 data=0x7fc+0x20 /boot/modules/virtio.ko text=0x2168 data=0x208 syms=[0x4+0x7e0+0x4+0x972] /boot/modules/virtio_pci.ko text=0x2de8 data=0x200+0x8 syms=[0x4+0x8f0+0x4+0xb22] /boot/modules/virtio_blk.ko text=0x299c data=0x1dc+0xc syms=[0x4+0x960+0x4+0xa0f] /boot/modules/if_vtnet.ko text=0x5ff0 data=0x360+0x10 syms=[0x4+0xdf0+0x4+0xf19] /boot/modules/pci_hgcomm.ko text=0x12fc data=0x1a4+0x44 syms=[0x4+0x560+0x4+0x61d] /boot/modules/chassis.ko text=0x9bc data=0x1d0+0x10 syms=[0x4+0x390+0x4+0x399] Hit [Enter] to boot immediately, or space bar for command prompt. Booting [/kernel]... platform_early_bootinit: Early Boot Initialization GDB: debug ports: sio GDB: current port: sio KDB: debugger backends: ddb gdb KDB: current backend: ddb Copyright (c) 1996-2015, Juniper Networks, Inc. All rights reserved. Copyright (c) 1992-2007 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. JUNOS 15.1X49-D15.4 #0: 2015-07-31 02:20:21 UTC <output omitted> The machine id is empty. Cleaning up ... Thu Aug 27 12:06:22 UTC 2015 Aug 27 12:06:22 init: exec_command: /usr/sbin/dhcpd (PID 1422) started Aug 27 12:06:22 init: dhcp (PID 1422) started Aug 27 12:06:23 init: exec_command: /usr/sbin/pppd (PID 1428) started Amnesiac (ttyd0) login:
-
在 vSRX 虚拟防火墙控制台上,登录并验证已安装的 vSRX 虚拟防火墙版本。
login: root
--- JUNOS 15.1X49-D15.4 built 2015-07-31 02:20:21 UTC root@%
root@% cli
root>
root> show version
Model: vSRX Junos: 15.1X49-D15.4 JUNOS Software Release [15.1X49-D15.4]
在 vSRX 虚拟防火墙实例上创建基本配置
分步过程
要在 vSRX 虚拟防火墙实例上配置基本设置,请在模式下输入以下步骤 edit
:
创建根密码。
[edit] set system root-authentication plain-text-password
设置管理接口的 IP 地址族,并为此接口启用 DHCP 客户端。
set interfaces fxp0 unit 0 family inet dhcp-client
设置 ge-0/0/0.0 接口的 IP 地址。
set interfaces ge-0/0/0 unit 0 family inet address 192.168.123.254/24
设置 ge-0/0/1.0 接口的 IP 地址族,并为此接口启用 DHCP 客户端。
set interfaces ge-0/0/1 unit 0 family inet dhcp-client
将 ge-0/0/0.0 接口添加到信任安全区域,并允许来自该接口上的入站流量的所有系统服务。
set security zones security-zone trust interfaces ge-0/0/0.0 host-inbound-traffic system-services all
将 ge-0/0/1.0 接口添加到不信任安全区域,并仅允许来自该接口上入站流量的 DHCP 系统服务。
set security zones security-zone untrust interfaces ge-0/0/1.0 host-inbound-traffic system-services dhcp
创建一个虚拟路由器路由实例,并将两个接口添加到该路由实例。
set routing-instances CUSTOMER-VR instance-type virtual-router set routing-instances CUSTOMER-VR interface ge-0/0/0.0 set routing-instances CUSTOMER-VR interface ge-0/0/1.0
创建源 NAT 规则集。
set security nat source rule-set source-nat from zone trust set security nat source rule-set source-nat to zone untrust
配置匹配数据包并将源地址转换为出口接口地址的规则。
set security nat source rule-set source-nat rule nat1 match source-address 0.0.0.0/0 set security nat source rule-set source-nat rule nat1 then source-nat interface
结果
在配置模式下,输入 show interfaces
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
show interfaces
在配置模式下,输入命令以 show security policies
确认您的安全策略。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
show security policies
from-zone trust to-zone trust { policy default-permit { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone trust to-zone untrust { policy default-permit { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone untrust to-zone trust { policy default-deny { match { source-address any; destination-address any; application any; } then { deny; } } }
如果完成设备配置,请从配置模式输入 commit
。
最后一步,退出配置模式并使用 request system reboot
命令重新引导 vSRX 虚拟防火墙虚拟机。重新启动后,您可以使用 Ubuntu 服务器上的命令重新 virsh console
连接到 vSRX 虚拟防火墙。
验证 vSRX 虚拟防火墙实例上的基本配置
目的
验证 vSRX 虚拟防火墙实例上的基本配置。
行动
验证 ge-0/0/0.0 接口是否具有从 TestLeft 网络 DHCP 地址范围分配的 IP 地址,以及 ge-0/0/1.0 是否具有从 TestRight 网络 DHCP 地址范围分配的 IP 地址。
root> show interfaces terse
Interface Admin Link Proto Local Remote ge-0/0/0 up up ge-0/0/0.0 up up inet 192.168.123.254/24 gr-0/0/0 up up ip-0/0/0 up up lsq-0/0/0 up up lt-0/0/0 up up mt-0/0/0 up up sp-0/0/0 up up sp-0/0/0.0 up up inet inet6 sp-0/0/0.16383 up up inet ge-0/0/1 up up ge-0/0/1.0 up up inet 192.168.124.238/24 dsc up up em0 up up em0.0 up up inet 128.0.0.1/2 em1 up up em1.32768 up up inet 192.168.1.2/24 em2 up up fxp0 up up fxp0.0 up up inet 192.168.2.1/24 ipip up up irb up up lo0 up up lo0.16384 up up inet 127.0.0.1 --> 0/0 lo0.16385 up up inet 10.0.0.1 --> 0/0 10.0.0.16 --> 0/0 128.0.0.1 --> 0/0 128.0.0.4 --> 0/0 128.0.1.16 --> 0/0 lo0.32768 up up lsi up up mtun up up pimd up up pime up up pp0 up up ppd0 up up ppe0 up up st0 up up tap up up vlan up down