网络管理命令

linux网络属性

    ifconfig命令家族:ifconfig,route,netstat

ifconfig命令:接口及地址查看和管理

    ifconfig [interface]:

    ifconfig -a:显示所有接口,包括inactive

blob.png

    ifconfig IFACE up|down :禁用和启用网卡

blob.png 

    ifconfig IFACE IP/MASK [up] 配置IP地址和子网掩码

blob.png

注意:这些配置都是立即生效的

    [-]promisc:启用混杂模式

route命令:路由查看及管理

    路由条目类型:

        主机路由:目标地址为单个IP

        网络路由:目标地址为IP网络

        默认路由:目标为任意主机,0.0.0.0/0.0.0.0

    查看:route -n (以数字格式显示)   

[root@localhost ~]# route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.1.0.0        *               255.255.0.0     U     1      0        0 eth0
default         server.magedu.c 0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.1.0.0        0.0.0.0         255.255.0.0     U     1      0        0 eth0
0.0.0.0         10.1.0.1        0.0.0.0         UG    0      0        0 eth0

     添加

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

    示例:

    route  add -net  0.0.0.0/8 gw  192.168.10.1 dev  eth1

    route  add -net  0.0.0.0/0.0.0.0  gw  192.168.10.1

    route  add default   gw  192.168.10.1

 blob.png   

    删除:

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

    route del -net  10.0.0.0/8  gw 192.168.10.1

    route  del default(删除默认网关)

blob.png    

配置动态路由

通过手进程获取动态路由

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

    命令vtysh

netstat命令

显示网络连接:

netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–

    extend|-e]] [–program|-p]

    -t:TCP相关协议的相关连接;链接均有其状态;FSM(Finate State Machine)

    -u:UDPF相关的连接

    -w:raw socket相关的连接

    -l:处于监听状态的连接

    -a:所有状态

    -n:以数字格式显示IP和port

    -e:扩展格式

    -p:显示相关的进程及PID

blob.png

blob.png

blob.png

blob.png

常用整合:

    -tan,-uan,-tnl,-unl

显示路由表:

    netstat {–route|-r} [–numeric|-n]

        -r:显示内核路由表

        -n:以数字格式显示

blob.png

显示接口统计数据:

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

netstat -i

netstat -IIFACE(注意此处网卡名称与-I选项没有空格)

ifconfig -s 

blob.png

blob.png

ip命令

配置Linux网络属性:ip命令

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

ip [ OPTIONS ] OBJECT { COMMAND | help }

    OBJECT := { link | addr |route }

    注意:OBJECT可简写,各OBJECT的命令也可以简写

ip OBJECT:

ip link:网络设备配置

    ip link set:管理修改设备属性

        dev NAME(default):指明要管理的设备,dev关键字可省略

        down:禁用   up:启用       

blob.png

        multicast on或multicast off 启用或禁用组播(多播功能)            

        name NAME:改名 

        注意:此处更改网卡名成,要先将网卡禁用在使用更改名称命令!!!!!  

blob.png

        mtu NUMBER:设置mtu的大小;默认为1500

        netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;

    ip link show:显示设备属性

blob.png

CentOS7专有

ip netns:ip -manage  network namspace

    ip netns list:列出所有的netns

    ip netns add NAME  增加创建网络命名空间

    ip netns  del NAME  删除网络命名空间

    ip netns  exec  NAME COMMAND :在指定的netns中运行命令

ip address        

    增加ip  address add IFADDR dev IFace

        [label NAME] :为额外添加的地址指明接口别名

        [broadcast ADDRESS] :广播地址;会根据IP 和NETMASK自动计算得到

        [scope SCOPE_VALUE]:

            global:全局可用

            link:接口可用

            host:仅本机可用

显示show

    ip addr list(show) IFACE:显示接口的地址

增加ip地址

blob.png

删除ip  address delete IFADDR dev IFace

blob.png

添加ip地址时指明网卡别名

blob.png

blob.png

清空flush(使用格式同show)

    ip address flush dev eth0 label eth0:0

ip route:

    add:添加路由

        ip route add TARGET via GW dev IFACE src SOURCE_IP

blob.png

    change:修改

    replace:替换

        ip route  add  TYPE PREFIX  via GW [dev ]

    delete:删除

        ip route del TARGET

blob.png

    show:显示

        ip route show|list

blob.png

    flush:清空路由

    get:获取指定单条路由

ss命令

格式: ss [OPTION]…[FILTER]

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

模块通信获取socket 信息

选项:  

    -t:TCP协议的想连接

    -u:UDP相关的连接

    -w:raw socket相关的连接

    -l:监听状态的连接

    -a:所有状态的连接

    -n:数字格式

    -p:相关的程序及其PID

    -e:扩展格式信息

    -m:内存用量

    -o:计时器信息

    -x:unix sock相关

TCP的常见状态:

  TCP FSM:

    LISTEN:监听

    ESTABLISEHD:建立的连接

    FIN_WAIT1:

    FIN_WAIT2:

    SYN_SENT:

    SYN_RECV:

    CLOSED:

例:  ss -tan '(dport = :22 or sport = :22)'

  sport:源端口   dport:目标端口    

常见组合:

    -tan,-tanl,-tanlp,-uan

常见用法:

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

blob.png

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

ss -t -a 显示所有的tcp socket

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

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

blob.png

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

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

blob.png

网络配置文件

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

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

    DEVICE:此配置文件应用到设备

    HWADDR:对应设备的MAC地址

    BOOTPROTO:激活此设备使用的地址配置协议,常用的dhcp,static,none,bootp

    NM_CONTROLLED:NM是NetworkMangager的简写,此网卡是否接受NM控制;建议CentOS6为“no”        

        网络服务:network

            NetworkManager

        管理网络服务:

            centos6:service SERVICE  {start|stop|restart|status}

            centos7:systemctl {start|stop|restart|status} SERVICE.service

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

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

    UUID:设备的唯一标识

    IPADDR:指明IP地址

    NETMASK:子网掩码

    GATEWAY:默认网关

    DNS1:第一个DNS的服务器指向

    DNS2:第二个DNS的服务器指向

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

    PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息

    直接覆盖至/etc/resolv.conf中

blob.png

本地解析器

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

/etc/hosts

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

    对小型独立网络有用

    通常,在使用DNSian前检查

getent hosts 查看/etc/hosts内容

blob.png

DNS名字解析

/etc/resolv.conf

    nameserver DNS_SERVER_IP1

     nameserver DNS_SERVER_IP2

    nameserver DNS_SERVER_IP3

blob.png

/etc/nsswitch.conf

 与/etc/hosts 相比优先于DNS

正解:FADN—>IP

    #dig -t A FAQN

    #host -t A FQDN

blob.png    

反解:IP–>FQDN

    #dig -x IP

    #host -t PTR IP

blob.png

路由相关配置文件

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

支持两种配置方式,但是不可混用:

    1. TARGET via GW

        如:10.0.0.0/8 via 172.16.0.1

    2.每三行定义一条路由

    ADDRESS#=TAGET

    NETMASK#=MASK

    GATEWAY#=NEXTHOP

CentOS 7网络属性配置

在rhel6之前,网络接口使用连续号码命名:eth。eth1等,当增加或者删除网卡时名称可能会发生变化

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

  1. 网卡命名机制    

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

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

    3. 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s

    4. 如果用户显示启动,也可以根据MAC地址进行命名,enx2387a1dc56

    5. 上述均不可用时,则使用传统命名机制

      基于BIOS支持启用biosdevnam软件

      内置网卡:em1,em2

      pci卡:pYpX    X:port  Y:slot

  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 ="rhgb quiet net.ifnames=0"

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

blob.png

blob.png

(2)  为grub2 生成其配置文件

    grub2-mkconfig -o /etc/grub2.cfg

blob.png

(3)  重启系统

nmcli命令


blob.png

blob.png

nmcli配置网络

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

设备及网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,

但是同时只有一个连接配置生效

connection:

nmlic connection show(查看连接)

blob.png

nmcli的子命令可以用tab键补全,很方便

blob.png

使用nmcli命令及其子命令直接增加了一个ip地址及其配置文件

blob.png

此时此地址虽然配置文件没有问题,但是是个无效的,因为它的名字和接口没有绑定

blob.png

还需执行命令 nmcli connection up home 才能启用

删除新增加的ip地址和配置文件

blob.png


general:显示NetworkMangager的所有状态

blob.png


device:列出NetworkManager识别出的设备列表及他们的状态

blob.png

显示网络接口属性

nmcli dev show eno16777736

blob.png

创建新连接default,自动获取IP地址

 nmcli connection add con-name default type ethernet ifname eno33554976

1.创建

blob.png

2.启用绑定

blob.png

修改连接设置

给default增加一个ipv4地址

nmcli connection modify default +ipv4.addresses 10.1.252.211/24

blob.png

启用此ip地址,步骤如下

nmcli connection down default 
nmcli connection  up default
ip add

blob.png

备注:此处只能使用ip add命令查看,ifconfig命令无法查看

nmcli的子命令太多,这里就不一一列举,这些子命令都可用tab键补全,所以使用起来很方便

nmcli命令列表

blob.png

blob.png

 

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

    nmcli con reload

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

    nmcli con up “system eth0”

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

图形工具

    nm-connection-editor

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

创建网络组接口

nmcli con add type team con-name CNAME ifname INAME [config JSON]

    CNAME  连接名, ,INAME  接口名

    JSON  指定runner 方式

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

    METHOD  可以是broadcast, roundrobin,activebackup, loadbalance, lacpblob.png

blob.png

给team0添加ip地址,并且更改设置为手动获取IP地址

blob.png

给tam0添加DNS和网关

blob.png

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

blob.png

ifcfg-team0-port1和ifcfg-team0-port2配置文件如下

blob.png

查看物理接口信息

blob.png

启用team0

blob.png

将物理接口port1和part2启用

blob.png

blob.png

使用teamdctl team0 state可查看网络组使用信息

blob.png

用另一个主机来ping此主机(效果和bond其实是一样的)

结果有点奇怪

第一次测试时,两块网卡任意一块存在时,都是可以ping通的

但是第二次在测试时,取消第二块网卡连接时,只保留第一网卡,无法ping通,

取消第一网卡连接时,只保留第二网卡,是可以ping通的

因为老师上课的时候也出现过同样的情况(第二次测试),所以我猜测是不是这个

还不稳定,存在什么漏洞,具体还得在找找资料看看了!

这个实验就到这里吧!

管理网络组配置文件

配置文件在老地方

blob.png

如果想修改team0,可以使用命令。当然也可以在配置文件中直接修改

team-part1和team-part2也是一样,可以直接在配置文件中修改

blob.png

nmcli配置主机名

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

rhel7.0 主机名配置文件:/etc/hostname  ,默认没有这个文件,通过DNS 反向解析获取主机名,

主机名 默认为 :

    localhost.localdomain

显示主机名信息

    hostname

    hostnamectl status

创建并修改文件并生效

    hostnamectl set-hostname desktopX.example.com

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

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

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

等价于下面命令:

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

测试网络

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

    显示主机名

    hostname

blob.png

测试网络连通性

    ping 10.1.252.194

blob.png

    mtr 10.1.252.194blob.png

显示正确的路由表

    ip route

blob.png

确定名称服务器使用:

    nslookup

    host

    dig

跟踪路由

    traceroute

    Tracepath

To me:

    网络管理还需多花时间研究研究!

     以后的我,切记!!!!!!!  

原创文章,作者:qiuwei,如若转载,请注明出处:http://www.178linux.com/44230

(0)
上一篇 2016-09-13 15:19
下一篇 2016-09-13 15:32

相关推荐

  • 马哥教育网络班22期+第六周课程练习

    vim编辑器的使用总结    vim编辑器是模式化的全屏文本编辑器,有三种基本模式:        编辑模式        输入模式   &…

    Linux干货 2016-10-24
  • linux文本查找工具之locate、find

       linux文本查找工具之locate、find    一、文件查找分为两类:               1、非实时查找:locate   &n…

    Linux干货 2017-04-08
  • bash脚本编程实例

    bash脚本编程实例 1.写一个脚本 能接受四个参数:start、stop、restart、status start:输出“starting脚本名finished.” restart:输出“restarting脚本名finished.” stop:输出“stoping脚本名finished.” status:输出“status脚本名finished.” 其他…

    Linux干货 2017-09-04
  • 作业-第二周

    1、linux常用文件管理命令 ls rm chmod touch mv cp 2、echo $? 如果返回0则成功,其他失败 3、 mkdir /tmp/{a,b}_{c,d} mkdir -p /tmp/mylinux/bin /tmp/mylinux/boot/ /tmp/mylinux/boot/grup /tmp/mylinux/dev \ /tm…

    Linux干货 2016-06-23
  • ocata openvswtich

      一、Controller配置1、安装软件 # yum –enablerepo=centos-openstack-ocata,epel -y install openstack-neutron openstack-neutron-ml2 2、修改配置文件/etc/neutron/neutron.conf [DEFAULT]core_p…

    2018-01-22
  • 脚本编程之变量

    简单跟大家介绍一下脚本编程中的变量。 大家都知道,脚本编程,主要由三个部分组成,一是命令,二是变量,三是控制语句。 变量的使用,可以让脚本变得更加简洁,高效。 我们主要简单讲一下变量的概念,变量的类型,变量的种类,不同种类的变量是如何定义的,变量的基本操作,以及变量的配置文件。 了解了这些,我们还可以聊一聊变量的高级操作。 首先,什么是变量? 通俗一点讲:变…

    Linux干货 2017-04-17