Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制。
Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,如果在同一网络内,那么可以通过ARP广播机制得到对方mac地址后就可以进行通信的,如果不是本地网络内就必须将数据报文封装后一层一层的经由网关路由进行转发。无论目标是哪的一般而言只要是非本地网络内的主机的通信我们都是交给一个默认网关,事实上做为一个末端节点主机我们除了配置默认网关之外还可以配置静态路由等
除了上面的两个最根本的IP、子网掩码外我们还需要配置
1、路由信息(包括主机路由、网络路由、默认网关),路由信息的生成方式有:静态路由、动态学习(RIP2、OSPF)。
2、DNS服务器(在Windows上DNS服务器一个主的一个备的,在Linux上可以设置多个(当DNS服务器大于1的时候,并不是我们需要解析一个网站第一个不能解析就换第二个来解析的,而是当第一个DNS服务器不能用的时候才会启用第二个DNS服务器的))。
3、主机名
上面这些信息在Linux系统上配置的方式有两种的:1、静态方式(手动配置,配置信息写到配置文件里)。2、动态配置(Dynamic Host Configuration Protocol(DHCP))
IP相关信息配置:
用户空间工具:ifconfig(net-tools包)、ip(iproute2包)
网络属性服务配置文件:/etc/sysconfig/network-scripts/*
主机名称配置文件:/etc/resolv.conf
GUI/TUI:
网络设备的配置方式:
内核识别硬件设备是靠驱动实现的,因此一般而言在一个内核中它所识别的每一个硬件名称都是驱动程序名,内核表示硬件名就是驱动名,但是驱动名都是硬件厂商给出的,各个厂商有各个厂商的命名规则和方法,所以如果用每个驱动名来标明网络设备那就繁杂了甚至导致大家根本不知道哪个是网络设备了,为了避免这种情况,他们就使用了统一的名称,不论是什么芯片、不论是什么厂商的硬件都给同类硬件取一个统一的名称,所以驱动程序是内核识别硬件的方式,而我们做为系统管理员去识别硬件设备是靠设备的别名(通常叫法就是设备的名称),一般在CentOS5 CentOS6上我们的以太网网卡设备的命名都是eth开头#(eth0 eth1... ...)、如果是PPP网络设备(例如ADSL拨号)就是PPP#、本地回环接口loopback名称是lo。(注意:在CentOS7上这边命名是有变化的)
ifconfig命令的使用:
ifconfig:默认返回的信息是已激活状态的接口信息(有连接已启用的接口)。
-a:显示所有接口信息
ifconfig 接口名(INTERFACE NAME):只显示指定接口的信息。
ifconfig IFNAME ADDRESS:配置网络地址 (地址的格式是:IP/NETMASK(NETMASK长短格式都可以))
长格式:ifconfig IFNAME IP netmask MASK
例子:ifconfig eth0 172.16.6.100 netmask 255.255.0.0
短格式(CIDR格式):ifconfig IFNAME IP/MASK
例子:ifconfig eth0 172.16.6.100/16
route命令的使用:
route:默认是显示本机上的路由信息
-n:在显示路由信息的时候显示为ip地址格式的信息(如果不使用-n选项route命令会把每个ip反解到对应的主机名,然后显示主机名)
route add:添加路由
-host:目标为主机
route add -host HOST_IP gw NEXT_HOP [dev DEVICE]
-net:目标为网络
route add -net NET_ADDRESS gw NEXT_HOP [dev DEVICE]
指定默认网关简要写法:route add default gw GW_ADDRESS
route del:删除路由
route del -host HOST_IP 删除主机路由
route del -net NET_ADDRESS 删除网络地址
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@Legion100 ~] # route add -host 172.16.6.110 gw 172.16.41.252 [root@Legion100 ~] # route add -net 10.0.0.0/8 gw 172.16.41.252 dev eth1 [root@Legion100 ~] # route add -net 10.0.0.0/8 gw 172.16.41.252 dev eth0 [root@Legion100 ~] # route add -net 0.0.0.0 gw 172.16.41.252 dev eth0 [root@Legion100 ~] # route add -net default gw 172.16.41.252 dev eth1 [root@Legion100 ~] # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.6.110 172.16.41.252 255.255.255.255 UGH 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 10.0.0.0 172.16.41.252 255.0.0.0 UG 0 0 0 eth0 10.0.0.0 172.16.41.252 255.0.0.0 UG 0 0 0 eth1 0.0.0.0 172.16.41.252 0.0.0.0 UG 0 0 0 eth0 0.0.0.0 172.16.41.252 0.0.0.0 UG 0 0 0 eth1 [root@Legion100 ~] # route del -host 172.16.6.110 [root@Legion100 ~] # route del -net 10.0.0.0/8 dev eth1 [root@Legion100 ~] # route del -net 10.0.0.0/8 dev eth0 [root@Legion100 ~] # route del -net default dev eth1 [root@Legion100 ~] # route del -net 0.0.0.0 [root@Legion100 ~] # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 [root@Legion100 ~] # |
DNS服务器地址配置:
本地解析:/etc/hosts
DNS服务器解析:明确指定DNS服务器的IP地址 (/etc/resolv.conf)
IP/NETMASK静态配置:
配置文件有两类(/etc/sysconfig/network-scripts 目录下)
配置IP、掩码、网关:
以太网:ifcfg-IFNAME文件
PPP:ifcfg-ppp#文件
配置路由:
route-IFNAME文件(配置的是静态路由,永久有效的)
ifcfg-IFNAME配置文件的格式:
DEVICE=设备名(次配置文件所关联的设备,此设备名称要与ifcfg-后面的保持一直)
BOOTPROTO={bootp|dhcp|static|none}(bootp是比dhcp更早的一种协议)
HWADDR=MAC_ADDR设备的mac地址
NM_CONTROLLED={yes|no}是否接受NetworkManager服务脚本来控制此设备(在CentOS6上建议不启用)
ONBOOT={yes|no}是否开机过程中自动激活此设备
TYPE={Ethernet|Bridge|等等}网络设备类型(Ethernet:以太网网卡、Bridge:桥设备)
UUID= (设备ID号)
IPADDR= (ip地址)
NETMASK=(子网掩码)
GATEWAY=(默认网关)
DNS1= 第一个DNS服务器
DNS2=
IPV6INIT={yes|no}
USERCTL={yes|no}是否接受非管理员来控制此网络设备接口
PEERDNS={yes|no}不接受DHCP服务器指派的DNS服务器地址
route-IFNAME配置文件的格式:
格式1:每一行一个路由条目
DESTINATION via NEXT_HOP
格式2:没三行一个路由条目
ADDRESS#=DESTINATION
NETMASK#=MASK
GATEWAY#=GW
注意两种格式不可混用,要么用第一种 要么用第二种
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [root@Legion100 ~] # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth1 [root@Legion100 ~] # echo "10.0.0.0/8 via 172.16.41.252" >> /etc/sysconfig/network-scripts/route-eth0 [root@Legion100 ~] # service network restart 正在关闭接口 eth0: [确定] 正在关闭接口 eth1: [确定] 关闭环回接口: [确定] 弹出环回接口: [确定] 弹出界面 eth0: 正在决定 eth0 的 IP 信息...完成。 [确定] 弹出界面 eth1: 正在决定 eth1 的 IP 信息...完成。 [确定] [root@Legion100 ~] # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 10.0.0.0 172.16.41.252 255.0.0.0 UG 0 0 0 eth0 0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth1 [root@Legion100 ~] # |
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | [root@Legion100 ~] # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth1 [root@Legion100 ~] # cat /etc/sysconfig/network-scripts/route-eth0 ADDRESS0=10.0.0.0 NETMASK0=255.0.0.0 GATEWAY0=172.16.41.252 ADDRESS1=192.168.185.0 NETMASK1=255.255.255.0 GATEWAY1=172.16.41.252 [root@Legion100 ~] # service network restart 正在关闭接口 eth0: [确定] 正在关闭接口 eth1: [确定] 关闭环回接口: [确定] 弹出环回接口: [确定] 弹出界面 eth0: 正在决定 eth0 的 IP 信息...完成。 [确定] 弹出界面 eth1: 正在决定 eth1 的 IP 信息...完成。 [确定] [root@Legion100 ~] # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.185.0 172.16.41.252 255.255.255.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 10.0.0.0 172.16.41.252 255.0.0.0 UG 0 0 0 eth0 0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth1 [root@Legion100 ~] # |