LINUX的网络管理与应用_第1页
LINUX的网络管理与应用_第2页
LINUX的网络管理与应用_第3页
LINUX的网络管理与应用_第4页
LINUX的网络管理与应用_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LINUX的网络管理与应用Linux系统与编程第5章Linux的网络管理及应用

DalianPolytechnicUniversity2第1节Linux网络管理命令

第2节文件服务器配置第3节DNS服务器配置第4节Web服务器配置第5节Mail服务器配置第6节FTP服务器配置本章内容说明:本章中有关服务器配置一般给了两种操作方式:图形操作或直接修改配置文件。由于RedHatEnterpriseLinux6默认安装不带服务器配置图形化操作界面,教材上的图形化操作例子是在HatEnterpriseLinux5.5下完成。3ifconfig

ping

netstat

其它常用命令5.1Linux网络管理命令

4Ifconfig——查看和更改网络接口的地址和参数。使用格式为:

ifconfig[网络接口名][IP地址][netmask子网掩码][up|down]常用参数如下:-interface:网络接口名,如eth0和eth1。up:激活网卡设备。down:关闭网卡设备。broadcastaddress:设置接口的广播地址。pointpoint:启动点对点方式。address:指定设备的IP地址。netmaskaddress:设置子网掩码。

Ifconfig——配置网络接口命令为了弄清上述问题,我们需弄清什么是网络接口、IP地址、子网掩码51.什么是网络接口?Ifconfig——配置网络接口命令网络接口指的网络设备的各种接口(它主要用于数据的传输),我们现今正在使用的网络接口都为以太网接口。常见的以太网接口类型有RJ-45接口,RJ-11接口,SC光纤接口,FDDI接口,AUI接口,BNC接口,Console接口。我们的硬件是通过什么硬件连接上Internet的呢?为什么能连上?使用的就是网卡,目前主流的网卡均为使用以以太网协议所开发出来的以太网卡(Ethernet),因此我们能够通过网卡(以太)连接Internet,在LINUX里我们就称这种网络接口为ethN(N为数字)。如我们的LINUX主机网络接口就是etho(第一张为0号开始)62.什么是IP地址Ifconfig——配置网络接口命令TCP/IP协议概述

现在,随着Internet的迅速发展使得计算机网络的应用已经开始遍及到我们现实生活的方方面面,而在Internet网络上所使用的协议正是TCP/IP(TransmissionControlProtocol/InternetProtocol)协议,即传输控制协议/网际协议

.在20世纪60年代后期开发出来了用于“异构”网络环境中的TCP/IP协议。也就是说,TCP/IP协议可以在各种硬件和操作系统上实现。在TCP/IP体系中,网际协议(IP)是最主要的协议之一。为什么每个主机都有一个唯一的IP地址?1.每个主机都有唯一的地址,它是通过IP协议来实现的。2.IP协议要求在每次与TCP/IP网络建立连接时,每台主机都必须为这个连接分配一个唯一的32位地址,因为在这个32位IP地址中,不但可以用来识别某一台主机,而且还隐含着网际间的路径信息。72.什么是IP地址Ifconfig——配置网络接口命令需要强调指出的,上述提到的主机是指网络上的一个节点,不能简单地理解为一台计算机,实际上IP地址是分配给计算机的网络适配器(即网卡)的,一台计算机可以有多个网络适配器,就可以有多个IP地址,一个网络适配器就是一个节点。IP地址为32位地址,一般以4个字节表示,每一个字节为8位二进制。每个字节的数字又用十进制表示,即每个字节的数的范围是0~255,且每个数字之间用点隔开,例如:,这种记录方法称为“点-分”十进制记号法。8Ifconfig——配置网络接口命令1.网络类型2.网络ID3.主机ID2.什么是IP地址——IP地址结构IP地址的32位被分成了3个字段:网络类型字段、网络ID字段和主机ID字段网络类型字段用于标识网络的类型,到目前为止网络划分为A~E五类主机ID是该主机在网络中的标识。网络ID则标识该主机所在的网络,由网络类型字段和网络ID字段构成网络标识9Ifconfig——配置网络接口命令1.网络类型2.网络ID3.主机ID2.什么是IP地址——IP地址的基本分配原则同一网络内的所有主机分配相同的网络标识号,同一网络内的不同主机必须分配不同的主机ID号,以区分主机不同网络内的每台主机必须具有不同的网络标识号,但是可以具有相同的主机标识号。按照IP地址的结构和其分配原则,可以在Internet上很方便的寻址:先按IP地址中的网络标识号找到相应的网络,再在这个网络上利用主机ID找到相应的主机。IP不仅是计算机的代号,还表明了某个网络上的某个计算机10Ifconfig——配置网络接口命令为了充分利用IP地址空间,Internet委员会定义了五种IP地址类型以适合不同容量的网络,即A类至E类,如下图所示。其中A、B、C三类由InterNIC(Internet网络信息信心)在全球范围内统一分配,D、E类为特殊地址。0网络地址ID(7BIT)主机地址ID(24BIT)0 1 78 31A类IP地址10网络地址ID(14BIT)主机地址ID(16BIT)012151631B类IP地址2.什么是IP地址——IP地址的分类注:A类地址的首字节为0~127注:B类地址的首字节为128~19111Ifconfig——配置网络接口命令2.什么是IP地址——IP地址的分类110网络IP地址(21BIT)主机地址ID(16BIT)0123 2324 31C类IP地址1110广播地址ID(28BIT)01234 31D类IP地址留给Internet体系结构委员会使用11110保留用于将来和试验使用01234 5 31E类地址注:C类地址的首字节为192~22312Ifconfig——配置网络接口命令例如:一个IP地址为4,其用二进制表示为1000100010,请问此IP地址属于哪一类网络,其网络ID号以及对应的十进制值为多少?其主机号以及对应的十进制值是多少?2.什么是IP地址——IP地址的分类通过与上图比较可以看出,此IP地址属于B类网络,其网络ID号为0000,即524,主机号为0000010000100010,即为105813Ifconfig——配置网络接口命令3.什么是子网掩码(netmask)无论前述哪一类网络,其拥有主机数都是有一定的限制的,如果将其限制在数以万计或几千万计的主机数量,是不切实际的,为了解决这个问题人们开发出了子网(Subnet)技术——将主机地址进一步的分成附加网络。子网是指在一个IP地址上生成的逻辑网络,把一个网络分成多个子网(如下3个),要求每个子网使用不同的网络ID,通过把主机号(主机ID)分成两个部分,为每个子网生成唯一的网络ID。一部分用于标识作为唯一网络的子网,另一部分用于标识子网中的主机,这样原来的IP地址结构变成如下三层结构:网络地址部分子网地址部分主机地址部分子网接收IP地址的主机部分,然后使用子网掩码再将主机部分分开,分成子网地址部分和主机地址部分。14Ifconfig——配置网络接口命令3.什么是子网掩码(netmask)子网掩码是一个32位地址,它用于屏蔽IP地址的一部分以区别网络ID和主机ID;用来将网络分割为多个子网;判断目的主机的IP地址是在本局域网或是在远程网在TCP/IP网络上的每一个主机都要求有子网掩码。这样当TCP/IP网络上的主机相互通信时,就可用子网掩码来判断这些主机是否在相同的网络段内。注:子网将一个网络分为多个网络,并不是直接利用子网掩码将原来的主机地址分隔开,而是通过子网掩码与原来的IP地址进行逻辑与运算后,运算后所得结果的前三个字为网络ID,后一个字为计算机ID。得到不同的子网段,每一个子网段可以有多台计算机(即不同的主机ID)15Ifconfig——配置网络接口命令3.什么是子网掩码(netmask)默认子网掩码用于不分子网的TCP/IP网络。类子网掩码子网掩码的二进制表示A11111111.00000000.00000000.00000000B11111111.11111111.00000000.00000000C11111111.11111111.11111111.0000000016Ifconfig——配置网络接口命令3.什么是子网掩码(netmask)思考:有一台主机的IP地址为,子网掩码为;有另一台主机的IP地址为,子网掩码也为,问这两台主机是否在同一个网段内,如果是请问为什么?它们的主机ID是多少?的二进制表示为

1100000101B;子网掩码为,其二进制值为11111111111111111111111100000000,则当和进行逻辑与运算110000000011111111111111111111111111111111110000000后,所得出结果为1100000000,其中非0的三个字节,即为该网络ID,剩余的字节(即5)为主机ID。若该网络的另一台的IP地址为,子网掩码也为,则同样会得到网络ID为,因此这两台主机在同一网段内。17Ifconfig——查看和更改网络接口的地址和参数。ifconfig示例Ifconfig——配置网络接口命令1.运行无参数的ifconfig命令,显示当前网络接口的状态两个网络接口:eth1(以太网卡设备);lo(回环设备:它是一个虚拟的网络接口)。Loopback是指IP数据包回送到本机上。通常使用的是(代表本机)作为回送地,Loopback通常用于测试网络配置和本地程序之间通信用。Eth1的MAC地址(HWaddr),所分配的IP等。eth1为首的第一行是本机的以太网卡配置参数,这里显示了网卡的设备名和硬件的MAC地址00:00:E8:7D:FB:51(MAC地址是由生产厂家指定的,每个网卡拥有的唯一地址,MAC地址是一个48位地址,图中是以16进制表示的),广播地址用于向同一网段的计算机传播信息Eth1的接口处于UP(打开)状态18Ifconfig——查看和更改网络接口的地址和参数。ifconfig示例Ifconfig——配置网络接口命令2.将网卡的IP地址设置为,子网掩码为必须设置存在的网卡,否则会出错。必须是根用户才能修改IP等。修改后效果19ifconfig示例应用实例:网卡信息的查看、关闭、打开与修改网卡配置信息指定查看某一个网卡的信息网卡接口的关闭与打开,以及修改网卡的IP地址和子网掩码20Ping命令是使用ICMP协议来检测整个网络连通情况

ping

ICMP是(InternetControlMessageProtocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ping命令是最常用的网络测试命令,该命令通过向被测试的目的主机地址发送ICMP报文并收取回应报文,来测试当前主机到目的主机的网络连接状态。在Linux系统中,ping命令默认会不间断地发送ICMP报文直到用户使用“Ctr+C”键来终止该命令,使用“-c”参数可指定发送ICMP报文的数目。该命令的常用格式如下:ping[-c发出报文次数]目的主机IP地址/主机名21Ping命令是使用ICMP协议来检测整个网络连通情况

ping

ping-c305//检查本机的网络设备工作情况,设置回应3次(假设本机的IP为05)。ping-c3//检查域名为

的网络连接情况ping-c3//查看本机是否安装TCP/IP,网卡是否工作正常。

ping-c3-s200005//找出最大MTU(接口最大传输单位)数值,向IP为05的设备发送2000字节的数据包。ping-c3-R05//查看IP记录路由。Ping命令常用的功能参数:-c次数//指定返回次数-s尺寸//指定数据包尺寸(字节)。默认情况下数据包尺寸为56字节,加上网络包头8字节,共64字节。-R绕开路由表,直接向目标主机发送数据包,由于检查网络配置是否有问题。22ping示例检查本机的网络设备工作情况(先使用ifconfig查看)检查域名为

的网络连接情况23netstat用于查看网络状态,一般用法如下:netstat-antpu//常用查看命令。netstat-a//显示已经建立连接的接口。netstat-rn//显示路由表状态,且直接使用ip及端口号。netstat

24netstat示例25traceroute是数据包路由跟踪诊断命令,可以查看数据包在网络上传输的路径情况,例子:traceroute05traceroutetraceroute-ntraceroute

26dig域信息搜索器,常见用法如下面的例子:digsohu+nssearch//查看包含sohu的授权域名服务器,并显示网段中每台域名服务器的SOA记录。dig+trace//从根服务器开始追踪域名的解析过程。dig-x80//对80进行逆向查询。dig//根据域名来查询IP地址。dig27ARP(AddressResolutionProtocol,地址解析协议)表也称ARP缓存,包含一个本地网络上所有MAC地址到IP地址的完整映射。常用参数如下:-a:显示所有接口当前缓存。-d:删除指定的IP地址项。-v:使用冗长形式显示。-n:使用数值形式的地址代替主机名。-s:增加指定IP缓存。

ARP28使用实例如下:arp-a//显示本地网络的所有入口。arp-varp-a-n05arp-s0500:0C:29:75:B9:BD//将IP和物理地址绑定。arp-Hether//查看ether类型的网卡。arp-a4//显示主机的所有入口。

ARP29nslookuptelnetftpmailtcpdumpnmap其它命令30两种常用文件服务器软件NFS:主要用于Linux主机间的共享文件

Samba:Linux与Windows间的文件共享

5.2文件服务器配置31NFS是Network的简写,即网络文件系统。是Unix,Linux支持的文件系统中的一种。NFS允许一个系统在网络上与它人共享目录和文件。NFS采用的是C/S体系结构,至少有两个主要部分:一台服务器和一台(或者更多)客户机。

为什么要采用NFS。本地工作站使用更少的磁盘空间,因为通常的数据可以存放在另一台机器上而且可以通过网络访问到。用户不必在每个网络上机器中都有一个home目录。home目录可以被放在NFS服务器上并且在网络上处处可用。诸如CDROM之类的存储设备可以在网络上面共享被别的机器使用。这可以减少整个网络上的可移动存储设备的数量。NFS配置

32NFS使用示例

假设要把B计算机上的/usr/man挂载到A的/usr/man,首先得在B机器上安装NFS服务器端软件并完成配置,然后只需要在A主机上运行mount-tnfsB_machine_name(orIP):/usr/man/usr/man就可达到共享目的。33在终端下建立以下目录,注意本章中的操作都是用root用户直接操作,目录拥有者是root,注意目录访问权限。[root@localhost~]#mkdir–p/nfs/public[root@localhost~]#mkdir/nfs/test[root@localhost~]#mkdir/nfs/root[root@localhost~]#mkdir/nfs/users要共享的目录建完后,打开配置文档/etc/exports。[root@localhost~]#vi/etc/exportsNFS服务器配置实例34并对文件内容作出以下修改:/nfs/public/24(rw,async)*(ro)/nfs/test53(rw,sync)/nfs/root*.(ro,no_root_squash)/nfs/users*.(rw,insecure,all_squash,sync,no_wdelay)vi保存退出,并重启NFS服务,至此服务已经配置完成。[root@localhost~]#servicenfsrestartNFS服务器配置实例35SMB(ServerMessageBlock)通信协议是微软和英特尔在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB协议通常是被Windows系列用来实现磁盘和打印机共享。Samba就是在Linux和UNIX系统上实现SMB协议的一个免费软件,采用的是C/S结构,由服务器及客户端程序构成。samba配置36提供Windows风格的文件和打印机共享。Windows操作系统可以利用Samba共享Linux等其他操作系统上的资源,而从外表看起来和共享Windows的资源没有区别。在Windows网络中解析NetBIOS的名字。为了能够利用局域网上的资源,同时使自己的资源也能被别人所利用,各个主机都定期地向局域网广播自己的身份信息。负责收集这些信息,提供检索的服务器也被称为浏览服务器,而Samba能够实现这项功能。同时在跨越网关的时候Samba还可以作为WINS服务器使用。提供SMB客户功能。利用Samba程序集提供的smbclient程序可以在Linux中以类似于FTP的方式访问Windows共享资源。Samba的主要功能37(1)添加Linux用户。[root@localhost~]#useraddforkp//添加用户名forkp[root@localhost~]#passwdforkp//给用户名forkp添加密码(2)给samba服务器添加用户。注意:登陆samba的用户必须已经是Linux中的用户[root@localhost~]#smbpasswd-aforkp//添加并给forkp设置samba密码(3)建立共享目录。[root@localhost~]#mkdir/home/share[root@localhost~]#chown-Rforkp:forkp/home/share

Samba的终端配置法38(4)smb.conf设置。[root@localhost~]#cd/etc/samba//进入设置目录[root@localhost~]#cpsmb.conf

smb.conf.bak//做好备份[root@localhost~]#vismb.conf//修改smb.conf文件对smb.conf以下选项作出相应修改:

Samba的终端配置法39[global]workgroup=MYGROUP//设置局域网中的工作组名serverstring=SambaServer//设置Linux主机描述性文字,比如:sambaserver。security=user//samba的安全等级,user代表需要输入用户名和密码,改成share则不需要输入用户名和密码path=/home/share//要共享的文件夹名,在共享前还要建立这个文件夹,并设好权限以便访问,下面会说明。validusers=forkp//这个share共享目录只允许forkp这个用户进入public=no//no表示除了forkp这个用户,其它用户在进入samba服务器后看不见forkp这个目录,如果为yes,虽然能看见forkp这个目录,但除了forkp这个用户能进入这个目录,其它人进不了。writable=yes//允许forkp在share目录中进行读和写操作,反之noSamba的终端配置法40最后vi存盘退出。(5)重启samba服务使修改生效。[root@localhost~]#/etc/init.d/sambarestart或者servicesmbrestartSamba的终端配置法41设置samba服务要注意以下两点,即两个两次:(1)添加两次用户:一次添加系统用户#useradd用户名;再一次是添加samba用户#smbpasswd-a用户名;(2)设置两次权限:一次是在smb.conf中设置共享文件夹的权限再一次是在系统中设置共享文件夹的权限#chmod777文件夹名。注意事项42DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。DNS服务器又分为主DNS服务器,辅/从DNS服务器,缓存DNS服务器,转发DNS服务器等多种类型,每种服务器在域名服务系统中所起的作用都不一样5.3DNS服务器配置

43主DNS服务器(Master/PrimaryServer):承担基本的域名解析服务的是主DNS服务器(Master或Primary)。每一个网络至少有一个主DNS服务器,以解析网络上的域名或IP。辅/从DNS服务器(Slave/SecondayServer):在一些比较大的网络中,为了保证DNS服务器能够提供可靠的域名解析服务,通常会在建立主DNS服务器的基础上,建立至少一个辅DNS服务器。辅DNS服务器可以直接从主DNS服务器上进行更新,是主DNS服务器的替换服务器。由于辅DNS服务器保留了一份所在域信息的完整副本,因此能够以授权的方式回答相关域的查询请求。辅DNS服务器具备主DNS服务器的大部分功能,因此也被称为备份DNS服务器。DNS服务器的分类44缓冲DNS服务器(CachingonlyServer):为减轻工作负担,本地DNS服务器可以设置为缓冲DNS服务器(Caching)。缓冲DNS服务器会缓冲部分从其他服务器上获得的查找结果,并在解析请求发送到主DNS服务器之前首先进行匹配,一些重复的请求可以由缓冲服务器直接进行应答,但这种应答不能完全保证解析结果的有效性。转发DNS服务器(ForwardServer):转发DNS服务器用于将发往本地DNS服务器的解析请求发送到本地网络之外的DNS服务器上,本身不保留任何FQDN(完全规范域名)信息或IP地址信息。转发DNS服务器可以用于保持局域网上的DNS服务器对Internet的隐藏。DNS服务器的分类45主机(A):用于将DNS域名映射到计算机使用的IPV4地址。别名(CNAME):用于将DNS域名的别名映射到另一个主要的或规范的名称。别名资源记录有时也称为规范名称。这些记录允许使用多个名称指向单个主机,使得某些任务更容易执行。例如在同一台计算机上有FTP服务器和WEB服务器。邮件交换器(MX):用于将DNS域名映射为交换或转发邮件的计算机的名称。它由电子邮件应用程序使用,用以根据在目标地址中使用的DNS域名为电子邮件接收定位邮件服务器。指针(PTR):用于映射基于指向正向DNS域名的计算机的IP地址反向DNS域名,支持在域中创建和确立的区域的反向搜索过程。这些记录用于通过IP地址定位计算机并为该计算机信息解析为DNS域名。

资源记录类型46在这里我们将把这台主机安装配置成一台DNS服务器,并为它添加两个域名分别为和forkp,这两个域名都对应指向。在这里,我们通过拷贝作为named.conf文件,并在此文件中添加自己的区域。[root@localhost~]#cpnamed.rfc1912.zonesnamed.conf[root@localhost~]#vinamed.confDNS软件bind配置过程47这里设置了两个域,和forkp,并修改named.conf内容如下,其它代码略。DNS软件bind配置过程zone""IN{typemaster;file".zone";allow-update{none;};};zone"1.168.192."IN{typemaster;file"1.168.192.zone";allow-update{none;};};zone"forkp"IN{typemaster;file"forkp";allow-update{none;};};48在/var/named/chroot/var/named/下,多出了系统常见的区域数据文件。我们可以copy这些文件作为我们自定义的区域数据文件。然后分别对这三个文件进行编辑,修改成以下内容:DNS软件bind配置过程49$TTL86400@INSOA..(42;serial(d.adams)3H;refresh15M;retry1W;expiry1D);minimumINNS.DNS软件bind配置过程50$TTL86400@INSOAns.forkp.root.forkp.(42;serial(d.adams)3H;refresh15M;retry1W;expiry1D);minimumINNSns.forkp.DNS软件bind配置过程51$TTL864001.168.192..INSOAns.forkp.root.mictrotrend.(42;serial(d.adams)3H;refresh15M;retry1W;expiry1D);minimumINNSns.forkp.201INPTR.201INPTRns.forkp.DNS软件bind配置过程52将本机的DNS服务器指向自身IP并进行测试。也就是配置本机的DNS服务器为自己的,现在由刚配置好的DNS服务器为你做DNS解析。测试[root@localhost~]#nslookup>Address:01#53Name:Address:01#53Address:01#5392.name=.92.name=ns.forkp.53Linux很适合作各种服务器,对于Linux系统而言能轻易的搭建起支持PHP或者JSP的服务器,在Linux下面实现web服务,通常使用Apache来实现。Apached服务的配置文件在/etc/d/conf/d.conf,网页默认路径在/var/中。5.4Web服务器配置

54d启动效果55WWW服务器虚拟主机技术是指使用同一台WWW服务器,运行多个不同的网站服务并且互不干扰的技术虚拟主机技术分为三种:基于域名基于IP地址基于端口号构建虚拟Web主机56修改/usr/local/apache2/conf/extra/d-vhosts.conf,建立两个虚拟主机域名forkp和,并且重定向各自文件目录。构建基于域名的虚拟Web主机NameVirtualHost<VirtualHost>DocumentRoot/usr/local/apache2/htdocs/forkp//存放网页内容的目录ServerName//网站域名</VirtualHost><VirtualHost>DocumentRoot/usr/local/apache2/htdocs/dlpuServerName</VirtualHost>

57首先给一个网卡配置多个ip地址:修改/usr/local/apache2/conf/extra/d-vhosts.conf构建基于IP地址的虚拟Web主机<VirtualHost>DocumentRoot/usr/local/apache2/htdocs/forkpServerName</VirtualHost><VirtualHost>DocumentRoot/usr/local/apache2/htdocs/dlpuServerName</VirtualHost>

58修改/usr/local/apache2/conf/extra/d-vhosts.conf构建基于端口的虚拟Web主机Listen:81Listen:82<VirtualHost:81>DocumentRoot/usr/local/apache2/htdocs/forkpServerName</VirtualHost><VirtualHost:82>DocumentRoot/usr/local/apache2/htdocs/dlpuServerName</

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论