ฉันกำลังพยายามทำสิ่งที่ฉันไม่เคยลองมาก่อน ฉันมี Dell PowerEdge 540 ที่ฉันติดตั้ง Ubuntu ไว้ ฉันได้ติดตั้งสาย Comcast Business และมีการกำหนดค่าเครือข่ายจริงดังต่อไปนี้:
เซิร์ฟเวอร์อูบุนตู 20.04.3 LTS
enp10s0f0: (10gb SFP+ การ์ดเสริม)
IPv4: 5*.2*.204.214
ซับเน็ต: 255.255.255.252
เกตเวย์: 5*.2*.204.213
enp10s0f1: (10gb SFP+ การ์ดเสริม)
IPv4: 5*.2*.205.1
ซับเน็ต: 255.255.255.0
eno1: (อีเธอร์เน็ตทองแดง 1gb)
IPv4: 10.0.0.0
เครือข่ายย่อย: 255.0.0.0
นี่คือผลลัพธ์ของ ไอพีแอดเดรส:
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 ขอบเขตโฮสต์ lo
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 ::1/128 ขอบเขตโฮสต์
valid_lft ตลอดไป reserved_lft ตลอดไป
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ 00:1e:c9:b5:b2:3c brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/8 brd 10.255.255.255 ขอบเขต global eno1
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 ****::***:c9ff:feb5:b23c/64 ลิงค์ขอบเขต
valid_lft ตลอดไป reserved_lft ตลอดไป
3: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN กลุ่มเริ่มต้น qlen 1,000
ลิงค์/อีเธอร์ 00:1e:c9:b5:b2:3e brd ff:ff:ff:ff:ff:ff
4: enp12s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ 00:10:18:0d:a3:7e brd ff:ff:ff:ff:ff:ff
5: enp10s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ f4:e9:d4:92:9d:d0 brd ff:ff:ff:ff:ff:ff
inet 5*.2*.204.214/30 brd 5*.2*.204.215 ขอบเขต global enp10s0f0
valid_lft ตลอดไป reserved_lft ตลอดไป
ลิงค์ขอบเขต inet6 fe80::f6e9:d4ff:fe92:9dd0/64
valid_lft ตลอดไป reserved_lft ตลอดไป
6: enp10s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ f4:e9:d4:92:9d:d2 brd ff:ff:ff:ff:ff:ff
inet 5*.2*.205.1/24 brd 5*.2*.205.255 ขอบเขต global enp10s0f1
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 ****::****:d4ff:fe92:9dd2/64 ลิงค์ขอบเขต
valid_lft ตลอดไป reserved_lft ตลอดไป
ฉันได้กำหนดค่าเส้นทาง ip ต่อไปนี้:
ค่าเริ่มต้นผ่าน 5*.2*.204.213 dev enp10s0f0 โปรโตสแตติก
10.0.0.0/8 dev eno1 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.0.0.1
5*.2*.204.212/30 dev enp10s0f0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 5*.2*.204.214
5*.2*.205.0/24 dev enp10s0f1 ลิงก์ขอบเขตเคอร์เนลโปรโต src 5*.2*.205.1
และต่อไปนี้บันทึกไว้ในของฉัน /etc/rc.local ไฟล์:
#!/bin/sh -e
iptables --ฟลัช
iptables --table แนท --flush
iptables -- ลบห่วงโซ่
iptables -- ตาราง nat -- ลบห่วงโซ่
iptables -F
iptables -X
###################### เปิดใช้งานแนท ########################## ##
sudo echo "1" > /proc/sys/net/ipv4/ip_forward
###################### เปิดใช้งาน Nat สำหรับภายใน ########################## #
iptables -t nat -A โพสต์ -o enp10s0f0 -j MASQUERADE
#iptables -t แนท -A โพสต์ -o enp12s0f1 -j MASQUERADE
################### เปิดใช้งานบันทึก ########################
#iptables -A OUTPUT -j บันทึก
#iptables -อินพุต -j บันทึก
#iptables -A FORWARD -j ล็อก
############# อนุญาตโดยค่าเริ่มต้น #####################
iptables -P อินพุตที่ยอมรับ
iptables -P เอาต์พุตที่ยอมรับ
iptables -P ยอมรับไปข้างหน้า
############################ อนุญาตการเชื่อมต่อขาเข้า ################### #########
iptables -A INPUT -m conntrack --ctstate "ESTABLISHED,RELATED" -j ยอมรับ
################################## อนุญาตการเชื่อมต่อขาออก ############# #########
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ยอมรับ
######################## อนุญาตภายในสู่ภายนอก
iptables -A FORWARD -i eno1 -m state "ESTABLISHED,RELATED" -j ยอมรับ
#iptables -A FORWARD -i eno1 -o enp12s0f1 -m state "ESTABLISHED,RELATED" -j ยอมรับ
###iptables -A ไปข้างหน้า -i eno1 -o enp10s0f1 -j ยอมรับ
iptables -A ไปข้างหน้า -i eno1 -o enp10s0f1 -j ยอมรับ
#iptables -A ไปข้างหน้า -i eno1 -o enp12s0f0 -j ยอมรับ
#iptables -A ไปข้างหน้า -i enp10s0f1 -o enp10s0f0 -j ยอมรับ
#iptables -A ไปข้างหน้า -i enp10s0f0 -o enp12s0f1 -j ยอมรับ
ทางออก 0
แผนภาพเครือข่าย:
ดังที่คุณอาจสังเกตเห็นว่า ฉันใช้เวลามากมายในการอ่านทางออนไลน์ว่าวิธีที่ดีที่สุดในการเข้าถึงสิ่งนี้คืออะไร และส่วนใหญ่มีการแสดงความคิดเห็นเกี่ยวกับเรื่องนี้ อย่างที่ฉันคิด ฉันต้องการแค่ NAT บน อีโน1 อินเตอร์เฟซ. แต่เนื่องจากเป็น linux ฉันจึงต้องใช้ iptables เพื่อทำการกำหนดเส้นทางที่ไม่ใช่ NAT? ฉันลองปิดใช้งานแล้ว และเครือข่ายสาธารณะก็ใช้ไม่ได้เลย
แม้ว่าฉันจะได้งานชิ้นหนึ่ง แต่งานชิ้นอื่นก็พังอยู่ดี เป็นเวลาหลายปีแล้วที่ฉันเข้าเรียนในชั้นเรียนของ Cisco และฉันไม่คุ้นเคยกับความรู้สึกงมงาย ฉันหวังเป็นอย่างยิ่งว่าจะมีใครซักคนช่วยฉันหาวิธีที่ดีที่สุดในการนำสิ่งนี้ไปใช้ หรืออาจพบข้อผิดพลาดที่ฉันทำลงไปซึ่งเป็นสาเหตุของข้อผิดพลาด