Đây là cách chúng tôi đã làm điều này.
Chúng tôi thiết lập một đường hầm GRE giữa A.A.A.A
và B.B.B.B
(giao diện gre1
trên cả hai máy chủ), với địa chỉ IP đường hầm điểm-điểm nội bộ 10.0.0.1
và 10.0.0.2
(tương ứng). Lưu ý rằng không cần mã hóa vì dù sao các gói trong đường hầm cũng sẽ được mở ra và gửi qua Internet.
Tiếp theo, chúng ta phải cấu hình B.B.B.B
để kích hoạt NAT
trên giao diện bên ngoài của nó eth0
. Điều này được thực hiện thông qua tường lửa
. Sau đó, chúng tôi phải thêm quy tắc tùy chỉnh vào tường lửa
để không chặn các gói GRE đến. chúng tôi đặt gre1
giao diện vào đáng tin cậy
zone để tất cả các gói đến bên trong đường hầm đều được cho phép và sẽ bị NAT'd.
Trên mạng gia đình, chúng tôi đã thiết lập qua tường lửa
với tư cách là một bộ định tuyến NAT, do đó, điều duy nhất còn lại phải làm là (a) tạo phía bên kia của đường hầm GRE và (b) chuyển hướng Linux 192.168.1.17
lưu lượng truy cập đi vào đường hầm. Bước cuối cùng này là phần hơi phức tạp.
Chi tiết bên dưới...
bật thiết lập B.B.B.B
(Máy chủ từ xa)
Thêm giao diện gre1
:
# /etc/sysconfig/mạng/ifcfg-gre1
STARTMODE='khởi động'
BOOTPROTO='tĩnh'
TUNNEL='gre'
TUNNEL_LOCAL_IPADDR='B.B.B.B'
TUNNEL_REMOTE_IPADDR='A.A.A.A'
IPADDR='10.0.0.2'
REMOTE_IPADDR='10.0.0.1'
TUNNEL_TTL='64'
KHU = đáng tin cậy
Thêm tuyến đến mạng gia đình và phía xa của liên kết P2P qua gre1
:
# /etc/sysconfig/mạng/ifroute-gre1
# Tùy chọn giao diện mặt nạ mạng cổng đích
192.168.1.0/24 - - -
10.0.0.1 - - -
định cấu hình tường lửa
qua tường lửa yast2
- Đặt giao diện
eth0
trong khu vực bên ngoài
- Đặt giao diện
gre1
trong khu vực đáng tin cậy
- Thêm quy tắc tường lửa tùy chỉnh vào vùng
bên ngoài
cho phép các gói GRE đến từ A.A.A.A
- Thêm quy tắc tường lửa tùy chỉnh để kẹp TCP MSS cho cả hai
bên ngoài
và đáng tin cậy
vùng (yêu cầu tường lửa >= 1.0.0
)
Tập tin vùng trong /etc/firewalld/zones
:
# /etc/firewalld/zones/external.xml
<vùng>
<short>Bên ngoài</short>
<tên dịch vụ="ssh"/>
...
<hóa trang/>
<rule family="ipv4">
<địa chỉ nguồn="A.A.A.A"/>
<chấp nhận/>
</rule>
<quy tắc>
<tcp-mss-clamp value="1420"/><!-- yêu cầu tường lửa >= 1.0.0 -->
</rule>
<tên giao diện="eth0"/>
</vùng>
# /etc/firewalld/zones/trusted.xml
<zone target="CHẤP NHẬN">
<short>Đáng tin cậy</short>
<description>Tất cả các kết nối mạng đều được chấp nhận.</description>
<quy tắc>
<tcp-mss-clamp value="1420"/><!-- yêu cầu tường lửa >= 1.0.0 -->
</rule>
<tên giao diện="gre1"/>
</vùng>
bật thiết lập A.A.A.A
(Máy chủ mạng gia đình)
Điều này giả định rằng A.A.A.A
đã được thiết lập để NAT 192.168.1.0/24
mạng, v.v.
Thêm giao diện gre1
:
# /etc/sysconfig/mạng/ifcfg-gre1
STARTMODE='khởi động'
BOOTPROTO='tĩnh'
TUNNEL='gre'
TUNNEL_LOCAL_IPADDR='A.A.A.A'
TUNNEL_REMOTE_IPADDR='B.B.B.B'
IPADDR='10.0.0.1'
REMOTE_IPADDR='10.0.0.2'
TUNNEL_TTL='64'
KHU = 'đáng tin cậy'
Thêm tuyến đường đến phía xa của liên kết P2P qua gre1
:
# /etc/sysconfig/mạng/ifroute-gre1
# Tùy chọn giao diện mặt nạ mạng cổng đích
10.0.0.2 - - -
định cấu hình tường lửa
qua tường lửa yast2
:
- Đặt giao diện
gre1
trong khu vực đáng tin cậy
- giao diện
eth0
nên đã ở trong khu vực bên ngoài
Kích hoạt định tuyến lại
Đây là "phần khó khăn" cuối cùng gây ra 192.168.1.17
lưu lượng truy cập ra bên ngoài sẽ được chuyển hướng qua đường hầm GRE.
Để bật chuyển hướng, hãy chạy các lệnh này trên A.A.A.A
:
$ ip tuôn ra bảng 10
$ ip route thêm bảng 10 vào mặc định qua 10.0.0.2 dev gre1
$ ip quy tắc thêm từ 192.168.1.17 bảng 10 ưu tiên 10
Để hoàn tác các lệnh trên:
$ ip quy tắc del từ 192.168.1.17 bảng 10 ưu tiên 10
$ ip tuôn ra bảng 10