文章目录
一、网络属性介绍
在网络中,计算机要想接入网络实现通信,一般要配置IP地址(address)、子网掩码(mask)、网关(gateway)、DNS服务器地址等属性。其中IP地址是主机在互联网上的逻辑地址,通过IP地址可定位互联网上某一台主机以实现网络中的三层通信;而子网掩码与IP地址按位进行“与”运算得到主机所在网段地址,可快速确定用户主机所在网络(网段)。配置了IP地址和子网掩码,就可以实现本地通信了,此外实现本地通信还需要主机的MAC地址,因为IP地址之间的通信最终要映射到MAC地址才能完成,而MAC地址一般在厂商生产时就提供了,且不可改变。能够实现本地通信之后,如果要跨网络与互联网上的其他主机通信,则需要(默认)网关,通过网关可以将本地主机的数据报文发送出去并将外网的数据包接受返回本地局域网的某台主机。在此基础上,指向DNS服务器地址基于主机名通信,例如,用户要访问网站只要键入主机名(例如:www.baidu.com)即可,而不需要知道互联网上各个服务器的IP地址。
下面介绍Linux配置网络属性以及将Linux接入网络中。
二、接入网路的两种方式
一、手动指定
1.使用命令:ifcfg家族(ifconfig、route、netstat)、iproute2家族(ip OBJECT(OBJECT:addr、link、route)、nm家族)
注意:命令修改一般是临时的修改,重启后失效
2.修改配置文件
修改配置文件,永久有效,但是可能不能立即生效,需要重启服务。
/etc/sysconfig/network-scripts/ifcfg-NETWORK_CARD_NAME(此文件通过大量的参数来定义接口的属性,可以通过vim等文本编辑器直接修改)
二、动态获取
如果本地网络中存在DHCP服务器,可以动态的获取到IP地址、网关地址、DNS服务器地址等
三、文本图形化配置
三、网络接口的命名规则
Centos 6之前基于传统的命名方式如:eth0,eth1,…
Centos 7 提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名是全自动的、可预知的,缺点是比eth0、wlan0更难读。比如enp5s0
(1)传统命名
以太网:ethX;例如:eth0,eth1,...
PPP网络:pppX,;例如:ppp0,ppp1,...
(2)可预测的命名方案(Centos 7)
基于Fireware、拓扑结构支持多种不同的命名方案
规则1:如果Fireware或BIOS为主板上集成的设备提供索引信息可用,则根据此索引进行命名,如:eno1,eno2,...;否则根据规则2
规则2:如果Fireware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2,...;否则根据规则3
规则3:如果硬件接口的物理位置信息可用,则根据此信息命名,例如:enx122161ab212;
规则4:如果用户显示定义,也可根据MAC地址命名,例如:enx122161ab212
规则5:上述均不可用时,则仍使用传统方式命名
上面的所有命名规则需要依赖于一个安装包:biosdevname
命名格式的组成:
前两个字符的含义
en:Ethernet(以太网)
wl:wlan(无线局域网)
ww:wwlan(无线广域网)
第三个字符根据设备类型来选择:
format description
o<index>:集成设备索引号
s<slot>:扩展槽的索引号
x<MAC>:基于MAC进行命名
p<bus>s<slot>:PCI扩展总线
配置回归传统命名方式
1.编辑内核参数
在GRUB_COMDLINE_LINUX中加入net.ifnames=0即可
# vim /etc/default/grub
GRUB_COMDLINE_LINUX=“crashkernel=auto net.ifnames=0 rhgb quiet”
2.为grub2生成配置文件
编辑完grub配置文件以后不会立即生效,需要生成配置文件。
ifcfg家族相关命令
ifconfig命令
功能:用来查看、配置、启用或禁用网络接口的工具。可以用这个工具来临时性的配置网卡IP地址、掩码、广播地址、网关等。也可以把 它写入一个文件中(比如/etc/rc.d/rc.local),这样系统引导后,会读取这个文件,为网卡设置IP地址(类似于Windows中的ipconfig)
用法:ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address ...
ifconifg 如果不接任何参数,就会输出当前网络接口的情况(仅显示激活的接口)
选项:
-a:显示所有接口包括非激活(inactive)状态的
-s:仅显示接口数据收发数据
[-]promisc:混杂模式;- 号代表关闭
启用关闭指定网卡
ifconfig INTEFACE up #开启指定INTEFACE网卡
ifconfig INTEFACE down #关闭指定INTEFACE网卡
配置IPv4地址
\# ifconfig 接口名称 IP/MASK [up]
\# ifconfig 接口名称 IP netmask MASK [up]
up:表示开启此接口
down:表示关闭此接口
注意:立即送往内核中的TCP/IP协议栈,并立即生效
管理IPv6地址:
ifconfig INTEFACE add addr/prefixlen #为网卡INTEFACE配置IPv6地址
ifconfig INTEFACE del addr/prefixlen #为网卡INTEFACE删除IPv6地址
设置最大传输单元:
ifconfig INTEFACE mtu 1500 #设置能通过的最大数据包大小为 1500 bytes;默认为1500
其它实例:
ifconfig #处于激活状态的网络接口
ifconfig -a #查看所有配置的网络接口,不论其是否激活
ifconfig eth0 #显示指定eth0 网卡的信息
route命令
功能:显示和操作IP路由表,要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
注意:直接在命令行下route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来设置路由永久有效
路由条目类型:
主机路由:目标地址为单个IP
网络路由:目标地址为IP网络
默认路由:目标为任意网络,0.0.0.0/0.0.0.0 (default)
显示查看Linux内核路由条目:route 直接使用即可
选项:
-n:不进行名称解析显示路由表信息
-A:设置地址类型
-v:显示详细信息
-e:netstat 格式显示路由表
-net:到一个网络的路由表
-host:到一个主机的路由表
default:默认路由
参数:
add:添加路由
del:删除路由
gw:设置默认网关
dev:路由记录所表示的网络接口
target:目的网路或目的主机
mss:设置TCP的最大区块长度(MSS),单位MB
window:指定通过路由表的TCP连接的TCP窗口大小
路由信息显示:route -n
各列字段说明:
列 | 含义 |
---|---|
Destination | 目标网络或目标主机。Destination 为 Default(0.0.0.0)时,表示这个是默认网关。所有数据都发到这个网关(这里是172.16.10.253) |
Gateway | 网关地址,0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关 |
Genmaks | Destination 字段的网络掩码,Destination 是主机时需要设置为255.255.255.255,是默认路由时会设置为0.0.0.0 |
Flags | 标记,含义参考表格后面的解释 |
Metric | 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置设置所必需的(不在Linux内核中使用) |
Ref | 路由项引用次数(不在Linux内核中使用) |
Use | 此路 |