基本概念
- 请求DHCP服务:linux系统充当了DHCP客户端,在每个启用的端口上发送对DHCP服务器的请求,并且在请求中使用网络接口的MAC地址来识别自己。
- 从DHCP服务器获取响应:从DHCP服务器返回给DHCP客户端。内容至少包含:
- ip地址:DHCP服务器通常拥有一个ip地址范围,可以向网络上任何请求地址的系统分发这些ip地址。在更安全的环境中(比如内网),或者在一个想要保持计算机获取特定ip的环境中,DHCP服务器还可以为来自特定MAC地址(mac地址是所有的网络接口卡具有一致性,他由每种网络接口卡的制造商进行分配)的请求提供特定的ip地址。
- 子网掩码:告诉客户端ip地址中哪一部分确定了子网,哪一部分确定了主机。比如:ip 172.0.0.1 子网掩码为255.255.255.0 表示172.0.0为子网 1确定是哪个计算机。
- 租赁时间:DHCP客户端被分配ip后,会有一个租赁时间,过期需要重新租赁,默认事件为24小时。
- 域名服务器(DNS):用于域名与ip地址的映射转换。通常DCHCP服务器会将一个或多个DNS主机地址分配给DHCP客户端。
- 默认网关:为了让一个网络请求离开本地网络,必须知道网络上的哪个节点提供了到本地网络地址之外的路由。DHCP服务通常提供了默认网关ip,通过将子网和邻近网络上的网络接口设定到最终目的地。网关就可以将数据包路由到他们的目的地。
ip addr 内容介绍:
lo:显示了环回接口,该接口被用来允许在本地系统运行网络命令,从而连接到本地系统
本机的ip为172.0.0.1/8(/8为CIDR符号,表示172.0为网络号,0.1为主机号,有点类似子网掩码)
enp0s3:这个网卡是开启连接的,并且显示了ip地址及mac地址
网络配置文件
配置说明:/usr/share/doc/initscripts-9.49.46/sysconfig.txt
不同系统版本号可能不同
- 网络接口文件:
针对每个有线、无线、ISDN、拨号及其他类型的网络接口的配置文件都由/etc/sysconfig/network-scripts目录中以ifcfg-interface开都的文件表示(interface由网络接口名替换)。ifdown enp0s3 可以通过名字关闭接口,ip addr查看,ifup enp0s3 开启接口
[root@localhost network-scripts]# cat ifcfg-enp0s3
#Ethernet类型的接口,以太网
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#表示从DHCP服务器请求地址信息:dhcp自动获取ip,none/static 固定的ip地址
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
#名字
NAME="enp0s3"
#mac地址
UUID="56ad9933-39f7-4476-a213-8f0a79734e7d"
#设备名
DEVICE="enp0s3"
#表示在系统启动时接口自动调用
ONBOOT="yes"
#防止普通用户启动和停止接口
USERCTL="no"
#是否受network程序管理
#NM_CONTROLLED="yes"
#配置静态ip地址,需要将BOOTPROTO设置为none
#IPADDR=192.168.56.100
#子网掩码
#NETMASK=255.255.255.0
#网关:确定了指向internet的路由器的地址
#GATEWAY=192.168.0.100
#防止DHCP覆盖/etc/resolv.conf文件,可以放心设置dns服务器,不用担心被覆盖
#PEERDNS="no"
#作为系统上所使用的dns服务器的ip地址写入/etc/resolv.conf文件
#DNS1=114.114.114.114
#DNS2=223.5.5.5
#DNS3=180.76.76.76
- /etc/hostname
- /etc/hosts 在DNS被创建之前,将主机名转换为ip地址的工作主要通过传递单个hosts文件来完成,随着internet不断增长,单个hosts文件难以扩展,于是出现了dns
- /etc/resolv.conf 放置dns服务器和搜索域;网络接口文件中的dns会重写该文件
- /etc/nsswitch.conf 设置了域名解析过程;优先是hosts文件,再resolv.conf文件
设置网络接口别名:一个网卡监听多个ip地址
增加文件:/etc/sysconfig/network-scripts/ifcfg-enp0s3:0 内容如下;启动服务ifup enp0s3:0
注:两个ip需要是固定的,不能自动获取
[root@localhost network-scripts]# cat ifcfg-test
#设备名
DEVICE="enp0s3:0"
ONPARENT="yes"
#配置静态ip地址,需要将BOOTPROTO设置为none
IPADDR=192.168.56.101
#子网掩码
NETMASK=255.255.255.0
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403080359513.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1MjMwODk=,size_16,color_FFFFFF,t_70)
Ethernet通道捆绑
一台计算机拥有多个网络接口卡
原因:1、高可用:再同一ip地址上有多个NIC可确保再某一子网停止或者某一NIC中断的情况下地址仍然可以到达与另一个子网相连的NIC
2、性能:如果某一NIC需要处理大量的网络流量,那么可以将这些流量分散到多个NIC
实现:我使用的虚拟测试,所以在以上截图中环境中又增加了两个网卡
TODO 待测试
设置自定义路由
简单的网络配置,法网本地网络的通信被定向到LAN上的合适接口,而与LAN之外的主机所进行的通信则被定向到一个默认网关,从而发送到远程主机。通过自定义路由,从而为特定的网络提供可选路径。
/etc/sysconfig/network-scripts新增文件:route-enp0s3
内容:
TODO需要测试
ADDRESS0=192.168.99.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.0.5
//名称后的数字表示编号
//含义:发往192.168.99的数据包,会通过本地网卡enp0s3发送,并被定向到192.168.0.5
//网络节点上。该节点将提供到另一个网路的路由,而该网络包含了193.168.99地址范围的主机
可以使用rote命令查看路由信息,我的centos系统命令是rotel
tranceroute www.baidu.com进行路由跟踪
企业网络中可以还可能将linux作为路由器,DHCP服务器,DNS服务器,代理服务器
防火墙:
根据功能的不同,防火墙可以被分为不同的类别。
- 要么基于网络,要么基于主机。基于网络保护整个网络或子网,基于主机是保护单机或服务器。
- 要么基于硬件,要么基于软件。路由器固件配置了防火墙的过滤器;isp(服务提供商)也可能提供了DSL或电缆调制解调器来获取对internet的访问,其中调制解调器包含防火墙固件,硬件。
- 要么基于网络过滤层,要么基于应用过滤层。主要针对网络模型来说,网路过滤仅允许某些数据包进入,应用过滤允许某些应用对系统进行访问
linux的防火墙主要是基于主机的网络层防火墙,主要由iptables实用工具进行管理
可以使用firewalld可视化工具进行配置防火墙的规则(一般linux的发行版本,都在iptables中增加了firewalld服务,更加灵活的管理防火墙规则);可能需要安装这个工具通过yum
iptables:
-
表(netfilter/iptable表)
filter表:提供了防火墙的数据包过滤功能,定义了数据包进出一级通过linux系统的访问控制策略
nat表:主要用于NAT(网络地址转换),可以针对NAT设置防火墙
mangle表:里面的规则会对数据包进行重构,重构的数据主要用于NAT
raw表:从”连接跟踪“中免除某些网络数据包
security:SELinux系统的附加表,通过mac规则过滤数据包 -
链
防火墙对数据包分成不同的类别,称为链
INPUT:进入linux的网络数据包
FORWARD:进入linux并且被路由到别处的数据包
OUTPUT:从linux输出的数据包
PREROUTING:被NAT所使用,以便当网络数据包进入linux时,对网络数据包进行修改
POSTROUTING:被NAT所使用,以便当数据包从linux输出之前进行修改
通过将数据包分类后,就可以对其使用对应的策略/规则。
每个表所对应的可用链
| 表 | 链 |
|–|--|
| filter | INPUT,FORWARD,OUTPUT |
| nat | PREROUTING,OUTPUT,POSTROUTING |
| mangle | INPUT,FORWARD,OUTPUT,PREROUTING,POSTROUTING |
| raw | OUTPUT,PREROUTING |
| security | INPUT,FORWARD,OUTPUT | -
策略,规则,目标
防火墙可以使用多种方法识别数据包- 源ip地址
- 目标ip地址
- 网络协议
- 入站端口
- 出站端口
- 网络状态
目标:
ACCEPT:网络数据包被服务器所接受(默认)
REJECT:网络数据包被丢弃且不允许进入服务器,同时发送一条拒绝消息
DROP:网络数据包被丢弃且不允许进入服务器,但不发送拒绝消息
工具:
我的是centos7,不同发行版本的linux可能存在差异
/ # systemctl status firewalld.service 查看防火墙策略
/ # systemctl start firewalld.service 打开防火墙
/ # systemctl stop firewalld.service 关闭防火墙
通过iptables命名可以执行指定防火墙的策略(只是略作了了解)
存储:/etc/sysconfig/iptables-config 修改策略之后,需要从定向到此文件中