การทำ ethernet bridging บน CentOS 6.2

By | 27/03/2012

package ที่ต้องติดตั้งมีแค่ bridge-utils แค่สั่ง yum install bridge-utils ก็ได้แล้ว วันนี้ไม่ได้มาพูดคุยโม้อะไรนะครับ ^^ จะเอา Config มาให้ดูกันครับ

เครื่องที่ใช้ทดสอบเป็น CentOS 6.2 32 bit (Vm) By Vmware ESXi 5 นะครับ
มี Lan Card เพียงแค่อันเดียว เวลาติดตั้ง Linux ก็จะเห็นเป็น eth0 อันเดียว เท่านั้น

วันนี้จะทำการ bridging eth0 ให้รับไอพีได้ มากกว่า 1-2 Class กันครับ มากสุดมีเท่าไร ก็ไม่รู้เช่นกันแต่วันนี้จะทำการ config ดังนี้ครับ

eth0 = enable ไว้ ไม่มีการ config ip ไว้ครับ หมายเหตุ eth0 ต้องกำหนดให้ enable ไว้ตลอดนะครับ
br0 = จะทำการ bridge เข้ากับ eth0 และ ip เป็น 192.168.0.100/24
br1 = จะทำการ bridge เข้ากับ eth0 และ ip เป็น 10.250.85.62/255.255.255.248

นอกเหนือจากนี้เราจะทำต่อก็ได้ครับ ได้เท่าไร ผมก็ไม่ทราบเหมือนกันแต่ปกติผมก็ทำใช้ไม่กี่อันครับ

Step 1 – ไม่ได้อธิบายนะครับ ให้ดู config กันเลย

[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# ls ifcfg-* -l
-rw-r--r--. 1 root root 136 Mar  5 03:38 ifcfg-br0
-rw-r--r--. 1 root root 175 Mar  5 03:43 ifcfg-br1
-rw-r--r--. 1 root root 124 Mar  5 03:43 ifcfg-eth0
-rw-r--r--. 1 root root 254 Oct  7 21:01 ifcfg-lo
[root@localhost network-scripts]#

Step 2

[root@localhost network-scripts]# cat ifcfg-eth0
DEVICE="eth0"
HWADDR="00:0C:29:D8:1E:AC"
BOOTPROTO="none"
ONBOOT="yes"
BRIDGE="br0"
BRIDGE="br1"
TYPE="Ethernet"
VLAN="yes"
[root@localhost network-scripts]#


Step 3

[root@localhost network-scripts]# cat ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
IPADDR="192.168.0.100"
NETMASK="255.255.255.0"
NAME="System br0"
VLAN="yes"
DELAY="5"
STP="yes"
[root@localhost network-scripts]#

Step 4

[root@localhost network-scripts]# cat ifcfg-br1
DEVICE="br1"
ONBOOT="yes"
TYPE="Bridge"
IPADDR="10.250.85.62"
NETMASK="255.255.255.248"
GATEWAY="10.250.85.57"
DNS1="8.8.8.8"
NAME="System br1"
VLAN="yes"
DELAY="5"
STP="yes"
[root@localhost network-scripts]#

หลังจากนั้นก็ส่ง service network restart ก็จะเห็นผลครับ

[root@localhost /]# service network restart
Shutting down interface br0:                               [  OK  ]
Shutting down interface br1:                               [  OK  ]
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Bringing up interface br0:                                 [  OK  ]
Bringing up interface br1:                                 [  OK  ]
[root@localhost /]# ifconfig
br0       Link encap:Ethernet  HWaddr FA:C1:4E:82:73:94
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::f8c1:4eff:fe82:7394/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:85 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:4914 (4.7 KiB)

br1       Link encap:Ethernet  HWaddr 00:0C:29:D8:1E:AC
          inet addr:10.250.85.62  Bcast:10.250.85.63  Mask:255.255.255.248
          inet6 addr: fe80::20c:29ff:fed8:1eac/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1769 (1.7 KiB)  TX bytes:5591 (5.4 KiB)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:D8:1E:AC
          inet6 addr: fe80::20c:29ff:fed8:1eac/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:22773 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:8492653 (8.0 MiB)  TX bytes:110297 (107.7 KiB)
          Interrupt:19 Base address:0x2000

เป็นอันเสร็จ พร้อมใช้งานครับ ผิดพลาดประการใด ขออภัยด้วยครับ

18 thoughts on “การทำ ethernet bridging บน CentOS 6.2

  1. lotto009

    ทำแบบ bridge eth0 เป็น br0 แล้ว bridge eth1 เป็น br1 โดยมี 2 cardlan
    ผม ผมทำแล้วมันไม่ขึ้นเลย ผมไม่สามารุถเอา file picrture ขึ้นได้ครับ ซึ่งต้องทำ ip tableใหมครับเพราะว่าพอทำแล้วต่อเน็ทไม่ได้เลยครับ เคยping หากันได้เท่าที่ทำได้มากสุดแต่หลังจากนั้นก็ติดมาสัปดาห์แล้ว ขอบพระคุณมากครับ

  2. lotto009

    ผมเคยทำตาม http://linux.blog.in.th/node/223 นี้เหมือันกันและเว็บของPiShiT.NETที่นี่ด้วยหรือว่าผม config ผิด เคยสลับcardlan ตัวใหม่แล้วและลองสลับใช้ทีละตัวก็ใช้ได้แต่พอใช้สองตัวพร้อมกันไม่ได้ครับ

  3. BoY_PiShiT Post author

    งง ๆ ต้องการ share เน็ตโดยทำให้เครื่องที่มี 2 NIC เป็นเหมือน HUB ใช่มั้ยครับ (คือต่อเข้าแล้วก็ต่อออก)

    หรือว่าจะทำ ระบบอะไรครับ ความจริงทำไม่ยากแต่อยากรู้ว่าจะทำอะไรจะได้บอกวิธีทำให้ได้ถูกครับ ถ้าผมเข้าใจผมจะเขียน config ให้ได้ครับ

  4. BoY_PiShiT Post author

    ถ้าจะทำแบบในรูปไม่ต้องสร้าง br0, br1 มาก็ได้ครับ จะแชร์เน็ต ใช่มั้ยครับ?
    หรือจะ server bridge ตามรูปก็ได้ครับ (ถ้าจะทำแบบนั้นจริงๆ ก็เอาสายต่อเข้า HUB เลย)

    แต่ผมคิดว่าคงต้องการแบบนี้…….
    ความจริงมัน share ได้เลย แต่วัดถุประสงค์ที่ต้องผ่าน linux server ก็คือควบคุม content ของ client ซึ่งต้องใช้ proxy ต้องลง squid ด้วยครับ

    ตอนนี้ผมจะขอข้ามเรื่อง proxy แต่จะบอกวิธีทำให้ share เน็ตได้ครับ
    1. ตั้งค่า eth0 ให้เครื่องออกเน็ตได้ก่อนครับ (ต้องออกเน็ตได้นะครับ) พวก br ให้ลบออกให้หมดเลยครับ
    2. ตั้งค่า eth1 ให้โดยเอา config ที่ผมให้นี้ไปใส่ครับ
    DEVICE=”etth1″
    IPADDR=”10.0.0.1″
    NETMASK=”255.255.255.0″
    TYPE=”Ethernet”
    INBOOT=”Yes”
    BOOTPROTO=”none”

    3. สั่ง command ตามนี้นะครับ
    service network restart
    echo “1” > /proc/sys/net/ipv4/ip_forward
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    service iptables save
    service iptables restart

    ตอนนี้เสร็จขั้นตอน share เน็ตแล้ว ให้ลองต่อสายตามรูปนะครับ จากนั้นไปที่เครื่อง client จะไป config ip ให้เครื่องลูกครับ
    โดยใส่ตามนี้ครับ
    IP : 10.0.0.10
    Subnet : 255.255.255.0
    Gateway : 10.0.0.1

    DNS : 8.8.8.8
    DNS : 8.8.4.4

    เครื่อง client ก็จะออกเน็ตได้ครับ
    ปัญหาต่อไปคือ DHCP คือทำให้ Server แจก IP Auto แต่อยากให้ทำอันข้างบนให้เสร็จก่อนนะครับ เรื่อง DHCP ก็จะบอกอีกทีครับ

  5. BoY_PiShiT Post author

    ช่วยเอา output ของ server มาดูหน่อยครับ สั่งตามนี้ครับ
    cat /proc/sys/net/ipv4/ip_forward
    iptables -L -t nat
    ifconfig eth1

    ขอดูฝั่ง client ด้วย อยากดู IP เครื่องที่หนึ่งที่ ตั้งไว้ครับ IP, Subnet, Gateway, DNS ขอเป็นรูปนะครับ

  6. lotto009

    [root@localhost /]# cat /proc/sys/net/ipv4/ip_forward
    1
    [root@localhost /]# iptables -L -t nat
    Chain PREROUTING (policy ACCEPT)
    target prot opt source destination

    Chain POSTROUTING (policy ACCEPT)
    target prot opt source destination
    MASQUERADE all — anywhere anywhere

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination
    [root@localhost /]# ifconfig eth1
    eth1 Link encap:Ethernet HWaddr 00:80:48:33:F0:49
    inet6 addr: fe80::280:48ff:fe33:f049/64 Scope:Link
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:2403 errors:0 dropped:0 overruns:0 frame:0
    TX packets:247 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:224756 (219.4 KiB) TX bytes:31925 (31.1 KiB)
    Interrupt:21 Base address:0x2000

    [root@localhost /]#

ใส่ความเห็น