在配ASA 5505时用到的命令
  2009-11-22 22:49
  nat-control命令
  在6.3的时候只要是穿越防火墙都需要创建转换项,比如:nat;static等等,没有转换项是不能穿越防火墙的,但是到了7.0这个规则有了变化,不需要任何转换项也能正常的像路由器一样穿越防火墙。但是一个新的命令出现了!当你打上nat-control这个命令的时候,这个规则就改变得和6.3时代一样必须要有转换项才能穿越防火墙了。7.0以后开始 nat-control 是默认关闭的,关闭的时候允许没有配置NAT规则的前提下和外部主机通信,相当于路由器一样,启用NAT开关后内外网就必须通过NAT转换才能通信
  1、定义外口
  interface Ethernet0/0 进入端口
  nameif outside 定义端口为外口
  security-level 0 定义安全等级为0
  no shut 激活端口
  ip address ×.×.×.× 255.255.255.248 设置IP
  2、定义内口
  interface Ethernet0/1
  nameif inside 定义端口为内
  security-level 100 定义端口安去昂等级为100
  no shut
  ip address 192.168.1.1 255.255.255.0
  3、定义内部NAT范围。
  nat (inside) 1 0.0.0.0 0.0.0.0 任何IP都可以NAT,可以自由设置范围。
  4、定义外网地址池
  global (outside) 1 10.21.67.10-10.21.67.14 netmask 255.255.255.240
  或
  global (outside) 1 interface 当ISP只分配给一个IP是,直接使用分配给外口的IP地址。
  5、设置默认路由
  route outside 0 0 218.17.148.14 指定下一条为IPS指定的网关地址
  查看NAT转换情况
  show xlate
  ---------------------------------------------------
  一:6个基本命令: nameif、 interface、 ip address 、nat、 global、 route。
  二:基本配置步骤:
  step1: 命名接口名字
  nameif ethernet0 outside security0
  nameif ethernet1 inside security100
  nameif ethernet2 dmz security50
  **7版本的配置是先进入接口再命名。
  step2:配置接口速率
  interface ethernet0 10full auto
  interface ethernet1 10full auto
  interface ethernet2 10full
  step3:配置接口地址
  ip address outside 218.106.185.82
  ip address inside 192.168.100.1 255.255.255.0
  ip address dmz 192.168.200.1 255.255.255.0
  step4:地址转换(必须)
  * 安全高的区域访问安全低的区域(即内部到外部)需NAT和global;
  nat(inside) 1 192.168.1.1 255.255.255.0
  global(outside) 1 222.240.254.193 255.255.255.248
  *** nat (inside) 0 192.168.1.1 255.255.255.255 表示192.168.1.1这个地址不需要转换。直接转发出去。
  * 如果内部有服务器需要映射到公网地址(外网访问内网)则需要static和conduit或者acl.
  static (inside, outside) 222.240.254.194 192.168.1.240
  static (inside, outside) 222.240.254.194 192.168.1.240 10000 10
  后面的10000为限制连接数,10为限制的半开连接数。
  conduit permit tcp host 222.240.254.194 eq www any
  conduit permit icmp any any (这个命令在做测试期间可以配置,测试完之后要关掉,防止不必要的漏洞)
  ACL实现的功能和conduit一样都可实现策略访问,只是ACL稍微麻烦点。conduit现在在7版本已经不能用了。
  Access-list 101 permit tcp any host 222.240.254.194 eq www
  Access-group 101 in interface outside (绑定到接口)
  ***允许任何地址到主机地址为222.240.254.194的www的tcp访问。
  Step5:路由定义:
  Route outside 0 0 222.240.254.193 1
  Route inside 192.168.10.0 255.255.255.0 192.168.1.1 1
  **如果内部网段不是直接接在防火墙内口,则需要配置到内部的路由。
  Step6:基础配置完成,保存配置。
  Write memory write erase 清空配置
  reload
  ---------------------------------------------------
  要想配置思科的防火墙得先了解这些命令:
  常用命令有:nameif、interface、ip address、nat、global、route、static等。
  global
  指定公网地址范围:定义地址池。
  Global命令的配置语法:
  global (if_name) nat_id ip_address-ip_address [netmark global_mask]
  其中:
  (if_name):表示外网接口名称,一般为outside。
  nat_id:建立的地址池标识(nat要引用)。
  ip_address-ip_address:表示一段ip地址范围。
  [netmark global_mask]:表示全局ip地址的网络掩码。
  nat
  地址转换命令,将内网的私有ip转换为外网公网ip。
  nat命令配置语法:nat (if_name) nat_id local_ip [netmark]
  其中:
  (if_name):表示接口名称,一般为inside.
  nat_id: 表示地址池,由global命令定义。
  local_ip:表示内网的ip地址。对于0.0.0.0表示内网所有主机。
  [netmark]:表示内网ip地址的子网掩码。
  route
  route命令定义静态路由。
  语法:
  route (if_name) 0 0 gateway_ip [metric]
  其中:
  (if_name):表示接口名称。
  0 0 :表示所有主机
  Gateway_ip:表示网关路由器的ip地址或下一跳。
  [metric]:路由花费。缺省值是1。
  static
  配置静态IP地址翻译,使内部地址与外部地址一一对应。
  语法:
  static(internal_if_name,external_if_name) outside_ip_addr inside_ ip_address
  其中:
  internal_if_name表示内部网络接口,安全级别较高,如inside。
  external_if_name表示外部网络接口,安全级别较低,如outside。
  outside_ip_address表示外部网络的公有ip地址。
  inside_ ip_address表示内部网络的本地ip地址。
  (括号内序顺是先内后外,外边的顺序是先外后内)
  例如:
  asa(config)#static (inside,outside) 133.0.0.1 192.168.0.8
  表示内部ip地址192.168.0.8,访问外部时被翻译成133.0.0.1全局地址
  **************************************************************************
  asa#conf t
  asa(config)# hostname asa //设置主机名
  asa(config)#enable password cisco //设置密码
  配置外网的接口,名字是outside,安全级别0,输入ISP给您提供的地址就行了。
  asa(config)#interface GigabitEthernet0/0
  asa(config)#nameif outside // 名字是outside
  asa(config)#securit-level 0 // 安全级别0
  asa(config)#ip address *.*.*.* 255.255.255.0 // 配置公网IP地址
  asa(config)#duplex full
  asa(config)#
  asa(config)#no shutdown
  配置内网的接口,名字是inside,安全级别 100
  asa(config)#interface GigabitEthernet0/1
  asa(config)#nameif inside
  asa(config)#securit-level 100
  asa(config)#duplex full
  asa(config)#speed 100
  asa(config)#no shutdown
  配置DMZ的接口,名字是dmz,安全级别50
  asa(config)#interface GigabitEthernet0/2
  asa(config)#nameif dmz
  asa(config)#securit-level 50
  asa(config)#duplex full
  asa(config)#
  asa(config)#no shutdown
  网络部分设置
  asa(config)#nat(inside) 1 192.168.1.1 255.255.255.0
  asa(config)#global(outside) 1 222.240.254.193 255.255.255.248
  asa(config)#nat (inside) 0 192.168.1.1 255.255.255.255 // 表示192.168.1.1这个地址不需要转换。直接转发出去。
  asa(config)#global (outside) 1 133.1.0.1-133.1.0.14 //定义的地址池
  asa(config)#nat (inside) 1 0 0 //0 0表示转换网段中的所有地址。定义内部网络地址将要翻译成的全局地址或地址范围
  配置静态路由
  asa(config)#route outside 0 0 133.0.0.2 // 设置默认路由 133.0.0.2为下一跳
  如果内部网段不是直接接在防火墙内口,则需要配置到内部的路由。
  asa(config)#Route inside 192.168.10.0 255.255.255.0 192.168.1.1 1
  地址转换
  asa(config)#static (dmz,outside) 133.1.0.1 10.65.1.101 ; 静态NAT
  asa(config)#static (dmz,outside) 133.1.0.2 10.65.1.102 ; 静态NAT
  asa(config)#static (inside,dmz) 10.66.1.200 10.66.1.200 ; 静态NAT
  如果内部有服务器需要映射到公网地址(外网访问内网)则需要static
  asa(config)#static (inside, outside) 222.240.254.194 192.168.1.240
  asa(config)#static (inside, outside) 222.240.254.194 192.168.1.240 10000 10 //后面的10000为限制连接数,10为限制的半开连接数
  ACL实现策略访问
  asa(config)#access-list 101 permit ip any host 133.1.0.1 eq www;设置ACL
  asa(config)#access-list 101 permit ip any host 133.1.0.2 eq ftp;设置ACL
  asa(config)#access-list 101 deny ip any any ; 设置ACL
  asa(config)#access-group 101 in interface outside ; 将ACL应用在outside端口
  当内部主机访问外部主机时,通过nat转换成公网IP,访问internet。
  当内部主机访问中间区域dmz时,将自己映射成自己访问服务器,否则内部主机将会映射成地址池的IP,到外部去找。
  当外部主机访问中间区域dmz时,对133.0.0.1映射成 10.65.1.101,static是双向的。
  PIX的所有端口默认是关闭的,进入PIX要经过acl入口过滤。
  静态路由指示内部的主机和dmz的数据包从outside口出去。
  -----------------------------------------------
  例子:
  sh run
  : Saved
  :
  ASA Version 8.0(2)
  !
  hostname ciscoasa
  enable password 2KFQnbNIdI.2KYOU encrypted
  names
  !
  interface Vlan1
  nameif inside
  security-level 100
  ip address 10.115.25.1 255.255.255.0
  !
  interface Vlan2
  nameif outside
  security-level 0
  ip address 124.254.4.78 255.255.255.248
  !
  interface Ethernet0/0
  switchport access vlan 2
  !
  interface Ethernet0/1
  !
  interface Ethernet0/2
  !
  interface Ethernet0/3
  !
  interface Ethernet0/4
  !
  interface Ethernet0/5
  !
  interface Ethernet0/6
  !
  interface Ethernet0/7
  !
  passwd 2KFQnbNIdI.2KYOU encrypted
  ftp mode passive
  dns domain-lookup inside
  dns domain-lookup outside
  access-list 100 extended permit icmp any any
  access-list 100 extended permit tcp any host 124.254.4.78 eq www
  access-list 100 extended permit tcp any host 124.254.4.78 eq smtp
  access-list 100 extended permit tcp any host 124.254.4.78 eq pop3
  access-list 100 extended permit tcp any host 124.254.4.78 eq ftp
  access-list 100 extended permit tcp any host 124.254.4.78 eq ssh
  access-list 100 extended permit tcp any host 124.254.4.78 eq pcanywhere-data
  access-list 100 extended permit udp any host 124.254.4.78 eq pcanywhere-status
  access-list 100 extended permit tcp any host 124.254.4.78 eq 8086
  access-list 100 extended permit tcp any host 124.254.4.78 eq 3389
  access-list 100 extended permit tcp any host 124.254.4.78 eq 2401
  access-list 100 extended permit ip any any
  access-list 100 extended permit ip any host 124.254.4.78
  pager lines 24
  mtu inside 1500
  mtu outside 1500
  icmp unreachable rate-limit 1 burst-size 1
  no asdm history enable
  arp timeout 14400
  global (outside) 1 interface
  nat (inside) 1 0.0.0.0 0.0.0.0
  static (inside,outside) tcp 124.254.4.78 www 10.115.25.2 www netmask 255.255.255.255
  static (inside,outside) tcp 124.254.4.78 ftp 10.115.25.2 ftp netmask 255.255.255.255
  static (inside,outside) tcp 124.254.4.78 smtp 10.115.25.2 smtp netmask 255.255.255.255
  static (inside,outside) tcp 124.254.4.78 pop3 10.115.25.2 pop3 netmask 255.255.255.255
  static (inside,outside) tcp 124.254.4.78 3389 10.115.25.2 3389 netmask 255.255.255.255
  static (inside,outside) tcp 124.254.4.78 8086 10.115.25.2 8086 netmask 255.255.255.255
  static (inside,outside) 124.254.4.78 10.115.25.2 netmask 255.255.255.255
  access-group 100 in interface outside
  route outside 0.0.0.0 0.0.0.0 124.254.4.73 1
  timeout xlate 3:00:00
  timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
  timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
  timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
  timeout uauth 0:05:00 absolute
  dynamic-access-policy-record DfltAccessPolicy
  no snmp-server location
  no snmp-server contact
  snmp-server enable traps snmp authentication linkup linkdown coldstart
  no crypto isakmp nat-traversal
  telnet 10.115.25.0 255.255.255.0 inside
  telnet timeout 5
  ssh timeout 5
  console timeout 0
  threat-detection basic-threat
  threat-detection statistics access-list
  !
  class-map inspection_default
  match default-inspection-traffic
  !
  !
  policy-map type inspect dns preset_dns_map
  parameters
  message-length maximum 512
  policy-map global_policy
  class inspection_default
  inspect dns preset_dns_map
  inspect ftp
  inspect h323 h225
  inspect h323 ras
  inspect netbios
  inspect rsh
  inspect rtsp
  inspect skinny
  inspect esmtp
  inspect sqlnet
  inspect sunrpc
  inspect tftp
  inspect sip
  inspect xdmcp
  inspect http
  !
  service-policy global_policy global
  prompt hostname context
  Cryptochecksum:deca4473c55485d04a622b1b9fca73d8
  : end
  ciscoasa#
  -----------------------------------------------
  asa 5505
  1.配置防火墙名
  ciscoasa> enable
  ciscoasa# configure terminal
  ciscoasa(config)# hostname asa5505
  2.配置telnet
  asa5505(config)#telnet 192.168.1.0 255.255.255.0 inside
  //允许内部接口192.168.1.0网段telnet防火墙
  3.配置密码
  asa5505(config)# password cisco
  //远程密码
  asa5505(config)# enable password cisco
  //特权模式密码
  4.配置IP
  asa5505(config)# interface vlan 2
  //进入vlan2
  asa5505(config-if)# ip address 218.xxx.37.222 255.255.255.192
  //vlan2配置IP
  asa5505(config)#show ip address vlan2
  //验证配置
  5.端口加入vlan
  asa5505(config)# interface e0/3
  //进入接口e0/3
  asa5505(config-if)# switchport access vlan 3
  //接口e0/3加入vlan3
  asa5505(config)# interface vlan 3
  //进入vlan3
  asa5505(config-if)# ip address 10.10.10.36 255.255.255.224
  //vlan3配置IP
  asa5505(config-if)# nameif dmz
  //vlan3名
  asa5505(config-if)# no shutdown
  //开启
  asa5505(config-if)# show switch vlan
  //验证配置
  6.最大传输单元MTU
  asa5505(config)#mtu inside 1500
  //inside最大传输单元1500字节
  asa5505(config)#mtu outside 1500
  //outside最大传输单元1500字节
  asa5505(config)#mtu dmz 1500
  //dmz最大传输单元1500字节
  7.配置arp表的超时时间
  asa5505(config)#arp timeout 14400
  //arp表的超时时间14400秒
  8.FTP模式
  asa5505(config)#ftp mode passive
  //FTP被动模式
  9.配置域名
  asa5505(config)#domain-name Cisco.com
  10.启动日志
  asa5505(config)#logging enable
  //启动日志
  asa5505(config)#logging asdm informational
  //启动asdm报告日志
  asa5505(config)#Show logging
  //验证配置
  11.启用http服务
  asa5505(config)#http server enable
  //启动HTTP server,便于ASDM连接。
  asa5505(config)#http 0.0.0.0 0.0.0.0 outside
  //对外启用ASDM连接
  asa5505(config)#http 0.0.0.0 0.0.0.0 inside
  //对内启用ASDM连接
  12.控制列表
  access-list acl_out extended permit tcp any any eq www
  //允许tcp协议80端口入站
  access-list acl_out extended permit tcp any any eq https
  //允许tcp协议443端口入站
  access-list acl_out extended permit tcp any host 218.xxx.37.223 eq ftp
  //允许tcp协议21端口到218.xxx.37.223主机
  access-list acl_out extended permit tcp any host 218.xxx.37.224 eq 3389
  //允许tcp协议3389端口到218.xxx.37.224主机
  access-list acl_out extended permit tcp any host 218.xxx.37.225 eq 1433
  //允许tcp协议1433端口到218.xxx.37.225主机
  access-list acl_out extended permit tcp any host 218.xxx.37.226 eq 8080
  //允许tcp协议8080端口到218.xxx.37.226主机
  asa5505(config)#show access-list
  //验证配置
  13.设置路由
  asa5505(config)#route dmz 10.0.0.0 255.0.0.0 10.10.10.33 1
  //静态路由到10.0.0.0网段经过10.10.10.33网关跳数为1
  asa5505(config)#route outside 0.0.0.0 0.0.0.0 218.16.37.193 1
  //默认路由到所有网段经过218.xxx.37.193网关跳数为1
  asa5505# show route
  //显示路由信息
  14.静态NAT
  asa5505(config)# static (inside,outside) 218.xxx.37.223 192.168.1.6 netmask 255.255.255.255
  //外网218.xxx.37.223映射到内网192.168.1.6
  asa5505(config)#access-list acl_out extended permit icmp any any
  //控制列表名acl_out允许ICMP协议
  asa5505(config)#access-group acl_out in interface outside
  //控制列表acl_out应用到outside接口
  asa5505(config)#static (inside,dmz) 10.10.10.37 192.168.1.16 netmask 255.255.255.255
  //dmz10.10.10.37映射到内网192.168.1.16
  asa5505(config)#access-list acl_dmz extended permit icmp any any
  //控制列表名acl_dmz允许ICMP协议
  asa5505(config)#access-group acl_dmz in interface dmz
  //控制列表acl_out应用到dmz接口
  asa5505(config)#Show nat
  //验证配置
  15.动态NAT
  asa5505(config)#global(outside) 1 218.201.35.224-218.201.35.226
  //定义全局地址池
  asa5505(config)#nat(inside) 1 192.168.1.20-192.168.1.22
  //内部转换地址池
  asa5505(config)# show xlate
  //验证配置
  16.基于端口NAT(PAT)
  asa5505(config)#global (outside) 2 interface
  //定义全局地址即outside地址:218.xxx.37.222
  asa5505(config)#nat (inside) 2 192.168.1.0 255.255.255.0
  //内部转换地址池
  asa5505(config)# show xlate
  //验证配置
  17.基于LAN故障倒换(failover)
  1).主防火墙配置
  asa5505(config)#failover mac addr outside 001a.2b3c.4d11 001a.2b3c.4w12
  //故障倒换虚拟MAC地址
  asa5505(config)#failover mac addr inside 001a.2b3c.4d21 001a.2b3c.4w22
  //故障倒换虚拟MAC地址
  asa5505(config)#failover mac addr inside 001a.2b3c.4d21 001a.2b3c.4w32
  //故障倒换虚拟MAC地址
  asa5505(config)#failover
  //启动故障倒换
  asa5505(config)#failover lan unit primary
  //设置主要防火墙
  asa5505(config)#failover lan interface standby Vlan4
  //故障倒换接口名standby
  asa5505(config)#failover interface ip standby 172.168.32.1 255.255.255.252 standby 172.168.32.2
  //配置主防火墙IP:172.168.32.1,备用防火墙IP:172.168.32.2
  asa5505# show failover
  //验证配置
  2).备防火墙配置
  asa5505(config)#failover mac addr outside 001a.2b3c.4d11 001a.2b3c.4w12
  //故障倒换虚拟MAC地址
  asa5505(config)#failover mac addr inside 001a.2b3c.4d21 001a.2b3c.4w22
  //故障倒换虚拟MAC地址
  asa5505(config)#failover mac addr inside 001a.2b3c.4d21 001a.2b3c.4w32
  //故障倒换虚拟MAC地址
  asa5505(config)#failover
  //启动故障倒换
  asa5505(config)#failover lan unit secondary
  //设置备用防火墙
  asa5505(config)#failover lan interface standby Vlan4
  //故障倒换接口名standby
  asa5505(config)#failover interface ip standby 172.168.32.1 255.255.255.252 standby 172.168.32.2
  //配置主防火墙IP:172.168.32.1,备用防火墙IP:172.168.32.2
  asa5505# show failover
  //验证配置
  18.显示mac地址
  asa5505# show switch mac-address-table
  19.保存配置
  asa5505# write memory

Cisco ASA 5505配置详解(v8.3之前版本)的更多相关文章

  1. 思科(Cisco)路由器策略路由配置详解

    策略路由是路由优化的常用方法.在做路由牵引时很多情况都要用到策略路由.我刚刚接触思科这东西,对策略路由的配置还不太熟悉,今天终于配好了,记录一下. 网络拓扑 R2的E1\E2口分别与R3的E1\E2口 ...

  2. CISCO ASA 5505 经典配置案例

    nterface Vlan2 nameif outside  ----------------------------------------对端口命名外端口  security-level 0 -- ...

  3. Log4j配置详解(转)

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  4. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  5. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  6. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  7. logback配置详解3<filter>

    logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY ...

  8. logback配置详解2<appender>

    logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...

  9. log4j.properties配置详解

    1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ...

随机推荐

  1. WebService基础概念

    一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...

  2. first集合follow集的求法

    FIRST集的定义 : 设G=(VT,VN,P,S)是上下文无关文法 FIRST(a)={a|a=>*ab,a∈VT, a,b∈V*} 若a=>*ε则规定ε∈FIRST (a) FIRST ...

  3. admin端的专业管理模块功能测试

    1.概述 1.1 测试范围 本次所测试的内容是admin端的专业管理模块. 1.2 测试方法 本次测试采用黑盒子方法进行集成测试. 1.3 测试环境 操作系统:Windows 2012 Server ...

  4. Beta冲刺第5次

    二.Scrum部分 1. 各成员情况 翟仕佶 学号201731103226 今日进展 新增将图片转为粉笔画功能代码 存在问题 难者不会,会者不难,主要是参数设置问题 明日安排 视情况而定,可能还是写扩 ...

  5. MySQL 中的默认数据库介绍

    MySQL 中的默认数据库介绍:https://dataedo.com/kb/databases/mysql/default-databases-schemas 默认数据库 官方文档 informat ...

  6. 跑起来JEE论坛、商城和网站的经验总结

    前言:昨天我们老大给我分配了几个任务,让我把几个公司的项目运行起来跑一下,几个项目都是JEE上开源的,三个项目,一个网站内容系统.一个BBS论坛.一个jspgou商城,这三个都是开源的,倒腾了两天,今 ...

  7. oc语言的特征

    类型结构+运行时 内存管理:引用计数与析构 并发:gcd 函数式:block

  8. 优化sql技巧

    当表很大的时候可以设计冗余字段,避免与大表连表查询造成性能低下 比如日志表和用户表,日志表通常到后期会相当的大可以做一个username的冗余字段,避免查看username的时候去和user表关联 当 ...

  9. Hibernate的事务

    1.数据库的封锁(https://www.cnblogs.com/zhai1997/p/11710082.html): 封锁是实现并发控制的重要技术. read uncommitted : 读取尚未提 ...

  10. Xamarin.Forms快速入门-深入探讨

    官网链接 项目介绍 以Notes项目为例,The Notes application consists of one solution containing four projects, as sho ...