|
40 | 40 | #define IPTABLES_ADD_MASQ "iptables -t nat -A POSTROUTING -o %s -j MASQUERADE"
|
41 | 41 | #define IPTABLES_DEL_MASQ "iptables -t nat -D POSTROUTING -o %s -j MASQUERADE"
|
42 | 42 |
|
| 43 | +#define IPTABLES_ADD_MSS "iptables -t mangle -I POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o %s -j TCPMSS --clamp-mss-to-pmtu" |
| 44 | +#define IPTABLES_DEL_MSS "iptables -t mangle -D POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o %s -j TCPMSS --clamp-mss-to-pmtu" |
| 45 | + |
43 | 46 | #define IPTABLES_ADD_ACC "iptables -t nat -I POSTROUTING -s %s/%i -j ACCEPT"
|
44 | 47 | #define IPTABLES_DEL_ACC "iptables -t nat -D POSTROUTING -s %s/%i -j ACCEPT"
|
45 | 48 |
|
@@ -101,17 +104,23 @@ void exec_iptables_rule(char *cmd, int8_t route_action) {
|
101 | 104 | }
|
102 | 105 |
|
103 | 106 | void add_nat_rule(char *dev) {
|
104 |
| - char cmd[100]; |
| 107 | + char cmd[150]; |
105 | 108 |
|
106 | 109 | sprintf(cmd, IPTABLES_ADD_MASQ, dev);
|
107 | 110 | exec_iptables_rule(cmd, ROUTE_ADD);
|
| 111 | + |
| 112 | + sprintf(cmd, IPTABLES_ADD_MSS, dev); |
| 113 | + exec_iptables_rule(cmd, ROUTE_ADD); |
108 | 114 | }
|
109 | 115 |
|
110 | 116 | void del_nat_rule(char *dev) {
|
111 |
| - char cmd[100]; |
| 117 | + char cmd[150]; |
112 | 118 |
|
113 | 119 | sprintf(cmd, IPTABLES_DEL_MASQ, dev);
|
114 | 120 | exec_iptables_rule(cmd, ROUTE_DEL);
|
| 121 | + |
| 122 | + sprintf(cmd, IPTABLES_ADD_MSS, dev); |
| 123 | + exec_iptables_rule(cmd, ROUTE_DEL); |
115 | 124 | }
|
116 | 125 |
|
117 | 126 | void hna_local_update_nat(uint32_t hna_ip, uint8_t netmask, int8_t route_action) {
|
|
0 commit comments