成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Linux 虛擬網(wǎng)絡(luò)設(shè)備詳解之 “vRouter”

張巨偉 / 2321人閱讀

摘要:不過我們不做那么深究的討論,簡化問題,系統(tǒng)實(shí)際上沒有實(shí)現(xiàn)相關(guān)的虛擬路由器設(shè)備,自然也沒有工具可以操作路由器,因?yàn)楸旧砭褪且慌_路由器。

本文首發(fā)于我的公眾號 cloud_dev,專注于干貨分享,號內(nèi)有大量書籍和視頻資源,后臺回復(fù)「1024」即可領(lǐng)取,歡迎大家關(guān)注,二維碼文末可以掃。

這篇文章繼上篇文章 Linux 虛擬網(wǎng)絡(luò)設(shè)備詳解之 Bridge,上篇發(fā)表之后,有讀者問我這樣一個問題:

我的回答基本上是一句廢話,因?yàn)橹灰阒傈c(diǎn)網(wǎng)絡(luò)的基礎(chǔ)知識,肯定知道這種情況要走三層路由。

但知道歸知道,不實(shí)踐永遠(yuǎn)不知道自己是不是真的知道(有點(diǎn)繞),我相信那位讀者也是希望我能講講這其中具體是怎么路由的,今天這篇文章就來說說這個。

Linux 本身就是一臺路由器

前面的文章我們學(xué)習(xí)了多種虛擬的網(wǎng)絡(luò)設(shè)備,包括網(wǎng)卡、交換機(jī)等,也了解了怎么用工具來操作這些設(shè)備,那么,回到今天的主題,路由器有沒有對應(yīng)的虛擬設(shè)備,能不能也用相關(guān)工具來操作呢,這個答案如果要深究的話,也是有的,比如 OpenStack 的 DVR、一些開源的虛擬路由器實(shí)現(xiàn)等等。

不過我們不做那么深究的討論,簡化問題,Linux 系統(tǒng)實(shí)際上沒有實(shí)現(xiàn)相關(guān)的虛擬路由器設(shè)備,自然也沒有工具可以操作路由器,因?yàn)?Linux 本身就是一臺路由器。(這也是我文章的標(biāo)題對 vRouter 打雙引號的原因)

Linux 提供一個開關(guān)來操作路由功能,就是 /proc/sys/net/ipv4/ip_forward,默認(rèn)這個開關(guān)是關(guān)的,打開只需:

echo 1 > /proc/sys/net/ipv4/ip_forward

但這種打開方式只是臨時的,如果要一勞永逸,可以修改配置文件 /etc/sysctl.conf,添加或修改項(xiàng) net.ipv4.ip_forward 為:

net.ipv4.ip_forward = 1

即可。

實(shí)踐

為了降低大家實(shí)踐的難度,我們就不創(chuàng)建虛擬機(jī)了,直接使用 namespace,一條 ip 命令就可以搞定所有的操作。

我們按照下面的圖示進(jìn)行操作(NS1 和 NS2 分布在不同網(wǎng)段):

創(chuàng)建兩個 namespace:

ip netns add ns1
ip netns add ns2

創(chuàng)建兩對 veth-pair,一端分別掛在兩個 namespace 中:

ip link add v1 type veth peer name v1_r
ip link add v2 type veth peer name v2_r

ip link set v1 netns ns1
ip link set v2 netns ns2

分別給兩對 veth-pair 端點(diǎn)配上 IP 并啟用:

ip a a 10.10.10.1/24 dev v1_r
ip l s v1_r up
ip a a 10.10.20.1/24 dev v2_r
ip l s v2_r up

ip netns exec ns1 ip a a 10.10.10.2/24 dev v1
ip netns exec ns1 ip l s v1 up
ip netns exec ns2 ip a a 10.10.20.2/24 dev v2
ip netns exec ns2 ip l s v2 up

驗(yàn)證一下: v1 ping v2,結(jié)果不通。

看下 ip_forward 的值:

[root@by ~]# cat /proc/sys/net/ipv4/ip_forward
0

沒開路由怎么通,改為 1 再試,還是不通。

看下 ns1 的路由表:

[root@by ~]# ip netns exec ns1 route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 v1

只有一條直連路由,沒有去往 10.10.20.0/24 網(wǎng)段的路由,怎么通?那就給它配一條:

[root@by ~]# ip netns exec ns1 route add -net 10.10.20.0 netmask 255.255.255.0 gw 10.10.10.1

[root@by ~]# ip netns exec ns1 route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 v1
10.10.20.0      10.10.10.1      255.255.255.0   UG    0      0        0 v1

同理也給 ns2 配上去往 10.10.10.0/24 網(wǎng)段的路由。

最后再 ping,成功了!

[root@by ~]# ip netns exec ns1 ping 10.10.20.2
PING 10.10.20.2 (10.10.20.2) 56(84) bytes of data.
64 bytes from 10.10.20.2: icmp_seq=1 ttl=63 time=0.071 ms
64 bytes from 10.10.20.2: icmp_seq=2 ttl=63 time=0.070 ms
^C
--- 10.10.20.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.070/0.070/0.071/0.008 ms
總結(jié)

Linux 本身是一臺路由器。

上面的實(shí)驗(yàn)使用 namespace 效果和使用虛擬機(jī)是一樣的,關(guān)鍵是知道有這個功能,知道怎么用就差不多了。


我的公眾號 cloud_dev,號內(nèi)有大量書籍和視頻資源,后臺回復(fù)「1024」即可領(lǐng)取,分享的內(nèi)容包括但不限于云計(jì)算虛擬化、容器、OpenStack、K8S、霧計(jì)算、網(wǎng)絡(luò)、工具、SDN、OVS、DPDK、Linux、Go、Python、C/C++編程技術(shù)等內(nèi)容,歡迎大家關(guān)注。


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/11505.html

相關(guān)文章

  • Kubernetes和OpenStack的多云端網(wǎng)絡(luò)

    摘要:上周,在舉行的上,發(fā)布,整合和。多虧存儲應(yīng)用程序會話到數(shù)據(jù)庫通常來說是下載安裝或者是,我們不需要特定的負(fù)載均衡器,運(yùn)行完全沒有問題。用負(fù)載均衡器描述的展示了浮動和私有集群。特別感謝來自的的支持和在測試過程中作出的貢獻(xiàn)。 上周,在Austin舉行的OpenStack Summit上,CoreOS發(fā)布Stackanetes,整合Kubernetes和OpenStack。 一個月前,Core...

    Hwg 評論0 收藏0

發(fā)表評論

0條評論

張巨偉

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<