V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whx20202
V2EX  ›  程序员

快疯了。。单臂路由的 VLAN 到底怎么配置?

  •  
  •   whx20202 · 2017-02-12 17:21:44 +08:00 · 14797 次点击
    这是一个创建于 2830 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前是一台电脑直接交换机 port2 ,电脑里装的 esx 主机,

    vmware 虚拟机: vmnetwork : VLAN100 ,
    vswitch : 开混杂模式

    交换机: port2 : vlan100 tagged

    现在问题: 虚拟机 ping 交换机网关都 ping 不通

    折腾好几天了,谁知道这个该怎么配置? 感激不尽!

    第 1 条附言  ·  2017-02-12 19:52:14 +08:00
    <img src="http://wx2.sinaimg.cn/mw690/b75b4fadly1fcnx9m6unnj20yi0pxqv5.jpg" alt=" 1.jpg"/>
    <img src="http://wx2.sinaimg.cn/mw690/b75b4fadly1fcnx9vmyitj20yi0px1ky.jpg" alt=" 2.jpg"/>
    <img src="http://wx2.sinaimg.cn/mw690/b75b4fadly1fcnxa27dmbj20yi0px7wi.jpg" alt=" 3.jpg"/>

    配置大概就是这些 截图中 port1 没亮,其实当时 port1 上是有设备的,而且配置了静态 IP (截图的时候被我拔了)

    从 port2 ping port1 的机器:
    只要 esx 端口组 设置成 0 或者 4095 ( all ) 就能 ping 通
    只要设置成 100 就不能 ping 通

    @gamexg
    第 2 条附言  ·  2017-02-13 10:07:12 +08:00
    目前思路:
    1. 网上有的说笔记本千兆有线网卡 收包自动会去 vlan tag ,想办法抓 vlan 包看看
    2. esx 那边还要检查一下
    谢谢各位,如果我这个搞定了我出个小白版的教程,方便少数和我一样不太懂的同学
    53 条回复    2017-02-14 00:37:15 +08:00
    whx20202
        1
    whx20202  
    OP
       2017-02-12 17:22:56 +08:00
    @JackyBao 不好意思再次麻烦您一下, 能帮忙在看一下吗
    jasontse
        2
    jasontse  
       2017-02-12 17:47:24 +08:00 via iPad
    在 OpenWrt 中 Interface Edit 界面有一句话
    > You can also use VLAN notation INTERFACE.VLANNR (e.g.: eth0.1).
    意思就是 Physical Settings 中可以直接写 Custom Interface ,比如 eth0 网卡上的 VLAN 100 就是 eth0.100 。
    ifaii
        3
    ifaii  
       2017-02-12 17:47:44 +08:00
    这不叫单臂路由吧?
    你是什么交换?思科华为倒是好搞定,其他就不太了解了。
    你试试把 Port 改成 VLAN 100 un tagged (未标记), VM SWITCH 不要 VLAN 标记,当成接入模式就好了
    gamexg
        4
    gamexg  
       2017-02-12 17:50:55 +08:00   ❤️ 1
    先确认下几个:
    1.交换机端口 2 打了 100 的标签,并且是 tagged 模式。
    2.你希望虚拟机连接的目标也需要在交换机上面配置属于 vlan100 , pvid 也是 100 ,并设置为 untag 。对了还要确认是 802 协议的 vlan ,别是交换机私有的。
    3.vswitch 不需要开 混杂模式,直接在端口组配置 vlan id 即可,然后将虚拟机网卡连接到端口组。

    另外虚拟机在 vlan100 可能会由于和交换机管理 vlan 不同无法 ping ,确认 vlan 配置是否正确建议用虚拟机 ping 其他设备。
    kuretru
        5
    kuretru  
       2017-02-12 18:10:59 +08:00   ❤️ 1
    如果 LZ 还是用上个帖子的方案,我准备了一张图
    UnknownR
        6
    UnknownR  
       2017-02-12 19:07:46 +08:00
    有开 switchport mode access 吗
    whx20202
        7
    whx20202  
    OP
       2017-02-12 19:15:11 +08:00 via iPhone
    @gamexg 能推荐一个支持这个格式的交换机么 我已经买错两个了,退货退的好气呀……
    whx20202
        8
    whx20202  
    OP
       2017-02-12 19:20:58 +08:00 via iPhone
    @gamexg 我就是 port1 vlan 100 untag pvid 100
    port2 vlan 100 tagged pvid 100
    只要虚拟机用 vlan 网卡 ping port1 的电脑就不行,
    不用 vlan 网卡就随便 ping

    感觉像是交换机买的有问题……
    复制这条信息,打开👉手机淘宝👈即可看到 [五 5 口千兆交换机 网管 vlan 端口隔离镜像汇聚扩 wan 铁壳交换机 监控] ¥ QhMyRj6mAa ¥ http://c.b1wr.com/h.dZOIOJ?cv=QhMyRj6mAa&sm=cc15e9

    果然便宜没好货?
    whx20202
        9
    whx20202  
    OP
       2017-02-12 19:22:58 +08:00 via iPhone
    @kuretru 谢谢,主要是我买的那个交换机没有我要的那种 trunk ,他的 trunk 必须把多个端口加到一个 trunk 组里,感觉像是主备倒换,负载均衡什么的
    MntCw
        10
    MntCw  
       2017-02-12 19:26:39 +08:00 via Android
    路由器上起子接口
    gamexg
        11
    gamexg  
       2017-02-12 19:28:53 +08:00
    应该不是交换机的问题,支持 tagged 模式的就应该能用。
    看介绍是没问题的 “  基于 IEEE 802.1Q 的 Tag VLAN ;”
    http://siri-vision.com/a/chanpinzhongxin/jiaohuanji/jiandanwangguanjiaohu/2016/1222/SR-SG2005.html

    建议发下截图。
    sundong
        12
    sundong  
       2017-02-12 19:51:08 +08:00
    先不说单臂路由 先说说你想干嘛 实现什么
    whx20202
        13
    whx20202  
    OP
       2017-02-12 19:53:03 +08:00
    <img src=" " alt=" 1.jpg"/>
    <img src=" " alt=" 2.jpg"/>
    <img src=" " alt=" 3.jpg"/>
    whx20202
        14
    whx20202  
    OP
       2017-02-12 19:58:51 +08:00
    @sundong 目前想实现网卡直接发带 tag 的包,问题是交换机好像不收
    a1044634486
        15
    a1044634486  
       2017-02-12 20:15:45 +08:00
    交换机能配置单臂路由?,2 层交换机的 IP 能当网关?
    whx20202
        16
    whx20202  
    OP
       2017-02-12 20:48:58 +08:00




    whx20202
        17
    whx20202  
    OP
       2017-02-12 20:49:27 +08:00
    @a1044634486 目前主要问题是连虚拟化的 tag 报文都发不出去
    jasontse
        18
    jasontse  
       2017-02-12 21:08:48 +08:00 via iPad   ❤️ 1
    pvlan 和 cvlan 不是一回事所以 pvid 不要设置,其它的因为我也不熟你这个交换机所以也不能确定,不过应该没什么问题。
    gamexg
        19
    gamexg  
       2017-02-12 21:45:08 +08:00   ❤️ 1
    配置看起来都正确,
    也许可以把 esxi 端口组的 vlan 设置为 all+混杂模式,抓个包看看收到的包是否有 vlan 。
    或者电脑抓包看看是否正确收到了无 vlan 的包。
    JackyBao
        20
    JackyBao  
       2017-02-12 21:48:53 +08:00 via iPad   ❤️ 1
    LZ 我来了。

    vmware 这种情况我也没试过,但我知道我下面这种肯定可行,你参考一下思路。

    4 口交换机
    1 设成 trunk ,连电脑。
    2 设 vlan 1 ,当 wan 口用。
    3 4 设 vlan 2 ,当 lan 口用。

    电脑装 openwrt ,网口连交换机 1 口。
    装 macvlan ,把电脑上唯一的网口虚拟出 2 个网口,比如 macvlan1, macvlan2, 分别设置 vlan 1 2 。
    在 interface 里, wan 的物理接口选 macvlan1, lan 的选 macvlan2 。

    搞定!
    whx20202
        21
    whx20202  
    OP
       2017-02-12 22:16:01 +08:00 via iPhone
    @JackyBao 话说能给推荐一个交换机么……之前买错了两三个都退了,百兆千兆无所谓,能支撑我这个就可以
    kuretru
        22
    kuretru  
       2017-02-12 22:41:17 +08:00 via iPhone
    @JackyBao 可以 exsi 分配 2 个网口分别对应 2 个 vlan 给 openwrt ,这样 macvlan 都不用配了
    kuretru
        23
    kuretru  
       2017-02-12 22:44:52 +08:00 via iPhone   ❤️ 1
    交换机应该是支持的, exsi 设置有问题
    tpsxiong
        24
    tpsxiong  
       2017-02-12 23:20:09 +08:00 via iPad
    @whx20202 tp 的 tl-sg108e 不错,千兆铁盒
    whx20202
        25
    whx20202  
    OP
       2017-02-12 23:40:05 +08:00 via iPhone
    @kuretru 那我再研究一下 esx
    carterdang
        26
    carterdang  
       2017-02-13 04:52:05 +08:00 via Android   ❤️ 1
    首先画个租网图出来,确定哪些接口带 vlan 哪些不带,按照 lz 描述如果电脑出来带 vlan 那对应接口问 trunk 并允许相应 vlan 通过,如果借口出来不带 vlan 就在接口上打上 vlan ,所以如果 port2 的电脑出来的数据带了 vlan , port2 是 vlan100tagged ,那就要丢弃这个包
    carterdang
        27
    carterdang  
       2017-02-13 05:20:35 +08:00 via Android
    不太理解这低端交换机网页设置,根据 lz 配置,可以试下交换下 1 , 2 端口看是不是就能通了
    whx20202
        28
    whx20202  
    OP
       2017-02-13 09:17:06 +08:00
    @carterdang 感谢,可是问题是:
    1. port2 如果 ESX 虚拟化那边没问题,发送的应该是 带 tag 的标签
    2. 这个低端路由好像没有区分 access trunk 的端口模式
    3. 然后我设置了 port2 vlan100 , pvid 也是 100 ,带 100vlan 的数据包从电脑进端口,应该是能放行的,不应该丢弃这个包吧
    whx20202
        29
    whx20202  
    OP
       2017-02-13 10:02:44 +08:00
    @gamexg 对了你是哪个 TcpRoute 的作者么? 我一直在用哪个
    yushiro
        30
    yushiro  
       2017-02-13 10:10:43 +08:00 via iPhone
    楼主用的是不是 BL-SG108M ?交换机的 vlan0 是不能删除的
    gamexg
        31
    gamexg  
       2017-02-13 10:25:26 +08:00
    @whx20202 是的,当时学习 golang 时写的。

    另外交换机的话我这里用的是 JGS524Ev2 ,和你一样的用法,没碰到这种问题。

    对了,想起一个问题,你配置好交换机的 vlan 后是怎么访问的 esxi ?
    如果给交换机的 esxi 端口配置了 tagged ,那么就无法访问 esxi 了,我当时是在 esxi 控制台下修改的网卡 vlan 才能够再次访问 esxi 。
    你如果没做这个修改就能够访问 esxi ,那么很怀疑交换机真的给数据包打了 vlan 标签了吗?
    whx20202
        32
    whx20202  
    OP
       2017-02-13 10:26:18 +08:00
    @yushiro 我用的小牌子的,希力交换机,现在感觉像是因为  我所有的虚拟机都在笔记本上,而笔记本网卡收 vlan 包会自动删除 tag. 我回家看看 windows 能不能抓它下面虚拟机的 vlan tag 包, 看一下就行了
    gamexg
        33
    gamexg  
       2017-02-13 10:29:16 +08:00
    @gamexg JGS524Ev2 v2 版本的才支持 vlan , v1 是不支持 vlan 的。
    whx20202
        34
    whx20202  
    OP
       2017-02-13 10:29:31 +08:00
    @gamexg 明白您的意思 我回去检查设置。 BTW , 你那个 tcproute 真的挺好用的,某种概念上说,相当于家里建了个 BGP
    pwcong
        35
    pwcong  
       2017-02-13 11:44:37 +08:00
    http://pwcong.me/2016/01/26/%E4%B8%8D%E5%90%8CVLAN%E4%B9%8B%E9%97%B4%E4%BA%92%E7%9B%B8%E9%80%9A%E4%BF%A1/

    我之前学网工的时候写了一个教程,但是是思科的,不知道里面的思路能不能帮到你
    digimoon
        36
    digimoon  
       2017-02-13 11:45:14 +08:00
    pvid 没记错应该就是当收到没有带 vlan id 的包的时候就默认打上 pvid 设置的这个 vlan id ,现在我也是在用单臂路由不过虚拟机用的 hyper-v ,楼主最好画一张图我大概看了一下没看懂。。。
    chenghj87
        37
    chenghj87  
       2017-02-13 11:48:42 +08:00
    贴个你现在的拓扑图啊
    Sh888
        38
    Sh888  
       2017-02-13 13:32:17 +08:00
    你这些设备里都没有路由器,怎么配置单臂路由器呢?我猜你的意思应该是 ESXi 的虚拟交换机和物理交换机之间建立 trunk ,然后 ESXi 上虚拟机可以在各个不同的 vlan 和物理交换机上的各 vlan 接口通信吧?如果是这样的话,需要两边都不打标记(也就是 trunk 模式)就可以了。
    Sh888
        39
    Sh888  
       2017-02-13 13:33:59 +08:00
    你要 ping 通网关,需要在路由器的 lan 接口下配置子接口,一个子接口对应一个 vlan ,配置对应的 ip 地址,这个才是单臂路由。
    goodryb
        40
    goodryb  
       2017-02-13 13:35:28 +08:00
    小白没看懂楼主的需求是什么,不过楼主愿意出教程我是双手赞成
    whx20202
        41
    whx20202  
    OP
       2017-02-13 14:18:13 +08:00
    @Sh888 我的目的就是你说的这样,问题是这个物理交换机的端口设置没有 trunk 模式,而且必须设置 PVID
    Sh888
        42
    Sh888  
       2017-02-13 14:39:45 +08:00   ❤️ 1
    @whx20202 我看到 16 楼截图 1 里面有“无 tag 标记”,这个能设置吗?
    另外, esxi 的“混杂模式”不用开吧,这个是端口镜像时候用的,也就是同时接受上行和下行流量。
    Sh888
        43
    Sh888  
       2017-02-13 14:42:00 +08:00
    @Sh888 根据 16 楼截图 1 ,是否测试一下 5-8 端口, 5-8 貌似已经不做标记了。
    whx20202
        44
    whx20202  
    OP
       2017-02-13 14:52:15 +08:00
    @Sh888 我好像突然有点明白了,晚上回家试试
    Sh888
        45
    Sh888  
       2017-02-13 14:58:37 +08:00
    @whx20202 tag 、 untag 、 off 的概念是有点搞,貌似是 linux 下的说法,和 cisco 的说法有些不一样。这个 openwrt 的文档你参考一下,有 tag 、 untag 的具体解释。 https://wiki.openwrt.org/inbox/doc/extend_router_ports_managed_switch
    carterdang
        46
    carterdang  
       2017-02-13 16:04:33 +08:00 via iPhone
    pvid 是一个交换机端口的默认 vlan id, 对于 trunk 口可以不用更改,这里不明白“无 tag 标记”指的是不是出流量剥离标签的动作,可能是翻译问题导致的理解偏差,最好能找下店家或者相关产品文档看下怎么设置流量进端口不需要 tag vlan ,出流量也不剥离标签
    digimoon
        47
    digimoon  
       2017-02-13 17:13:07 +08:00
    untagged 比较霸道,进入的时候不管你有没有标记都统一标成 untagged 设置的 vlan id ,发出去的时候则是全给你清掉 vlan id

    我说说我现在的例子: port0 接光猫, port1 接做软路由的 pc , port234 接其他设备
    port0 的光猫只是给软路由 pc 上的虚拟机用,这个口打 untagged vlan1
    port1 的 pc 上的虚拟机软路由网卡有两个,一个是 vlan1 连光猫,另外一个是 vlan0 ,所以 port1 设 tagged&trunk
    port1 的 host pc 本身也要连到自己虚拟机软路由上,所以 host pc 的网卡是 vlan0
    port234 自然也是 vlan0 桥接,设 untagged vlan0
    whx20202
        48
    whx20202  
    OP
       2017-02-13 17:16:11 +08:00
    @digimoon 全部明白

    问题是你的 host PC 是什么系统 物理机器还能接受 vlan 数据包?
    lyh3222
        49
    lyh3222  
       2017-02-13 17:22:58 +08:00
    所以,现在单臂路由是不需要虚拟子接口了吗?
    digimoon
        50
    digimoon  
       2017-02-13 17:42:39 +08:00
    @whx20202 hyper-v 的虚拟交换机除了可以设置虚拟机的外,还可以设置 host 机网卡的 vlan id
    whx20202
        51
    whx20202  
    OP
       2017-02-13 19:02:54 +08:00
    @lyh3222 要的 虚拟机的第一个网卡设置为 VLAN 100 目前 ping 不通 我在定位
    whx20202
        52
    whx20202  
    OP
       2017-02-14 00:23:56 +08:00

    @Sh888
    @gamexg
    @kuretru

    我抓了包 虚拟机随便配了个 192.168.1.55 的 ping 交换机网管 192.168.1.1
    结果一直在 arp 死循环 :
    1.55 (虚拟机) 不停的问 1.1 (路由器网关)的 mac 地址是多少
    1.1 (路由器网关)也一直回复,但是感觉虚拟机看不到

    后来我看了下图中的报文,有意思的东西出现了:
    1. 虚拟机问 arp 的时候,带 100 vlan ID
    2. 交换机回的时候不带

    怎么判断是笔记本自带 GE 有线网卡过滤了返回的 VLAN ID , 还是交换机返回的本身就没有?
    gamexg
        53
    gamexg  
       2017-02-14 00:37:15 +08:00
    @whx20202 不建议拿交换机网管测试,很有可能厂家就没考虑管理 vlan ,建议 ping 另找的计算机。

    可行的办法:

    1.另找一个电脑(交换机设置为 utag , vlan=100 , pvid=100) ping 任何地址,虚拟机抓包,看看是不是能够收到 arp 请求,收到就表示交换机正确的给包加了 tag ,并且 esxi 正确的移除了 vlan 标签。

    2.如果收不到,可以试试将虚拟机端口组的 vlan 去掉, esxi 开混杂模式,然后在抓包,正确情况下包应该带 vlan 标签。

    3.找一个电脑,连上交换机,然后把这个交换机端口设置为带 tag ,抓同一 vlan 的广播,理论上应该带正确的 vlan 标签。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1510 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 384ms · UTC 23:56 · PVG 07:56 · LAX 15:56 · JFK 18:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.