网络管理
本章内容
网络概念 OSI模型 网络设备 TCP/IP IP地址 配置网络 实现网络组 测试网络 网络工具
为linux网卡配置ip地址,不是给网卡配置地址,是给内核的网络功能配置,地址是属于内核。
为内核配置即时生效,修改配置文件,是永久生效。
ifconfig 配置信息,会立即生效,但是重启网络服务或主机,都失效。
网络服务
/etc/init.d/network {start|restart|stop|sataus}
centos6 service NetworkManager status
是centos6默认的网络服务脚本。不建议使用NetworkManager该服务。不稳定。
linux网络属性配置
命令,配置文件
centos6还支持使用文本界面修改网络配置文件,
setup
system-config-network-tui
配置方式
静态指定
命令
ifcfg家族
ifconfig:配置ip,netmask
route:路由
netstat:状态及统计数据查看
iproute2家族 ip OBJECT addr:地址和掩码 link:接口 route:路由 ss状态及统计数据查看 nm家族(centos7才可以使用) nmcli:命令行工具 nmtul:text window 工具 配置文件 etc/sysconfig/network-scripts/ 动态分配:依赖于本地网络中的DHCP服务
基本网络配置
将Linux主机接入到网络,需要配置网络相关设置。 一般包括如下内容: 主机名 IP/mask 路由:默认网关 DNS服务器 主DNS服务器 次DNS服务器 第三DNS服务器
网络配置方式
静态指定: ifcfg: ifconfig, route, netstat ip: object {link, addr, route}, ss, tc system-config-network-tui(setup) 配置文件 CentOS 7:新增工具:nmcli, nmtui 动态分配: DHCP: Dynamic Host Configuration Protocol
配置网络接口
接口命名方式:CentOS 6: 以太网:eth[0,1,2,...] ppp:ppp[0,1,2,...] ifconfig命令 ifconfig[interface] # ifconfig -a 显示所有接口包括未激活状态的 # ifconfig IFACE [up|down] 关闭或激活网卡 ifconf iginterface [aftype] options | address ... # ifconfig IFACE IP/mask [up] 配置ip并激活可以是掩码长度表示掩码 # ifconfig IFACE IP netmask MASK 使用点分十进制表示掩码 注意:立即生效;立即送往内核中的TCP/IP协议栈 option 启用混杂模式:[-]promisc 接收网络中的任意报文。 还可以配置ipv6地址
路由管理命令
查看:route -n 添加:route add route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If] 目标:192.168.1.3 网关:172.16.0.1 # route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 目标:192.168.0.0 网关:172.16.0.1 # route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0 # route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0 默认路由,网关:172.16.0.1 # route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 # route add default gw172.16.0.1 删除:route del route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If] 目标:192.168.1.3 网关:172.16.0.1 # route del -host 192.168.1.3 目标:192.168.0.0 网关:172.16.0.1 # route del -net 192.168.0.0 netmask 255.255.255.0
route所有的改动重启网络服务或主机后失效。
配置动态路由
通过守护进程获取动态路由 •安装quagga包,支持多种格式的RIP、OSPF和BGP •命令vtysh配置
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 显示路由表: netstat{--route|-r} [--numeric|-n] -r: 显示内核路由表 -n: 数字格式 显示接口统计数据: netstat{--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n] # netstat-i # netstat-IIFACE
ip命令
配置Linux网络属性:ip命令 ip-show / manipulate routing, devices, policy routing and tunnels ip[ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr| route } iplink -network device configuration set dev IFACE 可设置属性: up and down:激活或禁用指定接口 ifup/ifdown show [dev IFACE]:指定接口 [up]:仅显示处于激活状态的接口 ip addr{ add | del } IFADDR dev STRING [label LABEL]:添加地址时指明网卡别名 [scope {global|link|host}]:指明作用域 global: 全局可用; link: 仅链接可用; host: 本机可用; [broadcast ADDRESS]:指明广播地址 ipaddress show -look at protocol addresses [dev DEVICE] [label PATTERN] [primary and secondary] ipaddress flush -使用格式同show ipaddr add 172.16.100.13/16 dev eth0 label eth0:0 ipaddr del 172.16.100.13/16 dev eth0 label eth0:0 ipaddr flush dev eth0 label eth0:0 iproute -routing table management 添加路由:iproute add iproute add TARGET via GW dev IFACE srcSOURCE_IP TARGET: 主机路由:IP 网络路由:NETWORK/MASK ip route add 192.168.0.0/24 via 172.16.0.1 ip route add 192.168.1.13 via 172.16.0.1 添加网关:iproute add default via GW dev IFACE ip route add default via 172.16.0.1 删除路由:iproute delete iproute del TARGET 显示路由:iproute show|list 清空路由表:iproute flush[dev IFACE] [via PREFIX] iproute flush dev eth0
ss命令
格式:ss[OPTION]... [FILTER] netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。 选项: -t: tcp协议相关 -u: udp协议相关 -w: 裸套接字相关 -x:unixsock相关 -l: listen状态的连接 -a: 所有 -n: 数字格式 -p: 相关的程序及PID -e: 扩展的信息 -m:内存用量 -o:计时器信息 FILTER := [ state TCP-STATE ] [ EXPRESSION ] TCP的常见状态: tcpfinite state machine: LISTEN: 监听 ESTABLISHED:已建立的连接 FIN_WAIT_1 FIN_WAIT_2 SYN_SENT SYN_RECV CLOSED EXPRESSION: dport= sport = 示例:’( dport= :sshor sport = :ssh)’ 常用组合: -tan, -tanl, -tanlp, -uan
常见用法
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established '( dport = :smtp or sport = :smtp )' 显所有已建立的SMTP连接
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程
ss -s 列出当前socket详细信息:
网络配置文件
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scriptsifcfg-IFACE /etc/sysconfig/network-scripts/ifcfg-IFACE: 说明参考/usr/share/doc/initscripts-9.49.30/sysconfig.txt DEVICE:关联的设备名称,要与文件名的后半部分保持一致 HWADDR:对应的设备的MAC地址 BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no” IPADDR=ip地址 NETMASK=子网掩码 GATEWAY=设定默认网关 ONBOOT=开机时是否自动机会哦此网络接口 TYPE:接口类型;常见有的Ethernet, Bridge UUID:设备的惟一标识 DNS1:第一个DNS服务器指向 DNS2:第二个DNS服务器指向 USERCTL:普通用户是否可控制此设备 PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中 dhcp和指定ip同时使用的话,优先使用dhcp获取到的ip
路由配置文件
/etc/sysconfig/network-scripts/route-IFACE 注意名称IFACE必须与网卡名称一致。例如roue-eth0
格式如下 目的ip/网络 via 下一跳 192.168.1.2/24 via 192.168.0.120
不会立即生效,但是重启网络服务或主机都会生效。
本地解析器
解析器执行正向和逆向查询 ——————解析其他主机的主机名。 /etc/hosts •本地主机名数据库和IP地址的映像 •对小型独立网络有用 •通常,在使用DNS前检查 •getent hosts 查看/etc/hosts 内容 配置文件格式, 192.168.1.1 www.mageedu.com www mage mageedu magedu 可设置主机名和多个别名。中间用空格隔开。 DNS解析过程,先访问本地hosts文件,文件中没有才组查找DNS配置文件(resolv.conf)
修改主机名
使用命令hostname HOSTNAME更改主机名,立即有效但是不会永久有效。 本地主机houstname配置文件/etc/sysconfig/network 格式 HOSTNAME=mageedu.com 修改主机名配置文件后,只有重新开启新终端,或重启服务器才可以生效。或使用命令修改 实例: [root@centos6 ~]# cat /etc/sysconfig/network ###centos6 NETWORKING=yes ###是否开启网络服务 HOSTNAME=yangyouwei.centos6 GATEWAY= ###也可以定义网关,范围是全局的。但是同时网卡的配置文件也定义了网关,那么只是网卡的网关生效。
dns名字解析
最多添加三个,ifconfig中PEERDNS=no才可以使用此配置文件
[root@centos7 ~]# cat /etc/resolv.conf
# Generated by NetworkManager search magedu.com localdomain nameserver 10.1.0.1 nameserver 192.168.154.1 /etc/nsswitch.conf 与/etc/hosts相比优先于DNS 正解:FQDN-->IP # dig -t A FQDN # host -t A FQDN 反解:IP-->FQDN # dig -x IP # host -t PTR IP /etc/sysconfig/network-scripts/route-IFACE •注意:需service network restart生效 •两种风格: (1) TARGET via GW (2) 每三行定义一条路由 ADDRESS#=TARGET NETMASK#=mask GATEWAY#=GW
网卡别名
对虚拟主机有用 将多个IP地址绑定到一个NIC上,别名的网卡不能使用DHCP服务。必须手动配置地址。 eth0:1 eth0:2 eth0:3 ifconfig命令: ifconfig eth0:0 192.168.1.100/24 up ip命令: ip addr add 172.16.1.2/16 dev eth0 ip addr add 172.16.1.1/16 dev eth0 label eth0:0 ip addr del 172.16.1.1/16 dev eth0 label eth0:0 ip addr flush dev eth0 label eth0:0 为每个设备别名生成独立的接口配置文件 •关闭NetworkManager服务 •ifcfg-ethX:xxx •必须使用静态联网 DEVICE=eth0:0 IPADDR=10.10.10.10 NETMASK=255.0.0.0 ONPARENT=yes 注意:service network restart 生效 参考/usr/share/doc/initscripts-*/sysconfig.txt 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
网络接口配置-bonding
•Bonding 就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。 Bonding的工作模式 •Mode 0 (balance-rr) 轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力 •Mode 1 (active-backup) 活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见 •Mode 3 (broadcast) 广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力。 Bonding配置 创建bonding设备的配置文件 /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=none BONDING_OPTS=“miimon=100 mode=0” /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes USERCTL=no miimon是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路 •查看bond0状态:/proc/net/bonding/bond •关于bonding的详细配置请参照 /usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
CentOS 7网络属性配置
rhel6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化。 rhel7使用基于硬件,设备拓扑和设置类型命名: (1) 网卡命名机制 systemd对网络设备的命名方式 (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1 (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1 (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0 (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56; (e) 上述均不可用时,则使用传统命名机制
网卡名称
基于BIOS支持biosdevname中 内置网卡:em1,em2 pci卡:pYpXY:slot ,X:port (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 rhgbquiet" 或:修改/boot/grub2/grub.cfg (2) 为grub2生成其配置文件 grub2-mkconfig -o /etc/grub2.cfg (3) 重启系统
nmcli命令
地址配置工具:nmcli nmcli[ OPTIONS ] OBJECT { COMMAND | help } device -show and manage network interfaces nmclidevice help connection -start, stop, and manage network connections nmcliconnection help 修改IP地址等属性: #nmcliconnection modify IFACE [+|-]setting.propertyvalue setting.property: ipv4.addressesipv4.gateway ipv4.dns1 ipv4.methodmanual | dhcp 修改配置文件执行生效:systemctlrestart network nmclicon reload nmcli命令生效:nmclicon down eth0 ;nmclicon up eth0
相关工具
网络接口配置tui工具:nmtui 主机名称配置工具:hostnamectl status set-hostname
使用nmcli配置网络
NeworkManager是管理和监控网络设置的守护进程 设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,但同时只有一个连接配置生效。 显示所有包括不活动连接 nmclicon show 显示所有活动连接 nmclicon show –active 显示网络连接配置 nmclicon show "System eth0“ 显示设备状态 nmclidev status 显示网络接口属性 nmclidev show eno16777736 创建新连接default,IP自动通过dhcp获取 nmclicon add con-name default type Ethernet ifnameeth0 删除连接 nmclicon del default 创建新连接static ,指定静态IP,不自动连接 nmcticon add con-name static ifnameeth0 autoconnectno type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254 启用static连接配置 nmclicon up static 启用default连接配置 nmclicon up default 查看帮助 nmclicon add help 修改连接设置 nmclicon mod“static” connection.autoconnectno nmclicon mod “static” ipv4.dns 172.25.X.254 nmclicon mod “static” +ipv4.dns 8.8.8.8 nmclicon mod “static” -ipv4.dns 8.8.8.8 nmclicon mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254” nmclicon mod “static” +ipv4.addresses 10.10.10.10/16
nmclicon mod ifcfg-* 文件
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24 192.0.2.254” IPADDR0=192.0.2.1 PREFIX0=24 GATEWAY0=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnectyes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .
设备配置被保存在文本文件中
•/etc/sysconfig/network-scripts/ifcfg-
•帮助文档列出完整选项列表:/usr/share/doc/initcripts-*/sysconfig.txt
原创文章,作者:yyw,如若转载,请注明出处:http://www.178linux.com/43324