一、 知识整理
1、 跨网络通信:路由
路由的分类:主机路由;网络路由;默认路由。
将主机接入网络,需要配置网络相关设置。一般包括如下内容:主机名; IP/MASK ;路由:默认网关; DNS 服务器:主、次、第三 DNS 服务器。
2、 网络配置文件: IP 、 MASK 、 GW 、 DNS 相关配置文件
/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关配置文件:
/etc/sysconfig/network-scripts/route-IFACE
3、dmesg 查看开机信息
[root@localhost ~]# dmesg | grep SElinux[ 0.000137] SELinux: Initializing.
[ 0.000153] SELinux: Starting in permissive mode
[ 1.642242] SELinux: Registering netfilter hooks
[ 9.496131] SELinux: 2048 avtab hash slots, 105321 rules.
[ 9.506233] SELinux: 2048 avtab hash slots, 105321 rules.
[ 9.531455] SELinux: 8 users, 105 roles, 4952 types, 302 bools, 1 sens, 1024 cats
[ 9.531458] SELinux: 83 classes, 105321 rules
[ 9.535006] SELinux: Completing initialization.
4、lsmod 查看绑定模块:
[root@localhost ~]# lsmod | grep tcptcp_diag 12591 0
inet_diag 18543 3 tcp_diag,dccp_diag,udp_diag
rmmod 删除模块
网络接口识别并命名相关的 udev 配置文件:
/etc/udev/rules.d/70-persistent-net.rules
udev: udev 是Linux kernel 2.6系列的 设备管理器 。它主要的功能是管理 /dev目录底下的设备节点。它同时也是用来接替devfs及热插拔的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载固件时Linux 2.6.13内核。
卸载网卡驱动: modprobe -r e1000
modprobe e1000 启动网卡模块
e1000 是使用 ethtool -i eth0 命令查看,找到 driver
[root@localhost ~]# ethtool -i eno16777736driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
5、 临时别名: ifconfig eno16777736:1 ####/#
删除别名 ifconfig eno16777736:1 down
启用和禁用网卡: ifconfig eth0 up/down
6、 本地解析器:解析器执行正向和逆向查询,联网时先查询本地解析再通过 DNS 解析。
DNS(Domain Name System,域名系统),因特网上作为域名和 IP地址 相互映射的一个 分布式数据库 ,能够使用户更方便的访问 互联网 ,而不用去记住能够被机器直接读取的IP数串。通过 主机 名,最终得到该主机名对应的 IP地址的过程叫做域名解析(或主机名解析) ,也可反向解析。 DNS协议运行在 UDP 协议之上,使用端口号53。
/etc/hosts 本地主机名数据库和 IP 地址的映像;对小型独立网络有用;通常,在使用 DNS 前检查。
getent hosts 查看 /etc/hosts 内容
[root@localhost ~]# getent hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
cat /etc/resolve.conf 查看配置 DNS
[root@localhost ~]# cat /etc/resolv.conf# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
cat /etc/nsswitch.conf 可以更改优先级,默认 hosts 优先于 DNS 。
将 hosts: files dns 一行 files 和 dns 互换,用于改变优先级。
7、 route 配置文件 /etc/sysconfig/network-scripts/route-IFACE
两种格式:第一种 #### via GW 第二种:每三行定义一条路由 ADDRESS1=TARGET NETMASK1=mask GATEWAY1=GW 格式是: ADDRESS#=TARGET NETMASK#=mask GATEWAY#=GW8、 在网卡配置文件中添加一行 DOMAIN=magedu.com 。在 /etc/hosts 文件中添加一行
#.#.#.# www.magedu.com
重启网络服务后,在 /etc/resolv.conf 会多出一行 search magedu.com 。此时用 ping 命令直接 ping www. 会自动识别本地解析, ping #.#.#.# 。
9、centos7 网络属性配置: rhel7 基于硬件,设备拓扑和设置类型命名:
systemd 对网络设备的命名方式:
①如果 Firmware 或 BIOS 为主板上集成的设备提供的索引信息可用,且可预测,根据此索引进行命名,例如 eno1 ;
②如果 Firmware 或 BIOS 为 PCI-E 扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如 ens1 ;
③如果硬件接口的物理信息可用,则根据此信息进行命名,例如 enp2s0 ;
④如果用户显式启动,也可根据 MAC 地址进行命名,例如 enx2387a1dc56 ;
⑤上述均不可用时,则使用传统命名机制。
网卡名称:基于 BIOS 支持 biosdevname 中,内置网卡 em1 , em2 ; pci 卡: pYpX ( y : slot 插槽, X : port 端口)。
PCI 定义局部总线的标准,支持 10 台外设, 64 位寻址: pci 插槽,基于局部总线的扩展插槽。
网卡名称含义:
en : Ethernet 有线局域网
wl : wlan 无线局域网
ww : wwan 无线广域网
o <> 集成设备的设备索引号
s<> 扩展槽的索引号
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 ;
[root@localhost ~]# cat /usr/lib/udev/rules.d/60-net.rulesACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device"
, RESULT=="?*", NAME="$result"
第三步:通过检测网络接口设备,根据 /usr/lib/udev/rules.d/75-net-description.rules 。
二、 命令详解及事例
1、route 命令:查看路由 route -n ;添加路由 route -add
route add -net #.#.#.# gw #.#.#.# dev eth#
route del -net #.#.#.# netmask #.#.#.#
route del -host #.#.#.#
2、ip 命令: ip [opt] OBJECT {help|COMMAND}OBJECT:link|addr|route
ip link : network device configuration
[root@localhost ~]# ip link set dev eno16777736 up[root@localhost ~]# ip link set dev eno16