您的位置:首页 > 理论基础 > 计算机网络

BBB(二):Windows或Ubuntu主机通过USB分享网络给BBB

2016-02-23 23:00 756 查看

写在前面

Windows下通过ssh、串口等的连接,做一些基本操作还是可以的。后面安装、编译Image、文件共享等可能就要在Linux下了。因此就有了这样一篇总结性的文章。

”Beaglebone Black 本身就是一个DHCP服务器,网络地址为192.168.7.0/30, 整个网络只有192.168.7.0、192.168.7.1、192.168.7.2、192.168.7.3。其中,第一个和第四个不能用,分别是网络号(Network)192.168.7.0和广播的地址(Broadcast)192.168.7.3,剩下的192.168.7.2是Beaglebone Black自己的地址(熟悉BBB的朋友都应该很熟悉这个地址,这个地址就是你第一次在浏览器里键入,用以打开BBB的IDE地址)。所以,只有一个192.168.7.1是分配给我的电脑的。(当然了,这些都是可以更改的)。“

关于网络这块,我找了鸟哥的网站的一些文章加强自己对IP地址、子网掩码Netmask、网关Gateway和DNS这四个我们常常见到的参数的理解,这里也做个笔记,以后方便查看。

http://linux.vbird.org/linux_server/0110network_basic.php#loopback

Class A :   0.xx.xx.xx ~ 127.xx.xx.xx
Class B : 128.xx.xx.xx ~ 191.xx.xx.xx
Class C : 192.xx.xx.xx ~ 223.xx.xx.xx

私有IP(局域网IP)
Class A:10.0.0.0    - 10.255.255.255
Class B:172.16.0.0  - 172.31.255.255
Class C:192.168.0.0 - 192.168.255.255


192.168.0.0~192.168.0.255 這個 C Class 的 Netmask 說明, Netmask里面的为1的都是NetID
第一個 IP: 11000000.10101000.00000000.00000000
最後一個 : 11000000.10101000.00000000.11111111
|----------Net_ID---------|-host--|
Netmask  : 11111111.11111111.11111111.00000000  <== Netmask 二進位
:   255   .  255   .  255   .   0      <== Netmask 十進位
特別注意喔,netmask 也是 32 位元,在數值上,位於 Net_ID 的為 1 而 Host_ID 為


Netmask:   255.255.255.0   <==網域定義中,最重要的參數
Network:   192.168.0.0     <==第一個 IP
Broadcast: 192.168.0.255   <==最後一個 IP(终止位,HostID全为1时)
可用以設定成為主機的 IP 數:
192.168.0.1 ~ 192.168.0.254

當 Host_ID 全部為 0 以及全部為 1 的時後該 IP 是不可以使用的,因為 Host_ID 全部為 0 的時後,表示 IP 是該網段的 Network ,至於全部為 1 的時後就表示該網段最後一個 IP ,也稱為 Broadcast.Netmask作用就是用来确定Net_ID和Host的位置,进而确定网络被分为几段, Network表示第一个IP(不可用), Broadcast表示最后一个IP(不可用)。


Net_ID 使用了 25 bits 時,划分成兩個子網路之後的 Net_ID 與 Host_ID 為何?
11000000.10101000.00000000.0 0000000  多了一個 Net_ID 了, 為 0 (第一個子網)
11000000.10101000.00000000.1 0000000  多了一個 Net_ID 了, 為 1 (第二個子網)
|----------Net_ID-----------|-host--|

第一個子網路
Network:   11000000.10101000.00000000.0 0000000   192.168.0.0
Broadcast: 11000000.10101000.00000000.0 1111111   192.168.0.127
|----------Net_ID-----------|-host-|
Netmask:   11111111.11111111.11111111.1 0000000   255.255.255.128

第二個子網路
Network:   11000000.10101000.00000000.1 0000000   192.168.0.128
Broadcast: 11000000.10101000.00000000.1 1111111   192.168.0.255
|----------Net_ID-----------|-host-|
Netmask:   11111111.11111111.11111111.1 0000000   255.255.255.128


[root@www ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref  Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0      0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0      0 lo
0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0      0 eth0

# 上面輸出的資料共有八個欄位,你需要注意的有幾個地方:
# Destination :其實就是 Network 的意思;
# Gateway     :就是与該接口连接的中转者的 IP 啦!若為 0.0.0.0 表示不需要額外的 IP;
# Genmask     :就是 Netmask 啦!與 Destination 組合成為一部主機或網域;
# Flags       :共有多個旗標可以來表示該網域或主機代表的意義:
#               U:代表該路由可用;
#               G:代表該網域需要經由 Gateway 來幫忙轉遞;
#               H:代表該行路由為一部主機,而非一整個網域;
# Iface       :就是 Interface (网卡) 的意思。


在linux主机上查看



在BBB中的terminal下的操作



上面的usb0就是BBB的网络信息,Mask最后的252代表1111 1100这里的Host ID就只有2位,而Broadcast(终止IP)为192.168.7.3,所以Network(起始IP)为192.168.7.0,这点也可以从route的destination中看出来。可用IP为:192.168.7.1和192.168.7.2。由于BBB已经被分配了192.168.7.2,所以为了让主机和它通讯,我们需要让它们在同一个网段下,因此这里的eth4就被分配了192.68.7.1这个IP。

1. Windows下分享网络

Windows下的网络分享,网友已经总结得很好了,图文并茂,我就直接引用过来,大家有需要的直接按图操作即可。

一线通系列:/article/10909387.html
/article/1817567.html 一线通+troubleshooting

http://lanceme.blogspot.com/2013/06/windows-7-internet-sharing-for.html

2.Ubuntu下分享网络

参考地址:https://elementztechblog.wordpress.com/2014/12/22/sharing-internet-using-network-over-usb-in-beaglebone-black/

我按自己的操作步骤画了一个图来加深理解:



BBB上的操作(以root登录BBB):

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="plain">ssh 192.168.7.2 -l root
ifconfig usb0 192.168.7.2
route add default gw 192.168.7.1
vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 180.76.76.76


8.8.8.8是谷歌的DNS域名服务器,180.76.76.76是百度的DNS域名服务器。主要作用是将平时常常见到的网址,转化为IP地址。






另开一个terminal设置主机的网络。我这里是设置通过主机eth0分享网络给BBB的eth1来上网(根据个人情况修改)

sudo su
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward








然后进入到BBB下的terminal。这里的nameserver是通过插入网线,右上角的网络信息看到的,primary DNS





其他参考:

http://bbs.eeworld.com.cn/thread-431507-1-1.html

http://lanceme.blogspot.com/2013/06/windows-7-internet-sharing-for.html 脚本

https://github.com/IEEERobotics/bot/wiki/BBB-Setup

http://shallowsky.com/blog/hardware/talking-to-beaglebone.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: