linux网络属性
ifconfig命令家族:ifconfig,route,netstat
ifconfig命令:接口及地址查看和管理
ifconfig [interface]:
ifconfig -a:显示所有接口,包括inactive
ifconfig IFACE up|down :禁用和启用网卡
ifconfig IFACE IP/MASK [up] 配置IP地址和子网掩码
注意:这些配置都是立即生效的
[-]promisc:启用混杂模式
route命令:路由查看及管理
路由条目类型:
主机路由:目标地址为单个IP
网络路由:目标地址为IP网络
默认路由:目标为任意主机,0.0.0.0/0.0.0.0
查看:route -n (以数字格式显示)
[root@localhost ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.0.0 * 255.255.0.0 U 1 0 0 eth0 default server.magedu.c 0.0.0.0 UG 0 0 0 eth0 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.0.0 0.0.0.0 255.255.0.0 U 1 0 0 eth0 0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 eth0
添加:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
示例:
route add -net 0.0.0.0/8 gw 192.168.10.1 dev eth1
route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1
route add default gw 192.168.10.1
删除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
route del -net 10.0.0.0/8 gw 192.168.10.1
route del default(删除默认网关)
配置动态路由
通过手进程获取动态路由
安装quagga包,支持各种格式的RIP,OSPF和BGP
命令vtysh
netstat命令
显示网络连接:
netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–
extend|-e]] [–program|-p]
-t:TCP相关协议的相关连接;链接均有其状态;FSM(Finate State Machine)
-u:UDPF相关的连接
-w:raw socket相关的连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示IP和port
-e:扩展格式
-p:显示相关的进程及PID
常用整合:
-tan,-uan,-tnl,-unl
显示路由表:
netstat {–route|-r} [–numeric|-n]
-r:显示内核路由表
-n:以数字格式显示
显示接口统计数据:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
netstat -i
netstat -IIFACE(注意此处网卡名称与-I选项没有空格)
ifconfig -s
ip命令
配置Linux网络属性:ip命令
ip – show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr |route }
注意:OBJECT可简写,各OBJECT的命令也可以简写
ip OBJECT:
ip link:网络设备配置
ip link set:管理修改设备属性
dev NAME(default):指明要管理的设备,dev关键字可省略
down:禁用 up:启用
multicast on或multicast off 启用或禁用组播(多播功能)
name NAME:改名
注意:此处更改网卡名成,要先将网卡禁用在使用更改名称命令!!!!!
mtu NUMBER:设置mtu的大小;默认为1500
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
ip link show:显示设备属性
CentOS7专有
ip netns:ip -manage network namspace
ip netns list:列出所有的netns
ip netns add NAME 增加创建网络命名空间
ip netns del NAME 删除网络命名空间
ip netns exec NAME COMMAND :在指定的netns中运行命令
ip address
增加ip address add IFADDR dev IFace
[label NAME] :为额外添加的地址指明接口别名
[broadcast ADDRESS] :广播地址;会根据IP 和NETMASK自动计算得到
[scope SCOPE_VALUE]:
global:全局可用
link:接口可用
host:仅本机可用
显示show
ip addr list(show) IFACE:显示接口的地址
增加ip地址
删除ip address delete IFADDR dev IFace
添加ip地址时指明网卡别名
清空flush(使用格式同show)
ip address flush dev eth0 label eth0:0
ip route:
add:添加路由
ip route add TARGET via GW dev IFACE src SOURCE_IP
change:修改
replace:替换
ip route add TYPE PREFIX via GW [dev ]
delete:删除
ip route del TARGET
show:显示
ip route show|list
flush:清空路由
get:获取指定单条路由
ss命令
格式: ss [OPTION]…[FILTER]
netstat 通过遍历proc 来获取socket 信息, ,ss 使用netlink 与内核tcp_diag
模块通信获取socket 信息
选项:
-t:TCP协议的想连接
-u:UDP相关的连接
-w:raw socket相关的连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
-x:unix sock相关
TCP的常见状态:
TCP FSM:
LISTEN:监听
ESTABLISEHD:建立的连接
FIN_WAIT1:
FIN_WAIT2:
SYN_SENT:
SYN_RECV:
CLOSED:
例: ss -tan '(dport = :22 or sport = :22)'
sport:源端口 dport:目标端口
常见组合:
-tan,-tanl,-tanlp,-uan
常见用法:
ss -l 显示本地打开的所有端口
ss-pl 显示每个进程具体打开的socket
ss -t -a 显示所有的tcp socket
ss -u -a 显示所有的UDP socket
ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的ssh连接
ss -s 列出当前socket详细信息
网络配置文件
IP,MASK,GW,DNS相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE:此配置文件应用到设备
HWADDR:对应设备的MAC地址
BOOTPROTO:激活此设备使用的地址配置协议,常用的dhcp,static,none,bootp
NM_CONTROLLED:NM是NetworkMangager的简写,此网卡是否接受NM控制;建议CentOS6为“no”
网络服务:network
NetworkManager
管理网络服务:
centos6:service SERVICE {start|stop|restart|status}
centos7:systemctl {start|stop|restart|status} SERVICE.service
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型;常见的Ethernet,Bridge
UUID:设备的唯一标识
IPADDR:指明IP地址
NETMASK:子网掩码
GATEWAY:默认网关
DNS1:第一个DNS的服务器指向
DNS2:第二个DNS的服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息
直接覆盖至/etc/resolv.conf中
本地解析器
解析器执行执行正向和逆向查询
/etc/hosts
本地主机名数据库和IP地址的映像
对小型独立网络有用
通常,在使用DNSian前检查
getent hosts 查看/etc/hosts内容
DNS名字解析
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
/etc/nsswitch.conf
与/etc/hosts 相比优先于DNS
正解:FADN—>IP
#dig -t A FAQN
#host -t A FQDN
反解:IP–>FQDN
#dig -x IP
#host -t PTR IP
路由相关配置文件
/etc/sysconfig/network-scripts/route-IFACE
支持两种配置方式,但是不可混用:
1. TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
2.每三行定义一条路由
ADDRESS#=TAGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
CentOS 7网络属性配置
在rhel6之前,网络接口使用连续号码命名:eth。eth1等,当增加或者删除网卡时名称可能会发生变化
rhel7使用基于硬件,设备拓扑和设置类型命名:
-
网卡命名机制
-
如果Firmware或BIOS为主板集成的设备提供的索引信息可用,且可预测。,则根据此索引进行命名,例如eno1
-
如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
-
如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s
-
如果用户显示启动,也可以根据MAC地址进行命名,enx2387a1dc56
-
上述均不可用时,则使用传统命名机制
基于BIOS支持启用biosdevnam软件
内置网卡:em1,em2
pci卡:pYpX X:port Y:slot
-
名称组成格式
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 ="rhgb quiet net.ifnames=0"
或:修改/boot/grub2/grub.cfg
(2) 为grub2 生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
nmcli命令
nmcli配置网络
NetworkManager是管理和监控网络设置的守护进程
设备及网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,
但是同时只有一个连接配置生效
connection:
nmlic connection show(查看连接)
nmcli的子命令可以用tab键补全,很方便
使用nmcli命令及其子命令直接增加了一个ip地址及其配置文件
此时此地址虽然配置文件没有问题,但是是个无效的,因为它的名字和接口没有绑定
还需执行命令 nmcli connection up home 才能启用
删除新增加的ip地址和配置文件
general:显示NetworkMangager的所有状态
device:列出NetworkManager识别出的设备列表及他们的状态
显示网络接口属性
nmcli dev show eno16777736
创建新连接default,自动获取IP地址
nmcli connection add con-name default type ethernet ifname eno33554976
1.创建
2.启用绑定
修改连接设置
给default增加一个ipv4地址
nmcli connection modify default +ipv4.addresses 10.1.252.211/24
启用此ip地址,步骤如下
nmcli connection down default nmcli connection up default ip add
备注:此处只能使用ip add命令查看,ifconfig命令无法查看
nmcli的子命令太多,这里就不一一列举,这些子命令都可用tab键补全,所以使用起来很方便
nmcli命令列表
修改 连接 配置后 ,需要重新加载配置
nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活
图形工具
nm-connection-editor
网络组NetworkManager Teaming
网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding 技术,提供更好的性能和扩展性
网络组由内核驱动和teamd 守护进程实现.
多种方式runner
broadcast
roundrobin
activebackup
loadbalance
lacp (implements the 802.3ad Link Aggregation Control Protocol)
启动网络组接口不会自动启动网络组中的port接口
启动网络组接口中的port 接口不会自动启动网络组接口
禁用网络组接口会自动禁用网络组中的port接口
没有port 接口的网络组接口可以启动静态IP连接
启用DHCP 连接时,没有port 接口的网络组会等待port接口的加入
创建网络组接口
nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME 连接名, ,INAME 接口名
JSON 指定runner 方式
格式:'{"runner": {"name": "METHOD"}}'
METHOD 可以是broadcast, roundrobin,activebackup, loadbalance, lacp
给team0添加ip地址,并且更改设置为手动获取IP地址
给tam0添加DNS和网关
创建port接口
nmcli con add type team-slave con-name CNAME
ifname INAME master TEAM
CNAME 连接名
INAME 网络 接口名
TEAM 网络组 接口名
连接名若不指定,默认为team-slave-IFACE
nmcli dev dis INAME
nmcli con up CNAME
INAME 名设备名 CNAME 网络组接口名或port 接口
ifcfg-team0-port1和ifcfg-team0-port2配置文件如下
查看物理接口信息
启用team0
将物理接口port1和part2启用
使用teamdctl team0 state可查看网络组使用信息
用另一个主机来ping此主机(效果和bond其实是一样的)
结果有点奇怪
第一次测试时,两块网卡任意一块存在时,都是可以ping通的
但是第二次在测试时,取消第二块网卡连接时,只保留第一网卡,无法ping通,
取消第一网卡连接时,只保留第二网卡,是可以ping通的
因为老师上课的时候也出现过同样的情况(第二次测试),所以我猜测是不是这个
还不稳定,存在什么漏洞,具体还得在找找资料看看了!
这个实验就到这里吧!
管理网络组配置文件
配置文件在老地方
如果想修改team0,可以使用命令。当然也可以在配置文件中直接修改
team-part1和team-part2也是一样,可以直接在配置文件中修改
nmcli配置主机名
rhel6 之前 主机名配置文件:/etc/sysconfig/network
rhel7.0 主机名配置文件:/etc/hostname ,默认没有这个文件,通过DNS 反向解析获取主机名,
主机名 默认为 :
localhost.localdomain
显示主机名信息
hostname
hostnamectl status
创建并修改文件并生效
hostnamectl set-hostname desktopX.example.com
删除文件,恢复主机名localhost.localdomain
DNS 设置,存放在/etc/resolv.conf 文件中
PEERDNS=no 表示当 当IP 通过dhcp 自动获取时,dns 仍是 手动设置,不自动获取。
等价于下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
测试网络
在命令行下测试网络的连通性
显示主机名
hostname
测试网络连通性
ping 10.1.252.194
mtr 10.1.252.194
显示正确的路由表
ip route
确定名称服务器使用:
nslookup
host
dig
跟踪路由
traceroute
Tracepath
To me:
网络管理还需多花时间研究研究!
以后的我,切记!!!!!!!
原创文章,作者:qiuwei,如若转载,请注明出处:http://www.178linux.com/44230