首页 技术 正文
技术 2022年11月21日
0 收藏 512 点赞 3,819 浏览 88194 个字

网络虚拟化技术(二): TUN/TAP MACVLAN MACVTAP

27 March 2013

TUN 设备

TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便得模拟网络行为。先来看看物理设备是如何工作的:

<img src="data:image/png;base64,%0A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%0A/D8VUFKcbAceuQAAAABJRU5ErkJggg==" alt="2013-03-27-linux-network-tun__1.png" />

所有物理网卡收到的包会交给内核的 Network Stack 处理,然后通过 Socket API 通知给用户程序。下面看看 TUN 的工作方式:

<img src="data:image/png;base64,%0AiVBORw0KGgoAAAANSUhEUgAAAk4AAAEKCAIAAABrGk1FAAAipklEQVR42u2de1DVZf7H5Q6JiChJ%0AphXeLynVaK2olMqMzZSJlla61tbu1tbUZjM1tbNlbdm2Te1FXbW2C9lWjlmpRWlmqaCE4uIcRFJE%0AEhAEQYLDPcB+75/P9J3T4RIoHOGc1+uPM8/zeb635/t8z/M6z/d2ev0IAADg1vRiFwAAAKoDAABw%0AC9WdAQAAcCNQHQAAoDoAAABUBwAAgOoAAABQHQAAAKoDAABAdQAAAKgOAABQHQAAAKoDAABAdQAA%0AAKgOAAAA1QEAAKA6AAAAVAcAAKgO1QEAAKoDAABAdQAAAKgOAAAA1QEAAKA6AAAAVAcAAIDqAAAA%0A1QEAAKA6AAAAVAcAAIDqAAAAUB0AAACqAwAAQHUAAIDqUB0AAKA66AijR4/u5UmovrQRcFwBqvMs%0A9C390ZNQfe12e1VVVW1tbX19fWNjI20EnnlcAapDde7cJeXn5xcXF5eVlaljUq9EG4FnHleA6lCd%0AO3dJhw4dOnbsWEFBgXqlmpoa2gg887gCVIfq3LlLSk5Ottls6pWKiooqKytpI/DM4wpQHapz5y5p%0Ay5Yt6pUyMjLy8vLKy8tpI/DM4wpQHapz5y5p/fr127ZtS01Nzc7OPn36NG0EnnlcAapDde7cJa1b%0At27r1q379u07evQoqgOPPa4A1aE6uiS3aqPNmzfHxMSEh4f7+Pj07t178ODB1157bafszPPZtnbO%0AXlZW5u/vrykDAgKUbr4EC1Vw2rRpmzZt6sSNRHWA6lAdqusBbfTqq69qCc8991xpaWl9fX1WVpYi%0A1113XU9R3Zo1azSZsZ22vLUl1NXV7dmz58orr1REs6A6QHXQtapbvny56V9WrFiB6i54Gw0fPlxL%0AqKio6Iqd6QLVTZ482RxL+oyOjm57CWpWRYYNG4bqANVBF6pOyxw1apTPWczbklDdhW2jiy66SEuY%0APXu2au10AtDiiy++mDp1qqYMCgqaMmWKso6lBw8evP322yMiIvz8/MaOHfv++++3aBFNdumll6rd%0ArZ84SUlJsbGxffr0CQkJkaU+++yz1s49trbxaiOVjhkzRmnzgrTs7Ow2NFZdXa2IthPVAaqDLlTd%0Atm3btMxbb7113rx5Snz55ZdOnc7atWvVXQYEBKjnev3119tZiurOmWXLljlKRTZatGjRjh07HD3n%0A7e2twdPx48dzc3OVUNaynXaU/DdkyJDt27dLJJmZmQsXLmxukcTExNDQUFnN8plW4evrGxMTIzlJ%0AsYsXLzbt2yEJLV26VNP87W9/U/rFF19U+plnnmljCXv37mVUB6gOulx1t9xyi5a5c+dO9XRKzJkz%0Ax6nTuemmmwoKCk6ePKmEsvHx8e0pRXXng+o7ffp0jbcs4Xl5eVm/JDSMU2TPnj0mu3v3bmU1yDPZ%0AmTNnKut0r4eTRVQaGBgoHdpsNqtUklNpenq6yRYXFys7cuTIDklo6NCh2mwdEkqfOHFCDm5NY3V1%0AdcnJyeZa3erVq1EdoDroKtVpWKDOaPz48Sarfkf9lAYKjp3O4cOHTVYJZTVNe0pR3flTU1Mjn2mc%0AFBwc7Dj00aBN2crKSpO12+3KKuh4/rPFM5+myaRMtfLEiRMLCwubnzh1QlO2X0JJSUma4MYbb7Qi%0As2bNUkQybvEs6IABA7gDE1AddLnqnnjiCS3wtddeM1kllH3yyScdOx39+jbZ2tpaZdUhtqcU1XUi%0ACQkJ5t799qvu+++/b011ISEh+oyNjXWaxsx46tSpc74t5b777mvxH3Puv//+9msM1QGqg87sRmUp%0A/axu3jGFh4cbgTGq6yaqk9W0zBEjRrR4AlMJxxOYM2bMUHbz5s2tWSQ1NbV///5KjBo1Kisryyq9%0A4YYbFNywYUNrm+Hl5dVG1XTMhIaG9u7du7q62vGuE0X69evneEShOkB14Lpu9O233za/7h2Dylo3%0AI1hX4woLC0+ePHnzzTcr++abbzpdq2uxFNWdM+PHj3/22Wd37typAVZDQ0NJSYmyjoNvc1uKhJeb%0Am5uXl6eE420pKSkpgYGBl19++VdffVVTU3PkyJG7777bySIZGRmXXHKJ0pLQ9u3brWt+/v7+kZGR%0AWkJ9fb0WriNEC7c2bNCgQZolMzOzxc2WI1Vq3QJjceeddyr+4YcfojpAdXABVDdp0iQtzboT3aCs%0AgiqyOh31d1FRUfptrkGA4xPBbZeiunNm3rx52qUaWwcFBclhstH06dOdBlvmYYOgs0RHR2v/OJba%0AbLb58+dffPHFvr6+rT1skJ2dLR0qq2lWrVplghrwxcXFacynoMQmb+3atctabHx8/MCBA1tTkbm/%0A6dNPP3WKf/LJJ4qrFNUBqoMLdnLsnDsduqTu0EaA6gDVoTpUh+oA1QGqQ3WoDtWhOlQHqI5ulC6J%0ANuK4AkB1dKN0SaiO4wpQHdCNojrguAJUB3SjqA44rgDVAapDdYDqANWhOrok2ghQHaC6Hk1EREQv%0ATyIkJKTHdUme1kYcV4DqUF3nU15enpubm56enpSUlJCQ8J5LUO/w3gVCdVRNVV/VWnWnjcBjjytA%0AdR6E3W4vLCzMyspKS0tLTEz83CVIdZ9fIFRH1VT1Va1Vd9oIPPa4AlTnQVRXV5eWlubn5+tbarPZ%0AUlyCVJdygVAdVVPVV7VW3Wkj8NjjClCdB1FXV6cfofp+6tfo8ePHj7gEqe7IBUJ1VE1VX9VadaeN%0AwGOPK0B1HkRDQ4O+mfodWlFRUVZWVuISpLqSC4TqqJqqvqq16k4bgcceV4DqPI6mn2h0CVJd4wXC%0AqiltBBxXgOqgC5Hq2AkAAKgO1QEAoDpAdQAAqA5QHQAAqgNUBwCA6gDVAQCgOkB1AACoDlCdq4mL%0Ai2NeF8wLgOoA1fXI/cy8AKgOUB2qY14AVAd0K6gO1QGgOrpgQHWoDlAdqqMLBlSH6gDVAaoDlIPq%0AANUBqmM/My/HJKA6QHXuv597tUmXaqPFVbQY74r1Gvz8/IYPH/7000/X19dzTAKq++WvqGOwrq7u%0AueeeGzlyZEBAQGBgYERExKRJk9ruXJoX+fr6XnbZZQ8++GBFRQWqAxfs59bc45aqO3P2j22PHTt2%0A8803KyvbcUwCquuY6p544gml16xZU11dffr06Y8//njGjBnt6VAcv4QnTpy49957lV24cCGqA1TX%0ARevNyspSdtiwYRyTgOo6prohQ4YoXVpa2tEOxamopKRE2X79+qE6QHVdtN7a2lplAwICOCYB1XVM%0Adf3791d63Lhxjz/++KZNm5zOQLZfdadOnVI2LCwM1QGq66L1HjlyRNkrrriCYxJQXcdUt379+vDw%0AcOuqm34w3nHHHUVFRY5TtnGt7szPT2A+8MADqA5QXaevV9+ynJwcc61u6dKlHJOA6jqmOlFfX79t%0A27ZFixb16dPHFOkb1c5RnSORkZGVlZWdu/2jR4/uBe1D+wrVuaXqHBk5ciR3YAKqc8bb21vfgR9+%0A+MGKKK2I4s0nbmhoePjhh1UaHBzcTtWdOXv9YP/+/ZMmTVJ29erVnd7Z/QjtQ/vKbrdXVVWpRdQb%0ANjY2orrOWq+/v7+C2reOQWWbXznrIsU6fss2b96M6gDV/YwrrrhC34HDhw9bkczMTDMCa3H60tJS%0AlQ4YMKD9qjMUFBSoOxg6dGjn9rCorkOqy8/PLy4uLisrUy/c4m9/VHdu67366qsVTEpKcgwmJiYq%0AeM0117hsNGm+ZZMnT0Z1gOp+xj//+U99B2bNmvXtt9/W1NToMzY2VhHFzQQTJ05cvnz5wYMHVVpZ%0AWbly5UqVPvLIIx1VnZg7d64iGzZsQHUXSnWHDh06duyYOkTZTg2K6jprvZ9++qmPj8+4ceO+/vrr%0A8rMooayCKnLliVPzLfvyyy9RHaC6n7F27dqpU6f27dvX29tbn0orYpXGxcWNGTMmNDTUz89PPxiV%0A/stf/mINCNpzW4rFxo0bFWnxJyeqc43qkpOTbTabbFdUVNTp1009WXVC+3b+/PmDBw/2O8uQIUMW%0ALFigYJeut7VvWUxMDKoDVOc+oLoOqW7Lli3qfDMyMvLy8jTycGPVMS+qA1SH6jxUdevXr9+2bVtq%0Aamp2dvbp06dRHfMCoDpU526qW7du3datW/ft23f06FFUx7wAqM7dVHfXXXeNGDGiNQd0ljId19KJ%0AixX33HOPlhYdHd3Y2GgFlVZEcZWiOgtVcOHChUOGDPH39w8ODo6MjLSeBO0ibZi29vLyMq9EV6M8%0A88wzJ06ccI2u1JTmaYeAgIDWmhXVAapzf9U1NTWFh4cvWbKkS1XntJbOVV1NTc2ECRO0wGXLllnB%0AF154QZGoqCiVojrDihUrfHx85s6de/Dgwfr6+pMnT37wwQeO7yjvOtWdOftYal5e3ltvvSW/9u3b%0Ad9OmTS5Q3erVq1VkbLdmzRpUB6jOQ1WXkpJi7sDuUtU5raVzVSeysrJCQkL8/Pz279+v7IEDB5RW%0ARN7iBKYhKSlJQ6tJkyb94uObXX0nZGlp6bBhwzTMSk9P72rVTZ48WUXLly83435UB6jOQ1X39NNP%0ABwcH6ze+yb7zzjvqhuSJsWPHrl271slJ6i5jY2P79Okji6jj+Oyzz0zcPCb84YcfWlNu2LBBEcWb%0Ar8XpAYzW5Ne8VMtXzxUYGBgWFjZ79uycnBzH6VVqXvFVVlY2btw4pT/66COu1VmYp8q0T85ZG52l%0AOvHuu+8quGjRoi5VnfnjnjFjxpz56T15alxUB6jOE1V3zTXXqBM0aY26NNeUKVNyz6KEo2927Njh%0A6+sbExOTnZ0tnSxevFhF0qGK/v3vf5v3f1qLvemmmxRZtWpV87W0JjaNOdpWXVRUlIZrdrv9+eef%0AV/b66693qsuSJUsUN3+u9Oijj3JbiiMXX3yxgt999113UN3JkycVvOSSS7pUdUuXLlX8xRdfVPqv%0Af/2r0s888wyqA1TncaorLCyUYN544w2TveGGG8zD1Ca7Z88eR99Ickqnp6ebbHFxsXmFrtLff/+9%0ABlsSYVFRkbLqyJQOCgpSvPlaWlOdj49P26pLSUkx2crKSnOjgVN1tHaNR1WkT20eqnNELaJgbW1t%0Ad1CdxvemmbpUdUOHDtVBZW6Byc/P9/b25q9Zwf1VZ/pxd0I1Ok/VST+SkFRksmFhYZpLIjFZjZ8c%0AfXPRRRc13wbLT4sWLVL273//u9KvvPKK0r/+9a9bXMs5q846y2p1oE7VmTNnjoIzZ87UZ1xcXGep%0ArnseOb/Y+k4R84dT5zCqa6P6zbehnarTwfCLo7rzXK95zeaNN95oRWbNmtX8bZy/qDr36zfANd9B%0ARnXdaFQ3d+7ca665xsq2R3WnTp1qcVE7duxQ6YQJE5QeP3680oq0uJbWVKcf3VbW/Opv55U8w4oV%0AKxSZMWNGU1PT9OnTlV65ciWjOotuda3unXfeUXDhwoVdt9777ruvxe7p/vvvZ1QHnMD0INVJJ8HB%0AwU8//bQVuf7669s4gWl+3m7YsKHFpWmNw4cP1wT/+c9/9Km0acjmaxEa5Dltnrkd3HowYO/evR1S%0AXVpaWkBAgFakUYuy+lRakQMHDqA6g7kD87rrrvOEOzBra2tDQ0N79+7t+OdBSivSr18/p7O4qA5Q%0AnTurztyEYl0AE1988UUbt6Xs3r1bQoqMjNQsEpgmePvttzWNNbu58h8UFKRPpVtbixg0aJCCmZmZ%0AVsRcCHzppZc0prTZbOaWznaqTrOMHDnSPDhlTWAeqFJcHRyqMyxfvlxD51tvvTUjI6Ouri4nJ0eD%0APJc9V9fQ0JCfn++a5+o++OCD5qNGceeddzb/CxFUB6jOnVW3ZMmS8PDwpqYmx2B8fPzQoUOlq6io%0AKJnMyTGpqalxcXH9+/f39fWVrtSV7Nq1yyotKCjw8fExV92sK3OtrWXgwIGOC1e3O3v27LCwMHWC%0A0dHR5lmFdqrO3As6c+ZMx0NHaXPR7q677kJ1Fhouq9UuvfRSPz8/tfJll1120003uUB1GlBqGOey%0At6XccsstinzyySdOk23evFlxlaI6QHWeoroRI0a0RwPniWvWwjswu1RXzAuA6nqq6gDVMS+qA1SH%0A6lAdqmNeAFSH6lBdD1Gd0z334eHh06ZN27hxY1dr40KtF9UBqnP+HlrZb775pl+/fuZWwBa/qI7T%0AO0Z8fX0vu+yyBx98sKKiwrHU6SGe1mZvccmoDtV1unJMura2dvfu3VdeeaUiq1evdoHqXLzenJwc%0ARfr3729FzEvjHnroISuiUkXMlPS54EGq+/rrr4ODg318fN56663WXNjivE1NTSdOnLj33nsd72+2%0AbjzTd7sN1bVHwKgO1XWucgzm4cXm78rq6ufqXLPeyy+/XMFvv/3WZMeMGWMePjFZxZXVNIzqwLNU%0Al5CQEHgWp8d92i+kkpISZTUodCzt27evfsPW19ejOlTX3VRXVVXV/EWULlCda9Z79913K/jmm28q%0AnZuba5040TBOEcXNgyioDjxIdR988IG+eNLSzp07228dp6JTp04pGxYW5lhqHmRetmwZqkN13U11%0A5k8EXT+qc81633rrLQV/+9vfKm3e4GNeF2f+oPV3v/ud0m+88QaqAw9SnXnw2fG8pdMEbV9RczyB%0A+cADDziWqmjKlClBQUHmj7K4VofquoPqamtr9+zZY66ZrVq1ymWqc+V6zUU482d1t912m7e396FD%0Ah/RNnzdvniJjx461/r4O1YGnqO5f//qXPkNCQs5hVOdIZGRkZWWl04wZGRn+/v6xsbEuHtVFRETw%0A6vF2oqb3tDswBwwYcEHuwHTZes+cvVzn5eVVXFwcGhr6q1/9SpGYmJi+ffueOnVK8cGDB5//egF6%0AkuqU0G9MHf0afn366acdPYGp36r79++fNGmS431ljjOav4g0b3N3mepEeXl5bm5uenp6UlJSQkLC%0Ae90A1eu9bon2j/aS9pX2mPabJ5zA7JA2etx6z/x0ue7Pf/6zPl944QVFXn75ZaWfeuopx/9AR3Xg%0AQao7c/aEvmzn5+f3/vvvd0h1hoKCAo3ehg4dat4c73TeZvTo0eYPw1ypOrvdXlhYmJWVlZaWlpiY%0A+Hk3QPX6vFui/aO9pH2lPab9hurcQHXmcl2fPn30efDgQUUOHz5sBvH6fO2111AdeKLqRHx8vPdZ%0AzLXrjgrJ/CWYeW+6U+muXbvMP9e4UnXV1dWlpaX5+fnqwW02W0o3wPzLQTdE+0d7SftKe0z7DdW5%0AgerM5TqhH6BWcNSoUSYo7aE68FDVif/+97/mLpUXX3zxTAdvHtm4caMikydPbrHU+q9Ix9l/8eF0%0Ap6IOUVdXpwGK+m6NVI4fP36kG6CKHOmWaP9oL2lfaY9pv6E6N1DdmZ+erluyZIkVeeyxxxSJiIjo%0AlPUC9AzVuTcNDQ3qtTVGqaioKCsrK+kGqFsp6ZZo/2gvaV9pj2m/uZ/qmLcr5gVAdd2Fpp9o7Aao%0AW2nsllh7yT0aHV2hOkB10CO7YEA5qA5QHaA6QFcck4DqANWxn5mXYxJQHaA6VMe8AKgOUB2qY14A%0AVAd0K6gO1QGgOrpgQHWoDlAdqqMLhnPkqquuYl4XzAuA6gDVAQCgOlQHAIDqUB2qAwBAdYDqAABQ%0AHaA6AABUB6gOAADVAaoDAEB1gOoAAFAdqmMnAACgOlQHAIDqANUBAKA6QHUAAKgOUB0AAKoDVHfh%0AGD16dC/o3qiNOFAB1QGqO6999SN0b9RGdru9qqqqtra2vr6+sbGR4xZQHaA6VOduqsvPzy8uLi4r%0AK5PwZDuOW0B1gOpQnbup7tChQ8eOHSsoKJDtampqOG4B1QGqQ3Xuprrk5GSbzSbbFRUVVVZWctwC%0AqgNUh+rcTXVbtmyR7TIyMvLy8srLyzluAdUBqkN17qa69evXb9u2LTU1NTs7+/Tp0xy3gOoA1aE6%0Ad1PdunXrtm7dum/fvqNHj6I6QHWA6jpTdea5rqioqIaGhubx9vfUrhRqR1e3efPmmJiY8PBwHx+f%0A3r17Dx48+Nprr+2i7T+3RaE6QHWA6rpcdeKll15yS9W9+uqrmvi5554rLS2tr6/PyspS5LrrrkN1%0AgOoA1XmW6gYOHHjRRRfl5OS4n+qGDx+uiSsqKlyz/agOUB2gum6quvXr1+tz1qxZrXXZSUlJsbGx%0Affr0CQkJiY6O/uyzz5qPCx1nGTp0qNJpaWkmO+0sJv2///1PRZrAWsIXX3wxdepUuTYoKGjKlCnK%0AOi28rq7ukUceCQ8P9/b2br5tBw8evPTSS318fFasWNG8glqsJp49e7ZEUlZW1sa41mmxco+JBAQE%0AjBw58qmnntKg0HGlt99+e0REhJ+f39ixY99///0W91vb24bqANUBqnOd6pSQDJR49913m3fZO3bs%0A8PX1jYmJyc7Oli0WL16sorVr17YxlPnDH/6gyMqVK5XWLD5nMaZZvny5ijSB5TkJbPLkycePH8/N%0AzVVCWct2ZsmvvPLKgQMHGhsbm68uMTExNDRUDna0ryPLli1zNJnEs2jRItXoF4diTz755JYtW6qq%0AqjQifPnllzXBn/70J1MkIcnKQ4YM2b59e3V1dWZm5sKFC89h21AdoDpAdS5V3YkTJzRi08hJ/axT%0Aly3JKZ2enm6yxcXFymqg04YqPv74Y0XuuOMOpd977z0zgRLKLliwQGlNYKbUME7ZPXv2mOzu3buV%0A1SDPccn79+9vcZs3bdoUGBgo5dhstjbqKIVMnz5drrWE5+Xl9frrr7f/rGNDQ4PjSHTmzJnKau1t%0A7M92bhuqA1QHqM51qhOrV69W+p577nGKm3OATsgcbaiivLxcA0F19ErfeeedkkRkZKQSympcpSJN%0AYKbU8EjzVlZWmqzdbldWQccl//DDD823Wa7SNkycOLGwsLA918Nqamok1KVLlwYHB2v2YcOGtbH9%0Ap06d+s1vfjN48GBtqlVlc/rU2iFtnA7t6LahOkB1gOpcpDpNPG3aNGV37NjRXHXq/Tt0L0Z0dLSC%0AOTk5YWFhjz/++GOPPdavXz/14wqqyJqsPaprcXUag+ozNjb2+++/79A9IAkJCeYKXBvbP2vWLHPG%0AsqSkRNm6urrmO6TF9Z7btqE6QHWA6lykOnH48GFzF4Zj/IYbblB6w4YNrS3Ey8ur+VqeffZZBR94%0A4AF9pqSkfPPNN0r8/ve/16eKrMmcTmAq0fwEZovbnJqa2r9/fyVGjRqVlZXVftVJq5prxIgRbWx/%0Anz59HAW8c+dOxy2ZMWOG0ps3b25tf3Z021AdoDpAda5TndN9HNb1M39//8jISBmrvr4+Nzf37bff%0AlqKsWQYNGqSJMzMzHZeTnJysoJ+f3+DBg82WmFOX5tXGjrdfent7a2labF5enhLNb0tpbZszMjIu%0AueQSpTVe3L59e4sVHD9+vMwqV2lU2tDQoFGacfBrr73Wxvabq3H/+Mc/qqur9+7dKy86bon2Q2Bg%0A4OWXX/7VV1/V1NQcOXLk7rvvPodtQ3WA6gDVXRjV/fDDDxMmTHCKa5gSFxenkYpcJTEsXLhw165d%0AVml8fPzAgQOdZmlsbAwNDVXkj3/8o4k8/PDDyipo3Uvp+LBB0Fmio6PV47d9atQxmJ2dLeUoqw1b%0AtWpV8wrOmzcvKioqPDxcC5dEJZ7p06c7jVCbb39hYeGCBQvCwsI0xr3qqqusO2usWWw22/z58y++%0A+GKtt7WHDX5x21AdoDpAda5QHfAOTEB1gOpQHaA6QHWA6lAdoDpAdYDqUB2gOkB1gOpQHapDdYDq%0AANWhOlQHgOpQHaA6VAeoDtWhOlQHqA5QHaA6VAeoDlAdoLoeRERERC/o3oSEhKA6QHWA6s6L8vLy%0A3Nzc9PT0pKSkhISE93o45q/v3Ay1i1pHbaSWUntx0AKqA1TXMex2e2FhYVZWVlpaWmJi4uc9HLX+%0A526H2kWtozZSS6m9OGgB1QGq6xjV1dWlpaX5+fnqSW02W0oPx/wrkJuhdlHrqI3UUmovDlpAdYDq%0AOkZdXZ0GCupDNWI4fvz4kR6OWv+I26F2UeuojdRSai8OWkB1gOo6RkNDg3pPjRUqKirKyspKejhq%0A/RK3Q+2i1lEbqaXUXhy0gOoA1Z0LTT/R2MNR6ze6HVbrcKACqgNUB7Q+AKqjswNaHwDVAZ0d0PoA%0AqA7o7IDWB0B1QGcHtD4AqgM6O6D1AVAd0NkBrQ+A6oDODmh9AFRHZwe0PgCqQ3V0dkDrA6A6oLMD%0AWh8A1QGdHdD6AKgO6OyA1gdAdUBnB7Q+AKoDOjug9QFQHZ0dnR2tDwCojs4OaH0AVAd0dkDrA6A6%0AoLMDWh8A1QGdHdD6AKgO6OyA1gdAdeAOnd3o0aN7uReqEa0PgOqAzu5nW/Wje6Ea2e32qqqq2tra%0A+vr6xsZGWh8A1QGqczfV5efnFxcXl5WVSXiyHa0PgOoA1bmb6g4dOnTs2LGCggLZrqamhtYHQHWA%0A6txNdcnJyTabTbYrKiqqrKyk9QFQHaA6d1Pdli1bZLuMjIy8vLzy8nJaHwDVAapzN9WtX79+27Zt%0Aqamp2dnZp0+fpvUBUB2gOndT3bp167Zu3bpv376jR492B9XZ7fbg4GC+AgCoDtX1GNWZx9c6y0z3%0A3HOPlhYdHd3Y2GgFlVZEcZW6gepycnKuuOIKvgIAqM790e/6srIyVOdETU3NhAkTtMBly5ZZwRde%0AeEGRqKgolbqB6tLS0q688kq+AgCozv2ZOHHi119/jeqak5WVFRIS4ufnt3//fmUPHDigtCISlXuc%0AwIyPj7/tttv4CgCgOvfnqaeeeuihh3q66pzewtWa/JqXfvjhh5MnTw4MDAwLC5s9e3ZOTo7j9Co1%0A7/TSwHfcuHFKf/TRR25zre7mm29+/fXX+QoAoDr3R2OX0NDQ9PR09xvVKevl5dW26qKiojRcs9vt%0Azz//vLLXX3+902KXLFmi+JAhQ/T56KOPus1tKRrKDxgwoBueuwZAddAlrFmzJiIiQh1xN3mFRyeq%0AzsfHp23VpaSkmGxlZaWyAQEBTostKiry8/NTkT6Li4vdQHXyulpcv282btzIwQ+A6jyILVu2TJ06%0A1dfXt/v8FYBrVFdfX28dzy2ud86cOQrOnDlTn3Fxceejum5CYGDgjTfemJyczGEPgOrAHUZ13t7e%0AVlZWa/+VPMOKFSsUmTFjRlNT0/Tp05VeuXKl21yrAwBUBz1MdV5eXk5z+fv7K2I9GLB3794OqS4t%0ALS0gICA4OPi7775TVp9KK3LgwAFUB4DqAC6A6gYNGqS5MjMzrUhMTIwiL730UmVlpc1mu/rqq9uv%0AOs0ycuRIZdesWWNNsHr1akUUr6qqQnUAqA7A1aqLj48fOHCgo65ycnJmz54dFhbWt2/f6OjoDRs2%0AtF91ixcvNpfoHI9+pc1Fu7vuugvVAaA6AFerjndgAgCqA1SH6gAA1QGqQ3UAqA7VAapDdQCoDgDV%0AoToAVAeA6lAdAKoDVIfqAADVAapDdQCA6gDVoToAQHXQPYmIiOjlXoSEhKA6AFQH8DPKy8tzc3PT%0A09OTkpISEhLe6/moFqqLaqR6qXY0MQCqA0/HbrcXFhZmZWWlpaUlJiZ+3vNRLVQX1Uj1Uu1oYgBU%0AB55OdXV1aWlpfn6+3GCz2VJ6PqqF6qIaqV6qHU0MgOrA06mrq9PQR1bQGOj48eNHej6qheqiGqle%0Aqh1NDIDqwNNpaGiQDzT6qaioKCsrK+n5qBaqi2qkeql2NDEAqgP4f5p+orHnY9WFZgVAdQAAAKgO%0AAAAA1QEAAKA6AAAAVAcAAKgOAAAA1QEAAKA6AAAAVAcAAIDqAAAAUB0AAACqAwAAVIfqAAAA1QEA%0AAKA6AAAAVAcAAIDqAAAAUB0AAACqAwAAQHUAAIDqAAAAUB0AAACqAwAAQHUAAACoDgAAoDNUBwAA%0A4JagOgAAQHUAAAA9mf8D6lkOO3ugUUYAAAAASUVORK5CYII=" alt="2013-03-27-linux-network-tun__2.png" />

普通的网卡通过网线收发数据包,但是 TUN 设备通过一个文件收发数据包。所有对这个文件的写操作会通过 TUN 设备转换成一个数据包送给内核;当内核发送一个包给 TUN 设备时,通过读这个文件可以拿到包的内容。

如果我们使用 TUN 设备搭建一个基于 UDP VPN,那么整个处理过程就是这样:

<img src="data:image/png;base64,%0A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%0A8T82DUFTkOcfJQAAAABJRU5ErkJggg==" alt="2013-03-27-linux-network-tun__3.png" />

数据包会通过内核网络栈两次。但是经过 App 的处理后,数据包可能已经加密,并且原有的 ip 头被封装在 udp 内部,所以第二次通过网络栈内核看到的是截然不同的网络包。

TAP 设备

TAP 设备与 TUN 设备工作方式完全相同,区别在于:

  • TUN 设备的 /dev/tunX 文件收发的是 IP 层数据包,只能工作在 IP 层,无法与物理网卡做 bridge,但是可以通过三层交换(如 ip_forward)与物理网卡连通。

  • TAP 设备的 /dev/tapX 文件收发的是 MAC 层数据包,拥有 MAC 层功能,可以与物理网卡做 bridge,支持 MAC 层广播

MACVLAN

有时我们可能需要一块物理网卡绑定多个 IP 以及多个 MAC 地址,虽然绑定多个 IP 很容易,但是这些 IP 会共享物理网卡的 MAC 地址,可能无法满足我们的设计需求,所以有了 MACVLAN 设备,其工作方式如下:

<img src="data:image/png;base64,%0A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%0AAAAA+P/5fyQluM/VR0VnAAAAAElFTkSuQmCC" alt="2013-03-27-linux-network-tun__4.png" />

MACVLAN 会根据收到包的目的 MAC 地址判断这个包需要交给哪个虚拟网卡。单独使用 MACVLAN 好像毫无意义,但是配合之前介绍的 network namespace 使用,我们可以构建这样的网络:

<img src="data:image/png;base64,%0A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%0AUWNjI/mBrNIP8xV65kDqL+Gel5fn5uZGGtIyly5deuKJJ4KCgiIiIuLi4tLT02Xw1NLSQn4gq6Bn%0A9MyBZLHhHh4erv8YBNAgMm4eP378rl27IiMj4+PjMzMzeZwnWQU9o2cOJAsP9w0bNvj7+5OGtMyq%0AVav++Mc/7tmzR8LmwoULEjZVVVU8zpOsgp7RMweSJYf7woUL9+3bRxrSMl5eXh988MH+/ftPnTp1%0A6dKlvLy827dvc9s2WQU9o2cOJEsO95dffvnq1aukIS0zcuTIdevWHThwICoqKiUlpaCgoL6+nuRA%0AVkHP6JkDyWLDvbm52d7eXvecQtAgEiHW1tbbt28PDw8/e/ZsWlpacXFxU1MTyYGsgp7RMweSxYa7%0AbIOnpyc5SMscOXLEzc1tx44dhw8fPnfuXEZGxq1bt1pbW0kOZBX0jJ45kCw23AMDA3UP3Adtsn79%0A+smTJ+/evfvo0aMJCQlZWVnqYWQkB7IKekbPvYmLi4uFvSpn+PDh2gn3NWvWBAQEkIO0zIIFC956%0A6y2JmRMnTkjM5ObmSsxYxm3bvr6+ZBXyFXruw9TW1hYUFKSlpcXFxUVGRgb3fWQvZF9kj2S/ZO96%0AsW29vb3lwEOBWsbT0/Pjjz8OCQk5ffr05cuXb9682bsx83BHsWQV8hV67sPU19eXlpZmZ2cnJyfH%0AxsYe7fvIXsi+yB7JfvXuLbhPPfXUrVu3UKBmuXv37rBhw7799tuDBw9GR0dfuXKlsLCwoaEBPZNV%0A+mG+Qs+ao6mpqaqqqqioSOIjNTU1se8jeyH7Insk+9WLt+BWVFSInlGglpE4ET0HBgZGRERIlkxP%0ATy8pKbGYx3n2op4tL6tYfL5Cz1qktbVVTtkkMuTcLT8/P6vvI3sh+yJ7JPvVi7fgHjt27AHfcgiP%0Amp9//nns2LE7d+6MjIw8f/58ZmZmWVlZW1sbeiar9Ld8hZ61SEdHh8SEnLXV1dXV1NRU9n1kL2Rf%0AZI9kv2TveqthAwIC1qxZgwK1jHTQ7Nmzg4OD5VxKxjEyiJH46cWYsRg9W15Wsfh8hZ61y93/cafv%0Ao9uX3m3S5cuXb9++HQVqGW9v7/fff3/fvn0nT55MSkq6ceOG5EqLeZxnL+rZ8rKKxecr9Az9CE9P%0AT8n4KFDLPPPMM59//vmBAwfOnDmTkpKSn59vSffm9LqeAdAzaI729nZ7e/uWlhYUqFlaW1vt7Oy2%0AbdsWHh4eExOTlpZWVFRkSffmoGdAzwCGSK4fN24cCtQyUVFRLi4uQUFBhw8fjouLy8jIKC0ttaR7%0Ac9AzoGcAQ0JDQxcuXIgCtczmzZtfeeWVXbt2HTlyJD4+/vr16+Xl5Zb0OE/0DOgZwBB/f/8NGzag%0AQC3j5+c3b948g0cqWsbjPNEzoGeArpG8f+jQIRSoZSZPnvzhhx+GhIScOnXq8uXLeXl5tbW1lnQD%0ALXoG9AxgyHPPPSejMRSoZZycnDZs2HDw4MGoqKgrV64UFBRYzOM80TOgZ4CusbW15W082n9Z0C+/%0A/HLo0KGzZ89evXq1uLi4ubkZPQOgZ7BwmpqaSktLMzMzExMTT548GRoayst5tEZYWNiZM2cuXbqU%0Ak5NTUVFhMY/zRM+AngG6RYZikvHz8vLS0tLi4+PF0LycR2tER0cnJSXJKVRRUdHt27ct7JGK6BnQ%0AM0AXtLS01NTUlJSU5ObmXr169eLFi7ycR2ukpKRcv369oKBATqQaGhos7MGK6BnQM0AXtLW1Scav%0Arq5WL+3Jzs7m5Txa4+bNm3L+VFlZWVdXZ3kvC0LPgJ4BukD30p76+npe2sPLgtAzAHoGDcFLe3hZ%0AEHoGQM8AAOgZ0DMAAHoGQM8AAOgZ0DMAAHoGQM8AAOgZ0DMAAHoGQM8AAOgZ0DN6BoD+iqenJ40A%0A6BkAAADQMwAAAHoGAAAA9AwAAICeAQAAAD0DAACgZ/QMAACAngEAAAA9AwAAoGcAAABAzwAAAOgZ%0AAAAA0DMAAAB6BgAAAPQMAAAA6BkAAAA9AwAAAHoGAABAzwAAAICeAQAA0DMAAACgZwAAAPSMngEA%0AANAzAAAAoGcAAAD0DAAAAOgZAAAAPQMAAAB6BgAAQM8AAACAngEAANBzJz0DAACARkDPAAAA6BkA%0AAAB64v8BxWEie7+/p3wAAAAASUVORK5CYII=" alt="2013-03-27-linux-network-tun__5.png" />

由于 macvlan 与 eth0 处于不同的 namespace,拥有不同的 network stack,这样使用可以不需要建立 bridge 在 virtual namespace 里面使用网络。

MACVTAP

MACVTAP 是对 MACVLAN的改进,把 MACVLAN 与 TAP 设备的特点综合一下,使用 MACVLAN 的方式收发数据包,但是收到的包不交给 network stack 处理,而是生成一个 /dev/tapX 文件,交给这个文件:

<img src="data:image/png;base64,%0A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%0AvCoqKixmdybH1BEjRnTW4zl48GAZzcjIuB0N0Wsz6NChQ56enqGhob/88kt8fHxmZqZGo+nR5/nq%0AcRnUjdseGQQyiAzqzgz66KOPZK4cfpRReTkuo0uWLLGY3VlERMTs2bO78WhhARl0u61cufKRRx7Z%0AsGHD7t27ExISzp8/X1JS0vHTaJBBZBBABlngjlJeLgcGBrq4uLi6ugYEBMiRw2hfpmc4cdu2bWPH%0AjnV0dHRzc5s2bVpOTo4y99FHH5W5hYWFymh+fr6MPvbYYxazOwsODl62bFmnHB5afXhbWr9+/X33%0A3WdnZ/fggw+uW7fO8MLyOM+fP9/Ly8ve3r5///4vv/xyXFzcLV25MveHH37w9vaWKxk5cqRsALKA%0AAwYM6NOnz/jx4zMzMw0vL2vE6GzqDQ0N+rlnzpx58cUXPT09lXu7adOmmz4IJhah3YKCgqZOnWq0%0A8fTo/ybcvmf3La3cL7/8UjkNiKy+119/XavVml6tEprKfkB/MXmFIFOU6a1ue23dhHIx2bblyuV+%0AytYuCUsGAWRQV+woY2JibG1tJ0yYkJ2dXVFRMXfuXGV/dNN3g3x9fVNTU2VH9s9//lNGn3zySWWu%0A8m8n9YdG5dwCElgWszuT4+vOnTs761XyTV80HzhwQC4wbty4vBtkwPBX5GGX4cjIyPr6eo1GExYW%0A9sQTT9zSK3LlMjNmzCgvLw8PD1dGZ82aJY+2UjwSu4aXlwrcu3dvTU1NVVXV8uXLlfNIKLNkNTk5%0AOQ0aNOjgwYM6ne7s2bOSIzd9EEwvQvuMHj36rbfe2rp1qzx6p06dkkavrKzsuX8m1sEMMnPl/uMf%0A/5AqkifsTz/9JLP+/Oc/m16tX3/9tVxMng76a3jmmWeUfzDb1rbX1k0oF5Y7k5ubKy+clI388OHD%0AZBBABt32HaVy5pD09HRltKSkREblVf5NMygxMVEZlRJS3htQRpVv++pXmxx7lFPJWszubMiQIXJn%0AuiyDlJOxJCQkKKPHjh0z/BXlP5sr/+u8fR9MKJc5d+6cDNfW1hqONjY2yrC8Om/rd5ULDB06VBlV%0A/p+yOY1o/iK0j7u7+6effrp9+3Y5lJ4+fVrysaf/D72OZFBbK9fKyqrVldvU1CQXGzx4sOnVeu3a%0ANUdHR3kRVVxcLKNXrlyRYQkmmX7Tbc/oJpQLy7ZtuJFPmjSJDAJuYwYpRxcL045dhnLmVyOG1dJW%0A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%0A0Jv8P3fWkynVWb+3AAAAAElFTkSuQmCC" alt="2013-03-27-linux-network-tun__6.png" />

由于 MACVLAN 是工作在 MAC 层的,所以 MACVTAP 也只能工作在 MAC 层,不会有 MACVTUN 这样的设备。

TAP设备

TAP 设备与 TUN 设备工作方式完全相同,区别在于:

  1. TUN 设备是一个三层设备,它只模拟到了 IP 层,即网络层 我们可以通过 /dev/tunX 文件收发 IP 层数据包,它无法与物理网卡做 bridge,但是可以通过三层交换(如 ip_forward)与物理网卡连通。可以使用ifconfig之类的命令给该设备设定 IP 地址。
  2. TAP 设备是一个二层设备,它比 TUN 更加深入,通过 /dev/tapX 文件可以收发 MAC 层数据包,即数据链路层,拥有 MAC 层功能,可以与物理网卡做 bridge,支持 MAC 层广播。同样的,我们也可以通过ifconfig之类的命令给该设备设定 IP 地址,你如果愿意,我们可以给它设定 MAC 地址。

最后,关于文章中出现的二层,三层,我这里说明一下,第一层是物理层,第二层是数据链路层,第三层是网络层,第四层是传输层。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,993
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,507
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,350
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,135
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,768
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,845