网络管理之基础知识

Linux的网络配置

IP地址

  它们可唯一标识 IP 网络中的每台设备 

每台主机(计算机、网络设备、外围设备)必须具有唯 一的地址 

IP地址由两部分组成:

网络ID:

标识网络

每个网段分配一个网络ID

主机 ID:

标识单个主机

由组织分配给各设备

 

IPv4地址格式:点分十进制记法

     IP地址是一个32位二进制 

示例:101011000001000010000000000010001

将32位转化为八进制的使之可读

示例:172.16.128.17

IP 地址分类

A类: 0 000 0000 – 0 111 1111: 1-127

网络数:126, 127

每个网络中的主机数:2^24-2

默认子网掩码:255.0.0.0

私网地址:10.0.0.0

 

B类: 10 00 0000 – 10 11 1111:128-191

网络数:2^14

每个网络中的主机数:2^16-2

默认子网掩码:255.255.0.0

私网地址:172.16.0.0-172.31.0.0

 

C类: 110 0 0000 – 110 1 1111: 192-223

网络数:2^21

每个网络中的主机数:2^8-2

默认子网掩码:255.255.255.0

私网地址:192.168.0.0-192.168.255.0

 

D类:组播

1110 0000 – 1110 1111: 224-239

 

E类: 240-255

 

公共IP地址

A类:1.0.0.0到9.255.255.255

      11.0.0.0到126.255.255.255

B类:128.0.0.0到172.15.255.255

      172.32.0.0到191.255.255.255

 

C类: 192.0.0.0到192.167.255.255

       192.169.0.0到223.255.255.255

 

私有IP地址

A类:10.0.0.0到10.255.255.255

 

B类:172.16.0.0到172.31.255.255

 

C类:192.168.0.0到192.168.255.255

 

特殊地址

  0.0.0.0 0.0.0.0不是一个真正意义上的IP地址。它表示一个集合:所有不清楚的主 机和目的网络。 

255.255.255.255

限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机 

127.0.0.1~127.255.255.254

本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为 “127.0.0.1”的 数据包。 

224.0.0.0到239.255.255.255

组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。 224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒体程序 

169.254.x.x

如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获 取地址,系统会为主机分配这样地址。

 

保留地址:

网络地址  000000000000000000000000

广播地址  111111111111111111111111

 

跨网络通信

  跨网络通信:路由 

路由分类:

主机路由

网络路由

默认路由 

优先级:精度越高,优先级越高

 

基本网络配置

  将Linux主机接入到网络,需要配置网络相关设置。 

一般包括如下内容:

主机名

IP/netmask

路由:默认网关

DNS服务器

主DNS服务器

次DNS服务器

第三DNS服务器

 

静态网络配置的命令:

    Ifcfg:ifconfig,route,netstat,

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

System-config-network-tui(setup)

配置文件

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

CENTOS6/7: /etc/sysconfig/network-scripts/ifcfg-网卡名称

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

HWADDR:对应的设备的MAC地址

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

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

UUID:设备的惟一标识 

IPADDR:指明IP地址 

NETMASK:子网掩码 

GATEWAY: 默认网关 

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

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

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

PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许 dhcp server分配的dns服务器指向信息直接覆盖至 /etc/resolv.conf文件中

 

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

 

路由相关的配置文件:

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

 

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

 

动态分配: DHCP: Dynamic Host Configuration Protocol

 

配置网络接口

接口命名方式:CentOS 6:

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

ppp:ppp[0,1,2,…] 

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命令

路由管理命令

查看: route –n

添加:route add

删除:route del

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

    目标::192.168.1.3  网关:172.16.0.1

# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

     目标: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

删除:route del

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]  目标:192.168.1.3  网关:172.16.0.1

# route del -host 192.168.1.3 

目标:192.168.0.0 网关:172.16.0.1

# route del -net 192.168.0.0 netmask 255.255.255.0

 

netstat命令

netstat – Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships 

显示网络连接: netstat [–tcp|-t] [–udp|-u] [–raw|-w] [-listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[-extend|-e]]  [–program|-p]

-t: tcp协议相关

  -u: udp协议相关

-w: raw socket相关

-l: 处于监听状态

-a: 所有状态

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

-e:扩展格式

-p: 显示相关进程及PID

常用组合:

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

 

ss命令

格式:ss [OPTION]… [FILTER] 

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

选项:

  -t: tcp协议相关

-u: udp协议相关

-w: 裸套接字相关

-x:unix sock相关

-l: listen状态的连接

-a: 所有

-n: 数字格式

-p: 相关的程序及PID

-e: 扩展的信息

-m:内存用量

-o:计时器信息

常用组合: -tan, -tanl, -tanlp, -uan

常见用法

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

 

设备别名

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

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

 

网卡名称

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

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

查看网卡:

dmesg |grep –i eth

ethtool -i eth0

卸载网卡驱动:

modprobe -r e1000

rmmod e1000

装载网卡驱动:

modprobe e1000

 

网络接口配置-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配置 

创建bonding设备的配置文件

/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none

BONDING_OPTS= “miimon=100  mode=0” /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-docversion/Documentation/networking/bonding.txt

 

 

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

(0)
上一篇 2016-09-10 05:08
下一篇 2016-09-10 08:14

相关推荐

  • 初识MySQL(二)SQL语句

        MySQL是关系型数据库的一种,基于二维表实现数据的存储与读取,通过索引实现快速查询,而实现数据库、表、索引的操作则是由SQL语句来完成的。     1、MySQL中字符大小写       (1)、SQL关键字以及函数名不…

    Linux干货 2015-08-26
  • 马哥教育网络班22期+第五周课程练习

    1、显示当前系统上root、fedora或user1用户的默认shell; [xw@localhost ~]$ cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&…

    Linux干货 2016-10-09
  • N26-第五周博客作业

    一、显示当前系统上root、fedora或user1用户的默认shell; [root@promote home]# grep -E ‘^(root|fedora|user1)’ /etc/passwd |cut -d : -f7 /bin/bash /bin/bash /bin/bash [root@promote home]# 注…

    Linux干货 2017-05-15
  • 设计模式(十一)代理模式Proxy(结构型)

    1.概述        因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象, 你曾有过延迟创建对象的想法吗 ( if和else就是不同的两条逻辑路径) ? 你有想过限制访问某个对象,也就是说,提供一组方法给普通用户,特别方法给管理员用户?以上两种需求都非常类似,并且都需要解决一个更大的问题:你如何提供…

    Linux干货 2015-07-09
  • 马哥M20-1第一周作业

    作业1:通过echo实现字体闪烁,添加下划线,改变颜色      (1)添加下划线    (2)字体闪烁   (3)改变颜色 作业2:显示前10天的年月日 作业3:screen的使用

    Linux干货 2016-07-29
  • CentOS6.7上编译安装MariaDB

    CentOS6.7上编译安装MariaDB

    系统运维 2016-06-03