linux虛擬網橋的構建和WAN的連線

2021-07-12 00:58:18 字數 3938 閱讀 3129

編譯環境:ubuntu 14.04 x86_64

執行平台:imx6q平台

說明:系統中所有#開頭的字元行表示該行為linux命令列。

#工具鏈

##編譯dhcp

由於需要動態ip分配,因此在這裡編譯dhcp,獲取dpch伺服器,編譯命令如下:

#tar xvzf dhcp-4.2.0-p2.tar.gz 

#echo ac_cv_file__dev_random=yes > config.cache

#./configure --prefix=/$/install --host=arm-linux-gnueabihf --cache-file=config.cache

#make && make install

當出現如下資訊"configuring bind export libraries for dhcp"並且進入後面的輸出資訊時,按下crt+c,停止編譯,並執行如下命令:

刪除所有makefile中的-werror編譯項

#find ./ -name makefile|xargs sed -i 's/\-werror/\ /g'

在bind/bind-9.7.1/lib/export/dns/makefile.in的163行將"$"替換成"$"

#sed -i '163s/$/$/g' bind/bind-9.7.1/lib/export/dns/makefile.in

在檔案bind/makefile 的48行將"./configure"替換成"build_cc=gcc ./configure --host=arm-linux-gnueabihf --with-randomdev=/dev/random"

#sed -i '48s/\.\/configure/build_cc=gcc \.\/configure \--host=arm\-linux\-gnueabihf \--with\-randomdev=\/dev\/random/g' bind/makefile

#make && make install

##編譯iptables

iptables依賴於libmnl libnftnl

#tar xvjf libmnl-1.0.3.tar.bz2 -c./

#./configure --prefix=$/install --host=arm-linux-gnueabihf cc=arm-linux-gnueabihf-gcc

#make && make install

###編譯libnftnl庫

core netfilter configuration 選擇如下配置:

netfilter connection tracking support

netfilter xtables support (required for ip_tables)

![linux核心新增nat支援](

brctl addbr br-lan//建立乙個虛擬網橋

ifconfig eth0 down

ifconfig eth1 down

ifconfig wlan0 down

iw dev wlan0 set 4addr on//不允許此步驟,無法將wlan0加入網橋

ifconfig br-lan 192.168.1.1 netmask 255.255.255.0 up

dhcpd br-lan

ifconfig eth0 up

ifconfig eth1 up

ifconfig wlan0 up

hostpad –d /etc/hostapd.conf -b

/etc/dhcod.conf

subnet 192.168.1.0 netmask 255.255.255.0

touch /var/db/dhcpd.leases

dhcpd wlan0 -pf /var/run/dhcpd.pid//動態分配ip位址

iptables -t nat -a postrouting -o wwan0 -j masquerade//設定nat**規則

linux下的網橋介紹

網橋用來連線不同的網段。使不同的網段能夠相互通訊,看起來很像三層的路由。它能夠有多個port,從而能夠將資料幀從乙個port複製到另乙個port。這裡要注意一點,linux下的網橋只能用於乙太網。來看下示意圖 其中乙個是bridge,乙個是route。網橋的主要工作是從輸入幀學習主機的位置,建立乙個...

linux中的網橋bridge

網橋 橋接與網橋 乙太網是一種共享網路傳輸介質的技術,在這種技術下,如果一台計算機傳送資料的時候,在同一物理網路介質上的計算機都需要接收,在接收後分析目的mac位址,如果是屬於目的mac位址和自己的mac位址相同便進行封裝提供給網路層,如果目的mac位址不是自己的mac位址,那麼就丟棄資料報。橋接的...

cJSON的構建和解析

一 cjson構建 define module num 3 int encode json cjson root cjson createobject 在根節點建立cjson物件 root cjson name list array cjson createarray 建立陣列物件 name lis...