日期:2014-05-16  浏览次数:20607 次

LINUX下的网络配置

路由表和静态路由
route 命令的输出项说明
Destination 目标网段或者主机
Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码
Flags 标记。一些可能的标记如下:

U – 路由是活动的
H – 目标是一个主机
G – 路由指向网关
R – 恢复动态路由产生的表项
D – 由路由的后台程序动态地安装
M – 由路由的后台程序修改
! – 拒绝路由

Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由项引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口

3 种路由类型

主机路由
主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H
网络路由
网络路由是代表主机可以到达的网络。网络路由的Flags字段为N
默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G

route 命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:

add : 添加一条路由规则
de l : 删除一条路由规则
-ne t : 目的地址是一个网络
-host : 目的地址是一个主机
targe t : 目的网络或主机
ne tm ask : 目的地址的网络掩码
gw : 路由数据包通过的网关
de v : 为路由指定的网络接口

设置包转发
在 CentO S 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux 的路由功可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使用如下的命令。
# sysctl -w net.ipv4.ip_forward=1
这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
用户还可以使用如下的命令查看当前系统是否支持包转发。
#sysctl net.ipv4.ip_forward

使用 ifconfig 命令配置以太网
可以使用 ifconfig 命令来配置并查看网络接口的配置情况。ifconfig命令格式是:
# ifconfig <网络接口> <IP地址> [<netmask 子网掩码> <broadcast 广播地址>]
当IP地址使用标准A、B、C类地址时,广播地址和子网掩码可以省略,系统会自动判断广播地址和子网掩码的值并进行设置。
ifconfig 命令显示信息说明:

Link encap 网络接口类型,如以太网或PPP等
HWadrr 网卡的 Mac 地址。每一块网卡都有自己的编号,用于在以太网协议下定位网络主机
inet addr 此接口对应的 IP 地址 ,网络接口状态标志
UP – 网络接口被启用
RUNNING – 接口正在运行
BROADCAST – 支持广播 IP 寻址方式
MULTICAST – 支持多播 IP 寻址方式
LOOPBACK – 表示本地回环设备接口
MTU Message transfer unit, 此接口所能传输的最大 frame 数
Metric 此接口的 Metric 数,用于引导路由决策
Bcast 广播地址,通常是网络的最后一个 IP 地址
Mask 子网掩码
RX packets 接收的封包总数、错误数、遗失数和溢流数
TX packets 发送的封包总数、错误数、遗失数和溢流数
collisions 冲突数(当多个 NIC 同时使用网线传输数据时会产生冲突)
txqueuelen 指出网络接口可以存储的数据包的个数
RX bytes 与 RX packets 类似,表示接收的具体字节数
TX bytes 与 TX packets 类似,表示发送的具体字节数
Interrupt 网卡使用的中断(IRQ)
Base address 网卡使用的内存地址

直接修改配置文件配置以太网

CentOS 在 /etc/sysconfig/network -scripts 目录下存储网络接口配置文件。每个网络接口有各自的配置文件, 配置文件以 ifcfg- 为前缀后接网络接口名.
cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 # 设备名
BROADCAST=192.168.0.255 # 广播地址
HWADDR=00:0c:29:f1:15:8f # MAC 地址
IPADDR=192.168.0.100 # IP 地址
NETMASK=255.255.255.0 # 子网掩码
NETWORK=192.168.0.0 # 网络地址