Switch-Router

Recent Posts

  • 2019-11-02

    理解 macvlan

    macvlan 是什么 ?macvlan 是 Linux 内核 3.0 版本引入的一种虚拟网卡,它让用户可以在一块物理网卡上,再创建若干个依附于它的虚拟网卡,这些网卡拥有不同的 MAC 地址,如此就完成了网卡的虚拟化。macvlan 应用在哪里呢? 答案是:macvlan 可以轻松地解决虚拟机之间或者容器之间的网络通信问题。我们可以假设这样一种场景:一台宿主机上存在两个容器,它们属于不同的 namespace ,容器间有通信需求(互相通信和与宿主机外部通信)。可以怎么做呢? veth + ...

  • 2019-09-29

    TCP listen套接字的查找的变化

    内核TCP在收到SYN报文时,会根据报文的目的IP和Port,在本地匹配处于LISTEN状态的套接字进行握手过程。4.17版本以前的listen套接字查找 The current listener hashtable is hashed by port only. When a process is listening at many IP addresses with the same port (e.g.[IP1]:443, [IP2]:443… [IPN]:443), the in...

  • 2019-09-22

    Linux内核中的udp隧道框架

    起源TCP虽然能保证传输的可靠性,但其繁琐的状态机以及复杂的拥塞控制机制让它难以作为隧道报文的外层封装.相对而言,UDP就没这个困扰了,丢包的事情交给应用层处理就行。因而,不少隧道协议都是将UDP作为外层报文的方案。自然而然,与网络发展联系紧密的Linux内核也开始支持这些隧道协议,较新的内核已经支持fou、l2tp、vxlan、tipc、geneve等UDP隧道协议。最开始,各个隧道协议都是独立实现的,但随着数量的增多,在patch之后,内核将这些UDP隧道公共的部分抽离出来,也就形成了...

  • 2019-09-19

    TCP-In-TCP

    前天晚上在家中,当我搭起熟悉的ss梯子时, 发现不可用了T.T。登陆到控制台查看,发现国内的IP被Block了。问问身边朋友,也是一样的现象,听说是因为网络安全周?!看来只能寄希望于一周后能恢复吧….昨天瞎逛,看到一个开源项目:udp2raw-tunnel,他实现的是将一个IP报文伪装成TCP报文,目的是穿过网络中UDP防火墙.哈?!这难道是TCP-In-TCP? 这玩意儿不是不可用吗?很早以前就有人说过了:Why TCP Over TCP Is A Bad Idea为了将问题描述地更清楚...

  • 2019-09-17

    XFRM -- IPsec协议的内核实现框架

    IPsec协议帮助IP层建立安全可信的数据包传输通道。当前已经有了如StrongSwan、OpenSwan等比较成熟的解决方案,而它们都使用了Linux内核中的XFRM框架进行报文接收发送。XFRM的正确读音是transform(转换), 这表示内核协议栈收到的IPsec报文需要经过转换才能还原为原始报文;同样地,要发送的原始报文也需要转换为IPsec报文才能发送出去。OverviewXFRM 实例IPsec中有两个重要概念:安全关联(Security Association)和安全策略(...