3 IP和路由
3.1 IP地址和子网掩码
3.1.1 IP地址分类
A类:
- 0 000 0000 - 0 111 1111: 1-127
- 网络数:127
- 每个网络中的主机数:2^24-2
- 默认子网掩码:255.0.0.0
- 私网地址:10.0.0.0-10.255.255.255
B类:
- 10 00 0000 - 10 11 1111:128-191
- 网络数:2^14
- 每个网络中的主机数:2^16-2
- 默认子网掩码:255.255.0.0
- 私网地址:172.16.0.0-172.31.255.255
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.255
**D类:**组播
- 1110 0000 - 1110 1111: 224-239
**E类:**保留未使用
- 240-255
特殊地址
- 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服务器获取地址,系统会为主机分配这样地址
3.1.2 子网掩码
可变长度子网掩码
子网划分范例:
10.0.0.0/8分配给32个省划分各自子网
1.子网掩码?
2.最小子网和最大子网ID?
3.每个子网主机数?
4.第20个子网的IP地址范围?
计算:
1.网络位需要借5位,满足2^5=32>=32个省,故子网掩码255.248.0.0
2.最小子网 10.0000 000.0.0 --> 10.0.0.0/13
最大子网 10.1111 000.0.0 --> 10.248.0.0/13
3.每子网主机数=2^19-2
4.第20个子网
10.10011 000.0.1 -->10.152.0.1
10.10011 111.255.254 -->10.159.255.254
子网划分范例:
将上例中的第20个子网10.152.0.0/13网段分配给15个地市,划分各自子网使用
1.子网子网掩码?
2.最小子网和最大子网ID?
3.每个子网主机数?
4.最大子网的IP范围?
计算:
1.子网的网络位需要借4位,满足2^4>15
子网掩码255.11111 111.1 00000000.0 --> 255.255.128.0
2.最小子网 10.10011 000.0 0000000.0 --> 10.152.0.0/17
最大子网 10.10011 111.1 0000000.0 --> 10.159.128.0/17
3.每个子网主机数=2^15-2
4.最大子网的IP范围
10.10011 111.1 0000000.1 --> 10.159.128.1
10.10011 111.1 1111111.254 --> 10.159.255.254
注:子网子网划分时,共16个子子网,15个地市,会空闲1个子子网,可用于再划分更细小的网段,以使IP地址利用率最大化
优化IP地址分配
合并超网: 多个小网合并为一个大网, 简化路由表条目
3.1.3 路由和DHCP
路由分类
- 主机路由: 主机上的路由
- 网络路由: 网络的路由
- 默认路由: 一般配置在网络边界(只有单方向出口时)
查看路由表命令
Linux中:
route -n
Windows中:
route print
路由表结构
- 目标网络ID: 目前IP所在网络ID
- 接口: 本设备上发送数据出去的接口
- 网关: 到达目标网络需要将数据交给下一个接口的对应IP
- 直连网络时为本设备上的出接口的IP
- 非直连网络时为下一跳设备的入接口IP
主机开启路由转发功能
使用主机模拟路由器需开启ip转发功能:
- 修改/proc/sys/net/ipv4/ip_forward的值为1 (默认为0)
动态主机配置协议DHCP
通过如下文件确认是否开启DHCP:
/etc/sysconfig/network-scripts/ifcfg-ens33 (或其他网卡名称)
- BOOTPROTO=“dhcp”
设置DHCP的主机在开始时会分配IP地址,如下:
- DHCP属于UDP协议
- 服务器端口号67, 客户端端口号68
- 地址租期的1/2时会申请续租,如不成功将在7/8时间时寻找新的DHCP服务器
3.2 基本网络配置
将Linux主机接入到网络,需要配置网络相关设置。
一般包括如下内容:
- 主机名
- IP/netmask
- 路由:默认网关
- DNS服务器
- 主DNS服务器
- 次DNS服务器
- 第三DNS服务器
注:可通过/etc/hosts文件配置域名解析, 常用语集群主机的解析, 其优先级高于DNS服务器, 也可通过/etc/nsswitch.conf文件修改优先级
3.2.1 hosts文件
主机名存放文件:
centos6的主机名存放在/etc/sysconfig/network中
centos7的主机名存放在/etc/hostname
修改主机名并立即生效的2种方法:
- 修改主机名文件—>重启主机
- 修改主机名文件—>执行命令: hostname 新的主机名
- 更改提示符的方法:
- exit会话
- exec bash
- 更改提示符的方法:
centos7上的最新修改主机名方法:
hostnamectl set-hostnnmae 新主机名
修改主机名建议也修改hosts文件
-
修改/etc/hosts, 防止通过主机名访问本机时无法解析识别(centos6中会出现)
-
将新主机名,加在127.0.0.1 行的末尾
-
getent hosts 可查看/etc/hosts 内容
3.2.2 CentOS 6网卡名称
CentOS 6接口命名方式:
- 以太网:eth[0,1,2,…]
- ppp:ppp[0,1,2,…]
网络接口识别并命名相关的udev配置文件:
- /etc/udev/rules.d/70-persistent-net.rules
- 修改以上文件可修改centos6的网卡名称,重启或重新装载网卡驱动生效
查看网卡:
dmesg |grep –i eth
ethtool -i 网口名称
卸载网卡驱动:
modprobe -r 驱动名称
rmmod 驱动名称
装载网卡驱动:
装载网卡驱动:
modprobe 驱动名称
3.2.3 网络配置方式
静态指定:
- ifconfig, route, netstat (较老的命令,即时生效但无法长期生效)
- ip: object {link, addr, route}, ss, tc (较新的命令,即时生效但无法长期生效)
- system-config-network-tui,setup (图形化,长期生效但不是即时生效)
- 配置文件(长期生效但不是即时生效)
动态分配:
- DHCP: Dynamic Host Configuration Protocol
3.2.4 ifconfig命令
ifconfig [interface]
- ifconfig -a 显示所有接口
- ifconfig IFACE [up|down] 打开或关闭某接口
- ifconfig interface [aftype] options | address … 配置接口的IP
- ifconfig IFACE IP/netmask [up]
- ifconfig IFACE IP netmask NETMASK
- ifconfig IFACE:# IP 网卡别名, 可为一个网卡绑多个IP
- 范例: ifconfig ens33:2 10.0.0.100/8
- 注意:立即生效
- [关闭]启用混杂模式:[-]promisc
3.2.5 route命令
查看路由表:route -n
route -n
添加路由:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
注:GW需是本机所有网卡的网段中的其中1个地址才行
范例: 目标: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
3.2.6 实验:模拟2主机2路由器组网
注:图中 vmnet11的网段改为了11.0.0.0/8, routea eth1口地址11.0.0.100 , routeb eth1口地址11.0.0.200
步骤:
#1. 在VMware虚拟网卡管理中添加3个虚拟网络vmnet10 11 12
#2. 在VMware配置2主机2路由器的网卡, 选择响应的虚拟网络,其中路由器配置2个网卡
#3. 修改hosta主机名
[root@centos76 ~]#hostnamectl set-hostname hosta
[root@centos76 ~]#hostname
hosta
[root@centos76 ~]#exec bash
[root@hosta ~]#
[root@hosta ~]#vim /etc/hosts
[root@hosta ~]#
[root@hosta ~]#cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 hosta
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#4. 在主机hosta 修改网卡名称, 修改ifcfg-ens33文件名称为ifcfg-eth0,设置静态地址, 配置IP和网关
[root@hosta rules.d]# cd /etc/sysconfig/network-scripts/
[root@hosta network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak
[root@hosta network-scripts]# vim ifcfg-eth0
[root@hosta network-scripts]# cat ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="452f0393-fbda-4e63-885b-f0e6fc7e8047"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="192.168.34.100"
NETSMAK="255.255.255.0"
GATEWAY="192.168.34.200"
HWADDR=00:0c:29:30:14:d9
###如果修改不成功可尝试:1.在ifcfg-eth0文件中添加HWADDR(通过ip a 查询) 2.关闭service NetworkManager stop 禁止开机启动chkconfig NetworkManager off 3.修改/etc/udev/rules.d/下的70-persistent-net.rules文件中的name为新网卡名称
#IP正常配置,路由表自动生成:
[root@hosta network-scripts]# ip a
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:30:14:d9 brd ff:ff:ff:ff:ff:ff
inet 192.168.34.100/24 brd 192.168.34.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe30:14d9/64 scope link
valid_lft forever preferred_lft forever
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.34.200 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
192.168.34.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
#5. 在路由器routea 修改routea主机名, 修改网卡名称, 修改网卡分别为ifcfg-eth0/eth1,设置静态地址, 配置IP
[root@centos-full ~]# echo routea > /etc/hostname
[root@centos-full ~]# hostname routea
[root@centos-full ~]# exec bash
[root@routea ~]#
[root@routea ~]# hostname
routea
[root@routea ~]# vim /etc/hosts
[root@routea ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 routea
...
[root@routea network-scripts]# cd cd /etc/sysconfig/network-scripts/
[root@routea network-scripts]# cp ifcfg-ens33 ifcfg-eth1
[root@routea network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@routea network-scripts]# ip a
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:6b:ff:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.34.129/24 brd 192.168.34.255 scope global noprefixroute dynamic ens33
...
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:6b:ff:09 brd ff:ff:ff:ff:ff:ff
inet 11.128.0.0/8 brd 11.255.255.255 scope global ...
[root@routea network-scripts]# vim ifcfg-eth0
[root@routea network-scripts]# cat ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="452f0393-fbda-4e63-885b-f0e6fc7e8047"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=192.168.34.200
NETMASK=255.255.255.0
HWADDR=00:0c:29:6b:ff:ff
###如果两个网卡的UUID相同,则在ifcfg文件中删除UUID的行
[root@routea network-scripts]# vim ifcfg-eth1
[root@routea network-scripts]# cat ifcfg-eth1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
IPADDR=11.0.0.100
NETMASK=255.0.0.0
HDADDR=00:0c:29:6b:ff:09
[root@routea network-scripts]# reboot
###centos7中,如上步骤中出现第二个网卡名称不更新的情况,可尝试如下方式解决:
#关闭“一致性网络设备命名法”, 添加net.ifnames=0 biosdevname=0
[root@routea ~]# vim /etc/sysconfig/grub
[root@routea ~]# cat /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
#更新GRUB、内核配置:
root@routea ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-f220f928bede49aa97b5e1a959221214
Found initrd image: /boot/initramfs-0-rescue-f220f928bede49aa97b5e1a959221214.img
done
#修改或新建/etc/udev/rules.d/70-persistent-net.rules文件,注意更新MAC地址
[root@routea rules.d]# vim 70-persistent-net.rules
[root@routea rules.d]# cat 70-persistent-net.rules
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="?*00:0c:29:6b:ff:ff", NAME="eth0"
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="?*00:0c:29:6b:ff:09", NAME="eth1"
[root@routea rules.d]# reboot
#完成routea配置后的IP及路由表如下:
[root@routea ~]# ip a
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:6b:ff:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.34.200/24 brd 192.168.34.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe6b:ffff/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:6b:ff:09 brd ff:ff:ff:ff:ff:ff
inet 11.0.0.100/8 brd 11.255.255.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe6b:ff09/64 scope link
valid_lft forever preferred_lft forever
...
[root@routea ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
11.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth1
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
192.168.34.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
#6. 在路由器routeb 修改routeb主机名, 修改网卡名称, 修改网卡分别为ifcfg-eth0/eth1,设置静态地址, 配置IP
[root@centos-full ~]# hostnamectl set-hostname routeb
[root@centos-full ~]# exec bash
[root@routeb ~]# vim /etc/hosts
[root@routeb network-scripts]# mkdir ./bak
[root@routeb network-scripts]# cp ifcfg-ens33 ./bak
[root@routeb network-scripts]# cp ifcfg-ens33 ifcfg-eth0
[root@routeb network-scripts]# mv ifcfg-ens33 ifcfg-eth1
[root@routeb network-scripts]# cat ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="452f0393-fbda-4e63-885b-f0e6fc7e8047"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=172.18.0.200
HWADDR=00:0c:29:e9:ef:4a
NETMASK=255.255.0.0
[root@routeb network-scripts]# cat ifcfg-eth1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
IPADDR=11.0.0.200
NETMASK=255.0.0.0
HWADDR=00:0c:29:e9:ef:54
[root@routeb ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.0.200 netmask 255.255.0.0 broadcast 172.18.255.255
inet6 fe80::c2e0:da5e:e962:dafc prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e9:ef:4a txqueuelen 1000 (Ethernet)
...
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 11.0.0.200 netmask 255.0.0.0 broadcast 11.255.255.255
inet6 fe80::9158:694f:b566:97e1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e9:ef:54 txqueuelen 1000 (Ethernet)
...
#7. hostb修改主机名,配置ip等...略
#8. routea和routeb的路由表如下,a上没有到172.18的路由,b上没有到192.168.34的路由 ,需在两个路由器上添加非直连的路由
#(另主机模拟路由器功能需确保开启路由转发,即修改/proc/sys/net/ipv4/ip_forward的值为1 )
[root@routea ~]# route add -net 172.18.0.0/16 gw 11.0.0.200
[root@routea ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
11.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth1
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.18.0.0 11.0.0.200 255.255.0.0 UG 0 0 0 eth1
192.168.34.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@routeb ~]# route add -net 192.168.34.0/24 gw 11.0.0.100
[root@routeb ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
11.0.0.0 0.0.0.0 255.0.0.0 U 101 0 0 eth1
172.18.0.0 0.0.0.0 255.255.0.0 U 100 0 0 eth0
192.168.34.0 11.0.0.100 255.255.255.0 UG 0 0 0 eth1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
#9. 路由打通
[root@hosta rules.d]# ping 172.18.0.100 -c1
PING 172.18.0.100 (172.18.0.100) 56(84) bytes of data.
64 bytes from 172.18.0.100: icmp_seq=1 ttl=62 time=1.31 ms
--- 172.18.0.100 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.315/1.315/1.315/0.000 ms
[root@hostb ~]#ping 192.168.34.100 -c1
PING 192.168.34.100 (192.168.34.100) 56(84) bytes of data.
64 bytes from 192.168.34.100: icmp_seq=1 ttl=62 time=1.41 ms
--- 192.168.34.100 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.411/1.411/1.411/0.000 ms
添加的2条非直连路由如下:
3.2.7 配置动态路由
通过守护进程获取动态路由
- 安装quagga包: yum install quagga
- 支持多种路由协议:RIP、OSPF和BGP
- 命令vtysh配置
3.2.8 netstat命令
显示网络连接:
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 -nr
- -r: 显示内核路由表
- -n: 数字格式
显示接口统计数据:
netstat -IIFACE # 注-I与接口名称IFACE之间无空格
范例:
[root@centos7 ~]#netstat -Iens33
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 17206 0 0 0 2759 0 0 0 BMRU
范例:每0.3秒查看ens33接口数据统计:
[root@centos7 ~]#watch -n0.3 netstat -Iens33
3.2.9 ip命令
配置Linux网络属性:ip命令
ip [ OPTIONS ] OBJECT { COMMAND }
- OBJECT :
- link 可简写l
- addr 可简写a
- route 可简写r
- addrlabel
- COMMAND:
- add
- del
- set
- show|list
- flush
配置网卡别名和IP:
ip addr { add | del } IFADDR dev IFACE [label LABEL]
范例: ip命令的用法
###为接口新增IP地址
[root@centos7 ~]#ip addr add 1.1.1.1/32 dev ens33
###为接口删除IP地址配置
[root@centos7 ~]#ip addr del 1.1.1.1/32 dev ens33
###关闭接口链路
[root@centos7 ~]#ip link set ens33 down
###配置网卡别名并新增IP地址:
[root@centos7 ~]#ip addr add 1.1.1.1/32 dev ens33 label ens33:2
[root@centos7 ~]#ip a
....
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:49:e0:5f brd ff:ff:ff:ff:ff:ff
inet 10.0.0.101/8 brd 10.255.255.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 1.1.1.1/32 scope global ens33:2
...
###清空某网卡别名上的配置:
[root@centos7 ~]#ip addr flush dev ens33 label ens33:2
###显示路由表
[root@centos7 ~]#ip route
default via 10.0.0.2 dev ens33 proto static metric 100
10.0.0.0/8 dev ens33 proto kernel scope link src 10.0.0.101 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
###显示路由状态
[root@centos7 ~]#ip neigh
10.0.0.2 dev ens33 lladdr 00:50:56:e2:f5:da STALE
10.0.0.1 dev ens33 lladdr 00:50:56:c0:00:08 REACHABLE
###显示某接口信息
[root@centos7 ~]#ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:49:e0:5f brd ff:ff:ff:ff:ff:ff
inet 10.0.0.101/8 brd 10.255.255.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::80a9:ab30:26e4:2813/64 scope link noprefixroute
valid_lft forever preferred_lft forever
###显示up的接口
[root@centos7 ~]#ip a show up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:49:e0:5f brd ff:ff:ff:ff:ff:ff
inet 10.0.0.101/8 brd 10.255.255.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::80a9:ab30:26e4:2813/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:a7:71:72 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
配置路由:
ip route add TARGET via GW dev IFACE src SOURCE_IP
-
TARGET:
- 主机路由:IP
- 举例:ip route add 192.168.1.13 via 172.16.0.1
- 网络路由:NETWORK/MASK
- 举例:ip route add 192.168.0.0/24 via 172.16.0.1
- 主机路由:IP
-
添加网关:
-
ip route add default via GW dev IFACE
- 举例: ip route add default via 172.16.0.1
-
-
删除路由:
-
ip route del TARGET
-
-
显示路由:
-
ip route show|list
-
-
清空路由表:
-
ip route flush [dev IFACE] [via PREFIX]
- 举例: ip route flush dev eth0
-
3.2.10 ss命令
格式:
ss [OPTION]... [FILTER]
ss与netstat类似,但速度更快
选项:
- -t: tcp协议相关
- -u: udp协议相关
- -w: 裸套接字相关
- -x:unix sock相关
- -l: listen状态的连接
- -a: 所有
- -n: 数字格式
- -p: 相关的程序及PID
- -e: 扩展的信息
- -m:内存用量
- -o:计时器信息
FILTER :
-
[ state TCP-STATE ] [ EXPRESSION ]
-
常见TCP-STATE:
- LISTEN: 监听
- ESTABLISHED:已建立的连接
- FIN_WAIT_1
- FIN_WAIT_2
- SYN_SENT
- SYN_RECV
- CLOSED
-
EXPRESSION:
- dport =
- sport =
- 示例:’( dport = :ssh or sport = :ssh )’
范例:ss的常见用法
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详细信息
3.2.11 网络配置文件
IP、MASK、GW、DNS相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
注:ifcfg后面的IFACE虽没有强制命名要求,但一般建议与网卡名称相同
路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE
文件/etc/sysconfig/network-scripts/ifcfg-IFACE
参数:
-
DEVICE:此配置文件应用到的设备
-
NAME: 描述信息, 设置后与图形界面中网络IP配置时显示的网卡说明相关, 也可不设置
-
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服务器指向
- DNS生效后会同步修改/etc/resolv.conf文件
-
USERCTL:普通用户是否可控制此设备
-
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
注: 网卡配置时可将物理网卡设置DHCP , 并在网卡别名中设置静态IP , 但反之不行
常用动态配置:
DEVICE=ethX
HWADDR=0:02:8A:A6:30:45
BOOTPROTO=dhcp
ONBOOT=yes
Type=Ethernet
常用静态配置:
DEVICE=ethX
HWADDR=0:02:8A:A6:30:45
IPADDR=192.168.0.123
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
ONBOOT=yes
Type=Ethernet
文件/etc/sysconfig/network-scripts/route-IFACE
两种风格:
(1) TARGET via GW
- 如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定义一条路由
- ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
注意:需service network restart生效
范例: 通过route-IFACE文件新增路由
[root@centos7 network-scripts]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.0.0.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@centos7 network-scripts]#vim route-ens33
[root@centos7 network-scripts]#cat route-ens33
20.0.0.0 via 10.0.0.20
[root@centos7 network-scripts]#service network restart
[root@centos7 network-scripts]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
...
20.0.0.0 10.0.0.20 255.255.255.255 UGH 100 0 0 ens33
...
3.2.12 网卡别名
对虚拟主机有用
将多个IP地址绑定到一个NIC上
eth0:1 、eth0:2、eth0:3
ifconfig命令:
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down
ip命令:
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
3.2.13 设备别名
为每个设备别名生成独立的接口配置文件, 即通过配置文件ifcfg的方式实现永久性网卡别名的设置
- 关闭NetworkManager服务
- ifcfg-ethX:xxx
- 必须使用静态联网
- DEVICE=eth0:0
- IPADDR=10.10.10.10
- NETMASK=255.0.0.0
- ONPARENT=yes
注意:service network restart 生效
范例: 在一个网卡上配置多个ip地址并永久保存
[root@centos7 ~]#cd /etc/sysconfig/network-scripts/
[root@centos7 network-scripts]#cp ifcfg-ens33 ifcfg-ens33:2
[root@centos7 network-scripts]#vim ifcfg-ens33:2
[root@centos7 network-scripts]#cat ifcfg-ens33:2
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
DEVICE=ens33:2
ONBOOT=yes
IPADDR=10.0.0.102
PREFIX=8
[root@centos7 network-scripts]#service network restart
Restarting network (via systemctl): [ OK ]
[root@centos7 network-scripts]#ifconfig
...
ens33:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.102 netmask 255.0.0.0 broadcast 10.255.255.255
...
[root@centos7 network-scripts]#ip addr flush dev ens33 label ens33:2
3.2.14 网络接口配置-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接口上传送所有的报文,提供容错能力
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。
Bonding配置
创建bonding设备的配置文件
- 创建/etc/sysconfig/network-scripts/ifcfg-bond0
- DEVICE=bond0
- BOOTPROTO=none
- BONDING_OPTS= “miimon=100 mode=0”
- IPADDR=XXX
- PREFIX=XX
- GATEWAY=XXX
- DNS1=XXX
- 修改/etc/sysconfig/network-scripts/ifcfg-eth0
- DEVICE=eth0
- BOOTPROTO=none
- MASTER=bond0
- SLAVE=yes
- USERCTL=no (关闭NetworkManager)
查看bond0状态:/proc/net/bonding/bond0
miimon 是用来进行链路监测, 如果miimon=100,那么系统每100ms 监测一次链路连接状态
删除bond0:
ifconfig bond0 down
删除bond0文件 修改恢复物理网卡文件
rmmod bonding
3.2.15 CentOS 7网络属性配置
CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化
CentOS 7使用基于硬件,设备拓扑和设置类型命名:
(1) 网卡命名机制
systemd对网络设备的命名方式
- (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
- (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
- © 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
- (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
- (e) 上述均不可用时,则使用传统命名机制
- 基于BIOS支持启用biosdevname软件
内置网卡:em1,em2
pci卡:pYpX Y:slot ,X:port
- 基于BIOS支持启用biosdevname软件
(2) 名称组成格式
-
en: Ethernet 有线局域网
-
wl: wlan 无线局域网
-
ww: wwan无线广域网
名称类型:
- o<index>: 集成设备的设备索引号
- s<slot>: 扩展槽的索引号
- x<MAC>: 基于MAC地址的命名
- p<bus>s<slot>: enp2s1
采用传统命名方式
(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg或/boot/grub2/grub.cfg
(3) 重启系统
也可以直接修改/boot/grub2/grub.cfg文件, 不推荐使用
3.2.16 CentOS 7网络配置工具
CentOS7主机名
配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
显示主机名信息:
hostname
hostnamectl status
设置主机名
hostnamectl set-hostname NEW_HOSTNAME
删除文件/etc/hostname,恢复主机名localhost.localdomain
CentOS 7网络配置工具
- 图形工具:nm-connection-editor
- 字符配置tui工具:nmtui
- 命令行工具:nmcli
3.2.17 nmcli命令
地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT:
- device 设备即网络接口
- connection 连接是对网络接口的配置
- 一个网络接口可有多个连接配置,但同时只有一个连接配置生效
- …
COMMAND:
- add
- delete
- modify
- show
- up/down
- reload
- …
范例: 修改IP地址等属性:
nmcli connection modify IFACE [+|-]SETTING.PROPERTY value
- SETTING.PROPERTY:
- ipv4.addresses
- ipv4.gateway
- ipv4.dns1
- ipv4.method manual | auto
修改配置文件执行生效:
systemctl restart network
nmcli con reload
nmcli命令生效:
nmcli con down eth0
nmcli con up eth0
注:NeworkManager是管理和监控网络设置的守护进程
范例:
显示所有包括不活动连接
nmcli con show
显示所有活动连接
nmcli con show --active
显示网络连接配置
nmcli con show "eth0“
显示设备状态
nmcli dev status
显示网络接口属性
nmcli dev show eth0
创建新连接default,IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
删除连接
nmcli con del default
创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
启用static连接配置
nmcli con up static
启用default连接配置
nmcli con up default
查看帮助
nmcli con add help
修改连接设置
nmcli con mod“static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
DNS设置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取. 等价于下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
范例: 为ens33网卡新增一个备用配置文件, 设置多个IP地址 , 主备配置灵活切换
[root@centos7 network-scripts]#nmcli connection add con-name ens33-bak type ethernet ifname ens33
Connection 'ens33-bak' (de74b441-ef38-4a50-9715-9828a2385509) successfully added.
[root@centos7 network-scripts]#nmcli connection
NAME UUID TYPE DEVICE
ens33 aff03eef-6f47-41cf-a32b-335e956db974 ethernet ens33
virbr0 f05a7cde-447d-4dcb-9043-a03aa5661fe7 bridge virbr0
ens33-bak de74b441-ef38-4a50-9715-9828a2385509 ethernet --
[root@centos7 network-scripts]#nmcli connection modify ens33-bak ipv4.method manual connection.autoconnect yes ipv4.addresses 10.0.0.222/8 ipv4.gateway 10.0.0.111 ipv4.dns 8.8.8.8
[root@centos7 network-scripts]#cat ifcfg-ens33-bak
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33-bak
UUID=de74b441-ef38-4a50-9715-9828a2385509
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.222
PREFIX=8
GATEWAY=10.0.0.111
DNS1=8.8.8.8
[root@centos7 network-scripts]#nmcli connection up ens33-bak
[root@centos7 ~]#nmcli connection
NAME UUID TYPE DEVICE
ens33-bak de74b441-ef38-4a50-9715-9828a2385509 ethernet ens33
virbr0 f05a7cde-447d-4dcb-9043-a03aa5661fe7 bridge virbr0
ens33 aff03eef-6f47-41cf-a32b-335e956db974 ethernet --
[root@centos7 ~]#nmcli con up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@centos7 ~]#nmcli con
NAME UUID TYPE DEVICE
ens33 aff03eef-6f47-41cf-a32b-335e956db974 ethernet ens33
virbr0 f05a7cde-447d-4dcb-9043-a03aa5661fe7 bridge virbr0
###增加多个IP地址
[root@centos7 ~]#nmcli connection modify ens33 +ipv4.addresses 2.2.2.2/24
[root@centos7 ~]#nmcli connection modify ens33 +ipv4.addresses 3.3.3.3/24
[root@centos7 ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens33
...
IPADDR=10.0.0.101
PREFIX=8
DNS1=114.114.114.114
GATEWAY=10.0.0.2
IPADDR1=2.2.2.2
PREFIX1=24
IPADDR2=3.3.3.3
PREFIX2=24
[root@centos7 ~]#nmcli con up ens33
[root@centos7 ~]#ip a
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:49:e0:5f brd ff:ff:ff:ff:ff:ff
inet 10.0.0.101/8 brd 10.255.255.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 2.2.2.2/24 brd 2.2.2.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 3.3.3.3/24 brd 3.3.3.255 scope global noprefixroute ens33
各类网络配置功能中nmcli con 命令功能与ifcfg文件对比:
nmcli con mod | ifcfg-* 文件 |
---|---|
ipv4.method manual | BOOTPROTO=none |
ipv4.method auto | BOOTPROTO=dhcp |
ipv4.addresses “192.0.2.1/24 192.0.2.254” | IPADDR=192.0.2.1 PREFIX=24 GATEWAY=192.0.2.254 |
ipv4.dns 8.8.8.8 | DNS0=8.8.8.8 |
ipv4.dns-search example.com | DOMAIN=example.com |
ipv4.ignore-auto-dns true | PEERDNS=no |
connection.autoconnect yes | ONBOOT=yes |
connection.id eth0 | NAME=eth0 |
connection.interface-name eth0 | DEVICE=eth0 |
802-3-ethernet.mac-address . . . | HWADDR= . . . |
修改连接配置后,需要重新加载配置
nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活
图形工具
- nm-connection-editor
字符工具
- nmtui
- nmtui-connect
- nmtui-edit
- nmtui-hostname
3.2.18 nmcli实现bonding
- 添加bonding接口
nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
- 添加从属接口
nmcli con add type bond-slave ifname ens7 master mybond0
nmcli con add type bond-slave ifname ens3 master mybond0
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
- 启动绑定
nmcli con up mybond0
3.2.19 网络组Network Teaming
网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现.
多种方式runner
- broadcast
- roundrobin
- activebackup
- loadbalance
- lacp (implements the 802.3ad Link Aggregation Control Protocol)
网络组
- 启动网络组接口不会自动启动网络组中的port接口
- 启动网络组接口中的port接口总会自动启动网络组接口
- 禁用网络组接口会自动禁用网络组中的port接口
- 没有port接口的网络组接口可以启动静态IP连接
- 启用DHCP连接时,没有port接口的网络组会等待port接口的加入
创建网络组接口
nmcli con add type team con-name CNAME ifname INAME [config JSON ]
CNAME 连接名, INAME 接口名
JSON 指定runner方式
格式:’{“runner”: {“name”: " METHOD "}}’
METHOD 可以是broadcast, roundrobin,
activebackup, loadbalance, lacp
创建port接口
nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
- CNAME 连接名
- INAME 网络接口名
- TEAM 网络组接口名
连接名若不指定,默认为team-slave- IFACE
nmcli dev dis INAME
nmcli con up CNAME
INAME 设备名 CNAME 网络组接口名或port接口
网络组示例:
nmcli con add type team con-name team0 ifname team0 config
‘{“runner”: {“name”: “loadbalance”}}‘ ipv4.addresses
192.168.1.100/24 ipv4.method manual
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master
team0
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master
team0
nmcli con up team0
nmcli con up team0-eth1
nmcli con up team0-eth2
teamdctl team0 state
nmcli dev dis eth1
实验:创建网络组
ip link
nmcli con add type team con-name team0 ifname team0 config
'{"runner": {"name": "activebackup"}}'
nmcli con mod team0 ipv4.addresses '192.168.0.100/24'
nmcli con mod team0 ipv4.method manual
nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0
teamdctl team0 state
ping -I team0 192.168.0.254
nmcli dev dis eno1
teamdctl team0 state
nmcli con up team0-port1
nmcli dev dis eno2
teamdctl team0 state
nmcli con up team0-port2
teamdctl team0 state
管理网络组配置文件
/etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.25.5.100
PREFIX0=24
NAME=team0
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes
删除网络组
nmcli connection down team0
teamdctl team0 state
nmcli connection show
nmcli connectioni delete team0-eth0
nmcli connectioni delete team0-eth1
nmcli connection show
3.2.20 测试网络工具
在命令行下测试网络的连通性
显示主机名
- hostname
测试网络连通性
- ping
显示正确的路由表
- ip route
跟踪路由
- traceroute
- tracepath
- mtr
确定名称服务器使用
- nslookup
- host
- dig
网络客户端工具
ftp,lftp:子命令:get、mget、ls、help
lftp [-p port] [-u user[,password]] SERVER
lftpget URL
wget [option]... [URL]...
- -q 静默模式
- -c 断点续传
- -P /path 保存在指定目录
- -O filename 保存为指定文件名,filename 为 – 时,发送至标准输出
- –limit-rate= 指定传输速率,单位K,M等
links URL
- –dump
- –source