基本的网络配置:将Linux主机接入到网络,需要配置网络相关设置。v

 一般包括如下内容:

             主机名

             IP/netmask

             路由:默认网关

             DNS服务器

                     主DNS服务器

                     次DNS服务器

                     第三DNS服务器

网络配置方式:v

 静态指定:

   ifcfg: ifconfig, route, netstat

   ip: object {link, addr, route}, ss, tc

   system-config-network-tui (setup)

   配置文件

  CentOS 7:网络配置工具

  nmcli, nmtui, nm-connection-editor v

 动态分配:DHCP: Dynamic Host Configuration Protocol


CentOS 6网卡名称:v

 网络接口识别并命名相关的udev配置文件:/etc/udev/rules.d/70-persistent-net.rulesv 

 查看网卡:dmesg |grep –i ethethtool -i eth0

 卸载网卡驱动:modprobe -r e1000rmmod e1000v 

 装载网卡驱动:modprobe e1000

配置网络接口v

 接口命名方式:CentOS 6: 

              以太网:eth[0,1,2,...]

              ppp:ppp[0,1,2,...]v

              ifconfig命令ifconfig [interface]

              # ifconfig -a

              # ifconfig IFACE [up|down]

              # ifconfig interface [aftype] options | address ...

              # ifconfig IFACE IP/netmask [up]# ifconfig IFACE IP netmask NETMASK

      注意:立即生效;

      启用混杂模式:[-]promisc


划分子网:将一个大网络(主机ID位多)划分多个小的网络(主机ID位少),网络ID向主机ID借位,网络ID变多,主机ID变少

划分超网:将多个小网合并一个大网,主机ID向网络ID借位

子网掩码:共32位,对应网络ID位为1,对应主机ID为0

无类域间路由

CIDR表示法:ip/网络ID位数=ip/(32-主机ID位数)

00000000  0

10000000  128

11000000  192

11100000  224

11110000  240

11111000  248

11111100  252

11111110  254

11111111  255

公式

1 主机数=2^主机ID位-2

2 网络数=2^可变的网络ID位

3 网络ID=IP和netmask 相与

4 划分子网数=2^网络ID向主机ID借的位数

5 损失IP=2*(划分子网数-1)

路由表构成:

多个路由记录组成

每个路由记录由4项组成部分


1目标

    (1) 主机 

    (2)网络 网络ID

     (3) 未知 0.0.0.0

2 netmask

3 接口interface ,发往目标,从哪个接口发出去

4 网关gateway:下一个路由器的邻近本路由器的接口的IP

网络配置方式v 

静态指定:ifcfg: ifconfig, route, netstat

           ip: object {link, addr, route}, ss, tc

           system-config-network-tui (setup)

           配置文件

           CentOS 7:网络配置工具

                nmcli, nmtui, nm-connection-editor v 

动态分配:DHCP: Dynamic Host Configuration Protocol

CentOS 6网卡名称v 

网络接口识别并命名相关的udev配置文件:/etc/udev/rules.d/70-persistent-net.rulesv 

查看网卡:dmesg |grep –i eth

         ethtool -i eth0v 

卸载网卡驱动:modprobe -r e1000

             rmmod e1000v

 

装载网卡驱动:modprobe e1000

配置网络接口v 

接口命名方式:CentOS 6: 

  以太网:eth[0,1,2,...]

  ppp:ppp[0,1,2,...]v 

ifconfig命令

ifconfig [interface]

# ifconfig -a

# ifconfig IFACE [up|down]

ifconfig interface [aftype] options | address ...

# ifconfig IFACE IP/netmask [up]

# ifconfig IFACE IP netmask NETMASK

注意:立即生效;

启用混杂模式:[-]promisc


route命令v

 路由管理命令v

 查看:route -nv 

添加:route addroute add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If]v

 目标:192.168.1.3  网关:172.16.0.1

# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0v 

目标: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 gw172.16.0.1

# route add default gw 172.16.0.1v

 删除:route del

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]v

 目标:192.168.1.3  网关:172.16.0.1

# route del -host 192.168.1.3v 目标:192.168.0.0 网关:172.16.0.1

# route del -net 192.168.0.0 netmask 255.255.255.0

配置动态路由v

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

安装quagga包,支持多种格式的RIP、OSPF和BGP

命令vtysh配置


netstat命令

 常用组合:-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 –I=IFACE

         # ifconfig -s eno16777736

ip命令 配置Linux网络属性:ip命令

 ip - show / manipulate routing, devices, policy routing and tunnels

 ip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT := { link | addr | route }

 ip link - network device configuration

         set dev IFACE

            可设置属性:up and down:激活或禁用指定接口

            ifup/ifdown

 show [dev IFACE]:指定接口

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


ip命令

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 - 使用格式同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命令

  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 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 show|list

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

          ip route flush dev eth0



网络配置文件

IP、MASK、GW、DNS相关配置文件:

/etc/sysconfig/network-scripts/ifcfg-IFACE

路由相关的配置文件:

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

/etc/sysconfig/network-scripts/ifcfg-IFACE

本地解析器:

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

/etc/hosts

 本地主机名数据库和IP地址的映像

 对小型独立网络有用

 通常,在使用DNS前检查

hosts  查看/etc/hosts 内容

dns名字解析

/etc/resolv.conf

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

178

网络配置文件:

/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

网卡别名

对虚拟主机有用

将多个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


设备别名:

为每个设备别名生成独立的接口配置文件

  关闭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=

Bonding工作模式:

    mode1  mode2  mode3

bond的配置

Centos7用命令行在bond0上添加地址

#nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.37.100/24 创建bond0,并创建一个新的IP地址

#nmcli connection add type bond-slave ifname eth0 master bond0 将eth0的网卡绑定到bond0

#nmcli connection add type bond-slave ifname eth1 master bond0  将eth1的网卡绑定到bond1

#nmcli connection add type bond-slave con-name bond0-slave-eth0 ifname eth1 master bond0 

#nmcli connection up bond-slave-eth1 开启eth1

#cat /proc/net/bonding/bond0查看谁在工作

#nmcli connection modify bond0 bond.options mode=broadcast可修改模式

#nmcli connection down bond0 暂时关闭

#nmcli connection up bond0 开启bond0

#cat /proc/net/bonding/bond0可以在查看一下

#nmcli connection up bond0-salve-eth0 开启eth0

#nmcli connection up bond0-salve-eth1 开启eth1

#nmcli connection down bond0解除关系

#rm -f ifcfg-bon* 删除bond


网卡名称

网卡设备的命名过程:

第一步:

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

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

190

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


相关工具

网络接口配置tui工具:nmtui

主机名称配置工具:hostnamectl

status

set-hostname

191

相关工具

网络接口配置tui工具:nmtui

主机名称配置工具:hostnamectl

status

set-hostname


使用nmcli配置主机名

CentOS6之前主机名配置文件:/etc/sysconfig/network

CentOS7主机名配置文件:/etc/hostname ,默认没有这个

文件,通过DNS反向解析获取主机名,主机名默认为:

localhost.localdomain

显示主机名信息

hostname

hostnamectl status

创建并修改文件并生效

hostnamectl set-hostname desktopX.example.com

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

使用nmcli配置网络:

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

 设备即网络接口,连接是对网络接口的配置。一个网络接口

可有多个连接配置,但同时只有一个连接配置生效

显示所有包括不活动连接

nmcli con show

显示所有活动连接

nmcli con show --active

显示网络连接配置

nmcli con show  "System eth0“

显示设备状态

nmcli dev  status


显示网络接口属性:

nmcli dev show eno16777736

创建新连接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 ip4 172.25.X.10/24 gw4

172.25.X.254

修改连接设置:

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

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

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

PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置

,不自动获取。等价于下面命令:

nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

mncli命令:


修改连接配置后,需要重新加载配置

nmcli con reload

nmcli con down “system eth0” 可被自动激活

nmcli con up  “system eth0”

nmcli dev dis eth0 禁用网卡,访止被自动激活

图形工具

nm-connection-editor

字符工具

nmtui

nmtui-connect

nmtui-edit

nmtui-hostname

网络组:

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

高吞吐量

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

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

多种方式runner

broadcast

roundrobin

activebackup

loadbalance

lacp (implements the 802.3ad Link Aggregation Control

Protocol)

创建网络组接口:

nmcli con add type team con-name CN AME 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

nmcli con up CNAME

INAME 设备名 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-team0-eth1

DEVICE=eth1

DEVICETYPE=TeamPort

TEAM_MASTER=team0

NAME=team0-eth1

ONBOOT=yes

实例:

网路组:

 创建网络组接口:

      nmcli con add type team con-name  CNAME ifname INAME

CNAME连接名  INAME接口名

JSON格式

   '{"runner":{"name":"METHOD"}}'

 METHOD 可以是broadcast,roundrobin,activebackup,loadbalance,lacp

#nmcli connection add type team con-name con-myteam0 ifname myteam0 config '{"runner":{"name":"roundrobin"}}'创建网络组名为myteame

#nmcli connection add type team-slave ifname eth1 master myteam0 将网卡eth0绑定到组上

#nmcli connection add type team-slave ifname eth0 master myteam0 将网卡eth1绑定到组上

#nmcli connection modify con-myteam0 ipv4.method manual ipv4.addresses 192.168.37.100/24修改网络IP地址

#nmcli connection up con-myteam0 开启组

#nmcli connection up team-slave-eth1 开启eth1

#nmcli connection up team-slave-eth0 开启eth0

#teamdctl myteam0 state查看文件

#nmcli connection down con-myteam0 临时关闭组

#nmcli connection  reload 重新加载

//nmcli connection delete con-myteam0 删除命令

#nmcli connection delete con-myteam0 删除网络组

#nmcli connection delete team-slave-eth0 删除

#nmcli connection delete team-slave-eth1 删除

网桥:

创建软件网桥

nmcli con add type bridge con-name br0 ifname br0

nmcli con br0 ipv4.addresses 172.16.0.6/16

ipv4.method manual

nmcli con add type bridge-slave con-name br0-port0

ifname eth0 master br0

查看网桥

cat  /etc/sysconfig/network-scripts/ifcfg-br0

cat  /etc/sysconfig/network-scripts/ifcfg-br0-port0

brctl show

删除网桥 brctl delbr br0

删除网桥中网卡 brctl delif eth0

注意:NetworkManager只支持以太网接口接口连接到网桥,不支

持聚合接口

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

显示主机名

hostname

测试网络连通性

ping

mtr

显示正确的路由表

ip route

确定名称服务器使用:

nslookup

host

dig

跟踪路由

  traceroute

  tracepath

网桥:

cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 忽略广播

echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts显示广播

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 禁止广播

#cat /etc/hosts 主机文件 hostname 查看主机名

cat /etc/resolv.conf 查看dns的解析地址

nslookup解析工具