Linux学习之路-Centos7-nmcli命令及网桥21---20180127

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习之路-Centos7-nmcli命令及网桥21---20180127相关的知识,希望对你有一定的参考价值。


一、nmcli命令


1、地址配置工具: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


2、使用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

         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

技术分享图片

nmcli con modifcfg-* 文件
ipv4.method manualBOOTPROTO=none
ipv4.method autoBOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24 192.0.2.254”

IPADDR0=192.0.2.1

PREFIX0=24

GATEWAY0=192.0.2.25

ipv4.dns 8.8.8.8DNS0=8.8.8.8
ipv4.dns-search example.comDOMAIN=example.com
ipv4.ignore-auto-dns truePEERDNS=no
connection.autoconnect yesONBOOT=yes
connection.id eth0NAME=eth0
connection.interface-name eth0DEVICE=eth0
802-3-ethernet.mac-address . . .HWADDR= . . .


3、网络配置文件及其他设置

  • 设备配置被保存在文本文件中

        /etc/sysconfig/network-scripts/ifcfg-<name>

         帮助文档列出完整选项列表:/usr/share/doc/initcripts-*/sysconfig.txt

动态配置静态配置

DEVICE=ethX 

HWADDR=0:02:8A:A6:30:45 

BOOTPROTO=dhcp 

ONBOOT=yes 

Type=Ethernet

DEVICE=ethX 

HWADDR=0:02:8A:A6:30:45 

IPADDR=192.168.0.123 

NETMASK=255.255.255.0 

GATEWAY=192.168.0.254 

ONBOOT=yes

Type=Ethernet

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

         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


配置不同的网卡配置文件环境

#查看由几个网卡
[[email protected]~]#nmcli device 
DEVICE  TYPE      STATE   CONNECTION 
ens32   ethernet  connected  ens33      
ens33   ethernet  connected  ens34      
lo     loopback  unmanaged  -- 

#配置一个网卡环境
[[email protected]~]#nmcli connection add con-name ens32-sc type ethernet ifname ens32 ipv4.method manual ipv4.addresses 172.18.68.200/16 ipv4.gateway 172.18.0.1 ipv4.dns 114.114.114.114
Connection 'ens32-sc' (e5740d61-6f39-4af1-81f2-b062cddbf202) successfully added.
[[email protected]~]#nmcli connection show 
NAME      UUID                         TYPE       DEVICE 
ens33     c96bc909-188e-ec64-3a96-6a90982b08ad  802-3-ethernet  ens32  
ens34     94aea789-efb3-ef4c-81b0-e8b18ecc9797  802-3-ethernet  ens33  
ens32-sc   e5740d61-6f39-4af1-81f2-b062cddbf202  802-3-ethernet  --  

#切换网卡配置
[[email protected]~]#nmcli connection up ens32-sc
Connection successfully activated (D-Bus active path:/org/freedesktop/NetworkManager/ActiveConnection/5)

#如果手动增加的配置文件,需要手动加载下配置文件
[[email protected]~]#nmcli connection reload 

#逻辑上断开或连接网卡
[[email protected]~]#nmcli device disconnect ens33
Device 'ens33' successfully disconnected

[[email protected]~]#nmcli device connect ens33
Device 'ens33' successfully activated with 'a62b80b1-2533-4e38-84c4-bd690837adcc'




二、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

[[email protected]~]#nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 172.18.0.200/16 ipv4.gateway 172.18.0.1 ipv4.dns 114.114.114.114

[[email protected]~]#nmcli connection add con-name bond0-slave0 type bond-slave ifname ens33 master bond0
[[email protected]~]#nmcli connection add con-name bond0-slave1 type bond-slave ifname ens33 master bond0
[[email protected]~]#nmcli connection up bond0-slave0
[[email protected]~]#nmcli connection up bond0-slave1

[[email protected]~]#cat /proc/net/bonding/bond0


#Centos6实现网卡别名

#实现在一块网卡上有两个ip地址,一个动态获取、一个静态地址,服务器重启地址不丢失

[[email protected]]#cp ifcfg-eth1{,:1}
[[email protected]]#cp ifcfg-eth1{,:2}
[[email protected]]#vim ifcfg-eth1:1
DEVICE=eth1:1
IPADDR=172.18.0.6
PREFIX=16
GATEWAY=172.18.0.1
DNS1=114.114.114.114
DOMAIN=magedu.com
[[email protected]]#vim ifcfg-eth1:2
DEVICE=eth1:2
IPADDR=172.18.0.7
PREFIX=16
GATEWAY=172.18.0.1
DNS1=114.114.114.114
DOMAIN=magedu.com
[[email protected]]#vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
GATEWAY=172.18.0.1
DNS1=114.114.114.114
DOMAIN=magedu.com
[[email protected]]#service network restart

#注意:别名不能自动获取ip地址,必须是静态地址




三、网络组Network 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接口的加入


1、创建网络组接口

  • 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


2、创建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接口


3、网络组示例

  • nmcli con add type team con-name team0 ifname team0 config ‘{"runner": {"name": "loadbalance"}}'

  • nmcli con mod team0 ipv4.addresses 192.168.1.100/24

  • nmcli con mod team0 ipv4.method manual

  • nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0

  • nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0

  • nmcli con up team0

  • nmcli con up team0-eth1

  • nmcli con up team0-eth2

  • teamdctl team0 state; nmcli dev dis eth1


实验:创建网络组

[[email protected]~]#ip link
[[email protected]~]#nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
[[email protected]~]#nmcli con mod team0 ipv4.addresses '172.18.0.123/16'
[[email protected]~]#nmcli con mod team0 ipv4.method manual
[[email protected]~]#nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
[[email protected]~]#nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0
[[email protected]~]#nmcli con up team0-port1
[[email protected]~]#nmcli con up team0-port2
[[email protected]~]#ping -I team0 172.18.68.100            #-I 是指定从哪个网卡往出ping
[[email protected]~]#teamdctl team0 state
setup:
    runner: activebackup
ports:
    eth0
        link watches:
        link summary: up
        instance[link_wathc_0]
            name: ethtool
            link: up
            down count: 0
    eth1
        link watches:
        link summary: up
        instance[link_wathc_0]
            name: ethtool
            link: up
            down count: 0
runner:
    active port: eth0

[[email protected]]#nmcli connection delete team0
[[email protected]]#nmcli connection delete team0-slave0
[[email protected]]#nmcli connection delete team0-slave1



4、管理网络组配置文件

[[email protected]~]#/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

[[email protected]~]#/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes



5、删除网络组

[[email protected]~]#nmcli connection down team0
[[email protected]~]#teamdctl team0 state
[[email protected]~]#nmcli connection show
[[email protected]~]#nmcli connectioni delete team0-eth0
[[email protected]~]#nmcli connectioni delete team0-eth1
[[email protected]~]#nmcli connection show



6、网桥

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

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

技术分享图片

#创建软件网桥
[[email protected]~]#nmcli con add type bridge con-name br0 ifname br0
[[email protected]~]#nmcli connection modify br0 ipv4.addresses 192.168.74.100/24 ipv4.method manuall
[[email protected]~]#nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0

#查看网桥
[[email protected]~]#cat /etc/sysconfig/network-scripts/ifcfg-br0
[[email protected]~]#cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
[[email protected]~]#brctl show

#删除网桥 
[[email protected]~]#brctl delbr br0

#删除网桥中网卡 
[[email protected]~]#brctl delif eth0

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



四、测试网络工具

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

  • 显示主机名

         hostname

  • 测试网络连通性

         ping

         mtr(跟踪路由器,动态跟踪)

  • 显示正确的路由表

         ip route

  • 确定名称服务器使用:

         nslookup

         host

         dig

  • 跟踪路由

         traceroute

         tracepath


五、网络客户端工具

  • ftp,lftp(带颜色并且支持命令补全)

         子命令:

             get(下载指定的一个文件)

             mget(下载多个文件)

             put(是上传)

             ls(看的是ftp服务器里的文件)

             !ls(看的是本机的文件)

             lcd(切换目录)

             help

             ?(是查看所能使用的命令)

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

[[email protected]~]#yum install ftp lftp -y
[[email protected]~]#ftp 172.18.0.1
ftp>pwd
257 "/"              #这个是指ftp服务器文件所在的根,不是当前系统的根
ftp>ls     
ftp>mget ubu*        #可以下载多个文件       

#实现自动上传文件或者下载文件
[[email protected]~]#ftp -n <<EOF
>open 172.18.0.1
>user ftp
>password xxx
>get a
>EOF



  • lftpget URL

  • wget [option]... [URL]...

         -q: 静默模式

         -c: 断点续传

         -P:保存在指定目录

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

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

  • links URL

         --dump(抓网页文字)

         --source(抓网页源码)


[[email protected]~]#yum install elinks

#可以下载不让转载的文字
[[email protected]~]#links 192.168.1.100 --dump > a.tx


以上是关于Linux学习之路-Centos7-nmcli命令及网桥21---20180127的主要内容,如果未能解决你的问题,请参考以下文章

linux学习之路三------指令篇

Linux学习之路:命令别名历史记录和命令查找执行顺序

Linux学习之路

linux学习之路:mkdir命令

Linux学习之路帮助命令

学习Linux之路 命令cat