网络管理第二篇

基本网络配置

一般包括如下内容:主机名、IP/netmask、路由(默认网关)、DNS服务器(主DNS服务器、次DNS服务器、第三DNS服务器)

Linux中主机名只具有本地意义;在Windows中计算机名具有网络功能

Centos6网卡名称:

网络接口识别并命名相关的udev配置文件:

/etc/udev/rules.d/70-persistent-net.rules

查看网卡:dmesg |grep  –i   eth      或             ethtool  -i  eth0

卸载网卡驱动:modprobe –r  e1000    或             rmmod  e1000

装载网卡驱动:   modprobe   e1000

/etc/sysconfig/network     //存放主机名或网关(添加网关重启生效;若与网卡的配置文件发生冲突时,网卡配置文件优先生效)

service    NetworkManager   restart   重启网络管理服务

配置网络接口:

ifconfig命令(默认显示网卡活动的信息)

ifconfig  [interface]

ifconfig  -a   //查看所有的网卡列表

ifconfig  IFACE  [up|down]   //启用或禁用网卡

ifdown   eth1     //禁用网卡(要求有配置文件)

ifup   eth1     //启用网卡(要求有配置文件)

ip   link   //查看网卡的所有详细信息

ifconfig interface [aftype] options | address …

ifconfig  IFACE  IP/netmask   [up]    //设置网卡地址并启用网卡 (临时有效)

ifconfig  IFACE  IP  netmask NETMASK    //设置网卡地址并启用网卡

注意:立即生效 (临时有效,禁用启用后恢复原来)

启用混杂模式:[-] promisc

ifconfig    eth0:1   2.2.2.2/24    //同一物理网卡绑定多个IP地址(临时有效)

写入配置文件,(注重起别名,手动写入新的ip地址,再次停止service    NetworkManager  stop ,最后重启网络服务)

tcpdump   //字符界面的抓包工具

route命令:路由管理命令

查看:route -n

添加:route add

route  add  [-net|-host]  target  [netmask Nm]  [gw Gw]  [[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 gw 172.16.0.1    //添加默认路由

删除:route del

route  del  [-net|-host]  target  [gw Gw]  [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

tcpdump  -i   eth1  icmp    //实现抓包

实验

A—net1—1 R1 2—net2—3 R2 4—net3—5 R3 6—net4—B

R1:

route  add  -net   net4/N4   gw   ip3

route  add  -net   net3/N3   gw   ip3

或者: route  add   default   gw   ip3

 

R2:

route  add  -net   net1/N1   gw   ip2

route  add  -net   net4/N4   gw   ip5

 

R3:

route  add  -net   net1/N1   gw   ip4

route  add  -net   net2/N2   gw   ip4

或者: route  add default   gw  ip4

 

A访问B的过程:解释如下:

网络管理第二篇

1. A判断B和A是否在一个网段

 

2. A gateway:R1 IP1

 

ARP IP1 —> MAC1

APR cache : IP1–MAC1

 

frame:dest mac:mac1 src mac:macA

ip: dest ip:IPB src ip: IPA

tcp:dest port:80 src port:xxxxx,syn

 

3. R1 查路由表

 

net B 2 IP3

ARP IP3 —> mac3

 

frame:dest mac:mac3 src mac:mac2

ip: dest ip:IPB src ip: IPA

tcp:dest port:80 src port:xxxxx,syn

 

4. R2 查路由表

 

net B 4  IP5

ARP IP5 —> mac5

 

frame:dest mac:mac5 src mac:mac4

ip: dest ip:IPB src ip: IPA

tcp:dest port:80 src port:xxxxx,syn

 

5. R3 查路由表

net B 6

ARP IPB —> macB

frame:dest mac:macB src mac:mac6

ip: dest ip:IPB src ip: IPA

tcp:dest port:80 src port:xxxxx,syn

配置动态路由

通过守护进程获取动态路由

  • 安装quagga包
  • 支持多种路由协议:RIP、OSPF和BGP
  • 命令vtysh配置

RIP协议:根据路由跳数选择最佳路由

OSPF协议:考虑因素更全面(带宽)

netstat命令:

显示网络连接: 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

显示路由表: netstat {–route|-r} [–numeric|-n]

-r: 显示内核路由表

-n: 数字格式

显示接口统计数据:

netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]

netstat -i   //查看所有网络连接信息

netstat –I=IFACE(-Iens2)     //只查看某一接口的网络的连接信息

ifconfig -s eth0       //只查看某一接口的网络的连接信息

ss命令

netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信 息。

格式: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

ss -l 显示本地打开的所有端口

ss -pl 显示每个进程具体打开的socket

ss -t -a 显示所有tcp socket

ss -u -a 显示所有的UDP Socekt

ss -o state established   ‘( dport  =  :ssh or sport  =  :ssh )’ 显示所有已建立的 ssh连接

ss -o state established ‘( dport = :http or sport = :http )’ 显示所有已建立 的HTTP连接

ss -s 列出当前socket详细信息

ip命令:

yum  install bash-completion //安装该软件包支持tab键补全(在centos6)[epel原]

网卡的配置文件既可以静态也可以动态获取,但是网卡别名的配置文件中只能写静态

ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT := { link | addr | route }

ip link – network device configuration     //关注的数据链路层

set  dev IFACE

可设置属性:

up and down:**或禁用指定接口

例:ip  link  set    ens37   down     禁用ens37接口

ifup/ifdown

show [dev IFACE]:指定接口

[up]:仅显示处于**状态的接口

ip addr { add | del } IFADDR dev STRING

[label LABEL]:添加地址时指明网卡别名

[scope {global|link|host}]:指明作用域

global: 全局可用

link: 仅链接可用

host: 本机可用

[broadcast ADDRESS]:指明广播地址

ip address show     //查看接口ip地址

[dev DEVICE]        接口

[label PATTERN]    添加别名

[primary and secondary]

ip address flush   //删除,用法同show

ip addr add 172.16.100.100/16 dev eth0 label eth0:0

ip addr del 172.16.100.100/16 dev eth0 label eth0:0   //只删除一个地址

ip addr flush dev eth0 label eth0:0    //清空所有地址

添加路由:ip route add

ip route add TARGET via GW dev IFACE src SOURCE_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

添加网关:ip route add default via GW dev IFACE

ip route add default via 172.16.0.1

删除路由:ip route delete

ip route del TARGET

显示路由:ip route

清空路由表:ip  route  flush   [dev IFACE]     [via PREFIX]

ip route flush dev eth0

网卡别名

对虚拟主机有用

将多个IP地址绑定到一个NIC上 eth0:1 、eth0:2、eth0:3

ifconfig命令: ifconfig eth0:0 192.168.1.100/24 up

ifconfig eth0:0 down    删除单个一条别名

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

实验:单臂路由

网络管理第二篇

在路由器上:

修改配置文件并复制:cp   ifcfg-eth0     ifcfg-eth0:1

DEVICE=eth0:1

IPADDR=2.2.2.254

NETMASK=255.255.255.0  或  PREFIX=24

ONPARENT=yes

 

MACADDR:用来修改Mac地址

echo   1 > /proc/sys/net/ipv4/ip_forward       //启用路由功能(0代表未启动)

traceroot     ip地址    //跟踪路由

mtr      ip地址        //动态跟踪路由

tracepath    ip地址     //跟踪路由

网络配置文件

IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/networkscripts/ifcfg-IFACE

路由相关的配置文件: /etc/sysconfig/network-scripts/route-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”

ONBOOT:在系统引导时是否**此设备

TYPE:接口类型;常见有的Ethernet, Bridge

UUID:设备的惟一标识

IPADDR:指明IP地址

NETMASK:子网掩码   或(PREFIX=16)

GATEWAY: 默认网关

DNS1:第一个DNS服务器指向

DNS2:第二个DNS服务器指向

USERCTL:普通用户是否可控制此设备

PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的 dns服务器指向信息直接覆盖至/etc/resolv.conf文件中

网络配置文件

/etc/sysconfig/network-scripts/route-IFACE

  • 注意:需service network restart生效
  • 两种风格: (1) TARGET via GW 如:10.0.0.0/8 via 172.16.0.1

(2) 每三行定义一条路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

主机名和本地解析器

配置当前主机的主机名: hostname [HOSTNAME]

/etc/sysconfig/network       HOSTNAME=

解析器执行正向和逆向查询

/etc/hosts    //将域名和ip地址的映射写入文件

  • 本地主机名数据库和IP地址的映像
  • 对小型独立网络有用
  • 通常,在使用DNS前检查
  • getent hosts 查看/etc/hosts 内容

dns 名字解析:

/etc/resolv.conf   配置文件   //查看DNS是否生效

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

search magedu.com

/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

网络接口配置 –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接口上传送所有的报文,提供容错能力

active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特 殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需 要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel

Bonding配置:

  1. 创建bonding设备的配置文件
  2. /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none

BONDING_OPTS= “miimon=100 mode=0”   //定义了监控间隔和模式

3./etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

MASTER=bond0    //关键内容

SLAVE=yes           //关键内容(两行)

USERCTL=no

4.查看bond0状态:/proc/net/bonding/bond0

miimon 是用来进行链路监测的。如果miimon=100,那么系统每 100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路

5.删除bond0 ifconfig bond0 down  //禁用         rmmod bonding //删除

lsmod      //查看所有的模块

实验实现多网卡绑定

  1. 仅主机模式,删除所有的网卡配置
  2. cat >  ifcfg-bond0

DEVICE=bond0

IPADDR=192.168.30.6

PREFIX=24

BONDING_OPTS= “miimon=100 mode=1”

  1. cat > ifcfg-eth0

MASTER=bond0

SLAVE=yes

 

Centos 7 网络属性配置

CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名 称可能会发生变化

CentOS 7使用基于硬件,设备拓扑和设置类型命名:

(1) 网卡命名机制 systemd对网络设备的命名方式

(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则 根据此索引进行命名,例如eno1

(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根 据此索引进行命名,例如ens1

(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0

(d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56

(e) 上述均不可用时,则使用传统命名机制

网卡名称

基于BIOS支持启用biosdevname软件

内置网卡:em1,em2

pci卡:pYpX     Y()数字:slot(第几个插槽) ,X:port (第几个接口)

(2) 名称组成格式

en: Ethernet 有线局域网

wl: wlan 无线局域网

ww: wwan无线广域网

名称类型:

O<index>: 集成设备的设备索引号

S<slot>: 扩展槽的索引号

X<MAC>: 基于MAC地址的命名

传统命名方式

  • 编辑/etc/default/grub配置文件

GRUB_CMDLINE_LINUX=”rhgb quiet net.ifnames=0″

或:修改/boot/grub2/grub.cfg

(2) 为grub2生成其配置文件 grub2-mkconfig -o /etc/grub2.cfg

(3) 重启系统

CentOS7主机名

配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机名,主机名 默认为:localhost.localdomain

显示主机名信息 hostname hostnamectl status

设置主机名 hostnamectl set-hostname centos7.magedu.com   改名字后顺带改/etc/hosts配置文件

删除文件/etc/hostname,恢复主机名localhost.localdomain

CentOS 7网络配置工具

图形工具:nm-connection-editor

字符配置tui工具:nmtui

命令行工具:nmcli

地址配置工具:nmcli

nmcli [ OPTIONS ] OBJECT { COMMAND | help }

device    – show and manage network interfaces(查看和管理网络接口)

nmcli device help

connection – start, stop, and manage network connections(开启,结束和管理网络连接)

nmcli connection help

修改IP地址等属性:

nmcli connection modify IFACE [+|-]setting.property value

setting.property:

ipv4.addresses      ipv4.gateway

ipv4.dns1              ipv4.method manual | auto

修改配置文件执行生效:systemctl  restart  network

nmcli  con  reload

nmcli命令生效: nmcli con down eth0 ;    nmcli con up eth0

使用nmcli配置网络:

NeworkManager是管理和监控网络设置的守护进程

设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置, 但同时只有一个连接配置生效

显示所有包括不活动连接   nmcli con show

显示所有活动连接     nmcli con show –active

显示网络连接配置     nmcli con show “System eth0“

显示设备状态      nmcli dev status

显示网络接口属性 nmcli dev show eth0

创建新连接default,IP自动通过dhcp获取

nmcli con add con-name default type Ethernet ifname eth0

删除连接 nmcli con del default

创建新连接static ,指定静态IP,不自动连接

nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254

启用static连接配置 nmcli con up static

启用default连接配置 nmcli con up default

查看帮助 nmcli con add help

修改连接设置 nmcli con mod“static” connection.autoconnect no

nmcli con mod “static” ipv4.dns 172.25.X.254

nmcli con mod “static” +ipv4.dns 8.8.8.8

nmcli con mod “static” -ipv4.dns 8.8.8.8    删除一个dns

nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”

nmcli con mod “static” +ipv4.addresses 10.10.10.10/16  新加一个ip

DNS设置,存放在/etc/resolv.conf文件中

PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取。等价于下 面命令: nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

练习

nmcli connection add con-name office-eth1 ifname eth1 type ethernet ipv4.method auto connection.autoconnect yes    创建一个自动连接且自动分配ip的新连接

nmcli connection  modify office-eth1 ipv4.address  172.10.0.7/16  ipv4.gateway

172.20.0.1 ipv4.dns  8.8.8.8  ipv4.method  manual  (默认动态不改不生效)

注意:若设静态ip地址,IPV4.method必须设为manual,否则无效

nmcli实现bonding

添加bonding接口

nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup 添加从属接口

nmcli con add type bond-slave ifname ens7 master mybond0

nmcli con add type bond-slave ifname ens3 master mybond0

注:如无为从属接口提供连接名,则该名称是接口名称加类型构成

要启动绑定,则必须首先启动从属接口 nmcli con up bond-slave-eth0

nmcli con up bond-slave-eth1

启动绑定 nmcli con up mybond0

网络组Network   Teaming

         网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量

网络组不同于旧版中bonding技术,提供更好的性能和扩展性

网络组由内核驱动和teamd守护进程实现.

多种方式runner

broadcast     广播

roundrobin    轮转

activebackup   主备

loadbalance     负载均衡

lacp (implements the 802.3ad Link Aggregation Control Protocol) (实现802.3ad链路聚合控制协议)

网络组

      启动网络组接口不会自动启动网络组中的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

创建port接口:

       nmcli con add type team-slave con-name CNAME ifname INAME master TEAM CNAME 连接名

INAME 网络接口名

TEAM 网络组接口名

连接名若不指定,默认为team-slave-IFACE

nmcli dev dis INAME         INAME 设备名

nmcli con up CNAME       CNAME 网络组接口名或port接口

管理网络组配置文件

     /etc/sysconfig/network-scripts/ifcfg-team0

DEVICE=team0

DEVICETYPE=Team

TEAM_CONFIG=”{\”runner\”: {\”name\”: \”broadcast\”}}”

BOOTPROTO=none

IPADDR0=172.25.5.100

PREFIX0=24

NAME=team0

ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-team1

DEVICE=eth1

DEVICETYPE=TeamPort

TEAM_MASTER=team0

NAME=team0-eth1

ONBOOT=yes

删除网络组

nmcli connection down team0

teamdctl team0 state

nmcli connection show

nmcli connectioni delete team0-eth0

nmcli connectioni delete team0-eth1

nmcli connection show

网桥

桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网 口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互 相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来 的。与网桥相连的主机就能通过交换机的报文转发而互相通信。

主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一 起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2 接收到。而S2又会将报文转发给主机C、D

配置实现网桥:

测试网络工具

在命令行下测试网络的连通性:

显示主机名:hostname

测试网络连通性: ping         mtr

显示正确的路由表:ip    route

确定名称服务器使用: nslookup           host            dig

跟踪路由:traceroute                  tracepath

网络客户端工具

ftp,lftp:子命令:get、mget、ls、help

lftp [-p port] [-u user[,password]] SERVER

lftpget URL

wget [option]… [URL]…

-q: 静默模式

-c: 断点续传

-P:保存在指定目录

-O: 保存为指定的文件名

–limit-rate=: 指定传输速率,单位K,M等

links URL

–dump      //只显示文字

–source    //查看源码

lftpget    ftp://172.20.0.1/pub/Tools/picpick_inst.exe    //下载文件

wget     //可用来下载HTTP等网站的文件也可下载ftp文件资源