一、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
阅读(2847) | 评论(1) | 转发(3) |