Linux网络设置操作


纸上得来终觉浅,绝知此事要躬行。

Linux网络设置操作


1. CentOS6 网络配置

使用 NetworkManager 服务会在你修改完文件后,自动生成 /etc/resolv.conf,这个就是 DNS 地址。

1.1 配置文件

配置文件

  • 网络配置文件
    • /etc/sysconfig/network-scripts/ifcfg-xxx
  • DNS配置文件
    • /etc/resolv.conf
  • 主机名配置文件
    • /etc/hosts
    • 优先解析hosts里定义的域名,然后没有才会去DNS里查
  • 路由配置文件
    • /etc/sysconfig/network-scripts/route-IFNAME

修改配置文件

# ip、mask、gateway、dns相关配置文件
# vim /etc/sysconfig/network-scripts/ifcfg-xxx
NAME=xxx                 # 网卡名称
DEVICE=XXX               # 设备名称
ONBOOT=yes               # 是否自启动
BOOTPROTO=dhcp/none      # DHCP还是静态,不写就是手工指定。
IPADDR=xx.xx.xx.xx       # IP地址
PREFIX=xx                # 掩码,新格式
NETMASK=xxx.xxx.xxx.xxx  # 掩码,旧格式,可以使用新格式代替
DNS1=xxx.xxx.xxx.xxx     # 指定主DNS地址
DNS2=xxx.xxx.xxx.xxx
HWADDR=xx:xx:xx:xx:xx:xx   # 硬件MAC地址
MACADDR=yy:yy:yy:yy:yy:yy  # 手动修改MAC地址要用MACADDR,而不能用HWADDR
# 配置文件事例
# /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
IPADDR=192.168.100.100
PREFIX=24
GATEWAY=192.168.100.254
DNS1=223.5.5.5

1.2 配置网卡别名

  • 在实现一个网卡获取两个 ip 地址,dhcp 自动获取和固定 ip 地址
  • 要注意,dhcp 要先配置,然后新增的设为固定 ip 地址
# 给网卡设置另外一个地址,指定label设备名为网卡名:xxx
# /etc/sysconfig/network-scripts/ifcfg-eth1:office
DEVICE=eth1:office
BOOTPROTO=none
IPADDR=5.5.5.5
PREFIX=24

2. CentOS7 网络配置

把网卡命名方式改为传统eth方式

(1) 修改/boot/grub2/grub.cfg文件
(2) linux16那行,最后添加net.ifnames=0

2.1 nmcli 命令

  • 命令行网络配置工具
# 修改连接名称为 eth0
nmcli connection modify enp0s25 connection.id eth0

# 添加一条新的配置
nmcli connection add con-name eth1-lan type ethernet ifname eth1

# 重启连接
nmcli connection reload

# 去掉 ip 连接,不 down 设备
nmcli dev disconnect

2.2 nmtui 命令

  • 字符界面网络配置工具
  • 编辑连接、激活连接、设置主机名

3. 网卡绑定

网卡绑定: 将多块网卡绑定同一 IP 地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一 IP 地址是不可能的。通过 bonding 虚拟一块网卡对外提供连接,物理网卡的被修改为相同的 MAC 地址。

3.1 bond模式

active-backupbalance-tlb  和  balance-alb 模式不需要 交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco  交换机需要在模式 02 和  3  中使用 EtherChannel,但在模式 4 中需要 LACPEtherChannel

高可用策略

  • Mode 0 (balance-rr)
    • 轮转策略:从头到尾顺序的在每一个slave接口上面发送数据包
    • 本模式提供负载均衡和容错的能力
  • Mode 1 (active-backup)
    • 主备策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave
    • 为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
  • Mode 3 (broadcast)
    • 广播策略:在所有的slave接口上传送所有的报文,提供容错能力

配置方法

# 新建文件/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BONDING_OPTS="miimon=100 mode=0"
BOOTPROTO=none
IPADDR=
PREFIX=
GATEWAY=
DNS1=
DNS2=
DOMAIN=
# 修改eth0的ifcfg文件
# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

# 修改eth1的ifcfg文件
# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

# 查看bond0状态
cat /proc/net/bonding/bond0

3.2 team 模式

team网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量。

  • 网络组不同于旧版中bonding技术,提供更好的性能和扩展性
  • 网络组由内核驱动和teamd守护进程实现

runner方式

  • broadcast
  • roundrobin
  • activebackup
  • loadbalance
  • lacp

使用方法

  • 创建 team
# 创建team的命令格式
nmcli con add type team con-name CNAME ifname INAME [config JSON]

# 命令格式说明
CNAME连接名
INAME接口名
JSON指定runner方式

# JSON指定runner方式的格式
# METHOD可以是上述runner方式的任意一种
'{"runner": {"name": "METHOD"}}'
  • 添加从属接口
# 添加从属接口命令格式
nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

# 命令格式说明
CNAME连接名
INAME网络接口名
TEAM网络组接口名,连接名若不指定,默认为team-slave-IFACE
  • 查看 team 状态
teamdctl team0 state
  • 关闭 team 模式
# 关闭team,连slave也一起关闭掉
nmcli connect down team0
  • 启动 team 模式
# 启动的时候,只会自动启动team,所以要手动启动各个slav
nmcli connect up team0
nmcli conect up team-slave-eth0
nmcli connect up team-slave-eth1

# 创建team的名称为team0,指定runner方法为loadbalance
nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "loadbalance"}}'

# 规划team0对外的网络配置
nmcli con mod team0 ipv4.addresses 192.168.1.100/24
nmcli con mod team0 ipv4.method manual

# 绑定多个物理网卡到team0上
nmcli con add type team-slave con-name team0-eth1 ifname eth1 master team0
nmcli con add type team-slave con-name team0-eth2 ifname eth2 master team0

# 启动team0
nmcli con up team0
nmcli con up team0-eth1
nmcli con up team0-eth2

# 查看team0状态和从属网卡状态
teamdctl team0 state
nmcli dev dis eth1

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录