谈网络适配器

时间:2022-05-03
本文章向大家介绍谈网络适配器,主要内容包括21.5. 网卡、21.5.2. 常见网络适配器品牌、21.5.3. 1G 千兆以太网产品、21.5.4. 10G 万兆以太网产品、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

谈网络适配器,就是网卡,在大型网站架构设计中,网络规划十分重要。

本文节选自《Netkiller Architect 手札》

21.5. 网卡

21.5.1. 网口规划

21.5.1.1. 内外隔离

双网卡方案,一般服务器会提供至少2块网卡。 使用两个交换机,一个交换机连接接防火墙,另一个交换机独立不接入Internet

				+------------+    +--------------+    /---> [eth0 Server A eth1] <---    +--------------+    /---> [eth0 Server C]
| Firewall   |--->| Switch - WAN |---> ---> [eth0 Server B eth1] <--- <---| Switch - LAN |---> ---> [eth0 Server D]
+------------+    +--------------+    ---> [eth0 Server C eth1] <---/    +--------------+    ---> [eth0 Server E]				

Internet 用户从防火墙进入,只能访问WAN交换机上的服务器,WAN上一般是WEB服务器,WEB服务器通过LAN交换机访问数据库,Memcache等服务器

这样既有效利用了网络IO,有能有效隔离不需要暴露在公网上的服务器还可以降低成本, WAN 可以使用 100M交换机,LAN 可以使用1G交换机,因为内部数据传输远远大于外部。

另外 WAN与LAN也可以使用VLAN实现

21.5.1.2. 负载均衡

eth0与eth1 做bonding, eth2与3做bonding, 然后内外隔离

				+--------------+    /---> [eth0/1 Server A eth2/3] <---    +--------------+
| Switch - WAN |---> ---> [eth0/1 Server B eth2/3] <--- <---| Switch - LAN |
+--------------+    ---> [eth0/1 Server C eth2/3] <---/    +--------------+				

21.5.1.3. 交叉互联

在交换机端口有限的情况可以采用交叉互联。

交叉线连接与通过交换机连接二者差异:

A与B两个服务器举例:

  1. 交叉线连接A与B两个服务器,A发数据包,B接收数据包,如果接受方在接收包过程中出现异常(毫秒级),可能会堵塞,数据包会重新发包。交换机存储转发,仍然会接收数据放到背板缓存中,建立连接后交换机会处理一切。
  2. A 服务器出现故障宕机,A网卡灯不亮,那么B服务器的网卡将检测,认为没有插网线,B网卡灯也是不亮状态。而通过交换机B网卡仍然工作

21.5.2. 常见网络适配器品牌

Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.0.8-rh (Oct 11, 2010)

Emulex OneConnect 10Gbps NIC

Intel 10 Gigabit AT2 Server Adapter (E10G41AT2)

21.5.3. 1G 千兆以太网产品

目前服务器1G网卡市场90%都被Broadcom NetXtreme占领,不仅仅限于服务器网卡,Cisco的设备中用的也是Broadcom NetXtreme芯片

21.5.4. 10G 万兆以太网产品

万兆以太网标准很多,有10000BAST-T(使用双绞线连接),还有SFP+(850nm 光纤连接)

Dell 有通过6类线连接的万兆交换机8024,服务器端Dell给用户配的是Intel万兆网卡,使用方法与千兆一样。

笔者有两个刀笼(刀片服务器),刀笼配置万兆模块通过4条10G SFP+ 连接到8024,然后服务器使用6类双绞线,通过Intel网卡连接8024。

光纤万兆网卡与千兆网卡使用上并无不同。如果指示灯不亮,请调换RX/TX光纤跳线

# dmesg | grep Emulex
Copyright(c) 2004-2009 Emulex.  All rights reserved.
be2net 0000:18:00.0: eth0 - Emulex OneConnect 10Gbps NIC
be2net 0000:18:00.1: eth1 - Emulex OneConnect 10Gbps NIC			

笔者使用过Emulex/Intel在Linux上无需驱动,光纤交换机Cisco 4507的万兆模块是Broadcom NetXtreme芯片的.