Linux 配置ip 子接口 多网卡绑定

本文详细介绍Linux系统的网络配置方法,包括查看路由及网关信息、物理网卡信息、配置IP地址和网关等操作。此外还介绍了如何配置网络接口、添加子接口、多网卡绑定等内容。

linux系统配置ip地址,图形化界面略过,这里只介绍文本行。做以下设置注意是否有此权限

 

查看当前路由及网关信息:
[root@localhost ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     *               255.255.255.0   U         0 0          0 eth0
169.254.0.0     *               255.255.0.0     U         0 0          0 eth0
default         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
 
查看物理网卡信息:
[root@iyunshusdk ~]# mii-tool [eth0]
eth0: negotiated 100baseTx-FD, link ok

ethtool eth0   查看网卡物理信息

ethtool -i eth0 查看网卡驱动信息

ethtool -S eth0 查看网卡工作信息

 

ifconfig命令:

查看网卡接口信息,默认列出所有接口
[root@localhost ~]# ifconfig

如果想知道主机所有网络接口的情况,请用下面的命令:
[root@localhost ~]# ifconfig -a
 
如果想查看某个端口,比如查看eth0 的状态,就可以用下面的方法: [root@localhost ~]# ifconfig eth0
 
临时配置网卡信息,无需重启(重启即消失)
ifconfig 网络端口 IP地址 hw <HW> MAC地址 netmask 掩码地址 broadcast 广播地址 [up/down] [root@localhost ~]# ifconfig eth0 10.1.1.10 netmask 255.0.0.0

临时配置网关 (重启即消失) 
[root@localhost ~]# route add default gw 192.168.0.254

 
网络接口配置文件 (黄色背景最好都设置):
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
TYPE=Ethernet       #网卡类型
DEVICE=eth0 #网卡接口名称
ONBOOT=yes #系统启动时是否自动加载
BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议
IPADDR=192.168.1.11 #网卡IP地址
NETMASK=255.255.255.0 #网卡网络地址
GATEWAY=192.168.1.1 #网卡网关地址
DNS1=10.203.104.41       #网卡DNS地址
HWADDR=00:0C:29:13:5D:74 #网卡设备MAC地址
BROADCAST=192.168.1.255  #网卡广播地址 
 

添加子接口(虚拟接口):
需要禁用NetworkManager 服务
service NetworkManager stop    #停止服务
chkconfig NetworkManager off #禁用服务,下次不自动启动
 
临时: ifconfig eth0:1 10.0.0.2 netmask 255.255.255.0 
或者 ip addr add 10.0.0.2/24 dev eth0 label eth0:0
 
永久:在/etc/syscofig/network-scripts/ 下新建文件
ifcfg-eth0:1
增加内容
DEVICE=eth0:1 #网卡接口名称
ONBOOT=yes #系统启动时是否自动加载
BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议
IPADDR=192.168.1.11 #网卡IP地址 NETMASK=255.255.255.0 (PREFIX=24) #网卡网络地址
GATEWAY=192.168.1.1 #网卡网关地址 ONPARENT=YES 存在依附关系
 

注意:真正的接口标识,不是ifcfg-xxx的文件名,而是ifcfg-eth0中的DEVICE项目
network文件就是把/etc/sysconfig/network-script目录下的所有文件都遍历
凡是ONBOOT=yes的都enable ,并且enable 到DEVICE=eth0这个名字上
 

网络服务启动与关闭:
方法一:
[root@localhost ~]# service network stop    #关闭网络服务
[root@localhost ~]# service network start   #启动网络服务
[root@localhost ~]# service network restart #重启网络服务
方法二:
[root@localhost ~]# /etc/init.d/network stop
[root@localhost ~]# /etc/init.d/network start
[root@localhost ~]# /etc/init.d/network restart 
网卡状态查询
[root@localhost ~]# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0
[root@localhost ~]# /etc/init.d/network status


多网卡绑定:
linux有七种网卡绑定模式:
0. round robin  平衡轮询
1.active-backup  主备模式
2.load balancing (xor),  广播
3.fault-tolerance (broadcast), 4.lacp,  5.transmit load balancing, 6.adaptive load balancing。

mode=1(active-backup):
一个网卡处于活动状态 ,一个处于备份状态,所有流量都在主链路上处理。当活动网卡down掉时,启用备份的网卡。
首先在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下

DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.168.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.168.250
USERCTL=no
[BONDING_OPTS="mode=1 miimon=100"]  (本句配置对应后面选项二)
 

然后分别修改eth0和eth1的配置文件
ifcfg-eth0内容:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0     
SLAVE=yes

ifcfg-eth1内容

DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes

 

 

因为linux的虚拟网卡是在内核模块中实现的,所以需要安装的时候已经装好该module。

 

选项一:
在/etc/modules.conf文件中添加如下内容(如果没有该文件,则新建一个):

alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0

其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡
mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到
primary=eth0表示主备模式下eth0为默认的active网卡

miimon是毫秒数,每100毫秒触发检测线路稳定性的事件。
mode 是ifenslave的工作状态。

 

选项二:

创建配置文件 
cat /etc/modprobe.d/bonding.conf
写入内容
alias bond0 bonding      (告诉操作系统 bond0 使用的驱动是bonding)

 

 

重启服务,完成

 

 

查看绑定在哪张网卡上 

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0 
MII Status: up
MII Polling Interval (ms): 500
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0 
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:01:4f:77

Slave Interface: eth1 
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:01:4f:8b 

 

 

转载于:https://www.cnblogs.com/centos2017/p/7896814.html

<think>嗯,用户询问的是Linux VLAN子接口如何处理ARP请求。这个问题需要结合网络协议栈和Linux虚拟网络设备的工作原理来解释。 从引用内容来看,用户可能遇到了veth或VLAN子接口的ARP问题。引用[1]提到veth对可能出现ARP表异常,引用[2][3]则涉及VLAN子接口配置和路由机制。这些引用虽然不直接回答问题,但暗示了用户关注的是虚拟接口的ARP行为特殊性。 核心问题在于VLAN子接口作为逻辑实体如何响应ARP。需要明确几个关键点: 1. VLAN子接口本质是802.1Q虚拟接口,其MAC地址继承自主物理接口 2. 当收到带VLAN标签的ARP请求时,只有对应子接口会响应 3. 响应报文会携带相同的VLAN标签 特别要注意的是,子接口虽然共享物理网卡,但ARP响应由内核网络栈根据接收接口决定。引用[3]提到的"三层引擎处理第一个包"的机制也适用于ARP——ARP请求本质是L2广播包,需要上送协议栈处理。 用户可能还隐含想知道配置验证方法,所以回复中需要包含: - 基本处理流程分步骤说明 - 关键配置项如arp_filter的作用 - 实际验证命令示例 最后生成的相关问题要覆盖: - 常见故障排查(用户引用[1]显示曾受此困扰) - 性能影响(引用[2]提到子接口性能瓶颈) - 高级应用场景 这样既解答了技术机制,又预判了用户后续可能的需求。</think>在Linux系统中,当物理网卡配置了VLAN子接口时,ARP请求的处理机制如下: ### 处理流程 1. **接收带标签帧** 当物理网卡收到带有802.1Q VLAN标签的ARP请求帧时,内核会根据标签中的**VLAN ID**将帧传递给对应的`ethX.Y`子接口(如`eth0.10`),而非主物理接口。 2. **子接口响应规则** - **匹配本机IP**:若ARP请求的`目标IP`属于该子接口配置IP地址子接口会用**自己的MAC地址**响应 - **携带VLAN标签**:响应ARP Reply时会自动添加相同的VLAN标签(例如VLAN ID 10) - **主接口不响应**:物理主接口(如`eth0`)不会响应属于子接口VLAN的ARP请求 3. **MAC地址行为** ```mermaid graph LR A[物理网卡MAC] --> B(eth0.10子接口) A --> C(eth0.20子接口) ``` 所有子接口**共享物理网卡的MAC地址**,但响应时会标明自身VLAN身份。可通过`ip -d link show eth0.10`验证MAC一致性。 4. **关键内核机制** - **VLAN模块隔离**:内核`8021q`模块为每个子接口创建独立的虚拟设备 - **ARP过滤**:需确保`arp_filter=1`(通过`sysctl net.ipv4.conf.all.arp_filter`设置),避免错误接口响应ARP - **路由表关联**:子接口的ARP响应与对应VLAN路由表项绑定(可通过`ip route show table local`查看) ### 配置验证示例 ```bash # 创建VLAN子接口 sudo ip link add link eth0 name eth0.10 type vlan id 10 sudo ip addr add 192.168.10.1/24 dev eth0.10 sudo ip link set eth0.10 up # 抓取VLAN 10的ARP包 sudo tcpdump -i eth0.10 -nnv 'arp' ``` 当收到目标IP为`192.168.10.1`的ARP请求时,抓包将显示: ```markdown > 00:01:23.456 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.1 tell 192.168.10.2 > 00:01:23.457 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.10.1 is-at 00:11:22:33:44:55 (oui Unknown) ``` ### 常见问题排查 1. **ARP无响应** - 检查VLAN ID是否匹配:`ip -d link show eth0.10 | grep vlan` - 确认子接口状态:`ip link show eth0.10` - 验证ARP过滤设置:`sysctl net.ipv4.conf.eth0/eth0.10.arp_filter` 2. **跨VLAN通信** 需配置三层路由或VLAN间路由(如引用[3]所述),通过`ip route add 192.168.20.0/24 via 192.168.10.1 dev eth0.10`实现路由转发[^3]。 --- **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值