linux网络

Linux网络设置

主要思路

临时设置

永久设置

网络相关的文件

文件类型文件位置文件作用
网卡文件/etc/sysconfig/network-scripts/ifcfg-*修改IP地址,dns网关获取方式等设置
主机名文件/etc/hostname永久修改主机名,注意只有第一行生效
DNS文件/etc/resolv.conf记录了dns服务的地址
路由/etc/sysconfig/network-scripts/route-*永久记录路由信息

配置网络的相关设置

  • 主机名

  • IP/netmask

  • 路由:默认网关

  • DNS服务器,主DNS服务器,次DNS服务器和第三个DNS服务器

临时修改网卡名称

ip link set ens36 down      #将ens36的网卡下线
​
ip link set ens36 name abc  #将名称为ens36的网卡改名为abc
​
ipconfig - a                #显示所有网卡
​
ip link set abc up          #开启名称为abc的网卡
​
ipconfig abc                #查看网卡abc的状态

修改网卡配置

  • 永久修改网卡配置

vim /etc/sysconfig/network-scripts/ifcfg-*
​
  1 TYPE=Ethernet
  2 PROXY_METHOD=none
  3 BROWSER_ONLY=no
  4 BOOTPROTO=static                            #地址获取方式,static或none为静态获取,dhcp为动态获取
  5 DEFROUTE=yes
  6 IPV4_FAILURE_FATAL=no
  7 IPV6INIT=yes
  8 IPV6_AUTOCONF=yes
  9 IPV6_DEFROUTE=yes
 10 IPV6_FAILURE_FATAL=no
 11 IPV6_ADDR_GEN_MODE=stable-privacy
 12 NAME=ens33                                  #网卡描述
 13 UUID=53593b7f-abff-424f-8d60-d0f67220993e
 14 DEVICE=ens33                                #必须和ifconfig命令中显示的网卡名一致
 15 ONBOOT=yes                                  #是否开启
 16 IPADDR=192.168.137.200                      #手动分配本机IP地址
 17 NETMASK=255.255.255.0                       #子网掩码
 18 GATEWAY=192.168.137.2                       #当前网段的网关
 19 DNS1=8.8.8.8                                #DNS地址1
 200 DNS2=114.114.114.114                       #DNS地址2
​
:wq                                             #保存退出
​
systemctl restart network                       #重启网络
​
#其中第4,12,14,15-21为重要配置信息

模拟网卡配置实验

[root@localhost network-scripts]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.137.200  netmask 255.255.255.0  broadcast 192.168.137.255
        inet6 fe80::8401:d75:75b3:11aa  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:18:1a:2c  txqueuelen 1000  (Ethernet)
        RX packets 2706  bytes 210978 (206.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 338  bytes 38229 (37.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
​
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:18:1a:36  txqueuelen 1000  (Ethernet)
        RX packets 3  bytes 180 (180.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#ens37为新增网卡,网卡配置中没有ip地址等信息,目前状态为未开启状态
​
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens33   ifdown-ipv6      ifdown-tunnel  ifup-isdn    ifup-TeamPort
ifcfg-lo      ifdown-isdn      ifup           ifup-plip    ifup-tunnel
ifdown-post      ifup-aliases   ifup-plusb   ifup-wireless
ifdown        ifdown-ppp       ifup-bnep      ifup-post    init.ipv6-global
ifdown-bnep   ifdown-routes    ifup-eth       ifup-ppp     network-functions
ifdown-eth    ifdown-sit       ifup-ib        ifup-routes  network-functions-ipv6
ifdown-ib     ifdown-Team      ifup-ippp      ifup-sit
ifdown-ippp   ifdown-TeamPort  ifup-ipv6      ifup-Team
#/etc/sysconfig/network-scripts/中没有ens37的配置文件
​
[root@localhost network-scripts]# vim ifcfg-ens37
​
TYPE=Ethernet
BOOTPROTO=static
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.137.201
NETMASK=255.255.255.0
GATEWAY=192.168.137.2
DNS1=8.8.8.8
DNS2=114.114.114.114
#新建一个ens37的配置文件,注意IP地址不能与ens33的重复,否则导致网络故障
​
[root@localhost network-scripts]# ifconfig ens37
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.137.201  netmask 255.255.255.0  broadcast 192.168.137.255
        inet6 fe80::20c:29ff:fe18:1a36  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:18:1a:36  txqueuelen 1000  (Ethernet)
        RX packets 379  bytes 25361 (24.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 104  bytes 11290 (11.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
​
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.50.188) 56(84) bytes of data.
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=1 ttl=128 time=0.544 ms
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=2 ttl=128 time=0.801 ms
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=3 ttl=128 time=0.809 ms
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=4 ttl=128 time=0.750 ms
​
  • 查看网卡信息,临时修改网卡配置

    • ifconfig默认是看所有开启的网卡

    • ifconfig 网卡名:查看单独网卡

    • ifconfig 网卡名 up :开启网卡

    • ifconfig 网卡名 down:关闭网卡

    • ifconfig -a:显示所有网卡,包括未开启的

    • ifconfig 网卡名:0 ip/子网:设置临时网卡

    • ifconfig 网卡名 ip地址/子网:临时设置ip地址

    • ifconfig 网卡名0 :取消网卡设置

路由route

  • 临时添加路由

    • route:显示路由信息

    • route -n:数字形式显示路由信息(默认网关)

    • route del -net 网段:删除静态路由

    • route add -net 网段 gw+网关:添加静态路由

  • 永久添加路由

    • vim /etc/sysconfig/network-scripts/route-ens33
      10.0.0.0/24 via 192.168.91.100
      systemctl restart network
    • vim /etc/sysconfig/static-routes
      any net 172.16.0.0/24 gw 192.168.91.100
      systemctl restart network

主机名

hostname:查看主机名

  • 临时修改主机名

    • hostname 新建主机名称

  • 永久修改主机名

    • vim /etc/hostname:将主机名添加到该文件中,但只有第一行生效

    • hostnamectl set-hostname ky36:永久修改主机名

查看网络链接状态

  • ss

  • 格式

    ss [选项]

    • -t: tcp协议相关

    • -u: udp协议相关

    • -w: 裸套接字相关

    • -x:unix sock相关

    • -l: listen状态的连接

    • -a: 所有

    • -n: 数字格式

    • -p: 相关的程序及PID

    • -e: 扩展的信息

    • -m:内存用量

    • -o:计时器信息

    • -r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。 dns 服务

  • netstat

  • 格式

    netstat [选项]

    • -a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)

    • -n:以数字的形式显示相关的主机地址、端口等信息

    • -r:显示路由表信息

    • -l:显示处于监听(Listening)状态的网络连接及端口信息

    • -t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息

    • -u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息

    • -p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)

  • 常用ss,选项常用-natp和-naup。

  • ss和netstat的区别

    • ss速度比netstat速度快

    • ss是内核态,netstat是用户态,内核态更接近底层,所以速度更快

ping

测试网络连通性

格式

ping [选项] 目标主机

#-c 选项是发送多少个包
[root@localhost ~]#ping -c 3 192.168.91.1
PING 192.168.91.1 (192.168.91.1) 56(84) bytes of data.
64 bytes from 192.168.91.1: icmp_seq=1 ttl=128 time=0.311 ms
64 bytes from 192.168.91.1: icmp_seq=2 ttl=128 time=0.671 ms
64 bytes from 192.168.91.1: icmp_seq=3 ttl=128 time=0.444 ms
--- 192.168.91.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 0.311/0.475/0.671/0.149 ms
# -W 表示等待10秒
[root@localhost ~]#ping 192.168.91.3 -W 10
PING 192.168.91.3 (192.168.91.3) 56(84) bytes of data.
From 192.168.91.100 icmp_seq=1 Destination Host Unreachable
From 192.168.91.100 icmp_seq=2 Destination Host Unreachable
From 192.168.91.100 icmp_seq=3 Destination Host Unreachable
From 192.168.91.100 icmp_seq=4 Destination Host Unreachable
--- 192.168.91.3 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3002ms
pipe 4
-w   如果ping 不通  2秒后返回 不会再ping

traceroute

路由追踪

格式:

traceroute IP地址

[root@kgc ~]#traceroute 192.168.91.101
traceroute to 192.168.91.101 (192.168.91.101), 30 hops max, 60 byte packets
 1  192.168.91.101 (192.168.91.101)  0.752 ms  0.644 ms  0.635 ms

nslookup

域名解析 nslookup

格式:

nslook 域名

[root@kgc ~]#nslookup www.baidu.com
Server:        8.8.8.8
Address:    8.8.8.8#53

dig 可以显示出更多详细信息

[root@kgc ~]#dig www.baidu.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40371
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com.            IN    A

;; ANSWER SECTION:
www.baidu.com.        390    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    30    IN    A    14.215.177.39
www.a.shifen.com.    30    IN    A    14.215.177.38

;; Query time: 77 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 四 9月 23 22:02:04 CST 2021
;; MSG SIZE  rcvd: 101

scp

远程同步

[root@kgc opt]#scp /opt/passwd  lisi@192.168.91.101:/opt/passwd
              命令字 本地文件地址  对方用户名@地址冒号对面地址
[root@kgc opt]#scp root@192.168.91.101:/opt/passwd  /opt/
               命令字 对方用户名@地址冒号对面地址        本地地址

域名解析配置文件

本地主机映射文件

/etc/resolv.conf dns

保存的是你DNS服务器的地址

/etc/hosts 文件 保存主机名与IP地址的映射记录

[root@localhost ~]# cat /etc/hosts
127.0.0.1  localhost localhost.localdomain  localhost4 localhost4. 
192.168.91.100     www.yun.com
[root@kgc ~]#ping www.yun.com
PING www.yun.com (192.168.91.100) 56(84) bytes of data.
64 bytes from www.yun.com (192.168.91.100): icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=3 ttl=64 time=0.067 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=4 ttl=64 time=0.062 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=5 ttl=64 time=0.071 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=6 ttl=64 time=0.130 

hosts文件和DNS服务器的比较

  • 默认情况下,系统首先从 hosts 文件查找解析记录

  • hosts 文件只对当前的主机有效

  • hosts 文件可减少 DNS 查询过程,从而加快访问速度

ethtool

查看 网卡信息

[root@localhost ~]#ethtool -i ens33
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 
expansion-rom-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

[root@localhost ~]#ethtool -p ens33
#让ens33 网卡快速闪烁

tcpdump 抓包工具

tcpdump    option   proto     dir         type
           选项      协议      数据的方向    抓取的数据类型
proto(协议):**     

1. tcp  udp   icmp
2. ip   ipv6
3. arp

dir(方向):

1. src:
2. dst:
3. src and   dst:

type(类型)

1. host  主机   
2. net  网段
3. port  端口     
4. port range  端口范围

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<
数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络接口> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

直接使用tcpdump

-i 指定网卡

实例

[root@localhost data]#tcpdump -i ens33

输出格式
11:53:55.288476 IP 192.168.91.1.47496 > localhost.localdomain.ssh: Flags [P.], seq 261:313, ack 1688848, win 4106, length 52

输出格式讲解:

第一列:时分毫秒 11:53:55.288476

第二例:网络协议ip

第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向

第四列:主机名协议 主机名:localhost.localdomain 协议:ssh

第五列: seq号 ack号 win窗口长度 tcp的标志位

过滤规则
基于ip地址/网段过滤

host选项

主机2  ping   主机1 

[root@localhost data]#tcpdump -i ens33  host 192.168.91.101
#只关心 和 192.168.91.101 有关的流量

dst 选项 目的地址

src 选项 源地址

[root@localhost ~]#tcpdump -i ens33  dst 192.168.91.101
[root@localhost ~]#tcpdump -i ens33  src 192.168.91.101

net 选项 tcpdump net 192.168.91.0/24

[root@localhost ~]#tcpdump net 192.168.91.0/24 -i ens33

控制方向
[root@localhost ~]#tcpdump -i ens33  src net 192.168.91.0/24
[root@localhost ~]#tcpdump -i ens33  dst net 192.168.91.0/24

1.2基于端口过滤

port 端口号 tcpdump port 80

[root@localhost ~]#tcpdump -i ens33 port 80

or

[root@localhost ~]#tcpdump -i ens33 port 80 or port 22
#80 和 22 端口

[root@localhost ~]#tcpdump -i ens33  src port 80 or port 22
[root@localhost ~]#tcpdump -i ens33  dst port 80 or port 22

范围的端口

[root@localhost ~]#tcpdump -i ens33 portrange 80-8080
#80 和 22 端口

[root@localhost ~]#tcpdump -i ens33  src portrange 80-8080
[root@localhost ~]#tcpdump -i ens33  dst portrange 80-8080

1.3基于协议

protocal

协议种类:ip arp icmp tcp udp

应用层协议不可以直接抓取

[root@localhost ~]#ping  www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp

常见参数

-i 指定监听网络监听端口

[root@localhost ~]#tcpdump -i ens33
[root@localhost ~]#tcpdump -i any

-w 将捕获信息保存到文件中,且不分析核打印在屏幕上

[root@localhost ~]#tcpdump -i any -w test.cap    
#将文件后缀改成cap 或者pcap形式可以直接用wireshark打开

-r 读取上面存储的文件

[root@localhost ~]#tcpdump -r test 
reading from file test, link-type LINUX_SLL (Linux cooked)
01:58:09.960457 IP localhost.localdomain.ssh > 192.168.91.1.16603: Flags [P.], seq 993857661:993857809, ack 1860109721, win 274, length 148
01:58:09.960854 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [.], ack 148, win 4101, length 0
01:58:20.585572 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [P.], seq 1:53, ack 148, win 4101, length 52

-n 不把ip转换成域名,直接显示ip

[root@localhost ~]#tcpdump -i ens33
02:03:27.480712 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [P.], seq 53:105, ack 168336, win 4100, length 52
[root@localhost ~]#tcpdump -i ens33  -n
#主机名变成了IP地址
02:03:57.921893 IP 192.168.91.1.16603 > 192.168.91.100.ssh: Flags [P.], seq 1:53, ack 150592, win 4106, length 52
-nn 直接显示ip和端口号

[root@localhost ~]#tcpdump -i ens33
02:03:27.480712 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [P.], seq 53:105, ack 168336, win 4100, length 52
[root@localhost ~]#tcpdump -i ens33  -n
#ssh 变成了端口号
02:03:57.921893 IP 192.168.91.1.16603 > 192.168.91.100.22: Flags [P.], seq 1:53, ack 150592, win 4106, length 52

-t 在每行的输出中,不显示时间

[root@localhost ~]#tcpdump -i ens33 -t

-tt 输出一个时间戳

时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。

[root@localhost ~]#tcpdump -i ens33 -tt

-ttt 每行之间的时间间隔

[root@localhost ~]#tcpdump -i ens33 -ttt

-tttt 详细日期

[root@localhost ~]#tcpdump -i ens33 -tttt

-v 产生详细的输出

[root@localhost ~]#tcpdump -i ens33 -v
[root@localhost ~]#tcpdump -i ens33 -vv
[root@localhost ~]#tcpdump -i ens33 -vvv
#v越多  信息越详细

-c 指定收取数据包的数量

[root@localhost ~]#tcpdump -i ens33 -c  20
#指定抓取 20 个包后退出

-C 需要与w 配合使用 指定单个文件的大小 百万字节

[root@localhost data]#tcpdump -i ens33 -C 1 -w test
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
​
[root@localhost data]#yum install epel-release.noarch -y
#  制造流量 模拟环境

-Q 过滤数据包的方向 in out inout

[root@localhost data]#tcpdump -i ens33 -Q in
#只有in方向
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
02:24:55.547329 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [.], ack 1002982309, win 4105, length 0
02:24:55.591780 IP dns.google.domain > localhost.localdomain.52360: 33034 NXDomain 0/0/0 (45)
02:24:55.636957 IP dns.google.domain > localhost.localdomain.50352: 58856 NXDomain 0/0/0 (43)
02:24:55.678358 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [.], ack 165, win 4104, length 0
02:24:55.682818 IP dns.google.domain > localhost.localdomain.60698: 16333 1/0/0 PTR dns.google. (62)
02:24:55.723179 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [.], ack 617, win 4102, length 0
​
​
[root@localhost data]#tcpdump -i ens33 -Q out
#只有out方向
​

-q 简洁的输出

[root@localhost data]#tcpdump -i ens33  -q

-D 显示所有可用的列表

[root@localhost data]#tcpdump -D
#回环   usb   等接口
1.virbr0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.usbmon1 (USB bus number 1)
5.usbmon2 (USB bus number 2)
6.ens33
7.any (Pseudo-device that captures on all interfaces)
8.lo [Loopback]
​
​
​

-s 指定数据包的大小

[root@localhost data]#tcpdump -i ens33  -s 50
02:39:09.016238 IP localhost.localdomain.ssh > 192.168.91.1.16603: [|tcp]
02:39:09.018305 IP 192.168.91.1.16603 > localhost.localdomain.ssh: [|tcp]
02:39:09.018337 IP localhost.localdomain.ssh > 192.168.91.1.16603: [|tcp]
02:39:09.018715 IP 192.168.91.1.16603 > localhost.localdomain.ssh: [|tcp]
​
​
​
[root@localhost data]#tcpdump -i ens33  -s 50 tcp  port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 50 bytes
                                                               #大小为50
                                                               #默认为262144

多网卡绑定bond

bond(网络绑定或链路聚合),将多个网络接口绑定在一起,形成一个虚拟的网络接口。

bond技术可以增加带宽、提高链接可靠性和实现负载均衡。

  • bonding聚合链路工作模式

    • mod=0:数据包轮流通过不同的网络接口发送,实现负载均衡

    • mod=1:一个接口正常工作,其他备用接口处于待命状态。当主接口故障时,备份接口接管工作

    • mod=2:XOR,根据源和目标MAC地址,对接口进行散列,以选择发送数据包的接口,提供负载均衡和failover功能

    • mod=3:broadcast广播策略,一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效,感觉不到任何downtime,有很好的容错机制

    • mod=4:动态链路聚合,根据网络交换机的LACP协议进行动态链路聚合,实现负载均衡和故障切换

    • mod=5:传输负载均衡,按照发送数据包的一组源和目标IP地址进行散列,实现负载均衡

    • mod=6:自适应负载均衡,该模式使用转发散列算法基于源和目标IP地址、源和目标端口号,以及传输协议进行数据包散列,这样,不同的数据流可以通过不同的接口进行传输,实现负载均衡。此模式能够根据数据流的特性进行动态调整,并提供较好的父爱均衡效果

  • 模拟实现bond mod=1

使用ifconfig命令查看当前网卡信息

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.137.101  netmask 255.255.255.0  broadcast 192.168.137.255
        inet6 fe80::691b:8f41:1ed1:2b58  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:f6:4b:b1  txqueuelen 1000  (Ethernet)
        RX packets 164  bytes 19345 (18.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 136  bytes 19249 (18.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
​
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::f6b:a7db:86ad:9e48  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:f6:4b:bb  txqueuelen 1000  (Ethernet)
        RX packets 34  bytes 2040 (1.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24  bytes 3984 (3.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
​

修改ens33和ens37网络配置文件

​
[root@localhost network-scripts]# vim ifcfg-ens33
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASERT=bond0
SLAVE=yes
​
[root@localhost network-scripts]# vim ifcfg-ens37
NAME=ens37
DEVICE=ens37
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
PNBOOT=yes
​
[root@localhost network-scripts]# vim ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.137.101
NETMASK=255.255.255.0
GATEWAY=192.168.137.2
DNS1=8.8.8.8
DNS2=114.114.114.114
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
#注意,这里DNS可以不写,但会导致无法解析外网网址
​
systemctl restart network
#重启网络服务,应用修改
​
[root@localhost network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
​
Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
​
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:f6:4b:b1
Slave queue ID: 0
​
Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:f6:4b:bb
Slave queue ID: 0
​
#查看bond0状态
​
​
#模拟网卡故障,查看bond0状态
[root@localhost network-scripts]# ifconfig ens33 down
#
[root@localhost network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
​
Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
Primary Slave: None
Currently Active Slave: ens37
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
​
Slave Interface: ens33
MII Status: down
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:0c:29:f6:4b:b1
Slave queue ID: 0
​
Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:f6:4b:bb
Slave queue ID: 0
#ens33网卡故障后,ens37作为主网卡继续提供网络服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值