คอนฟิกลีนุกซ์ Ethernet Bridge

บทความนี้ขอนำเสนอการคอนฟิกลีนุกซ์ที่มีการ์ดแลนหลายพอร์ตให้ทำหน้าที่เป็น Ethernet Bridge หรือ Ethernet Switch โดยจะมีคุณสมบัติ เช่น สามารถรัน Spanning Tree Protocol มีตาราง MAC Address Table เหมือนกับอุปกรณ์ Switch ทั่วไป

ตัวอย่างในบทความนี้จะคอนฟิกการ์ดแลนสองพอร์ต ให้ bridge เข้าหากัน โดยทดสอบบน Fedora 10

ติดตั้งไฟล์ bridge-utils

ดาวน์โหลดไฟล์ bridge-utils แล้วใช้คำสั่ง rpm เพื่อติดตั้ง ดูที่ดาวน์โหลดได้ที่ ข้อมูลอ้างอิง

[root@linux-bridge ~]# rpm -i bridge-utils-1.2-6.fc10.i386.rpm

คอนฟิก Bridge ระหว่างพอร์ต

หลังจากติดตั้งโปรแกรมแล้ว เริ่มต้นคอนฟิกต้องสร้าง virtual interface ขึ้นมา ด้วยคำสั่ง brctl โดยอินเตอร์เฟซใหม่ที่สร้างใหม่นี้ (br0) จะเป็นเหมือน management interface ที่เราสามารถคอนฟิก ip address ลงไป แล้วสามารถใช้ ip นี้เพื่อรีโมต (secure shell) เข้าไปที่เครื่องลีนุกซ์ได้

[root@linux-bridge ~]# brctl addbr br0

คอนฟิก ip address ของพอร์ต br0 เพื่อใช้รีโมต

[root@linux-bridge ~]# ifconfig br0 192.168.1.1 netmask 255.255.255.0

ใช้คำสั่ง brctl addif เพื่อคอนฟิกพอร์ตแลน (physical interface) ที่ต้องการทำ bridge เข้าด้วยกัน ในที่นี้คือ eth0 และ eth1

[root@linux-bridge ~]# brctl addif br0 eth0
[root@linux-bridge ~]# brctl addif br0 eth1
[root@linux-bridge ~]# ifconfig eth0 up
[root@linux-bridge ~]# ifconfig eth1 up

ตรวจสอบสถานะของพอร์ตแลนต่างๆ

[root@linux-bridge ~]# ifconfig br0
br0       Link encap:Ethernet  HWaddr 00:10:CC:11:11:11
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:515181 errors:0 dropped:0 overruns:0 frame:0
          TX packets:311342 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:45321741 (43.2 MiB)  TX bytes:369783847 (352.6 MiB)
[root@linux-bridge ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:10:CC:11:11:11
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4417081 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3755694 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1167814059 (1.0 GiB)  TX bytes:946149995 (902.3 MiB)
          Interrupt:16
[root@linux-bridge ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:90:CC:22:22:22
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3450310 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4048559 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:562811569 (536.7 MiB)  TX bytes:1112816400 (1.0 GiB)
          Interrupt:16 Base address:0xa000

ตรวจสอบสถานะของ bridge

ใช้คำสั่ง brctl show เพื่อตรวจสอบสถานะของ bridge

[root@linux-bridge ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0010cc111111       no              eth0
                                                        eth1

ตรวจสอบสถานะ Spanning Tree (STP)

ใช้คำสั่ง brctl showstp เพื่อตรวจสอบการทำงานของ Spanning Tree Protocol (STP)

[root@linux-bridge ~]# brctl showstp br0
br0
 bridge id              8000.0010cc111111
 designated root        8000.0010cc111111
 root port                 0                    path cost                  0
 max age                  19.99                 bridge max age            19.99
 hello time                1.99                 bridge hello time          1.99
 forward delay            14.99                 bridge forward delay      14.99
 ageing time             299.95
 hello timer               1.83                 tcn timer                  0.00
 topology change timer     0.00                 gc timer                  13.83
 flags
eth0 (0)
 port id                0000                    state                forwarding
 designated root        8000.0010cc111111       path cost                 19
 designated bridge      8000.0010cc111111       message age timer          0.00
 designated port        8001                    forward delay timer        0.00
 designated cost           0                    hold timer                 0.83
 flags
eth1 (0)
 port id                0000                    state                forwarding
 designated root        8000.0010cc111111       path cost                 19
 designated bridge      8000.0010cc111111       message age timer          0.00
 designated port        8002                    forward delay timer        0.00
 designated cost           0                    hold timer                 0.83
 flags

ตรวจสอบตาราง MAC Address Table

ใช้คำสั่ง brctl showmacs เพื่อแสดงตาราง MAC Address Table ได้

[root@linux-bridge ~]# brctl showmacs br0
port no mac addr                is local?       ageing timer
  1     00:00:77:aa:88:33       no                 9.96
  1     00:02:ee:33:00:55       no               141.24
  2     00:03:bb:77:66:55       no                 0.03
  1     00:10:cc:11:11:11       yes                0.00
  1     00:11:ff:00:77:ff       no                 0.00
  1     00:11:ff:77:ff:44       no               241.09
  2     00:90:cc:22:22:22       yes                0.00

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.