Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65818
  • 博文数量: 15
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 207
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-22 16:04
文章分类
文章存档

2014年(15)

分类: LINUX

2014-03-05 15:42:38

一、IP、网关、路由、掩码

   网络间主机的通信是通常是基于TCP/IP协议。数据从A主机发送到网络中的B主机,需要通过层层包装及协议转发,最终通过B主机的IP地址定位,B主机才能最终接收到数据。这个过程很复杂,中间数据的处理是通过TCP/IP协议实现的,而TCP/IP协议又是建立在OSI四层模型上。OSI的四层模型每层都有每层的功能,OSI的四层模型主要工作就是对数据报文的切片和包装。而网络上的主机都必须要有一个IP地址,数据在发出时,TCP/IP协议根据当前IP及掩码计算出当前主机和通信主机是否在同一个网络段,当两主机不在同一网段时,这时就要通过路由器查找到下一个需要经过的网络设备,也就是网关了,通过网关以及DNS服务器查找IP地址才能最终找到通信主机。所以只有IP地址、网关、掩码、路由及DNS服务器确认了,并且两台主机之间有一个畅通路线,两主机之间才能正常通信。

IP地址通常分成三类:
A类:第一位为网络位,后三位为主机位    B类:前二位为网络位,后二位为主机位    C类:前三位为网络位,后一位为主机位

1-126个网络

容纳的主机数:2^24-2

默认掩码:255.0.0.0

网络地址:1.0.0.0

广播地址:126.255.255.255

IP地址范围:1.0.0.1 ~ 126.255.255.254

127.0.0.1是环回测试用的固定的特殊IP

10.0.0.0到10.255.255.255是私有地址
    

128-191个网络

容纳的主机数:2^16-2

默认掩码:255.255.0.0

网络地址:128.0.0.0

广播地址:191.255.255.255

IP地址范围:128.0.0.1到191.255.255.254

172.16.0.0到172.31.255.255是私有地址

169.254.0.0到169.254.255.255是保留地址


    

192-223个网络

容纳的主机数:2^8-2

默认掩码:255.255.255.0

网络地址:192.0.0.0

广播地址:223.255.255.255

IP地址范围:192.0.0.1 到 223.255.255.254

192.168.0.0到192.168.255.255是私有地址


二、Linux网络配置

   配置网络前首先在确保主机网卡能够被系统识别。给Linux主机配置网络分两种方式:一是使用命令配置,配置好后立即生效,但系统开机后一切又会还原;二是通过配置文件,配置好后需要重启服务生效,但从这以后永久有效。

1、通过命令配置网络

(1)、使用ifconfig命令给系统配置IP地址

使用ifconfig命令有两种方式配置IP地址,一是:
1
    
ifconfig eth0 172.16.251.48 netmask 255.255.0.0

二是,使用短格式的掩码
1
    
ifconfig eth0 172.16.251.48/16

(1.1)、添加多个网络地址
1
    
ifconfig eth0:0 192.168.2.24/24

wKiom1MWk-rC5cuJAAG5KyFy7Z4255.jpg

(2)、使用route命令配置路由
(2.1)、显示路由
1
2
    
route # 显示路由信息
route -n # 使用数字格式显示,不反解地址到主机名

wKiom1MUhRGzeJ0UAADMKmcAtco363.jpg

各字段说名:
Destination    Gateway    Genmask    Flags    Metric    Iface
目标网络段的网络地址
    网关/下一跳(0.0.0.0为任意地址即没有网关)    掩码    

U:启用状态

G:默认网关

H:主机路由
    度量值,到达目标网络需要经过的跳数    通过哪个设备能够到达目标网络

(2.2)、添加路由
1
2
    
route add -host 主机地址/掩码 gw 下一跳 [dev Device] #添加主机地址作为路由
route add -net 网络地址 gw 下一跳 [dev Device] #添加网络地址作为路由

注意,当前主机IP地址必须要和下一跳在同一网段。

添加一个网络路由,网络IP为192.168.0.0,下一跳为172.16.2.10
1
    
route add -net 192.168.0.0/24 gw 172.16.2.10

wKiom1MUijiyWdvpAAEQhjcxUzI389.jpg

添加一个主机路由,主机IP为192.168.3.20,下一跳为172.16.123.110,主机地址不用指定掩码

wKiom1MUi7jwRiioAAEmr_OvW70015.jpg

添加默认路由的两种方法:
1
    
route add -net 0.0.0.0 gw 172.16.23.12
1
    
route add default gw 172.16.23.12

(2.3)、删除路由

删除网络路由

1
    
route del -net 192.168.0.0/24

wKioL1MUjU-yhTQdAADuHk1Uf0A517.jpg

删除主机路由
1
    
route del -host 192.168.3.20

wKiom1MUjmfQhqEbAADmYKLGmKQ751.jpg

删除默认路由
1
    
route del default


(3)、使用ip命令

ifconfig命令和route命令相对来说是比较老的命令,ip命令是一个可以代替ifconfig和route的命令,也可以实现配置IP、配置路由的功能。

ip命令常用的三个功能
1
2
3
    
ip link # 显示与配置网络设备相关信息
ip addr # 显示与配置IP信息
ip route # 显示与配置路由信息

(3.1)、ip link

命令格式
1
2
3
4
5
6
7
    
ip [-s] link show  <== 单纯的查阅该装置相关的信息
ip link set [device] [动作与参数]
相关动作参数
up|down  :启动 (up) 或关闭 (down) 某个接口,其他参数使用默认的以太网络;
address  :如果这个装置可以更改 MAC 的话,用这个参数修改!
name     :给予这个装置一个特殊的名字;
mtu      :就是最大传输单元啊!

显示所有网络设备的信息
1
    
ip link show

wKioL1MWjP3D_eVBAADQGqHpHgY734.jpg

显示指定网卡的详细信息
1
    
ip -s link show eth0

wKiom1MWjZzRklYGAADwSmTPgHg227.jpg

关闭指定网卡
1
    
ip link set eth0 down

wKioL1MWjjrQbKWWAACFAcxcpVA357.jpg

开启指定网卡
1
    
ip link set eth0 up

wKiom1MWjpmgcUpkAAClEhybbBg074.jpg

设定网卡MTU值
1
    
ip link set eth0 mtu 1000

wKiom1MWjyXjV31KAACX5ULvIt8764.jpg

修改网卡名字,修改前请先关闭网卡,修改名字尽量少用,如果是测试修改完后请记得改回去
1
    
ip link set eth0 name wubinary

wKioL1MWkGWR5VCfAADRMj1V8yQ364.jpg

修改网卡MAC地址,如果是测试修改完后记得改回去
1
    
ip link set eth0 address aa:aa:aa:aa:aa:aa

wKioL1MWkWWyswdRAACIVgHwtVY699.jpg


(3.2)、ip addr

命令格式
1
2
    
ip addr show   # 显示 IP 参数
ip addr [add|del] [IP参数] [dev 网卡] [相关参数]

显示所有设备的IP信息
1
    
ip addr show

添加多个IP地址
1
    
ip addr add 192.168.3.5/24 dev eth0

wKioL1MWlWCB2ttgAAFoi-sazzc887.jpg

删除指定IP
1
    
ip addr del 192.168.2.24/24 dev eth0:0

wKioL1MWlgrDcQndAAIqwB6zzTI242.jpg

刷新网卡信息
1
    
ip addr flush eth0


(3.3)、ip route

命令格式
1
2
3
4
5
6
7
    
ip route show  # 显示路由配置
ip route [add|del] [IP或网域] [via gateway] [dev 设备]
show :单纯的显示出路由表,也可以使用 list ;
add|del :添加 (add) 或删除 (del) 路由的意思。
IP或网域:可使用 192.168.50.0/24 之类的网域或者是单纯的 IP ;
via     :从那个 gateway 出去,不一定需要;
dev     :由那个设备连出去,这就需要了


查看路由信息
1
    
ip route show

wKioL1MWmEizqM0bAABzGj879Hs478.jpg

添加路由
1
2
    
ip route add 192.168.3.5/24 dev eth0 # 没有网关
ip route add 192.168.3.5/24 via 192.168.20.1 dev eth0 # 有网关

wKioL1MWmergXvVhAACUMJTjaAQ114.jpg

删除路由
1
    
ip route del 192.168.3.5

wKioL1MWmkTh2Pi8AAChdDQxU2g023.jpg


(4)、使用GUI/TUI界面配置网络

使用命令调出GUI/TUI界面
1
2
3
4
5
    
TUI
system-config-network-tui 或 setup
GUI
system-config-network-gui
# 使用界面配置网络信息,配置完成后,信息将保存至配置文件中

例如:使用setup命令

wKiom1MWm2jj8WLeAAE6Nx2W3rI212.jpg


2、通过配置文件配置网络

CentOS6.4的网络配置文件为
1
2
3
4
5
6
    
IP信息配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0
路由信息配置文件
/etc/sysconfig/network-scripts/ruote-eth0
dns信息配置
/etc/resolv.conf

ifcfg-eth0配置文件各字段说明:

   DEVICE=eth0

       此配置关联至的设备,设备名要与文件名ifcfg-后的内容保持一致

   BOOTPROTE=none

       引导协议:{none|static|dhcp|bootp(引导协议)}

   HWADDR=00:0c:29:96:c5:24

       MAC地址:要与真实MAC地址保持一致;可省略;

   NM_CONTROLLED=yes

       是否接受NetworkManager脚本控制:{yes|no}

   ONBOOT=yes

       是否开机自动启动此网络设备,{yes|no}

   TYPE=Ethernet

       设备类型:Ethernet,Bridge(首字母大写)

   UUID="2d225e7-232232-3435-44364566-dddf23"

       唯一标识,可省

   IPADDR=172.16.12.23

       IP地址

   NETMASK=255.255.0.0

       掩码

   GATEWAY=172.16.0.1

       默认网关

   DNS1=172.16.0.1

       DNS服务地址

   IPV6INIT=no

       是否自动初始化IPv6协议地址

   USERCTL=no

       是否允许普通用户启用或禁用此网络设备

   PEERDNS={yes|no}

       是否允许DHCP服务分配地址时直接更新/etc/resolv.conf中的DNS服务器地址;


route-eth0配置文件说明

   配置文件的格式1:每行一个要配置的路由条目

       DEST via NEXT_HOP

   配置文件的格式2:每一组一个路由条目,每组条目编号后用空行分开

       ADDRESS#=DEST

       NETMASK#=NETMASK

       GATEWAY#=Gateway


DNS配置文件说明

   可连续指定三个:最多三个

   nameserver DNS_SERVER_IP


修改完配置文件后需要重新启动网络服务
1
    
service network restart


三、Linux网络管理

1、网络连通性判断

ping命令,判断某个IP地址是否可以远程通信
1
2
3
4
    
ping: 基于ICNP协议,互联网控制报文协议
ping [options] IP
-c #: 指定所请求的次数
-w deadline: 测试执行时长,不管成功与否,到了时间就结束

wKiom1MWn-vg1pqyAAJEmXhY5Tg574.jpg

mtr命令,网络连通性判断工具
1
2
3
    
mtr -h提供帮助命令
mtr -v显示mtr的版本信息
mtr -r已报告模式显示

traceroute命令,获取从当前主机到达目标主机所有经过的网关
1
    
traceroute HOST


2、查看主机网络连接状态

netstat命令
1
2
3
4
5
6
7
    
-t: tcp协议的连接
-u: udp协议的连接
-l: 监听状态的连接
-a: 所有状态
-p: 连接相关的进程
-n: 数字格式显示
-r: 显示路由表,类似于route或ip route show

常用组合:

netstat -tan  # tcp状态的连接数字显示

netstat -tunl # 显示tcp udp监听状态的进程并且以数字显示

netstat -rn   # 类似于 ip route show

wKioL1MWoRmA4lXAAAJ1TiTr8IQ228.jpg


netstat命令是一个古老的命令,Linux上有一个ss命令可以完全代替netstat命令

ss命令
1
2
3
4
5
6
7
8
9
    
-t: tcp
-u: udp
-a: 相关协议的所有连接
-l: 监听状态的套接字
-e: 显示扩展信息
-m: 显示套接连接使用的内存信息
-p: 进程及PID
-n: 数字格式地址及端口
-o state {established}: 指定状态显示

两个命令用法相似

wKioL1MWoZPAi6WgAAG4pmNbMyk549.jpg



阅读(2856) | 评论(1) | 转发(3) |
给主人留下些什么吧!~~

niao59292014-03-06 23:56:00

看不到图哦。搂住