Linux网络属性管理(1)
局域网:以太网,令牌环网
Ethernet: CSMA/CD
冲突域
广播域
MAC:Media Access Control
48bits:
24bits:
24bits:
IP: Internet Protocol
Routing protocol
Routed protocol
OSI:
OSI中的层 功能 TCP/IP协议族
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的接点的联系 没有协议
传输层 提供端对端的接口 TCP,UDP
网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2
tcp/ip分层协议栈:物理层,互联网层,传输层,应用层
application layer
transport layer
internet layer
datalink layer
pysical layer
ip协议:网络号+主机号
IPv4 地址分类:32bits
8bits.8bits.8bits.8bits
点分十进制:0-255
0000 0000 - 1111 1111
0.0.0.0-255.255.255.255
A类:
0 000 0000 - 0 111 1111: 1-127
网络数量:126, 127
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0 //用于与ip地址进行"与"运算,从而取出其网络地址
1.3.2.2/255.0.0.0 = 1.0.0.0
私网地址:10.0.0.0/255.0.0.0/8
B类:
10 00 0000 - 10 11 1111:128-191
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0
私网地址:172.16.0.0/16-172.31.0.0/16
C类:
110 0 0000 - 110 1 1111: 192-223
网络数:2^21
每个网络中的主机数:2^8-2=254
默认子网掩码:255.255.255.0
私网地址:192.168.0.0/24-192.168.255.0/24
D类:组播
1110 0000 - 1110 1111: 224-239
E类:科研
240-255
子网掩码:
172.16.100.100/255.255.0.0, 172.17.1.1
ipv6:128bits
跨网络通信:路由router
路由表:
静态指定
动态学习: rip2,ospf
路由条目:
目标地址 吓一跳(nexthop)
目标地址的类别:
主机:主机路由host
网络:网络路由net
0.0.0.0 /0.0.0.0 :默认路由
os: 多任务,多用户,多进程
通信时,进程的数字标识;
16bits:
0-65535
1-1023: 固定分配,而且只有管理员有权限启用;
1024-4w :半固定;
4w+: 临时;
进程地址:
ip:port,socket
将Linux主机接入到网络中:
IP/netmask: 本地通信
路由(网关):跨网络通信
DNS服务器地址: 基于主机名的通信
主DNS服务器
次(备用)DNS服务器
第三DNS服务器
配置方式:
静态指定:
ifcfg:
ifconfig:配置IP,netmask
route:路由
netstat:状态及统计数据查看
iproute2家族:
ip OBJECT:
addr:地址和掩码;
link:接口
route:路由
ss:状态及统计数据查看
配置文件:
redhat及相关发行版:
/etc/sysconfig/network-scripts/ifcfg-网卡名
CentOS 7:nm(network manager)家族
nmcli:命令行工具
nmtui:text window 工具
注意:
(1)DNS服务器指定
配置文件: /etc/resolv.conf
(2)本地主机名配置
hostname
配置文件:/etc/sysconfig/network
centos7 : hostnamectl
动态分配:依赖于本地网络中有DHCP服务
DHCP: Dynamic Host Configuration Protocol
网络接口命名方式:
传统命令:
以太网:eth0,eth1,...
ppp网络:ppp[0,1,2,...]
可预测命令方案(centos):
支持多种不同的命名机制:
fireware,拓扑结构
1) Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1,eno2, …
2) Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2, …
3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, …
4) 如果用户显式定义,也可根据MAC地址命名,例如eno16777736(十六进制MAC), …
5)上述均不可用,则仍使用传统方式命名;
命名格式的组成:
en:ethernet,表示因特网网卡接口
wl:wlan,表示无线网网卡接口
ww:wwan,Wireless Wide Area Network,表示无线广域网网卡
名称类型:
o<index>:集成设备的设备索引号;
s<slot>:扩展槽的索引号;
x<MAC>:基于MAC地址的命名;
p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;
Linux网络属性配置(2)
ifcfg家族:
ifconfig命令:接口及地址查看
ifconfig [interface]
# ifconfig -a显示所有接口,包括inactive状态接口;
# ifconfig IFACE(网卡名) [up|down]
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask [up]
eg: ifconfig eth1 192.168.10.1/24 up
# ifconfig IFACE IP netmask MASK
eg: ifconfig eth1 192.168.10.101 netmask 255.255.255.0
注意:立即生效;送往内核中的tcp/ip协议栈,并生效;
options:
启用混杂模式:[-]promisc
route命令:路由查看及管理
路由条目类型:
主机路由:目标地址为单个ip; host
网络路由:目标地址为ip网络; net
默认路由:目标为本地主机; 0.0.0.0/0.0.0.0
路由管理命令
查看:route -n ;-n为反解,以数字显示IP和端口;
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] Iface]
目标des:192.168.0.0 网关gw:192.168.73.3(需要和自己主机在同一个网段)
~]# route add -host 192.168.0.0/16 gw 192.168.73.3 dev eth0
目标:192.168.0.0 网关:196.168.73.0
~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 196.168.73.0 dev eth0
~]# route add -net 192.168.0.0/24 gw 192.168.73.0 dev eth0
默认路由,网关:196.168.73.0
~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 196.168.73.0
~]# route add default gw 196.168.73.0
注意:gw 0.0.0.0 表示不用网关即默认网关,就在自己的本机上,无需网关;
删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目标:192.18.0.0 网关:172.16.0.1
~]# route del -net 192.18.0.0 netmask 255.255.255.0 gw 172.16.0.1
DNS服务器指定
/etc/resolv.conf
nameserver DNS_SERVER_IP1(数字地址ip)
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3(最多三个)
如何测试:
正解:FQDN-->IP
# dig -t A FQDN(主机名)
fqdn-->ip
# host -t A FQDN
反解:IP-->FQDN
# dig -x IP
# host -t PTR IP
FQDN: www.magedu.com.
netstat命令:
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
显示网络连接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: --tcp协议相关 ; 通信开始之前,需建立一个虚链路;通信完成后还要拆除连接;
-u: --udp协议相关 ; 直接发送数据报文;
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口;
-e:扩展格式
-p: 显示相关进程及PID
常用组合:
-tan, -uan, -tnl, -unl,-tunlp
显示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 显示内核路由表
-n: 数字格式
~]# netstat -rn
显示接口统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i
# netstat -I IFACE
总结:ifcfg家庭命令配置
ifconfig/route/netstat
ifup/ifdown
Linux网络配置(3)
配置Linux网络属性:ip命令
iproute家族:
ip命令:
ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip OBJECT:
ip link - network device configuration
ip link set
dev IFACE(default): 指明要管理的设备,dev关键字可省略;
up and down:激活或禁用指定接口;
multicast on 或 multicast off: 启用或禁用多播功能
name NAME: 重命名接口
mtu NUMBER : 设置mtu的大小,默认为1500
netns PID : ns为namespace,用于将接口移动到指定的网络名称空间;
ip link show
ip link help
ip netns : ip - manage network namespaces
ip netns list : 列出所有的netns
ip netns add name : 创建指定netns
ip netns del name : 删除指定的netns
ip netns exec name cmd : 在指定的netns 中运行命令
ip address - protocol address management管理接口地址
ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 仅链接可用;
host: 本机可用;
[broadcast ADDRESS]:指明广播地址
ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush - flush protocol addresses 清空
使用格式同show
ip route - routing table management
ip route add
添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK
添加网关:ip route add defalt via GW dev IFACE
ip route delete
删除路由:ip route del TARGET
ip route show
ip route flush
[dev IFACE]
[via PREFIX]
ss命令:another utility to investigate sockets
格式:ss [OPTION]... [FILTER]
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
tcp finite state machine:
LISTEN: 监听
ESTABLISHED:已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
常用组合:
-tan, -tanl, -tanlp, -uan
Linux网络属性配置(4): 修改配置文件
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:
[root@centos7-1 network-scripts]# cat ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none" //
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes" //是否使用默认路由
IPV4_FAILURE_FATAL="no" //ipv4出错时是否使用ipv6
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="795f0d4a-6e0b-492b-b145-08f1eebf10cb"
DEVICE="ens33"
ONBOOT="yes"
解释:
DEVICE:此配置文件应用到的设备;与IFACE一致;
HWADDR:对应的设备的MAC地址;
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;
ONBOOT:在系统引导时是否激活此设备;
TYPE:接口类型;常见有的Ethernet, Bridge;
UUID:设备的惟一标识;
IPV6INIT: 是否初始化IPv6;
IPADDR:指明IP地址;
NETMASK:子网掩码;PREFIX
GATEWAY: 默认网关;
DNS1:第一个DNS服务器指向;
DNS2:第二个DNS服务器指向;
USERCTL:普通用户是否可控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;默认允许即yes;
NM_CONTROLLED: 是否使用networkmanger服务来控制接口;
网络服务:
network
networkmanger
管理网络服务:
centos6 : service network { status | restart | start | stop }
centos7 : systemctl { status | restart | start | stop } network[.service]
配置文件修改之后,需重启网络服务,配置文件才生效;
重启方法见管理网络服务;
/etc/sysconfig/network-scripts/route-IFACE
两种风格:不可混用
(1) 每行一个路由条目
TARGET via GW
(2) 每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
给网卡配置多地址:
ifconfig:
ifconfig IFACE_ALIAS
ip
ip addr add
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
注意:网关别名不能使用dhcp协议引导;
Linux网络属性配置的tui(text user interface):
system-config-network-tui
也可以使用setup找到;
注意:记得重启网络服务方能生效;
配置当前主机的主机名:
hostname [HOSTNAME]
/etc/sysconfig/network
HOSTNAME=
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
卸载网卡驱动:
modprobe -r e1000
装载网卡驱动:
modprobe e1000
CentOS 7网络属性配置
传统命名:以太网eth[0,1,2,...], wlan[0,1,2,...]
可预测功能
udev支持多种不同的命名方案:
Firmware, 拓扑结构
(1) 网卡命名机制
systemd对网络设备的命名方式:
(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1;
(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1;
(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0;
(d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56;
(e) 上述均不可用时,则使用传统命名机制;
上述命名机制中,有的需要biosdevname程序的参与;
(2) 名称组成格式
en: ethernet
wl: wlan
ww: wwan
名称类型:
o<index>: 集成设备的设备索引号;
s<slot>: 扩展槽的索引号;
x<MAC>: 基于MAC地址的命名;
p<bus>s<slot>: enp2s1
网卡设备的命名过程:
第一步:
udev, 辅助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules
第二步:
biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules
第三步:
通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description
ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH
回归传统命名方式:
(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
connection - start, stop, and manage network connections
如何修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method
manual
网络接口配置tui工具:nmtui
主机名称配置工具:hostnamectl
status
set-hostname
博客作业:上述所有内容;
ifcfg, ip/ss, 配置文件, nmcli
参考资料:http://www.redhat.com/hdocs
课外作业:nmap, ncat, tcpdump工具
网络客户端工具:
lftp, ftp, lftpget, wget
# lftp [-p port] [-u user[,password]] SERVER
子命令:
get
mget
ls
help
# lftpget URL
# ftp
# wget
wget [option]... [URL]...
-q: 静默模式
-c: 续传
-O: 保存位置
--limit-rates=: 指定传输速率
回顾:ip命令,ss命令;配置文件;CentOS 7
ifcfg、ip、netstat、ss
配置文件:
/etc/sysconfig/network-scripts/
ifcfg-IFNAME
route-IFNAME
CentOS 7: nmcli, nmtui
相关文章
标签:服务器技术
- •VMware Workstation Pro 16安装CentOS7超详细图文步骤
- •CentOS7下配置使用JumpServer 堡垒机 (图文教程)
- •CentOS安装jdk的几种方法及配置环境变量方式
- •CentOS忘记密码修改方案以及centos卡在开机登录界面,命令失效的解决方法
- •解决笔记本安装centos7后无法调节屏幕亮度
- •VMware安装CentOS 8.1(CentOS 8系列可参考)的图文详细教程
- •CentOS7 minimal 最小化安装网络设置过程
- •CentOS7下搭建JumpServer
- •CentOS安装rpm包出现冲突时的解决办法
- •Vmware下CentOS7最小化安装方式