请教Linux 的VLAN用法

请教Linux 的VLAN用法,第1张

环境非常简单:一台linux(RedHat as3)的机器(kernel 2.4.21)

公网eth0

私网eth1

以前私网是接的192.168.10网段的,vlan id为10

现在想把私网在保留原来10网段的同时,还想加一个192.168.240网段,vlan id为240

其实这个题目的答案非常简单

就是用vconfig嘛

vconfig add eth1 10

vconfig add eth1 240

然后再ifconfig eth1.10配ip,ifconfig eth1.240配ip地址,用vconfig大家应该都差不多能解决这个问题。

其实,我觉得这两种模式没什么区别。 但是,按照目前内核本身的这个结构(VLAN的),TAG是在“网卡驱动”中压入的。也就是在vlan的虚拟网卡中处理的。这也就是在协议栈之后了。 2种方法 1:在netfilter的时候,选择一个对应tag的正确的出接口 2:在netfilter的时候,给skb做个标记,在vlan的vlan_dev_hard_start_xmit中的skb = __vlan_put_tag(skb, veth_TCI)传入标记,取代veth_TCI。

NETIF_F_HW_VLAN_CTAG_RX 和 NETIF_F_HW_VLAN_CTAG_TX 是 Linux 网卡驱动中的两个标志位,用于指示网卡是否支持 VLAN 软件处理。

NETIF_F_HW_VLAN_CTAG_RX 标志位指示网卡是否支持硬件剥离 VLAN 标签,这意味着网卡可以在接收数据包时在硬件层面上剥离 VLAN 标签。

NETIF_F_HW_VLAN_CTAG_TX 标志位指示网卡是否支持硬件打上 VLAN 标签,这意味着网卡可以在发送数据包时在硬件层面上打上 VLAN 标签。

如果这两个标志位都被置为了 1,那么这意味着网卡支持硬件 VLAN 处理。如果这两个标志位都被置为了 0,那么这意味着网卡不支持硬件 VLAN 处理,需要通过软件来实现 VLAN 的处理。

这两个标志位的设置通常是在网卡驱动中进行的,不能通过命令行直接设置。如果您想要查看网卡的 VLAN 支持状态,可以使用命令 "ethtool -k <interface>" 来查看该网卡的硬件特性。

                                 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6227240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存