IP配置、信息、相关命令
IP地址
它们可唯一标识 IP 网络中的每台设备
每台主机(计算机、网络设备、外围设备)必须具有唯一的地址
IP 地址由两部分组成:
• 网络ID:
• 标识网络
• 每个网段分配一个网络ID
• 主机 ID:
• 标识单个主机
• 由组织分配给各设备
IPv4地址格式:点分十进制记法
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地址
私有IP地址
特殊地址
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 服务器获取地址,系统会为主机分配这样地址。 |
有子网的子网掩码
子网掩码的八位
可变长度的子网掩码
划分子网
公式1
主机数=2^主机位数(掩码中0个数=32-网络位数)-2
公式2
划分子网:网络ID位向主机ID位M借位,借N位,划分子网2^N个,每个子网主机数2^(M-N)-2
公式3
网络ID=IP地址^子网掩码
跨网络通信
跨网络通信:路由
路由分类:
主机路由
网络路由
默认路由
动态主机配置协议DHCP
基本网络配置
将Linux 主机接入到网络,需要配置网络相关设置。
一般包括如下内容:
主机名
IP/mask 必须是唯一的
路由:默认网关
DNS服务器:
主DNS 服务器
次DNS 服务器
第三DNS服务器
网络配置方式
静态指定:
ifcfg: ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui (setup) centos6的字符工具
配置文件
CentOS 7: 网络配置工具
nmcli, nmtui(字符工具)
nm-connection-editor(图形工具) 如下:
动态分配:
DHCP: Dynamic Host Configuration Protocol
小实验:更改网卡名
1.找出更改网卡名的文件
红框内的文件是用来命名网卡的文件
2.然后用vim编辑器改一下名字
红框内原来的名字是eth0,改完之后重启下虚拟机 原网卡名和现网卡名图:
但是只更改这个文件 网卡是不能用的 还要改网卡的配置文件
而我们需要修改的文件就是红框内的文件 vim打开它
修改了这两处文件 修改完之后 存盘退出 网卡就可以正常使用了
图形界面看一下网卡名改了 这里的名字就是由网卡配置文件里 NAME那一行来决定的
x修改网卡地址: 在vim /etc/sysconfig/network-scripts/ifcfg-eth0里修改文件 具体如下:
添加了图中红方框内的五行文件 然后启动服务:
就完成了
而如果我们要更改mac地址需要:
把原来的HWADDR改成MACADDR然后启动服务后 新mac地址生效
配置网卡必须要写的有以下几个参数: 其他的可有可无
当然了 上述是静态配置网卡
自动分配IP地址: 只需要写两行
DEVICE=eth0 BOOTPROTO=dhcp
这些配置写完 要重启下虚拟机才能生效
静态配置网卡 需要的参数 |
DEVICE=eth0 IPADDR=192.168.0.1 PREFIX=24(NETMASK=255.255.255.0) GATEWAY=192.168.1.254 DNS1=8.8.8.8 DNS2=8.8.4.4 后面的这些地址 可以自己指定 |
自动分配IP地址 需要的参数 |
DEVICE=eth0 BOOTPROTO=dhcp |
如果你的电脑需要在静态、自动获取IP之间转换的话 可以再网络里设置
在IPv4属性里备用配置设置一下用户配置
设备别名
为每个设备别名生成独立的接口配置文件
• 关闭NetworkManager 服务 service NetworkManager stop(临时关闭,下次开机自动启动);chkconfig NetworkManager off(永久关闭 开机不启动)
• 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
网络接口配置-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(ms) mode=0”
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
miimon 是用来进行链路监测的。如果miimon=100 ,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
• 查看bond0 状态:/proc/net/bonding/bond
当前活动的网卡为eth0 为mode1模式
• 关于bonding 的详细配置请参照
/usr/share/doc/kernel-doc-
version/Documentation/networking/bonding.txt
配置bond服务的一些命令:
cd /etc/sysconfig/network-scripts vi ifcfg-bond0 DEVICE=bond0 IPADDR=10.100.100.100 PREFIX=16 BONDING_OPTS="miimon=100 mode=1" vi ifcfg-eth0 DEVICE=eth0 MASTER=bond0 SLAVE=yes vi ifcfg-eth1 DEVICE=eth1 MASTER=bond0 SLAVE=yes
网卡名称
网络接口识别并命名相关的udev 配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg |grep –i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
网卡别名
对虚拟主机有用
将多个IP 地址绑定到一个NIC上
eth0:1 、eth0:2、 、 eth0:3
ifconfig 命令:
ifconfig eth0:0 192.168.1.100/24 up
定义了一个网卡别名 如图:
如果把命令中的“:”去掉 会暂时把网卡地址更改
ifconfig eth0:0 down删除网卡
ip 命令:
配置Linux的网络属性
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
ip – show / manipulate routing, devices, policy routingand 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 添加/删除IP地址 可以添加多个地址
[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 在eth0上添加IP地址 名字为eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0 删除eth0:0的IP地址
ip addr flush dev eth0 label eth0:0 把eth0上的IP地址全部清空
网络配置文件
IP 、MASK 、GW 、DNS 相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE: :
说明参考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
DEVICE :此配置文件应用到的设备
HWADDR :对应的设备的MAC 地址
BOOTPROTO :激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
NM_CONTROLLED :NM 是NetworkManager 的简写,此网卡是否接受NM 控制;建议CentOS6 为“no”
ONBOOT :在系统引导时是否激活此设备
TYPE :接口类型;常见有的Ethernet, Bridge
UUID :设备的惟一标识
IPADDR :指明IP 地址
NETMASK :子网掩码
GATEWAY: 默认网关
DNS1 :第一个DNS 服务器指向
DNS2 :第二个DNS 服务器指向
USERCTL :普通用户是否可控制此设备
PEERDNS :如果BOOTPROTO 的值为“dhcp” ,是否允许dhcp server 分配的dns 服务器指向信息直接覆盖至/etc/resolv.conf
dns名字解析
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
/etc/nsswitch.conf
与/etc/hosts 相比优先于DNS
正解:FQDN–>IP
# dig -t A FQDN
# host -t A FQDN
反解:IP–>FQDN
# dig -x IP
# host -t PTR IP
netstat命令和ss命令的用法和区别
netstat命令 | ss命令 |
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 这个命令是比较早的命令 现在用的很少 |
格式: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 FILTER : [ state TCP-STATE ] [ EXPRESSION ] TCP 的常见状态: tcp finite state machine: LISTEN: 监听 ESTABLISHED :已建立的连接 FIN_WAIT_1 FIN_WAIT_2 SYN_SENT SYN_RECV CLOSED EXPRESSION: dport = sport = 示例:’( dport = :ssh or sport = :ssh )’ 常见用法: 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详细信息 |
route命令:路由管理命令 查看:route -n 添加:route add 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 默认路由,网关:172.16.0.1 # route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 # route add default gw 172.16.0.1 删除: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 默认路由,网关:172.16.0.1 # route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 # route add default gw 172.16.0.1 删除: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 |
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 |
原创文章,作者:旧城以西,如若转载,请注明出处:http://www.178linux.com/44492