การทำ 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

    ผมคอนฟิกส์แล้วไม่ขึ้นครับผมใช้ 2cardllan ไม่ใช้ vmware ช่วยแนะนำด้วยครับ

    Reply
  2. BoY_PiShiT Post author

    ต้องการทำให้มันออกมาแบบไหนครับ รวม NIC 2 ตัวเข้าด้วยกัน หรือว่า bridge eth0 เป็น br0 แล้ว bridge eth1 เป็น br1 ครับ

    Reply
  3. lotto009

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

    Reply
  4. lotto009

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

    Reply
  5. lotto009

    eth0 ออกเน็ท=Bridge= eth1ต่อกับ Hub ครับ

    Reply
  6. BoY_PiShiT Post author

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

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

    Reply
  7. 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 ก็จะบอกอีกทีครับ

    Reply
  8. lotto009

    ลองทำได้แล้วping ไปหา 10.0.0.1 server ไปกลับได้ แต่ว่าเครือ่ง cilent ออกเน็ทมหาลัยไม่ได้ครับ

    Reply
  9. 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 ขอเป็นรูปนะครับ

    Reply
  10. BoY_PiShiT Post author

    ขอดูฝั่ง Server ตามคำสั่งนี้ครับ
    cat /proc/sys/net/ipv4/ip_forward
    iptables -L -t nat
    ifconfig eth1

    Reply
  11. 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 /]#

    Reply
  12. lotto009

    พี่ครับผมจะลองลง centos ใหม่นะครับ ถ้ายังไม่ได้ ขอบพระคุณมากครับที่ให้คำแนะนำอย่างมากมายให้ผม ครับ

    Reply
  13. BoY_PiShiT Post author

    ผมยังไม่ได้ดู สามคำสั่งนี้เลยครับ มี Link ให้ดูไหมครับ ไม่ต้องลงใหม่ก็ได้ครับ
    cat /proc/sys/net/ipv4/ip_forward
    iptables -L -t nat
    ifconfig eth1

    Reply
  14. BoY_PiShiT Post author

    eth1 ยังไม่ไดั้ง IP Address, Subnet mask เลยนะครับ
    มันจะต้องมี
    inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0

    ลองดูใหม่ครับ

    Reply

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *