นี่คือวิธีที่เราทำ
เราสร้างอุโมงค์ GRE ระหว่าง อ.อ.อ
และ บีบีบีบี
(อินเตอร์เฟซ เกรย์1
บนเซิร์ฟเวอร์ทั้งสอง) พร้อมที่อยู่ IP ของช่องสัญญาณแบบจุดต่อจุดภายใน 10.0.0.1
และ 10.0.0.2
(ตามลำดับ). โปรดทราบว่าไม่จำเป็นต้องมีการเข้ารหัสเนื่องจากแพ็กเก็ตในอุโมงค์จะถูกแกะและส่งผ่านอินเทอร์เน็ตตามที่เป็นอยู่
ต่อไปเราต้องกำหนดค่า บีบีบีบี
การเปิดใช้งาน แนท
บนอินเทอร์เฟซภายนอก eth0
. สิ่งนี้ทำผ่าน ไฟร์วอลล์
. จากนั้นเราต้องเพิ่มกฎที่กำหนดเอง ไฟร์วอลล์
เพื่อไม่ให้บล็อกแพ็กเก็ต GRE ที่เข้ามา เราใส่ เกรย์1
อินเทอร์เฟซใน ที่เชื่อถือ
โซนเพื่อให้แพ็กเก็ตทั้งหมดที่เข้ามาในอุโมงค์ได้รับอนุญาต และจะได้รับ NAT'd
บนเครือข่ายในบ้าน เราตั้งค่าไว้แล้วผ่าน ไฟร์วอลล์
ในฐานะเราเตอร์ NAT ดังนั้นสิ่งเดียวที่ต้องทำคือ (a) สร้างอีกด้านของอุโมงค์ GRE และ (b) ทำให้ Linux เบี่ยงเบน 192.168.1.17
ของการจราจรขาออกเข้าสู่อุโมงค์ ขั้นตอนสุดท้ายนี้เป็นส่วนที่ยุ่งยากเล็กน้อย
รายละเอียดด้านล่าง...
เปิดการตั้งค่า บีบีบีบี
(เซิร์ฟเวอร์ระยะไกล)
เพิ่มอินเทอร์เฟซ เกรย์1
:
# /etc/sysconfig/network/ifcfg-gre1
STARTMODE='เปิดเครื่อง'
BOOTPROTO='คงที่'
อุโมงค์='gre'
TUNNEL_LOCAL_IPADDR='บีบีบีบี'
TUNNEL_REMOTE_IPADDR='เอเอเอเอเอ'
IPADDR='10.0.0.2'
REMOTE_IPADDR='10.0.0.1'
TUNNEL_TTL='64'
ZONE = เชื่อถือได้
เพิ่มเส้นทางไปยังเครือข่ายในบ้านและด้านระยะไกลของลิงก์ P2P ผ่าน เกรย์1
:
# /etc/sysconfig/network/ifroute-gre1
# ตัวเลือกอินเทอร์เฟซ Netmask เกตเวย์ปลายทาง
192.168.1.0/24 - - -
10.0.0.1 - - -
กำหนดค่า ไฟร์วอลล์
ทาง ไฟร์วอลล์ yast2
- ใส่อินเทอร์เฟซ
eth0
ในโซน ภายนอก
- ใส่อินเทอร์เฟซ
เกรย์1
ในโซน ที่เชื่อถือ
- เพิ่มกฎไฟร์วอลล์ที่กำหนดเองในโซน
ภายนอก
อนุญาตแพ็กเก็ต GRE ขาเข้าจาก อ.อ.อ
- เพิ่มกฎไฟร์วอลล์ที่กำหนดเองเพื่อยึด TCP MSS กับทั้งสอง
ภายนอก
และ ที่เชื่อถือ
โซน (ต้องการ ไฟร์วอลล์d >= 1.0.0
)
ไฟล์โซนใน /etc/firewalld/โซน
:
# /etc/firewalld/zones/external.xml
<โซน>
<short>ภายนอก</short>
<ชื่อบริการ = "ssh"/>
...
<สวมหน้ากาก/>
<rule family="ipv4">
<แหล่งที่มา =="A.A.A.A"/>
<ยอมรับ/>
</rule>
<กฎ>
<tcp-mss-clamp value="1420"/><!-- ต้องใช้ไฟร์วอลล์ >= 1.0.0 -->
</rule>
<ชื่ออินเทอร์เฟซ="eth0"/>
</โซน>
# /etc/firewalld/zones/trusted.xml
<โซนเป้าหมาย="ยอมรับ">
<short>เชื่อถือได้</short>
<description>ยอมรับการเชื่อมต่อเครือข่ายทั้งหมด</description>
<กฎ>
<tcp-mss-clamp value="1420"/><!-- ต้องใช้ไฟร์วอลล์ >= 1.0.0 -->
</rule>
<ชื่ออินเทอร์เฟซ="gre1"/>
</โซน>
เปิดการตั้งค่า อ.อ.อ
(เซิร์ฟเวอร์เครือข่ายในบ้าน)
นี้สันนิษฐานว่า อ.อ.อ
ตั้งค่าเป็น NAT แล้ว 192.168.1.0/24
เครือข่าย ฯลฯ
เพิ่มอินเทอร์เฟซ เกรย์1
:
# /etc/sysconfig/network/ifcfg-gre1
STARTMODE='เปิดเครื่อง'
BOOTPROTO='คงที่'
อุโมงค์='gre'
TUNNEL_LOCAL_IPADDR='เอเอเอเอเอ'
TUNNEL_REMOTE_IPADDR='บีบีบีบี'
IPADDR='10.0.0.1'
REMOTE_IPADDR='10.0.0.2'
TUNNEL_TTL='64'
ZONE='เชื่อถือได้'
เพิ่มเส้นทางไปยังฝั่งระยะไกลของลิงก์ P2P ผ่าน เกรย์1
:
# /etc/sysconfig/network/ifroute-gre1
# ตัวเลือกอินเทอร์เฟซ Netmask เกตเวย์ปลายทาง
10.0.0.2 - - -
กำหนดค่า ไฟร์วอลล์
ทาง ไฟร์วอลล์ yast2
:
- ใส่อินเทอร์เฟซ
เกรย์1
ในโซน ที่เชื่อถือ
- อินเตอร์เฟซ
eth0
น่าจะอยู่ในโซนแล้ว ภายนอก
การเปิดใช้งานการเปลี่ยนเส้นทาง
นี่คือ "ส่วนที่ยุ่งยาก" สุดท้ายซึ่งเป็นสาเหตุ 192.168.1.17
การจราจรขาออกจะถูกเบี่ยงผ่านอุโมงค์ GRE
หากต้องการเปิดการเปลี่ยนเส้นทาง ให้รันคำสั่งเหล่านี้ อ.อ.อ
:
ตารางล้างเส้นทาง $ ip 10
เส้นทาง $ ip เพิ่มตาราง 10 เป็นค่าเริ่มต้นผ่าน 10.0.0.2 dev gre1
กฎ $ ip เพิ่มจาก 192.168.1.17 ตาราง 10 ลำดับความสำคัญ 10
หากต้องการเลิกทำคำสั่งข้างต้น:
$ ip rule ลบจาก 192.168.1.17 table 10 ลำดับความสำคัญ 10
ตารางล้างเส้นทาง $ ip 10