首页 > 系统服务 > 详细

Linux网络管理(二)

时间:2017-02-27 14:01:43      阅读:254      评论:0      收藏:0      [点我收藏+]

   第二篇:Linux网络属性配置命令

=============================================================================

概述:


=============================================================================

 2.设置网卡命名方式

CentOS 6网卡命名方式:

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

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


技术分享


查看网卡:

  • dmesg |grep –i eth;

  • ethtool -i eth0

卸载网卡驱动:

  • modprobe -r e1000

  • rmmod e1000

装载网卡驱动:

  • modprobee1000

CentOS 7 使用传统命名方式设置过程:

1.编辑 /etc/default/grub 配置文件或修改 /boot/grub2/grub.cfg

技术分享


2.为grub2生成配置文件

  • grub2-mkconfig -o /etc/grub2.cfg

3.重启系统

  • reboot

技术分享

Linux网络属性配置命令

 1.ifcfg命令家族:ifconfig,route,netstat

ifconfig命令:查看及配置网卡的相关参数

查看接口:

  • ifconfig [INTERFACE] :默认显示激活状态接口

  • ifconfig -a:显示所有接口,包括未激活状态的接口

技术分享

启用和禁用网卡:

  • ifconfig IFNAME up/down

设定IP地址:

  • ifconfig IFACE IP/mask [up]

  • ifconfig IFACE IP netmask MASK

options:

  • [-]promisc:启用或禁用混杂模式

注意:

  • 设定的地址会立即送往内核中的TCP/IP协议栈,并生效,但不会永久有效;

管理IPv6地址

  • 添加:add addr/prefixlen;

  • 删除:del addr/prefixlen

演示:

# 配置IP地址,子网掩码可以使用长度,也可以使用全称,如果网卡没有激活,则后面添加up
[root@centos7 ~]# ifconfig eno33554984 192.168.1.120/24 up
[root@centos7 ~]# ifconfig eno33554984 
eno33554984: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.120  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fed6:e46a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d6:e4:6a  txqueuelen 1000  (Ethernet)
        RX packets 1853  bytes 179342 (175.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 45  bytes 7938 (7.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@CentOS6 ~]# ifconfig eth1 192.168.1.121 netmask 255.255.255.0 up
[root@CentOS6 ~]# ifconfig eth1 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:CB:50:9A  
          inet addr:192.168.1.121  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fecb:509a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1877 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:181632 (177.3 KiB)  TX bytes:1152 (1.1 KiB)
# 启用或禁用混杂模式
[root@CentOS6 ~]# ifconfig eth1 promisc
[root@CentOS6 ~]# ifconfig eth1 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:CB:50:9A  
          inet addr:192.168.1.121  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fecb:509a/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:2538 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:245597 (239.8 KiB)  TX bytes:1152 (1.1 KiB)

[root@CentOS6 ~]# ifconfig eth1 -promisc
[root@CentOS6 ~]# ifconfig eth1 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:CB:50:9A  
          inet addr:192.168.1.121  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fecb:509a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2652 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:258255 (252.2 KiB)  TX bytes:1152 (1.1 KiB)

route 命令:路由查看及管理

路由条目类型

  • 主机路由(host): 目标地址为单个IP;

  • 网络路由(net):目标地址为IP网络;

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

查看:

  • route -n (以数字格式显示路由信息,不要直接使用route 命令会反解地址和端口号)

添加路由:

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

注意:

  • 下一跳路由接口的地址必须与本地主机的某个地址在同一网段中;

示例:

1.到达 192.168.1.3/24主机,经由 172.16.0.1 网关:

  • # route add -host 192.168.1.3 gw 172.16.0.1 [dev eth0]

2.到达 192.168.0.0/24网络,经由 172.16.0.1网关:

  • # route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1

  • # route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

3.设定默认网关: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 [-net|-host] target [gwGw] [netmask Nm] [dev IFNAME]

示例:

1.目标:192.168.1.3 主机:172.16.0.1

  • # route del -host 192.168.1.3

2.目标:192.168.0.0 网关:172.16.0.1

  • # route del -net 192.168.0.0 netmask 255.255.255.0

3.删除默认网关

  • # route del default

演示:     

# 查看路由,字段分别为 目标网络地址、网关(吓一跳)、目标网络的掩码、标志(U表示启用状态,UG表示为一个网关)、度量值
[root@centos7 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eno16777736
0.0.0.0         192.168.1.1     0.0.0.0         UG    101    0        0 eno33554984
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eno16777736   # 表示本地主机所在的网络即直连路由,所以不需要网关为0.0.0.0
192.168.1.0     0.0.0.0         255.255.255.0   U     101    0        0 eno33554984

# 添加路由,要到达10.0.0.0网络要经由192.168.1.1网关
[root@centos7 ~]# route add -net 10.0.0.0/8 gw 192.168.1.1 dev eno16777736
[root@centos7 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eno16777736
0.0.0.0         192.168.1.1     0.0.0.0         UG    101    0        0 eno33554984
10.0.0.0        192.168.1.1     255.0.0.0       UG    0      0        0 eno16777736 # 添加成功
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     101    0        0 eno33554984

# 删除之前添加的路由
[root@centos7 ~]# route del -net 10.0.0.0/8
[root@centos7 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eno16777736
0.0.0.0         192.168.1.1     0.0.0.0         UG    101    0        0 eno33554984
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     101    0        0 eno33554984



 

         

 


netstat 命令显示接口的统计数据

1.显示路由表

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

      -r: 显示内核路由

     -n: 数字格式

技术分享

2.显示网络连接

     传输层协议

         tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后,                拆除链接。

         udp:无连接的协议;直接发行数据报文;

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

         -t: tcp协议相关链接,链接均有其状态;FSM

         -u: udp协议相关

         -w: raw socket相关

         -l: 处于监听状态

         -a: 所有状态

         -n: 以数字显示IP和端口

         -e:扩展格式

         -p: 显示相关进程及PID

     常用选项

         -tan,-uan,-tnl,-unl,-tunlp

技术分享

3.显示接口统计数据:

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

    # netstat -i 显示所有接口

    # netstat–I<IFACE>  显示指定接口,注意-I和接口名没有空格;

    # ifconfig -s eno16777736


ifup/ifdown 命令 启用或禁用

    注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE 来识别接口并完成配置;

技术分享


、iproute2 家族


ip 命令

   功能:ip-show / manipulate routing, devices, policy routing and tunnels

   语法:ip[ OPTIONS ] OBJECT { COMMAND | help }

                OBJECT = { link | addr| route| netns }

                     link:连接接口,如eth0;

                     addr:管理接口上的地址;

                     route:管理路由

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


IP OBJECT  

    

1.ip link 

    ip link help 查看简要帮助,常用命令如下:

 ○ip link set IFNAME (修改设备属性)

    指明要管理的设备,dev关键字可省略;

     {up|down} :激活或禁用指定网卡接口

技术分享

      name NAME:重命名接口

      注意:重命名的时候要先把设备停掉(ip link set NAME down)

技术分享

 ○ip link show

    显示接口状态,例如启用的特性,HWADDR等

    查看的是二层设备(数据链路层)的相关属性           

技术分享

 ○ multicast on 或 multicast off:启用或禁用多播功能;

 ○ mtu MUMBER:设置MTU的大小,默认为1500;

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


 2.ip netnes :manage network namespace 网络名称空间

        ip netns add NAME:创建指定netns

        ip netns del NAME:删除指定netns

        ip netns list:列出所有的netns

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

技术分享

3.ip address - protocol address management

○ ip addr add IFADDR dev IFACE 

    添加一个新的接口地址

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

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

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

            global: 全局可用;

            link: 仅链接可用;

            host: 本机可用

技术分享

 

   ○ip addr delete IFADDR  dev IFACE 

     删除接口地址

        如:ip addr del 172.16.100.13/16 dev eth0 label eth0:0

   ○ip addr show/list [IFACE] 

     查看该网卡所有地址信息;

   ○ip addr flush IFACE 

     清空指定接口的所有地址


4.ip route -routing table management


○添加路由:ip route add

 语法:ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]

          TYPE PREFIX:

          主机路由:IP

          网络路由:NETWORK/MASK

  示例:

      ip route add 192.168.0.0/24 via 172.16.0.1

      ip route add 192.168.1.13/24 via 172.16.0.1

      ip route add default via 172.16.0.1

技术分享

 ○ip route del TYPE PRIFIX  :删除指定路由

技术分享

 ○ip route show|list :显示路由

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

      如: # iproute flush dev eth0

 ○ip route get TYPE PRIFIX  :获取指定路由条目,前提是必须存在。


5.ss命令:

    格式:ss[OPTION]... [FILTER]

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

   1.选项:

        -t: tcp协议相关

        -u: udp协议相关

        -w: 裸套接字相关

        -x:unixsock相关

        -l: listen监听状态的连接

        -a: 所有状态的连接

        -n: 数字格式

        -p: 相关的程序及PID

        -e: 扩展的信息

        -m:内存用量

        -o:计时器信息

   2.FILTER := [ state TCP-STATE ] [ EXPRESSION ] 过滤

   3.TCP的常见状态:

     tcpfinite state machine:

          LISTEN: 监听

          ESTABLISHED:已建立的连接

          FIN_WAIT_1:

          FIN_WAIT_2:

          SYN_SENT:

          SYN_RECV:

          CLOSED:

    4.EXPRESSION:

          dport= 目标端口

          sport = 源端口

      示例:’( dport= :sshor sport = :ssh)’

技术分享

 5.常见用法:

      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详细信息:




三、配置主机名


1.CentOS 6:hostname 命令:

    查看:hostname

    配置:hostname HOSTNAME  

           当前系统有效,重启后无效

2.CentOS 7:hostnamectl 命令

技术分享

     hostnamectl status :显示当前主机名信息;

     hostnamectl set-hostname NAME:设定主机名,永久有效; 

 

3.设置配置文件

1)CentOS 6 :

      第一步修改配置文件:/etc/sysconfig/network

技术分享

       第二步:HOSTNAME=<NAME>

    注意:此方法的设定,不会立即生效,但以后会一直有效;

2)CentOS 7:直接使用 hostnamectl 设置即可,直接生效,并永久有效。




四、配置名字解析器


1.本地解析器

   配置文件:/etc/hosts

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

      对小型独立网络有用

      通常,在使用DNS前检查

       getent hosts 查看/etc/hosts 内容

技术分享

2.配置DNS服务器指向:

1)配置文件/etc/resolv.conf  

       nameserver DNS_SERVER_IP(必须是IP地址); 

技术分享

   注意:Linux最多只能设置3台主机被当做DNS地址解析;

2).如何做测试(host/nslookup/dig):        

     正解:# dig -t A FQDN(主机名)

                FQDN-->IP

     反解:# dig -x IP

                IP-->FQDN




五、修改配置文件

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

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

  2.路由相关的配置文件:

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

  3.说明:配置文件 /etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim编辑器直接修改,也可以使用专用的命令进行修改(CentOS 6:system-config-network(setup),CentOS 7:nmtui

  4.配置文件修改之后,如果要生效,需要重启网络服务


ifcfg-IFACE配置文件参数:

      DEVICE:此配置文件的对应的设备名称;

      ONBOOT:此设备是否随OS启动而激活;

      UUID:此设备的唯一标识;

      IPV6INIT:是否初始化IPv6;

      BOOTPROTO:启动时此设备使用的配置协议;取值有:static(手动配置)、none(手动配置)、dhcp或bootp(动态配置)

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

      DNS1:第一DNS服务器指向;

      DNS2:备用DNS服务器指向;

      DOMAIN:DNS搜索域;

      IPADDR:IP地址;

      NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;

      GATEWAY:默认网关;(网关和ip一定要在一个网段)

      USERCTL:是否允许普通用户控制此设备;

      PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动配置的DNS服务器指向;默认为允许;

      NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”(使用命令:# chkconfig NetworkManager off  设置为开机不启动)



网络服务

1.network

   NetworkManger:CentOS 6 

         # chkconfig --list 查看默认状态;

         # chkconfig NetworkManager off  设置为开机不启动。

2.管理网络服务

    CentOS 6:

        # service SERVICE {start|stop|restart|status}

    CentOS 7:

        # systemctl {start|stop|restart|status} SERVICE

技术分享

3.配置文件修改之后,如果要生效,需要重启网络服务

    CentOS 6 系统需执行:

        # service network restart

    CentOS 7 系统序执行:

        # systemctl restart network



示例:

   对CentOS 6 中的新增网卡eth1设置配置文件,并激活

    1)创建配置文件ifcfg-eth1,并设置如下参数:

技术分享

     2)设置好之后保存退出,然后重启网络

技术分享

   3)重启网络之后,可查看当前状态

技术分享

设置非默认网关路由

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

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

  (1)每行一个路由条目:

       格式:

               DESTINATION via GATEWAY

               192.168.0.0/24 via 172.16.0.2

               192.168.1.1/24 via 172.16.0.3

  (2)每三行一个路由条目:

       格式:

               ADDRESS#=TARGET

               NETMASK#=MASK

               GETEWAY#=NEXTHOP

    例如:

         ADDRESS1=192.168.0.0

               NETMASK1=255.255.255.0

               GATEWAY1=172.16.0.2   

      


设置网卡别名给接口设置多个地址)

 ◎ 对虚拟主机有用

 ◎ 将多个IP地址绑定到一个网卡上

       eth0:1 、eth0:2、eth0:3

 ◎ ifconfig命令:

 # ifconfigeth0: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 add 172.16.1.2/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


示例

    在CentOS 6 中以ifconfig 命令为例,,实现将多个IP绑定到一块网卡上

    步骤如下:

 (1)ifconfig IFACE_LABEL IPADDR/NETWASK

      IFACE_LABEL:eth0:0,eth0:1,...   

技术分享

   

(2)为别名添加配置文件;

       DEVICE=IFACE_LABEL

       BOOTPROTO:网卡别名不支持动态获取地址;使用 static,nano手动配置

技术分享

   注意:DEVICE一定要同定义的文件名 

技术分享

技术分享




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


配置步骤如下:

创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    BOOTPROTO=none
    BONDING_OPTS=“miimon=100 mode=1”
/etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    BOOTPROTO=none
    MASTER=bond0
    SLAVE=yes
    USERCTL=no
查看bond0状态:/proc/net/bonding/bond0


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

◎ 删除bond0

     # ifconfig bond0 down

     # rmmod bonding

◎ 详细帮助参看:

  /usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt


试验如下:

  1)编辑配置文件如下:

技术分享

      2)在另一台主机上ping 10.1.252.162,当前主机查看网卡活动如下: 

技术分享

 3)现在我们断开网卡eth0,模拟实际工作中的断网,然后查看能否自动切到网卡eth1上

技术分享

 4)在另一台主机上可以看到,还可以ping通,我们再看现在的工作网卡已经变为eth1,试验成功

技术分享


网络管理中的几个常用工具


1.ping

   检测目标主机是否可达,以及相关网络的延时性等

2.traceroute IP

   探测到达目标主机中间所经过的弯管设备;

3.mtr HOST

   合并了ping和traceroute命令的的网络诊断工具;

4.lftp

   访问ftp服务器

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

技术分享

  子命令:

      get:下载

      mget:下载多个文件支持通配符

5.lftpget URL(统一资源定位符,即网址)

   非交互式命令的下载

6. wget 

   不仅可以下载ftp资源,也可以下载http资源

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

         -q: 静默模式

         -c: 断点续传

         -O: 保存位置

         --limit-rates=: 指定传输速率

技术分享



本文出自 “逐梦小涛” 博客,请务必保留此出处http://1992tao.blog.51cto.com/11606804/1901600

Linux网络管理(二)

原文:http://1992tao.blog.51cto.com/11606804/1901600

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!